]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - contrib/libucl/Makefile.w32
MFC r368207,368607:
[FreeBSD/stable/10.git] / contrib / libucl / Makefile.w32
1 CC ?= gcc
2 DESTDIR ?= /usr/local
3 LD ?= gcc
4 C_COMMON_FLAGS ?= -fPIC -Wall -W -Wno-unused-parameter -Wno-pointer-sign -I./include -I./uthash -I./src
5 MAJOR_VERSION = 0
6 MINOR_VERSION = 2
7 PATCH_VERSION = 9
8 VERSION = "$(MAJOR_VERSION).$(MINOR_VERSION).$(PATCH_VERSION)"
9 SONAME = libucl.dll
10 OBJDIR ?= .obj
11 TESTDIR ?= tests
12 SRCDIR ?= src
13 INCLUDEDIR ?= include
14 MKDIR ?= mkdir
15 INSTALL ?= install
16 RM ?= rm
17 RMDIR ?= rmdir
18 ifeq (Windows_NT, $(OS))
19 LN ?= ln
20 else
21 LN ?= rem ln
22 endif
23 LD_SHARED_FLAGS ?= -Wl,-soname,$(SONAME) -shared -lm
24 LD_UCL_FLAGS ?= -L$(OBJDIR) -Wl,-rpath,$(OBJDIR) -lucl
25 LD_ADD ?= -lrt
26 COPT_FLAGS ?= -O2
27 HDEPS = $(SRCDIR)/ucl_hash.h \
28                 $(SRCDIR)/ucl_chartable.h \
29                 $(SRCDIR)/ucl_internal.h \
30                 $(INCLUDEDIR)/ucl.h \
31                 $(SRCDIR)/xxhash.h
32 OBJECTS = $(OBJDIR)/ucl_hash.o \
33                 $(OBJDIR)/ucl_util.o \
34                 $(OBJDIR)/ucl_parser.o \
35                 $(OBJDIR)/ucl_emitter.o \
36                 $(OBJDIR)/ucl_schema.o \
37                 $(OBJDIR)/xxhash.o
38
39 all: $(OBJDIR) $(OBJDIR)/$(SONAME)
40
41 $(OBJDIR)/$(SONAME): $(OBJECTS)
42         $(CC) -o $(OBJDIR)/$(SONAME) $(OBJECTS) $(LD_SHARED_FLAGS) $(LDFLAGS) $(SSL_LIBS) $(FETCH_LIBS)
43
44 $(OBJDIR):
45         @$(MKDIR) -p $(OBJDIR)
46
47 # Compile rules
48 $(OBJDIR)/ucl_util.o: $(SRCDIR)/ucl_util.c $(HDEPS)
49         $(CC) -o $(OBJDIR)/ucl_util.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_util.c
50 $(OBJDIR)/ucl_parser.o: $(SRCDIR)/ucl_parser.c $(HDEPS)
51         $(CC) -o $(OBJDIR)/ucl_parser.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_parser.c
52 $(OBJDIR)/ucl_emitter.o: $(SRCDIR)/ucl_emitter.c $(HDEPS)
53         $(CC) -o $(OBJDIR)/ucl_emitter.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_emitter.c
54 $(OBJDIR)/ucl_hash.o: $(SRCDIR)/ucl_hash.c $(HDEPS)
55         $(CC) -o $(OBJDIR)/ucl_hash.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_hash.c
56 $(OBJDIR)/ucl_schema.o: $(SRCDIR)/ucl_schema.c $(HDEPS)
57         $(CC) -o $(OBJDIR)/ucl_schema.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_schema.c
58 $(OBJDIR)/xxhash.o: $(SRCDIR)/xxhash.c $(HDEPS)
59         $(CC) -o $(OBJDIR)/xxhash.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/xxhash.c
60
61 clean:
62         $(RM) $(OBJDIR)/*.o $(OBJDIR)/$(SONAME) $(OBJDIR)/$(SONAME) $(OBJDIR)/chargen $(OBJDIR)/test_basic $(OBJDIR)/test_speed $(OBJDIR)/objdump $(OBJDIR)/test_generate
63         $(RMDIR) $(OBJDIR)
64         
65 # Utils
66
67 chargen: utils/chargen.c $(OBJDIR)/$(SONAME)
68         $(CC) -o $(OBJDIR)/chargen $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) utils/chargen.c
69 objdump: utils/objdump.c $(OBJDIR)/$(SONAME)
70         $(CC) -o $(OBJDIR)/objdump $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) utils/objdump.c $(LD_UCL_FLAGS)
71
72 # Tests
73
74 test: $(OBJDIR) $(OBJDIR)/$(SONAME) $(OBJDIR)/test_basic $(OBJDIR)/test_speed $(OBJDIR)/test_generate
75
76 run-test: test
77         TEST_DIR=$(TESTDIR) $(TESTDIR)/run_tests.sh $(OBJDIR)/test_basic $(OBJDIR)/test_speed $(OBJDIR)/test_generate
78         
79 $(OBJDIR)/test_basic: $(TESTDIR)/test_basic.c $(OBJDIR)/$(SONAME)
80         $(CC) -o $(OBJDIR)/test_basic $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) $(TESTDIR)/test_basic.c $(LD_UCL_FLAGS)
81 $(OBJDIR)/test_speed: $(TESTDIR)/test_speed.c $(OBJDIR)/$(SONAME)
82         $(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)
83 $(OBJDIR)/test_generate: $(TESTDIR)/test_generate.c $(OBJDIR)/$(SONAME)
84         $(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)
85
86 install: $(OBJDIR)/$(SONAME)
87         $(INSTALL) -m0755 $(SONAME) $(DESTDIR)/lib/$(SONAME)
88         $(INSTALL) -m0644 include/ucl.h $(DESTDIR)/include/ucl.h
89
90 .PHONY: clean $(OBJDIR)