a4df85aa9e 2011-01-15 stephan: #!/usr/bin/make -f 2b6f9b149f 2011-01-17 stephan: ######################################################################## 2b6f9b149f 2011-01-17 stephan: # Main makefile for libcson. 2b6f9b149f 2011-01-17 stephan: # 2b6f9b149f 2011-01-17 stephan: # Important targets for users not hacking this source tree: 2b6f9b149f 2011-01-17 stephan: # 2b6f9b149f 2011-01-17 stephan: # all: do everything 2b6f9b149f 2011-01-17 stephan: # amal: build the amalgamation build 2b6f9b149f 2011-01-17 stephan: # run: run tests (it's not called 'test' because we have a binary with 2b6f9b149f 2011-01-17 stephan: # that name) 2b6f9b149f 2011-01-17 stephan: ######################################################################## a4df85aa9e 2011-01-15 stephan: include config.make # see that file for certain configuration options. 2b6f9b149f 2011-01-17 stephan: c817c4e0a1 2011-04-13 stephan: CSON_ENABLE_CGI ?= 1 c817c4e0a1 2011-04-13 stephan: c817c4e0a1 2011-04-13 stephan: a4df85aa9e 2011-01-15 stephan: libcson.LIB.OBJECTS := \ a4df85aa9e 2011-01-15 stephan: cson.o \ 66b7d3137e 2011-04-11 stephan: parser/JSON_parser.o \ c7196c6691 2011-04-14 stephan: cson_session.o \ 66b7d3137e 2011-04-11 stephan: cson_session_file.o 66b7d3137e 2011-04-11 stephan: c817c4e0a1 2011-04-13 stephan: CFLAGS_C99 = $(filter-out -std=c89,$(CFLAGS)) -std=c99 c817c4e0a1 2011-04-13 stephan: c817c4e0a1 2011-04-13 stephan: c817c4e0a1 2011-04-13 stephan: SQLITE3_H := $(firstword $(wildcard $(addsuffix /sqlite3.h,. /usr/include /usr/local/include $(HOME)/include))) 66b7d3137e 2011-04-11 stephan: # too damned slow: $(shell locate sqlite3.h 2>/dev/null | grep -w include >/dev/null 2>&1 && echo 1) c817c4e0a1 2011-04-13 stephan: c817c4e0a1 2011-04-13 stephan: ######################################################################## c817c4e0a1 2011-04-13 stephan: # Set up a local/embedded copy of sqlite3 for some of my test purposes... c5e9348571 2011-04-14 stephan: # i found out afterwards: http://www.sqlite.org/compile.html#omitfeatures c5e9348571 2011-04-14 stephan: # The use of -DSQLITE_OMIT_xxx here isn't supposed to work, but it seems c5e9348571 2011-04-14 stephan: # to do what i want (remove the requirement for -ldl). c817c4e0a1 2011-04-13 stephan: ifeq (2,$(words $(wildcard ./sqlite3.c ./sqlite3.h))) c817c4e0a1 2011-04-13 stephan: SQLITE3.O := ./sqlite3.o c817c4e0a1 2011-04-13 stephan: CPDO_ENABLE_SQLITE3 := 1 c817c4e0a1 2011-04-13 stephan: LDFLAGS_SQLITE3 := -L. -lsqlite3 c817c4e0a1 2011-04-13 stephan: sqlite3.c: c817c4e0a1 2011-04-13 stephan: sqlite3.h: c817c4e0a1 2011-04-13 stephan: sqlite3.o: sqlite3.c sqlite3.h c817c4e0a1 2011-04-13 stephan: sqlite3.o: CPPFLAGS:=\ c817c4e0a1 2011-04-13 stephan: -I. \ c817c4e0a1 2011-04-13 stephan: $(CPPFLAGS) \ c817c4e0a1 2011-04-13 stephan: -DSQLITE_THREADSAFE=0 \ c817c4e0a1 2011-04-13 stephan: -DSQLITE_TEMP_STORE=3 \ c817c4e0a1 2011-04-13 stephan: -DSQLITE_OMIT_LOAD_EXTENSION=1 c817c4e0a1 2011-04-13 stephan: libsqlite3.a: sqlite3.o c817c4e0a1 2011-04-13 stephan: $(AR) crs $@ sqlite3.o c817c4e0a1 2011-04-13 stephan: # C99: sqlite3.h does not compile cleanly in C89 mode c817c4e0a1 2011-04-13 stephan: # due to its use of (long long). 978b57e491 2011-04-14 stephan: #CPPFLAGS:=-I. $(filter-out -I.,$(CPPFLAGS)) f628c1a706 2011-04-15 stephan: $(SQLITE3.O) cpdo_amalgamation.o cson_sqlite3.o: CPPFLAGS:=-I. $(CFLAGS_C99) c817c4e0a1 2011-04-13 stephan: cpdo_amalgamation.o: libsqlite3.a c817c4e0a1 2011-04-13 stephan: endif c817c4e0a1 2011-04-13 stephan: # /local sqlite3 c817c4e0a1 2011-04-13 stephan: ######################################################################## c817c4e0a1 2011-04-13 stephan: 66b7d3137e 2011-04-11 stephan: ifeq (,$(SQLITE3_H)) 66b7d3137e 2011-04-11 stephan: CPDO_ENABLE_SQLITE3 ?= 0 66b7d3137e 2011-04-11 stephan: else 66b7d3137e 2011-04-11 stephan: CPDO_ENABLE_SQLITE3 ?= 1 66b7d3137e 2011-04-11 stephan: endif 66b7d3137e 2011-04-11 stephan: 66b7d3137e 2011-04-11 stephan: ifeq (1,$(CPDO_ENABLE_SQLITE3)) c817c4e0a1 2011-04-13 stephan: LDFLAGS_SQLITE3 ?= -lsqlite3 66b7d3137e 2011-04-11 stephan: else c817c4e0a1 2011-04-13 stephan: LDFLAGS_SQLITE3 ?= 66b7d3137e 2011-04-11 stephan: endif 66b7d3137e 2011-04-11 stephan: 66b7d3137e 2011-04-11 stephan: BIN_MYSQL5_CONFIG := $(call ShakeNMake.CALL.FIND_BIN,mysql_config) 66b7d3137e 2011-04-11 stephan: ifneq (,$(BIN_MYSQL5_CONFIG)) 66b7d3137e 2011-04-11 stephan: CPDO_ENABLE_MYSQL5 ?= 1 66b7d3137e 2011-04-11 stephan: else 66b7d3137e 2011-04-11 stephan: CPDO_ENABLE_MYSQL5 ?= 0 66b7d3137e 2011-04-11 stephan: LDFLAGS_MYSQL5 := 66b7d3137e 2011-04-11 stephan: endif 66b7d3137e 2011-04-11 stephan: 66b7d3137e 2011-04-11 stephan: ifeq (1,$(CPDO_ENABLE_MYSQL5)) 66b7d3137e 2011-04-11 stephan: LDFLAGS_MYSQL5 := $(shell $(BIN_MYSQL5_CONFIG) --libs) 66b7d3137e 2011-04-11 stephan: CFLAGS_MYSQL5 := $(shell $(BIN_MYSQL5_CONFIG) --cflags) 66b7d3137e 2011-04-11 stephan: endif 66b7d3137e 2011-04-11 stephan: 66b7d3137e 2011-04-11 stephan: ifneq (00,$(CPDO_ENABLE_SQLITE3)$(CPDO_ENABLE_MYSQL5)) 66b7d3137e 2011-04-11 stephan: libcson.LIB.OBJECTS += \ 66b7d3137e 2011-04-11 stephan: cson_session_cpdo.o \ f628c1a706 2011-04-15 stephan: cson_cpdo.o \ c817c4e0a1 2011-04-13 stephan: cpdo_amalgamation.o \ c817c4e0a1 2011-04-13 stephan: $(SQLITE3.O) 66b7d3137e 2011-04-11 stephan: CSON_ENABLE_CPDO := 1 66b7d3137e 2011-04-11 stephan: else 66b7d3137e 2011-04-11 stephan: CSON_ENABLE_CPDO := 0 66b7d3137e 2011-04-11 stephan: endif 66b7d3137e 2011-04-11 stephan: f628c1a706 2011-04-15 stephan: CPPFLAGS.CPDO := -DCSON_ENABLE_CPDO=$(CSON_ENABLE_CPDO) 66b7d3137e 2011-04-11 stephan: ifeq (1,$(CPDO_ENABLE_SQLITE3)) f628c1a706 2011-04-15 stephan: CPPFLAGS.CPDO += -DCPDO_ENABLE_SQLITE3=1 fc60825290 2011-04-18 stephan: session/sessions.sqlite3: session/EMPTY.sessions.sqlite3 fc60825290 2011-04-18 stephan: cp $^ $@ fc60825290 2011-04-18 stephan: cson_session_cpdo.o: session/sessions.sqlite3 66b7d3137e 2011-04-11 stephan: endif 66b7d3137e 2011-04-11 stephan: ifeq (1,$(CPDO_ENABLE_MYSQL5)) f628c1a706 2011-04-15 stephan: CPPFLAGS.CPDO += -DCPDO_ENABLE_MYSQL5=1 66b7d3137e 2011-04-11 stephan: endif f628c1a706 2011-04-15 stephan: cson_session_cpdo.o cpdo_amalgamation.o cson_cpdo.o: CPPFLAGS+=$(CPPFLAGS.CPDO) 66b7d3137e 2011-04-11 stephan: 66b7d3137e 2011-04-11 stephan: #libcson.LIB.OBJECTS := $(patsubst %,$(SRC_DIR)/%,$(libcson.LIB.OBJECTS)) a4df85aa9e 2011-01-15 stephan: cson.o: cson_list.h a4df85aa9e 2011-01-15 stephan: cson_list.h: 1dafbdeff3 2011-01-28 stephan: BINS_LDFLAGS := 66b7d3137e 2011-04-11 stephan: ifeq (1,$(CPDO_ENABLE_SQLITE3)) c817c4e0a1 2011-04-13 stephan: cson_sqlite3.o test-sq3.o: CPPFLAGS+=-DCSON_ENABLE_SQLITE3=1 1dafbdeff3 2011-01-28 stephan: libcson.LIB.OBJECTS += cson_sqlite3.o 66b7d3137e 2011-04-11 stephan: libcson.DLL.LDFLAGS += $(LDFLAGS_SQLITE3) 1dafbdeff3 2011-01-28 stephan: BINS_LDFLAGS += $(LDFLAGS_SQLITE3) 1dafbdeff3 2011-01-28 stephan: endif 66b7d3137e 2011-04-11 stephan: 66b7d3137e 2011-04-11 stephan: ifeq (1,$(CPDO_ENABLE_MYSQL5)) 66b7d3137e 2011-04-11 stephan: libcson.DLL.LDFLAGS += $(LDFLAGS_MYSQL5) a17739cf15 2011-04-16 stephan: BINS_LDFLAGS += $(LDFLAGS_MYSQL5) a17739cf15 2011-04-16 stephan: endif a17739cf15 2011-04-16 stephan: fc60825290 2011-04-18 stephan: fc60825290 2011-04-18 stephan: ######################################################################## fc60825290 2011-04-18 stephan: # libwhio-based session management... fc60825290 2011-04-18 stephan: CSON_ENABLE_ZLIB ?= 0# zlib is optionally used by whio, but cson doesn't use it fc60825290 2011-04-18 stephan: CSON_ENABLE_WHIO ?= 0# enables/disables the whio_ht-based cson_sessmgr implementation. fc60825290 2011-04-18 stephan: ifeq (1,$(CSON_ENABLE_WHIO)) fc60825290 2011-04-18 stephan: IO_AMAL.C := whio_amalgamation.c fc60825290 2011-04-18 stephan: IO_AMAL.H := include/wh/whio/whio_amalgamation.h fc60825290 2011-04-18 stephan: IO_AMAL.O := whio_amalgamation.o fc60825290 2011-04-18 stephan: cson_session.o: CPPFLAGS+=-DCSON_ENABLE_WHIO=$(CSON_ENABLE_WHIO) fc60825290 2011-04-18 stephan: $(IO_AMAL.O) cson_session_whio_ht.o: CPPFLAGS+=-DWHIO_CONFIG_ENABLE_ZLIB=$(CSON_ENABLE_ZLIB) fc60825290 2011-04-18 stephan: $(IO_AMAL.O): $(IO_AMAL.C) fc60825290 2011-04-18 stephan: $(IO_AMAL.C): $(IO_AMAL.H) e2923e5184 2011-04-20 stephan: libcson.LIB.OBJECTS += cson_session_whio_ht.o $(IO_AMAL.O) 069c91e7f6 2011-04-21 stephan: libcson.LIB.OBJECTS += cson_session_whio_epfs.o fc60825290 2011-04-18 stephan: session/sessions.whio_ht: session/EMPTY.sessions.whio_ht fc60825290 2011-04-18 stephan: cp $^ $@ 069c91e7f6 2011-04-21 stephan: session/sessions.whio_epfs: session/EMPTY.sessions.whio_epfs.gz 069c91e7f6 2011-04-21 stephan: gzip -c -d < $^ > $@ fc60825290 2011-04-18 stephan: cson_session_whio_ht.o: session/sessions.whio_ht 069c91e7f6 2011-04-21 stephan: cson_session_whio_epfs.o: session/sessions.whio_epfs e2923e5184 2011-04-20 stephan: libwhio.LIB.OBJECTS := $(IO_AMAL.O) e2923e5184 2011-04-20 stephan: ifeq (1,$(CSON_ENABLE_ZLIB)) e2923e5184 2011-04-20 stephan: libwhio.LIB.LDFLAGS := -lz e2923e5184 2011-04-20 stephan: endif e2923e5184 2011-04-20 stephan: $(eval $(call ShakeNMake.CALL.RULES.LIBS,libwhio)) e2923e5184 2011-04-20 stephan: cson_session_whio_ht.o: $(libwhio.LIB) 7dcdbb55f6 2011-04-20 stephan: CLEAN_FILES += $(libwhio.LIB) fc60825290 2011-04-18 stephan: endif fc60825290 2011-04-18 stephan: ifeq (1,$(CSON_ENABLE_ZLIB)) fc60825290 2011-04-18 stephan: libcson.DLL.LDFLAGS += -lz fc60825290 2011-04-18 stephan: endif d1af8a8c60 2011-04-20 stephan: .PHONY: whio d1af8a8c60 2011-04-20 stephan: whio: fc60825290 2011-04-18 stephan: $(MAKE) all CSON_ENABLE_WHIO=1 CSON_ENABLE_ZLIB=1 fc60825290 2011-04-18 stephan: # /whio fc60825290 2011-04-18 stephan: ######################################################################## fc60825290 2011-04-18 stephan: fc60825290 2011-04-18 stephan: a4df85aa9e 2011-01-15 stephan: libcson.DLL.OBJECTS := $(libcson.LIB.OBJECTS) a4df85aa9e 2011-01-15 stephan: libcson.DLL: $(libcson.LIB.OBJECTS) a4df85aa9e 2011-01-15 stephan: $(eval $(call ShakeNMake.CALL.RULES.LIBS,libcson)) a4df85aa9e 2011-01-15 stephan: $(eval $(call ShakeNMake.CALL.RULES.DLLS,libcson)) a4df85aa9e 2011-01-15 stephan: 2b6f9b149f 2011-01-17 stephan: test.BIN.OBJECTS := test.o 1dafbdeff3 2011-01-28 stephan: test.BIN.LDFLAGS := $(BINS_LDFLAGS) 3a8104fa92 2011-07-09 stephan: $(eval $(call ShakeNMake.CALL.RULES.BIN,test)) c817c4e0a1 2011-04-13 stephan: test.o: CFLAGS:=$(CFLAGS_C99) 2ce0666163 2011-01-16 stephan: test.o: cson.c cson_list.h # test.c imports these files directly d1fe669e3e 2011-01-15 stephan: 66b7d3137e 2011-04-11 stephan: json-parser.BIN.OBJECTS := json-parser.o $(libcson.LIB) 1dafbdeff3 2011-01-28 stephan: json-parser.BIN.LDFLAGS := $(BINS_LDFLAGS) c817c4e0a1 2011-04-13 stephan: json-parser.o: CFLAGS:=$(CFLAGS_C99) 3a8104fa92 2011-07-09 stephan: $(eval $(call ShakeNMake.CALL.RULES.BIN,json-parser)) a4df85aa9e 2011-01-15 stephan: a4df85aa9e 2011-01-15 stephan: $(test.BIN): $(libcson.LIB) d1fe669e3e 2011-01-15 stephan: $(json-parser.BIN): $(libcson.DLL) 1dafbdeff3 2011-01-28 stephan: all: $(test.BIN) $(json-parser.BIN) $(test-sq3.BIN) 1dafbdeff3 2011-01-28 stephan: 66b7d3137e 2011-04-11 stephan: ######################################################################## 66b7d3137e 2011-04-11 stephan: # cson_cgi... c817c4e0a1 2011-04-13 stephan: ifeq (1,$(CSON_ENABLE_CGI)) 66b7d3137e 2011-04-11 stephan: CGI_DIR := ./cgi 66b7d3137e 2011-04-11 stephan: CSON_CGI.OBJECTS := \ 66b7d3137e 2011-04-11 stephan: $(patsubst %,$(CGI_DIR)/%, \ 8ef770594b 2011-04-15 stephan: cson_cgi.o \ 8ef770594b 2011-04-15 stephan: ) 66b7d3137e 2011-04-11 stephan: 66b7d3137e 2011-04-11 stephan: libcson_cgi.LIB.OBJECTS := $(libcson.LIB.OBJECTS) $(CSON_CGI.OBJECTS) 66b7d3137e 2011-04-11 stephan: CLEAN_FILES += $(CGI_DIR)/*.o 66b7d3137e 2011-04-11 stephan: $(eval $(call ShakeNMake.CALL.RULES.LIBS,libcson_cgi)) 8ef770594b 2011-04-15 stephan: $(libcson_cgi.LIB): $(libcson_cgi.LIB.OBJECTS) 66b7d3137e 2011-04-11 stephan: 66b7d3137e 2011-04-11 stephan: cgi-test.BIN.OBJECTS := cgi-test.o $(libcson_cgi.LIB) 66b7d3137e 2011-04-11 stephan: cgi-test.BIN.LDFLAGS := $(BINS_LDFLAGS) $(LDFLAGS_MYSQL5) $(LDFLAGS_SQLITE3) 66b7d3137e 2011-04-11 stephan: 66b7d3137e 2011-04-11 stephan: cgi-test.o: CFLAGS:=$(CFLAGS_C99) 66b7d3137e 2011-04-11 stephan: $(eval $(call ShakeNMake.EVAL.RULES.BIN,cgi-test)) 66b7d3137e 2011-04-11 stephan: da80a548a4 2011-04-15 stephan: $(CGI_DIR)/cson_cgi.o cson_session.o cson_session_cpdo.o: CPPFLAGS+=-DCSON_ENABLE_CPDO=$(CSON_ENABLE_CPDO) 66b7d3137e 2011-04-11 stephan: 66b7d3137e 2011-04-11 stephan: all: $(libcson_cgi.LIB) 66b7d3137e 2011-04-11 stephan: all: $(cgi-test.BIN) c817c4e0a1 2011-04-13 stephan: endif 66b7d3137e 2011-04-11 stephan: # /cson_cgi 66b7d3137e 2011-04-11 stephan: ######################################################################## 1dafbdeff3 2011-01-28 stephan: 66b7d3137e 2011-04-11 stephan: ifeq (1,$(CPDO_ENABLE_SQLITE3)) 1dafbdeff3 2011-01-28 stephan: test-sq3.BIN.OBJECTS := test-sq3.o $(libcson.LIB) 1dafbdeff3 2011-01-28 stephan: test-sq3.BIN.LDFLAGS := $(BINS_LDFLAGS) 1dafbdeff3 2011-01-28 stephan: $(eval $(call ShakeNMake.EVAL.RULES.BIN,test-sq3)) 1dafbdeff3 2011-01-28 stephan: test-sq3.o: CFLAGS+=-std=c99 1dafbdeff3 2011-01-28 stephan: $(test-sq3.BIN): $(libcson.LIB) 1dafbdeff3 2011-01-28 stephan: all: $(test-sq3.BIN) a17739cf15 2011-04-16 stephan: endif a17739cf15 2011-04-16 stephan: 73710710b5 2011-04-17 stephan: ifeq (1,$(CSON_ENABLE_CPDO)) a17739cf15 2011-04-16 stephan: test-cpdo.BIN.OBJECTS := test-cpdo.o $(libcson.LIB) a17739cf15 2011-04-16 stephan: test-cpdo.BIN.LDFLAGS := $(BINS_LDFLAGS) a17739cf15 2011-04-16 stephan: $(eval $(call ShakeNMake.EVAL.RULES.BIN,test-cpdo)) 73710710b5 2011-04-17 stephan: test-cpdo.o: CPPFLAGS+=-DCSON_ENABLE_CPDO=1 -DCPDO_ENABLE_SQLITE3=$(CPDO_ENABLE_SQLITE3) -DCPDO_ENABLE_MYSQL5=$(CPDO_ENABLE_MYSQL5) e2923e5184 2011-04-20 stephan: test-cpdo.o: CFLAGS:=$(CFLAGS_C99) a17739cf15 2011-04-16 stephan: $(test-cpdo.BIN): $(libcson.LIB) a17739cf15 2011-04-16 stephan: all: $(test-cpdo.BIN) 73710710b5 2011-04-17 stephan: 73710710b5 2011-04-17 stephan: endif 73710710b5 2011-04-17 stephan: 73710710b5 2011-04-17 stephan: ifeq (1,$(CSON_ENABLE_CPDO)) 73710710b5 2011-04-17 stephan: select-to-json.BIN.OBJECTS := select-to-json.o $(libcson.LIB) 73710710b5 2011-04-17 stephan: select-to-json.BIN.LDFLAGS := $(BINS_LDFLAGS) 73710710b5 2011-04-17 stephan: $(eval $(call ShakeNMake.EVAL.RULES.BIN,select-to-json)) 73710710b5 2011-04-17 stephan: select-to-json.o: CPPFLAGS+=-DCSON_ENABLE_CPDO=1 -DCPDO_ENABLE_SQLITE3=$(CPDO_ENABLE_SQLITE3) -DCPDO_ENABLE_MYSQL5=$(CPDO_ENABLE_MYSQL5) 9befef9200 2011-04-17 stephan: # select-to-json.o: CFLAGS+=-std=c99 73710710b5 2011-04-17 stephan: $(select-to-json.BIN): $(libcson.LIB) 73710710b5 2011-04-17 stephan: all: $(select-to-json.BIN) 66b7d3137e 2011-04-11 stephan: endif 66b7d3137e 2011-04-11 stephan: 2b6f9b149f 2011-01-17 stephan: ######################################################################## 66b7d3137e 2011-04-11 stephan: # Create cson_lists.h from the cson_list.h supermacro. We need 66b7d3137e 2011-04-11 stephan: # this for building the amalgamation. baf44f31ab 2011-01-17 stephan: LISTS_H := cson_lists.h baf44f31ab 2011-01-17 stephan: $(LISTS_H): cson_list.h Makefile baf44f31ab 2011-01-17 stephan: @echo "Creating $@..." f292024894 2011-01-17 stephan: @echo "/* Auto-generated from cson_list.h. Edit at your own risk! */" > $@ baf44f31ab 2011-01-17 stephan: @gcc -E -DLIST_T=cson_value_list -DVALUE_T=cson_value\ \* cson_list.h -DVALUE_T_IS_PTR=1 < cson_list.h >> $@ baf44f31ab 2011-01-17 stephan: @gcc -E -DLIST_T=cson_kvp_list -DVALUE_T=cson_kvp\ \* cson_list.h -DVALUE_T_IS_PTR=1 < cson_list.h >> $@ baf44f31ab 2011-01-17 stephan: @sed -e '/^#/d' < $@ > $@.foo && mv $@.foo $@ baf44f31ab 2011-01-17 stephan: test.o: $(LISTS_H) # b/c test.c #includes cson.c directly baf44f31ab 2011-01-17 stephan: cson.o: $(LISTS_H) 20c1e44d2b 2011-03-25 stephan: # CLEAN_FILES += $(LISTS_H) 54251b81b7 2011-01-16 stephan: baf44f31ab 2011-01-17 stephan: ######################################################################## baf44f31ab 2011-01-17 stephan: # Amalgamation build: stuff all required public headers into a single baf44f31ab 2011-01-17 stephan: # megaheader and all required sources (and private headers) into a baf44f31ab 2011-01-17 stephan: # single C file. This requires a good deal of hackery due to how baf44f31ab 2011-01-17 stephan: # cson.c uses cson_list.h to create list implementation code. 66b7d3137e 2011-04-11 stephan: amal: 66b7d3137e 2011-04-11 stephan: bash ./createAmalgamation.sh 66b7d3137e 2011-04-11 stephan: CLEAN_FILES += $(wildcard cson_amalgamation_*.[cho]) 54251b81b7 2011-01-16 stephan: 54251b81b7 2011-01-16 stephan: 54251b81b7 2011-01-16 stephan: ######################################################################## 54251b81b7 2011-01-16 stephan: # create emacs tags... 66b7d3137e 2011-04-11 stephan: bin_etags := $(shell which etags 2>/dev/null) 54251b81b7 2011-01-16 stephan: ifneq (,$(bin_etags)) 54251b81b7 2011-01-16 stephan: tagfile := TAGS 54251b81b7 2011-01-16 stephan: FORCE: 54251b81b7 2011-01-16 stephan: .PHONY: FORCE tags 54251b81b7 2011-01-16 stephan: $(tagfile): FORCE 54251b81b7 2011-01-16 stephan: find . -name '*.[ch]' -print | $(bin_etags) -f $@ - 54251b81b7 2011-01-16 stephan: tags: $(tagfile) 54251b81b7 2011-01-16 stephan: CLEAN_FILES += $(tagfile) cf90f85e63 2011-01-29 stephan: #$(wildcard *.o): $(tagfile) b4dde6ec58 2011-01-17 stephan: #cson.o: $(tagfile) 54251b81b7 2011-01-16 stephan: endif 54251b81b7 2011-01-16 stephan: # ^^^ bin_etags 2b6f9b149f 2011-01-17 stephan: 2b6f9b149f 2011-01-17 stephan: ######################################################################## 2b6f9b149f 2011-01-17 stephan: # run sanity tests... 2b6f9b149f 2011-01-17 stephan: run: $(json-parser.BIN) 2b6f9b149f 2011-01-17 stephan: @echo "Running MUST-PASS tests..." 437bfb9ffa 2011-01-17 stephan: @echo -e "\t./$(test.BIN)"; \ 437bfb9ffa 2011-01-17 stephan: ./$(test.BIN) 1>/dev/null 2>&1 \ 437bfb9ffa 2011-01-17 stephan: || { x=$$?; echo "Basic test app failed with code [$$x]."; exit $$x; } 437bfb9ffa 2011-01-17 stephan: @for i in json/pass-*.json checker/test/pass*.json; do \ 2b6f9b149f 2011-01-17 stephan: echo -e "\t$$i"; \ 2b6f9b149f 2011-01-17 stephan: ./$(json-parser.BIN) -f $$i 1>/dev/null || exit; \ 2b6f9b149f 2011-01-17 stephan: done 2b6f9b149f 2011-01-17 stephan: @echo "Running MUST-FAIL tests..." 437bfb9ffa 2011-01-17 stephan: @for i in json/fail-*.json checker/test/fail*.json; do \ 2b6f9b149f 2011-01-17 stephan: echo -e "\t$$i"; \ 2b6f9b149f 2011-01-17 stephan: ./$(json-parser.BIN) -f $$i 1>/dev/null 2>&1 && exit; \ 2b6f9b149f 2011-01-17 stephan: done; \ 2b6f9b149f 2011-01-17 stephan: true 2b6f9b149f 2011-01-17 stephan: 2b6f9b149f 2011-01-17 stephan: $(filter-out cson_amalgamation.o,$(wildcard *.o)): Makefile config.make common.make