1262973SbaptCC ?= gcc 2262973SbaptDESTDIR ?= /usr/local 3262973SbaptLD ?= gcc 4262973SbaptC_COMMON_FLAGS ?= -fPIC -Wall -W -Wno-unused-parameter -Wno-pointer-sign -I./include -I./uthash -I./src 5262973SbaptMAJOR_VERSION = 0 6262973SbaptMINOR_VERSION = 2 7263648SbaptPATCH_VERSION = 9 8262973SbaptVERSION = "$(MAJOR_VERSION).$(MINOR_VERSION).$(PATCH_VERSION)" 9262973SbaptSONAME = libucl.dll 10262973SbaptOBJDIR ?= .obj 11262973SbaptTESTDIR ?= tests 12262973SbaptSRCDIR ?= src 13262973SbaptINCLUDEDIR ?= include 14262973SbaptMKDIR ?= mkdir 15262973SbaptINSTALL ?= install 16262973SbaptRM ?= rm 17262973SbaptRMDIR ?= rmdir 18262973Sbaptifeq (Windows_NT, $(OS)) 19262973SbaptLN ?= ln 20262973Sbaptelse 21262973SbaptLN ?= rem ln 22262973Sbaptendif 23262973SbaptLD_SHARED_FLAGS ?= -Wl,-soname,$(SONAME) -shared -lm 24262973SbaptLD_UCL_FLAGS ?= -L$(OBJDIR) -Wl,-rpath,$(OBJDIR) -lucl 25262973SbaptLD_ADD ?= -lrt 26262973SbaptCOPT_FLAGS ?= -O2 27263648SbaptHDEPS = $(SRCDIR)/ucl_hash.h \ 28263648Sbapt $(SRCDIR)/ucl_chartable.h \ 29263648Sbapt $(SRCDIR)/ucl_internal.h \ 30263648Sbapt $(INCLUDEDIR)/ucl.h \ 31307790Sbapt $(SRCDIR)/mum.h 32263648SbaptOBJECTS = $(OBJDIR)/ucl_hash.o \ 33263648Sbapt $(OBJDIR)/ucl_util.o \ 34263648Sbapt $(OBJDIR)/ucl_parser.o \ 35263648Sbapt $(OBJDIR)/ucl_emitter.o \ 36275223Sbapt $(OBJDIR)/ucl_emitter_utils.o \ 37307790Sbapt $(OBJDIR)/ucl_schema.o 38262973Sbapt 39262973Sbaptall: $(OBJDIR) $(OBJDIR)/$(SONAME) 40262973Sbapt 41262973Sbapt$(OBJDIR)/$(SONAME): $(OBJECTS) 42262973Sbapt $(CC) -o $(OBJDIR)/$(SONAME) $(OBJECTS) $(LD_SHARED_FLAGS) $(LDFLAGS) $(SSL_LIBS) $(FETCH_LIBS) 43262973Sbapt 44262973Sbapt$(OBJDIR): 45262973Sbapt @$(MKDIR) -p $(OBJDIR) 46262973Sbapt 47262973Sbapt# Compile rules 48262973Sbapt$(OBJDIR)/ucl_util.o: $(SRCDIR)/ucl_util.c $(HDEPS) 49262973Sbapt $(CC) -o $(OBJDIR)/ucl_util.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_util.c 50262973Sbapt$(OBJDIR)/ucl_parser.o: $(SRCDIR)/ucl_parser.c $(HDEPS) 51262973Sbapt $(CC) -o $(OBJDIR)/ucl_parser.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_parser.c 52262973Sbapt$(OBJDIR)/ucl_emitter.o: $(SRCDIR)/ucl_emitter.c $(HDEPS) 53262973Sbapt $(CC) -o $(OBJDIR)/ucl_emitter.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_emitter.c 54275223Sbapt$(OBJDIR)/ucl_emitter_utils.o: $(SRCDIR)/ucl_emitter_utils.c $(HDEPS) 55275223Sbapt $(CC) -o $(OBJDIR)/ucl_emitter_utils.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_emitter_utils.c 56262973Sbapt$(OBJDIR)/ucl_hash.o: $(SRCDIR)/ucl_hash.c $(HDEPS) 57262973Sbapt $(CC) -o $(OBJDIR)/ucl_hash.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_hash.c 58263648Sbapt$(OBJDIR)/ucl_schema.o: $(SRCDIR)/ucl_schema.c $(HDEPS) 59263648Sbapt $(CC) -o $(OBJDIR)/ucl_schema.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_schema.c 60262973Sbapt$(OBJDIR)/xxhash.o: $(SRCDIR)/xxhash.c $(HDEPS) 61262973Sbapt $(CC) -o $(OBJDIR)/xxhash.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/xxhash.c 62262973Sbapt 63262973Sbaptclean: 64262973Sbapt $(RM) $(OBJDIR)/*.o $(OBJDIR)/$(SONAME) $(OBJDIR)/$(SONAME) $(OBJDIR)/chargen $(OBJDIR)/test_basic $(OBJDIR)/test_speed $(OBJDIR)/objdump $(OBJDIR)/test_generate 65262973Sbapt $(RMDIR) $(OBJDIR) 66275223Sbapt 67262973Sbapt# Utils 68262973Sbapt 69262973Sbaptchargen: utils/chargen.c $(OBJDIR)/$(SONAME) 70262973Sbapt $(CC) -o $(OBJDIR)/chargen $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) utils/chargen.c 71262973Sbaptobjdump: utils/objdump.c $(OBJDIR)/$(SONAME) 72262973Sbapt $(CC) -o $(OBJDIR)/objdump $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) utils/objdump.c $(LD_UCL_FLAGS) 73262973Sbapt 74262973Sbapt# Tests 75262973Sbapt 76262973Sbapttest: $(OBJDIR) $(OBJDIR)/$(SONAME) $(OBJDIR)/test_basic $(OBJDIR)/test_speed $(OBJDIR)/test_generate 77262973Sbapt 78262973Sbaptrun-test: test 79262973Sbapt TEST_DIR=$(TESTDIR) $(TESTDIR)/run_tests.sh $(OBJDIR)/test_basic $(OBJDIR)/test_speed $(OBJDIR)/test_generate 80275223Sbapt 81262973Sbapt$(OBJDIR)/test_basic: $(TESTDIR)/test_basic.c $(OBJDIR)/$(SONAME) 82262973Sbapt $(CC) -o $(OBJDIR)/test_basic $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) $(TESTDIR)/test_basic.c $(LD_UCL_FLAGS) 83262973Sbapt$(OBJDIR)/test_speed: $(TESTDIR)/test_speed.c $(OBJDIR)/$(SONAME) 84262973Sbapt $(CC) -o $(OBJDIR)/test_speed $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) $(TESTDIR)/test_speed.c $(LD_UCL_FLAGS) $(LD_ADD) 85262973Sbapt$(OBJDIR)/test_generate: $(TESTDIR)/test_generate.c $(OBJDIR)/$(SONAME) 86262973Sbapt $(CC) -o $(OBJDIR)/test_generate $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) $(TESTDIR)/test_generate.c $(LD_UCL_FLAGS) $(LD_ADD) 87262973Sbapt 88262973Sbaptinstall: $(OBJDIR)/$(SONAME) 89262973Sbapt $(INSTALL) -m0755 $(SONAME) $(DESTDIR)/lib/$(SONAME) 90262973Sbapt $(INSTALL) -m0644 include/ucl.h $(DESTDIR)/include/ucl.h 91262973Sbapt 92262973Sbapt.PHONY: clean $(OBJDIR) 93