1include ../common.mak
2
3CFLAGS += -Os -Wall $(EXTRACFLAGS)
4CFLAGS += -I$(SRCBASE) -I$(SRCBASE)/include -I. -I$(TOP)/shared -I$(TOP)/zlib
5CFLAGS += -I$(TOP)/push_log
6CFLAGS += -DASUS_DDNS -DTRANSLATE_ON_FLY -DFLASH_EMULATOR -DLinux -DWSC 
7
8ifeq ($(RTCONFIG_BCM_7114),y)
9CFLAGS += -I$(SRCBASE)/../dhd/components/shared/
10endif
11
12ifeq ($(RTCONFIG_RALINK),y)
13CFLAGS += -DRalink_WPS
14CFLAGS += -I$(TOP)/shared/sysdeps/ralink -I$(TOP)/wireless_tools
15endif
16
17ifeq ($(RTCONFIG_QCA),y)
18CFLAGS += -DQCA_WPS
19CFLAGS += -I$(TOP)/shared/sysdeps/qca -I$(TOP)/wireless_tools
20endif
21
22include $(SRCBASE)/.config
23
24ifeq ($(RTN11P)$(RTN300),y)
25CFLAGS += -DBAND_2G_ONLY
26endif
27
28ifeq ($(RTN14U),y)
29CFLAGS += -DBAND_2G_ONLY
30endif
31
32ifeq ($(RTN14U)$(RTAC52U)$(RTAC51U)$(RTN11P)$(RTN300)$(RTN54U)$(RTAC1200HP)$(RTN56UB1)$(RTN56UB2)$(RTAC54U),y)
33CFLAGS += -DRA_ESW
34endif
35
36ifeq ($(RTCONFIG_USB),y)
37CFLAGS += -I$(TOP)/libdisk	
38endif
39
40ifeq ($(RTCONFIG_DNSMASQ),y)
41CFLAGS += -DDNSMASQ
42endif
43
44ifeq ($(RTCONFIG_BWDPI),y)
45CFLAGS += -I$(TOP)/bwdpi/ -I$(TOP)/sqlite -I$(TOP)/bwdpi_sqlite
46endif
47
48ifeq ($(RTCONFIG_TRAFFIC_LIMITER),y)
49CFLAGS += -I$(TOP)/traffic_limiter
50CFLAGS += -I$(TOP)/sqlite
51endif
52
53OBJS = httpd.o cgi.o ej.o 
54OBJS += web.o common.o nvram_f.o 
55OBJS += aspbw.o initial_web_hook.o
56OBJS += apps.o
57
58ifeq ($(CONFIG_RALINK),y)
59OBJS += web-ralink.o
60else ifeq ($(CONFIG_QCA),y)
61OBJS += web-qca.o
62else
63ifeq ($(RTCONFIG_BCMWL6),y)
64OBJS += web-broadcom-wl6.o
65ifeq ($(RTCONFIG_QTN),y)
66OBJS += find_host_addr.o
67endif
68else
69OBJS += web-broadcom.o
70endif
71endif
72
73ifeq ($(RTCONFIG_DSL),y)
74OBJS += web-dsl.o
75ifeq ($(RTCONFIG_RALINK),y)
76OBJS += web-dsl-upg.o
77endif
78endif
79
80ifeq ($(RTCONFIG_GEOIP),y)
81OBJS += geoiplookup.o
82endif
83
84ifeq ($(RTCONFIG_HTTPS),y)
85OBJS += $(if $(wildcard pwenc.c), pwenc.o, prebuild/pwenc.o)
86endif
87
88OBJS += $(if $(wildcard web_hook.c), web_hook.o, prebuild/web_hook.o)
89
90LIBS = -L$(TOP)/nvram${BCMEX} -lnvram -L$(TOP)/shared -lshared
91# for ceil()
92LIBS += -lm
93
94ifeq ($(RTCONFIG_PUSH_EMAIL),y)
95LIBS += -L$(TOP)/openssl -lcrypto -lssl -ldl
96LIBS += -L$(TOP)/curl-7.21.7/lib/.libs -lcurl
97LIBS += -L$(TOP)/libxml2/.libs -lxml2
98LIBS += -L$(TOP)/wb -lws
99LIBS += -L$(TOP)/push_log -lpush_log
100endif
101
102ifeq ($(RTCONFIG_BCMARM),y)
103CFLAGS += -I$(SRCBASE)/shared/bcmwifi/include -DTYPEDEF_FLOAT_T
104CFLAGS += -I$(SRCBASE)/common/include
105LIBS += -lgcc_s
106ifeq ($(RTCONFIG_QTN),y)
107CFLAGS += -I$(TOP)/libqcsapi_client -I$(TOP)/shared/sysdeps/qtn
108LIBS += -L$(TOP)/libqcsapi_client -lqcsapi_client
109endif
110endif
111
112ifeq ($(RTCONFIG_USB),y)
113LIBS += -L$(TOP)/libdisk -ldisk
114endif
115
116ifeq ($(RTCONFIG_HTTPS),y)
117CFLAGS += -I$(TOP)/mssl
118CFLAGS += -I$(TOP)/openssl/include
119LIBS += -L$(TOP)/mssl -lmssl
120LIBS += -L$(TOP)/openssl -lssl -lcrypto -ldl
121endif
122
123ifeq ($(RTCONFIG_OPENVPN),y)
124OBJS += openvpn_options.o
125LIBS += -L$(TOP)/openssl -lssl -lcrypto -ldl
126endif
127
128CFLAGS += -I$(TOP)/json-c
129LIBS += -L$(TOP)/json-c/.libs -ljson-c
130
131ifeq ($(RTCONFIG_BWDPI),y)
132LIBS += -L$(TOP)/bwdpi -lbwdpi
133LIBS += -L$(TOP)/bwdpi_sqlite -lbwdpi_sql
134LIBS += -L$(TOP)/sqlite/.libs -lsqlite3
135LIBS += -lpthread
136endif
137
138ifeq ($(RTCONFIG_TRAFFIC_LIMITER),y)
139LIBS += -L$(TOP)/traffic_limiter -ltraffic_limiter
140LIBS += -L$(TOP)/sqlite/.libs -lsqlite3
141endif
142
143ifeq ($(RTCONFIG_GEOIP),y)
144CFLAGS += -I$(TOP)/GeoIP-1.6.2/libGeoIP
145LIBS += -L$(TOP)/GeoIP-1.6.2/libGeoIP/.libs -lGeoIP
146endif
147
148ifeq ($(RTCONFIG_QCA),y)
149LIBS += -lpthread -ldl
150endif
151
152export CFLAGS
153ifeq ($(RTCONFIG_QTN),y)
154vpath %.c sysdeps $(TOP)/libqcsapi_client/qcsapi_rpc_common/client $(TOP)/shared/sysdeps/qtn
155else
156vpath %.c sysdeps
157endif
158
159ifeq ($(RTCONFIG_NOTIFICATION_CENTER),y)
160CFLAGS  += -I$(TOP)/sqlite
161CFLAGS  += -I$(TOP)/nt_center/lib
162CFLAGS  += -DASUSWRT_SDK
163LIBS += -L$(TOP)/nt_center/lib/ -lnt
164LIBS += -L$(TOP)/sqlite/.libs -lsqlite3
165LIBS += -lpthread #Depend on sqlite
166endif
167
168all: httpd #test_apps
169
170#test_apps: apps.c
171#	$(CC) -DAPPS $(CFLAGS) $(LIBS) $^ -o $@
172
173httpd: $(OBJS)
174	@echo " [httpd] CC $@"
175	$(CC) -o $@ $(OBJS) $(LIBS)
176
177	$(SIZECHECK)
178	$(CPTMP)
179
180
181install: all
182	@echo " [httpd] Installing to $(INSTALLDIR)"
183	@install -D httpd $(INSTALLDIR)/usr/sbin/httpd
184	@$(STRIP) $(INSTALLDIR)/usr/sbin/httpd
185	@cd $(INSTALLDIR)/usr/sbin/; ln -sf httpd httpds
186	@chmod 0500 $(INSTALLDIR)/usr/sbin/httpd
187	#@install -m 0755 test_apps $(INSTALLDIR)/usr/sbin
188	#@$(STRIP) $(INSTALLDIR)/usr/sbin/test_apps
189
190clean:
191	rm -f httpd *.o .*.depend test_apps
192
193size: httpd
194	mipsel-uclibc-nm --print-size --size-sort httpd
195
196# handle prebuilt object here
197ifneq ($(wildcard, ./prebuild),)
198ifeq ($(RTCONFIG_HTTPS),y)
199pwenc.o:
200	@-cp -f ./prebuild/pwenc.o .
201endif
202web_hook.o:
203	@-cp -f ./prebuild/web_hook.o .
204endif
205
206%.o: %.c .%.depend
207	@echo " [httpd] CC $@"
208	@$(CC) $(CFLAGS) -o $@ -c $<
209
210.%.depend: %.c
211	@$(CC) $(CFLAGS) -M $< > $@
212
213-include $(OBJS:%.o=.%.depend)
214