-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
119 lines (102 loc) · 3.31 KB
/
Copy pathMakefile
File metadata and controls
119 lines (102 loc) · 3.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# Makefile for GNU make
#
# Common Unix flags
EXECUTABLE=netflowgen
CFLAGS=-MMD -D_FILE_OFFSET_BITS=64 -DMT -DLB_MODULE_NAME=\"$(EXECUTABLE)\" -DWITH_NONAMESPACES -DWITH_COOKIES -I../Lblib \
#-I../sbss -I. \
# -I../check_sv_license -I../collect_data -I../settings -I../dbconnection -I../db_tables -I../common -I../server_thread\
# -I../api -I../../xmlapi
# -O0 -g3
#-fomit-frame-pointer
#for NetBeans debug
#-O0 -g3
#LDFLAGS=/usr/lib/libboost_thread-mt.a /usr/lib/gcc/i486-linux-gnu/4.4.3/libstdc++.a -lm -lpthread -lrt
LDFLAGS=/usr/lib/gcc/i486-linux-gnu/4.4.3/libstdc++.a -lm -lpthread -lrt
CC=g++
FOUT=-o
LINK=$(CC) -o $(EXECUTABLE)
STRIP=strip $(EXECUTABLE)
BUILD_DIR=build
DEPS=$(BUILD_DIR)/main.o
VPATH=../../Lblib:../../xmlapi:../api
##### OS detect
OS=$(shell uname)
ifeq ($(OS), Linux)
# Linux stuff
CFLAGS+=-DLINUX
LDFLAGS+=-ldl
MAKE=make
else
ifneq (,$(findstring CYGWIN_NT, $(OS)))
# Windows (Cygwin)
#VPATH+=:../Lblib/win
#CFLAGS=/D"WIN32" /D"MT" /D"_CONSOLE" /D"_USE_32BIT_TIME_T" /D"SNMP_MODULE" /D"LB_MODULE_NAME=\"$(EXECUTABLE)\"" \
# /FD /EHsc /MT /GS /nologo /I"../Lblib" /I"../sbss" /I"." /I"./common" -I"./device_status" -I"./snmp_protocol"\
# /I"c:/OpenSSL/include" /I"c:/Program Files/MySQL/MySQL Server 5.0/include"\
# /I"c:/netsnmp/include" /I"c:/lua/include"
#LDFLAGS=/LIBPATH:"c:/OpenSSL/lib" /LIBPATH:"c:/OpenSSL/lib/VC/static"\
# /LIBPATH:"c:/Program Files/MySQL/MySQL Server 5.0/lib/opt"\
# /LIBPATH:"c:/netsnmp/lib"\
# /LIBPATH:"c:/lua/lib"\
# /NODEFAULTLIB:"libcd.lib" /NODEFAULTLIB:"libcmtd.lib" /SUBSYSTEM:CONSOLE\
# /OPT:REF /MACHINE:X86 /INCREMENTAL:NO /NOLOGO\
# kernel32.lib advapi32.lib user32.lib gdi32.lib\
# Ws2_32.lib libeay32MT.lib ssleay32MT.lib mysqlclient.lib netsnmp.lib lua_lib.lib
#MAKE=make.exe
#CC=cl.exe /TP
#FOUT=/Fo
#LINK=link.exe /OUT:"$(EXECUTABLE).exe"
#DEPS+=win_threads.o getopt.o read_registry.o service_init.o lbsnmpcd.res
#STRIP=
else
$(error Unknown OS)
#endif
endif
endif
##### end of OS detect
# Add debug flags for 'make debug'
ifdef DEBUG
CFLAGS+=-DDEBUG -DNOCHECKLIC -Wall -g -O0
else
CFLAGS+=-O2 -DNDEBUG -w
ifeq (,$(findstring CYGWIN_NT, $(OS)))
#LDFLAGS+=-static
endif
endif
CFLAGS+=$(LBFLAGS)
export CC
export CFLAGS
export BUILD_DIR
export FOUT
release: all
# $(STRIP)
.PHONY: subdirs $(SUBDIRS)
$(SUBDIRS):
$(MAKE) -C $@
build_dir:
mkdir -p $(BUILD_DIR)
all: build_dir $(SUBDIRS) $(DEPS)
$(LINK) $(BUILD_DIR)/*.o $(LDFLAGS)
#.c.o .cpp.o:
# $(CC) $(CFLAGS) -c $< $(FOUT)$(BUILD_DIR)/$@
$(BUILD_DIR)/%.o: %.c
$(CC) $(CFLAGS) -c -MF $(BUILD_DIR)/$*.d $< $(FOUT)$@
@cp $(BUILD_DIR)/$*.d $(BUILD_DIR)/$*.P; \
sed -e 's/#.*//' -e 's/^[^:]*: *//' \
-e 's/ *\\$$//' -e '/^$$/ d' -e 's/$$/ :/' \
< $(BUILD_DIR)/$*.d >> $(BUILD_DIR)/$*.P; \
rm -f $(BUILD_DIR)/$*.d
$(BUILD_DIR)/%.o: %.cpp
$(CC) $(CFLAGS) -c -MF $(BUILD_DIR)/$*.d $< $(FOUT)$@
@cp $(BUILD_DIR)/$*.d $(BUILD_DIR)/$*.P; \
sed -e 's/#.*//' -e 's/^[^:]*: *//' \
-e 's/ *\\$$//' -e '/^$$/ d' -e 's/$$/ :/' \
< $(BUILD_DIR)/$*.d >> $(BUILD_DIR)/$*.P; \
rm -f $(BUILD_DIR)/$*.d
-include $(DEPS:%.o=%.P)
lbsnmpcd.res:
rc.exe /i "c:/Program Files/Microsoft Platform SDK/Include/mfc" /i "C:/Program Files/Microsoft SDKs/Windows/v6.0A/Include" /fo $(BUILD_DIR)/lbsnmpcd.res Lbsnmpcd.rc
debug:
DEBUG=1 $(MAKE) all
clean:
rm -rf $(BUILD_DIR) $(EXECUTABLE) $(EXECUTABLE).exe $(EXECUTABLE).exp $(EXECUTABLE).lib vc*.idb