X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=Makefile;h=5a8becaf8d3f5a7f6c3a8c65ceeb88dd13f7c891;hb=c75da58b11b6b5f18e1d3f2200aa1e2f9ba5ac64;hp=2422c16a5f15c654b95c60760ad55d8962b7686e;hpb=f112d9051302c0bffa505148e55981b954d30dcf;p=gedcom-parse.git diff --git a/Makefile b/Makefile index 2422c16..5a8beca 100644 --- a/Makefile +++ b/Makefile @@ -1,45 +1,56 @@ # $Id$ # $Name$ +LIBTOOL=libtool YACC=bison LEX=flex +LIBPATH=/usr/local/lib DMALLOC_CFLAGS= DMALLOC_LOADLIBES= CFLAGS=-g -W -Wall -pedantic $(DMALLOC_CFLAGS) YFLAGS=--debug --defines LFLAGS=-8 LOADLIBES=$(DMALLOC_LOADLIBES) +LDFLAGS_GEDCOM=-L.libs -all: ansel_module gedcom_parse +all: ansel_module libgedcom.so gedcom_parse -gedcom_parse: standalone.o lex.gedcom_1byte_.o lex.gedcom_hilo_.o \ - lex.gedcom_lohi_.o gedcom.tab.o message.o multilex.o \ - encoding.o - $(CC) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) -o $@ +gedcom_parse: standalone.o + $(CC) $(LDFLAGS) $(LDFLAGS_GEDCOM) -lgedcom $^ $(LOADLIBES) $(LDLIBS) -o $@ + +libgedcom.so: lex.gedcom_1byte_.lo lex.gedcom_hilo_.lo lex.gedcom_lohi_.lo \ + gedcom.tab.lo message.lo multilex.lo encoding.lo interface.lo + $(LIBTOOL) $(CC) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) -o libgedcom.la -rpath $(LIBPATH) + rm -f libgedcom.so + ln -s .libs/libgedcom.so.0.0.0 libgedcom.so + +%.lo: %.c + $(LIBTOOL) $(CC) -c $(CPPFLAGS) $(CFLAGS) $^ ansel_module: cd ansel && $(MAKE) -lex.gedcom_1byte_.c: gedcom_1byte.lex gedcom.tab.h gedcom.h multilex.h \ +lex.gedcom_1byte_.c: gedcom_1byte.lex gedcom.tab.h gedcom_internal.h multilex.h \ gedcom_lex_common.c encoding.h $(LEX) $(LFLAGS) -Pgedcom_1byte_ gedcom_1byte.lex -lex.gedcom_hilo_.c: gedcom_hilo.lex gedcom.tab.h gedcom.h multilex.h \ +lex.gedcom_hilo_.c: gedcom_hilo.lex gedcom.tab.h gedcom_internal.h multilex.h \ gedcom_lex_common.c encoding.h $(LEX) $(LFLAGS) -Pgedcom_hilo_ gedcom_hilo.lex -lex.gedcom_lohi_.c: gedcom_lohi.lex gedcom.tab.h gedcom.h multilex.h \ +lex.gedcom_lohi_.c: gedcom_lohi.lex gedcom.tab.h gedcom_internal.h multilex.h \ gedcom_lex_common.c encoding.h $(LEX) $(LFLAGS) -Pgedcom_lohi_ gedcom_lohi.lex -gedcom.tab.c gedcom.tab.h: gedcom.y gedcom.h +gedcom.tab.c gedcom.tab.h: gedcom.y gedcom_internal.h $(YACC) $(YFLAGS) --name-prefix=gedcom_ gedcom.y .PHONY: clean clean: - rm -f core gedcom_parse lexer_* *.o lex.gedcom_* \ - gedcom.tab.* gedcom.output + rm -f core gedcom_parse lexer_* *.o *.lo *.la .libs/* lex.gedcom_* \ + gedcom.tab.* gedcom.output libgedcom.so + rm -rf .libs cd ansel && $(MAKE) clean # Lexer test programs @@ -75,6 +86,7 @@ test_lohi: lexer_lohi test: all @export GCONV_PATH=./ansel; \ + export LD_LIBRARY_PATH=.libs; \ for file in t/*.ged; do \ echo "=== testing $$file"; \ ./gedcom_parse -2 $$file; \