65 lines
1.3 KiB
Makefile
65 lines
1.3 KiB
Makefile
FLAGS+=-g
|
|
CFLAGS+=$(FLAGS)
|
|
LDFLAGS+=$(FLAGS)
|
|
|
|
OBJS:=obj/sam.lo obj/strl.lo obj/parse.lo obj/tinystring.lo
|
|
DEPS:=$(patsubst obj/%.lo, .deps/%.d, $(OBJS))
|
|
DESTDIR:=$(if $(DESTDIR),$(DESTDIR)/lib,/usr/lib)
|
|
|
|
MAKEFLAGS=-s -r
|
|
|
|
PERL=$(shell which perl 2>/dev/null)
|
|
ifneq ($(PERL),)
|
|
STATUS=$(PERL) ./status
|
|
else
|
|
STATUS=echo
|
|
endif
|
|
|
|
LIBTOOL_LOG=libtool.log
|
|
|
|
all:: cleanlog .deps/finish
|
|
|
|
cleanlog:
|
|
echo >$(LIBTOOL_LOG)
|
|
|
|
lib/libsam.so: obj/libsam.la
|
|
libtool --mode=install install $^ `pwd`/$@ >>$(LIBTOOL_LOG)
|
|
|
|
obj/libsam-static.la: $(OBJS)
|
|
$(STATUS) library '(static)'
|
|
libtool --mode=link $(CC) -static $(LDFLAGS) -o $@ $^ >>$(LIBTOOL_LOG)
|
|
|
|
obj/libsam.la: $(OBJS)
|
|
$(STATUS) library '(shared)'
|
|
libtool --mode=link $(CC) -rpath $(DESTDIR) $(LDFLAGS) -o $@ $^ >>$(LIBTOOL_LOG)
|
|
|
|
obj/%.lo: src/%.c
|
|
$(STATUS) compile $*
|
|
libtool --mode=compile $(CC) $(CFLAGS) -Iinc/ -c -o $@ $< >>$(LIBTOOL_LOG)
|
|
|
|
$(OBJS):|obj
|
|
obj:
|
|
$(STATUS) MKDIR $@
|
|
mkdir -p $@
|
|
|
|
.deps/%.d: src/%.c
|
|
$(STATUS) deps $*
|
|
$(CC) -Iinc/ -MM -MT obj/$*.o $< -o $@
|
|
|
|
-include $(DEPS)
|
|
|
|
DEPS+=.deps/finish
|
|
.deps/finish: lib/libsam.so
|
|
libtool --finish $(DESTDIR) >>$(LIBTOOL_LOG) && touch $@
|
|
$(DEPS):|.deps
|
|
.deps:
|
|
$(STATUS) MKDIR $@
|
|
mkdir -p $@
|
|
|
|
clean:
|
|
$(STATUS) clean
|
|
libtool --mode=clean rm -f obj/*.l* lib/*.l* lib/*.so* lib/*.a >>$(LIBTOOL_LOG)
|
|
rm -Rf .deps libtool.log
|
|
|
|
.PHONY: all cleanlog clean
|