]> git.stg.codes - stg.git/blob - projects/sgconf/Makefile
e2fb8c1bf9b8857cc06902108541154c70589476
[stg.git] / projects / sgconf / Makefile
1 ###############################################################################
2 # $Id: Makefile,v 1.21 2010/02/11 12:34:14 faust Exp $
3 ###############################################################################
4
5 include ../../Makefile.conf
6
7 PROG = sgconf
8
9 SRCS = ./main.cpp \
10        ./options.cpp \
11        ./actions.cpp \
12        ./admins.cpp \
13        ./tariffs.cpp \
14        ./users.cpp \
15        ./xml.cpp
16
17 STGLIBS = conffiles \
18           srvconf \
19           crypto \
20           common
21
22 STGLIBS_INCS = $(addprefix -I ../../stglibs/,$(addsuffix .lib/include,$(STGLIBS)))
23 STGLIBS_LIBS = $(addprefix -L ../../stglibs/,$(addsuffix .lib,$(STGLIBS)))
24
25 LIBS += $(addprefix -lstg,$(STGLIBS)) -lexpat $(LIB_THREAD)
26
27 ifeq ($(OS),linux)
28 else
29 LIBS += -lc \
30         -liconv
31 endif
32
33 SEARCH_DIRS = -I ../../include
34
35 ifeq ($(OS),bsd)
36 SEARCH_DIRS += -I/usr/local/include
37 CXXFLAGS += -DHAVE_DECL_GETOPT=1
38 endif
39
40 ifeq ($(OS),bsd5)
41 SEARCH_DIRS += -I/usr/local/include
42 CXXFLAGS += -DHAVE_DECL_GETOPT=1
43 endif
44
45 OBJS = $(notdir $(patsubst %.cpp, %.o, $(patsubst %.c, %.o, $(SRCS))))
46
47 CXXFLAGS += $(DEFS) $(STGLIBS_INCS) $(SEARCH_DIRS)
48 CFLAGS += $(DEFS) $(STGLIBS_INCS) $(SEARCH_DIRS)
49 LDFLAGS += $(STGLIBS_LIBS)
50
51 ifneq ($(OS),darwin)
52 LDFLAGS += -Wl,-E
53 endif
54
55 .PHONY: all clean distclean libs install uninstall install-bin install-data uninstall-bin uninstall-data
56 all: libs $(PROG) ../../Makefile.conf
57
58 libs:
59         $(MAKE) -C $(DIR_LIBSRC)
60
61 $(PROG): $(OBJS)
62         $(CXX) $^ $(LDFLAGS) $(LIBS) -o $(PROG)
63
64 clean:
65         rm -f deps $(PROG) *.o tags *.*~ .OS
66         rm -f .OS
67         rm -f .store
68         rm -f .db.sql
69         rm -f core*
70         $(MAKE) -C $(DIR_LIBSRC) clean
71
72 distclean: clean
73         rm -f ../../Makefile.conf
74
75 install: install-bin
76
77 install-bin:
78 ifeq ($(DEBUG), yes)
79         install -D -m $(BIN_MODE) -o $(OWNER) $(PROG) $(PREFIX)/usr/bin/$(PROG)
80 else
81         install -D -m $(BIN_MODE) -o $(OWNER) -s $(PROG) $(PREFIX)/usr/bin/$(PROG)
82 endif
83         $(MAKE) -C $(DIR_LIBSRC) install
84
85 uninstall: uninstall-bin
86
87 uninstall-bin:
88         rm -f $(PREFIX)/usr/sbin/$(PROG)
89
90
91 ifneq ($(MAKECMDGOALS),distclean)
92 ifneq ($(MAKECMDGOALS),clean)
93 ifneq ($(MAKECMDGOALS),uninstall)
94 -include deps
95 endif
96 endif
97 endif
98
99 deps: $(SRCS) ../../Makefile.conf
100         $(MAKE) -C $(DIR_LIBSRC)
101         @>deps ;\
102         for file in $(SRCS); do\
103           echo "$$file" | grep ".c$$" > /dev/null;\
104           if [ $$? -eq 0 ];\
105           then\
106             echo "`$(CC) $(CFLAGS) -MM $$file` Makefile" >> deps ;\
107             printf '%b\n' '\t$$(CC) $(CFLAGS) -c $$<' >> deps ;\
108           else\
109             echo "`$(CXX) $(CXXFLAGS) -MM $$file` Makefile" >> deps ;\
110             printf '%b\n' '\t$$(CXX) $(CXXFLAGS) -c $$<' >> deps ;\
111           fi;\
112         done