136c53d67SBaptiste DaroussinCC ?= gcc 236c53d67SBaptiste DaroussinDESTDIR ?= /usr/local 336c53d67SBaptiste DaroussinLD ?= gcc 436c53d67SBaptiste DaroussinC_COMMON_FLAGS ?= -fPIC -Wall -W -Wno-unused-parameter -Wno-pointer-sign -I./include -I./uthash -I./src 536c53d67SBaptiste DaroussinMAJOR_VERSION = 0 636c53d67SBaptiste DaroussinMINOR_VERSION = 2 797bd480fSBaptiste DaroussinPATCH_VERSION = 9 836c53d67SBaptiste DaroussinVERSION = "$(MAJOR_VERSION).$(MINOR_VERSION).$(PATCH_VERSION)" 936c53d67SBaptiste DaroussinSONAME = libucl.dll 1036c53d67SBaptiste DaroussinOBJDIR ?= .obj 1136c53d67SBaptiste DaroussinTESTDIR ?= tests 1236c53d67SBaptiste DaroussinSRCDIR ?= src 1336c53d67SBaptiste DaroussinINCLUDEDIR ?= include 1436c53d67SBaptiste DaroussinMKDIR ?= mkdir 1536c53d67SBaptiste DaroussinINSTALL ?= install 1636c53d67SBaptiste DaroussinRM ?= rm 1736c53d67SBaptiste DaroussinRMDIR ?= rmdir 1836c53d67SBaptiste Daroussinifeq (Windows_NT, $(OS)) 1936c53d67SBaptiste DaroussinLN ?= ln 2036c53d67SBaptiste Daroussinelse 2136c53d67SBaptiste DaroussinLN ?= rem ln 2236c53d67SBaptiste Daroussinendif 2336c53d67SBaptiste DaroussinLD_SHARED_FLAGS ?= -Wl,-soname,$(SONAME) -shared -lm 2436c53d67SBaptiste DaroussinLD_UCL_FLAGS ?= -L$(OBJDIR) -Wl,-rpath,$(OBJDIR) -lucl 2536c53d67SBaptiste DaroussinLD_ADD ?= -lrt 2636c53d67SBaptiste DaroussinCOPT_FLAGS ?= -O2 2797bd480fSBaptiste DaroussinHDEPS = $(SRCDIR)/ucl_hash.h \ 2897bd480fSBaptiste Daroussin $(SRCDIR)/ucl_chartable.h \ 2997bd480fSBaptiste Daroussin $(SRCDIR)/ucl_internal.h \ 3097bd480fSBaptiste Daroussin $(INCLUDEDIR)/ucl.h \ 31*273c26a3SBaptiste Daroussin $(SRCDIR)/mum.h 3297bd480fSBaptiste DaroussinOBJECTS = $(OBJDIR)/ucl_hash.o \ 3397bd480fSBaptiste Daroussin $(OBJDIR)/ucl_util.o \ 3497bd480fSBaptiste Daroussin $(OBJDIR)/ucl_parser.o \ 3597bd480fSBaptiste Daroussin $(OBJDIR)/ucl_emitter.o \ 364bf54857SBaptiste Daroussin $(OBJDIR)/ucl_emitter_utils.o \ 37*273c26a3SBaptiste Daroussin $(OBJDIR)/ucl_schema.o 3836c53d67SBaptiste Daroussin 3936c53d67SBaptiste Daroussinall: $(OBJDIR) $(OBJDIR)/$(SONAME) 4036c53d67SBaptiste Daroussin 4136c53d67SBaptiste Daroussin$(OBJDIR)/$(SONAME): $(OBJECTS) 4236c53d67SBaptiste Daroussin $(CC) -o $(OBJDIR)/$(SONAME) $(OBJECTS) $(LD_SHARED_FLAGS) $(LDFLAGS) $(SSL_LIBS) $(FETCH_LIBS) 4336c53d67SBaptiste Daroussin 4436c53d67SBaptiste Daroussin$(OBJDIR): 4536c53d67SBaptiste Daroussin @$(MKDIR) -p $(OBJDIR) 4636c53d67SBaptiste Daroussin 4736c53d67SBaptiste Daroussin# Compile rules 4836c53d67SBaptiste Daroussin$(OBJDIR)/ucl_util.o: $(SRCDIR)/ucl_util.c $(HDEPS) 4936c53d67SBaptiste Daroussin $(CC) -o $(OBJDIR)/ucl_util.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_util.c 5036c53d67SBaptiste Daroussin$(OBJDIR)/ucl_parser.o: $(SRCDIR)/ucl_parser.c $(HDEPS) 5136c53d67SBaptiste Daroussin $(CC) -o $(OBJDIR)/ucl_parser.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_parser.c 5236c53d67SBaptiste Daroussin$(OBJDIR)/ucl_emitter.o: $(SRCDIR)/ucl_emitter.c $(HDEPS) 5336c53d67SBaptiste Daroussin $(CC) -o $(OBJDIR)/ucl_emitter.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_emitter.c 544bf54857SBaptiste Daroussin$(OBJDIR)/ucl_emitter_utils.o: $(SRCDIR)/ucl_emitter_utils.c $(HDEPS) 554bf54857SBaptiste Daroussin $(CC) -o $(OBJDIR)/ucl_emitter_utils.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_emitter_utils.c 5636c53d67SBaptiste Daroussin$(OBJDIR)/ucl_hash.o: $(SRCDIR)/ucl_hash.c $(HDEPS) 5736c53d67SBaptiste Daroussin $(CC) -o $(OBJDIR)/ucl_hash.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_hash.c 5897bd480fSBaptiste Daroussin$(OBJDIR)/ucl_schema.o: $(SRCDIR)/ucl_schema.c $(HDEPS) 5997bd480fSBaptiste Daroussin $(CC) -o $(OBJDIR)/ucl_schema.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_schema.c 6036c53d67SBaptiste Daroussin$(OBJDIR)/xxhash.o: $(SRCDIR)/xxhash.c $(HDEPS) 6136c53d67SBaptiste Daroussin $(CC) -o $(OBJDIR)/xxhash.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/xxhash.c 6236c53d67SBaptiste Daroussin 6336c53d67SBaptiste Daroussinclean: 6436c53d67SBaptiste Daroussin $(RM) $(OBJDIR)/*.o $(OBJDIR)/$(SONAME) $(OBJDIR)/$(SONAME) $(OBJDIR)/chargen $(OBJDIR)/test_basic $(OBJDIR)/test_speed $(OBJDIR)/objdump $(OBJDIR)/test_generate 6536c53d67SBaptiste Daroussin $(RMDIR) $(OBJDIR) 6636c53d67SBaptiste Daroussin 6736c53d67SBaptiste Daroussin# Utils 6836c53d67SBaptiste Daroussin 6936c53d67SBaptiste Daroussinchargen: utils/chargen.c $(OBJDIR)/$(SONAME) 7036c53d67SBaptiste Daroussin $(CC) -o $(OBJDIR)/chargen $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) utils/chargen.c 7136c53d67SBaptiste Daroussinobjdump: utils/objdump.c $(OBJDIR)/$(SONAME) 7236c53d67SBaptiste Daroussin $(CC) -o $(OBJDIR)/objdump $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) utils/objdump.c $(LD_UCL_FLAGS) 7336c53d67SBaptiste Daroussin 7436c53d67SBaptiste Daroussin# Tests 7536c53d67SBaptiste Daroussin 7636c53d67SBaptiste Daroussintest: $(OBJDIR) $(OBJDIR)/$(SONAME) $(OBJDIR)/test_basic $(OBJDIR)/test_speed $(OBJDIR)/test_generate 7736c53d67SBaptiste Daroussin 7836c53d67SBaptiste Daroussinrun-test: test 7936c53d67SBaptiste Daroussin TEST_DIR=$(TESTDIR) $(TESTDIR)/run_tests.sh $(OBJDIR)/test_basic $(OBJDIR)/test_speed $(OBJDIR)/test_generate 8036c53d67SBaptiste Daroussin 8136c53d67SBaptiste Daroussin$(OBJDIR)/test_basic: $(TESTDIR)/test_basic.c $(OBJDIR)/$(SONAME) 8236c53d67SBaptiste Daroussin $(CC) -o $(OBJDIR)/test_basic $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) $(TESTDIR)/test_basic.c $(LD_UCL_FLAGS) 8336c53d67SBaptiste Daroussin$(OBJDIR)/test_speed: $(TESTDIR)/test_speed.c $(OBJDIR)/$(SONAME) 8436c53d67SBaptiste Daroussin $(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) 8536c53d67SBaptiste Daroussin$(OBJDIR)/test_generate: $(TESTDIR)/test_generate.c $(OBJDIR)/$(SONAME) 8636c53d67SBaptiste Daroussin $(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) 8736c53d67SBaptiste Daroussin 8836c53d67SBaptiste Daroussininstall: $(OBJDIR)/$(SONAME) 8936c53d67SBaptiste Daroussin $(INSTALL) -m0755 $(SONAME) $(DESTDIR)/lib/$(SONAME) 9036c53d67SBaptiste Daroussin $(INSTALL) -m0644 include/ucl.h $(DESTDIR)/include/ucl.h 9136c53d67SBaptiste Daroussin 9236c53d67SBaptiste Daroussin.PHONY: clean $(OBJDIR) 93