| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- CUR_DIR = $(shell pwd)
- SRC_FILES = yuarel.c
- OBJ_FILES = $(patsubst %.c, %.o, $(SRC_FILES))
- VERSION_MAJOR = 1
- VERSION_MINOR = 0
- VERSION = $(VERSION_MAJOR).$(VERSION_MINOR)
- LIBNAME = yuarel
- PKG_NAME = lib$(LIBNAME)-$(VERSION)
- CC = gcc
- AR = ar
- CFLAGS = -c -fPIC -g -Wall
- LDFLAGS =-s -shared -fvisibility=hidden -Wl,--exclude-libs=ALL,--no-as-needed,-soname,lib$(LIBNAME).so.$(VERSION_MAJOR)
- PREFIX ?= /usr
- .PHONY: all
- all: yuarel
- .PHONY: yuarel
- yuarel: $(SRC_FILES) $(OBJ_FILES)
- @echo "Building $(PKG_NAME)..."
- $(CC) $(LDFLAGS) $(OBJ_FILES) -o lib$(LIBNAME).so.$(VERSION_MAJOR)
- $(AR) rcs lib$(LIBNAME).a $(OBJ_FILES)
- %.o: %.c
- $(CC) $(CFLAGS) $< -o $@
- .PHONY: install
- install: all
- install --directory $(PREFIX)/lib $(PREFIX)/include
- install lib$(LIBNAME).so.$(VERSION_MAJOR) lib$(LIBNAME).a $(PREFIX)/lib/
- ln -fs $(PREFIX)/lib/lib$(LIBNAME).so.$(VERSION_MAJOR) $(PREFIX)/lib/lib$(LIBNAME).so
- install yuarel.h $(PREFIX)/include/
- ldconfig -n $(PREFIX)/lib
- .PHONY: examples
- examples: examples/simple.c
- $(CC) examples/simple.c -l$(LIBNAME) -o simple
- .PHONY: check
- check:
- @mkdir -p build
- PREFIX=$(CUR_DIR)/build make install
- $(CC) tests/test_lib.c -Ibuild/include -Lbuild/lib -l$(LIBNAME) -o test_lib
- LD_LIBRARY_PATH="build/lib" \
- ./test_lib
- .PHONY: dist
- dist:
- install -d $(PKG_NAME)
- install *.c $(PKG_NAME)/
- install *.h $(PKG_NAME)/
- install Makefile LICENSE README.md $(PKG_NAME)/
- cp -r tests $(PKG_NAME)/
- cp -r examples $(PKG_NAME)/
- tar -pczf $(PKG_NAME).tar.gz $(PKG_NAME)
- .PHONY: clean
- clean:
- rm -f *.o
- rm -fr build
- rm -f simple test_lib
- .PHONY: dist-clean
- dist-clean: clean
- rm -f libyuarel.so.*
- rm -rf $(PKG_NAME)
- rm -f $(PKG_NAME).tar.gz
|