1# This Makefile.am is in the public domain
2AM_CPPFLAGS = \
3  -I$(top_srcdir)/src/include \
4  -I$(top_srcdir)/src/microhttpd
5
6AM_CFLAGS = $(HIDDEN_VISIBILITY_CFLAGS)
7
8if HAVE_W32
9MHD_W32_LIB = $(top_builddir)/src/platform/libplatform_interface.la
10endif
11
12lib_LTLIBRARIES = \
13  libmicrohttpd.la
14
15noinst_DATA =
16MOSTLYCLEANFILES =
17
18if W32_SHARED_LIB_EXP
19W32_MHD_LIB_LDFLAGS = -Wl,--output-def,$(lt_cv_objdir)/libmicrohttpd.def -XCClinker -static-libgcc
20noinst_DATA += $(lt_cv_objdir)/libmicrohttpd.lib $(lt_cv_objdir)/libmicrohttpd.def $(lt_cv_objdir)/libmicrohttpd.exp
21MOSTLYCLEANFILES += $(lt_cv_objdir)/libmicrohttpd.lib $(lt_cv_objdir)/libmicrohttpd.def $(lt_cv_objdir)/libmicrohttpd.exp
22
23$(lt_cv_objdir)/libmicrohttpd.def: libmicrohttpd.la
24
25$(lt_cv_objdir)/libmicrohttpd.exp: $(lt_cv_objdir)/libmicrohttpd.lib
26
27$(lt_cv_objdir)/libmicrohttpd.lib: $(lt_cv_objdir)/libmicrohttpd.def libmicrohttpd.la $(libmicrohttpd_la_OBJECTS)
28if USE_MS_LIB_TOOL
29	@echo Creating $@ and libmicrohttpd.exp by $(MS_LIB_TOOL)... && \
30	dll_name=`$(EGREP) -o dlname=\'.+\' libmicrohttpd.la` && \
31	dll_name=$${dll_name#*\'} && dll_name=$${dll_name%\'} && test -n "$$dll_name" && \
32	echo Creating $$dll_name by $(MS_LIB_TOOL).. && cd "$(lt_cv_objdir)" && \
33	$(MS_LIB_TOOL) -def:libmicrohttpd.def -name:$$dll_name -out:libmicrohttpd.lib $(libmicrohttpd_la_OBJECTS:.lo=.o) && cd ..
34else
35	@echo Creating $@ and libmicrohttpd.exp by $(DLLTOOL)... && \
36	dll_name=`$(EGREP) -o dlname=\'.+\' libmicrohttpd.la` && \
37	dll_name=$${dll_name#*\'} && dll_name=$${dll_name%\'} && test -n "$$dll_name" && \
38	echo Creating $$dll_name by $(DLLTOOL).. && cd "$(lt_cv_objdir)" && \
39	$(DLLTOOL) -d ./libmicrohttpd.def -D $$dll_name -l libmicrohttpd.lib $(libmicrohttpd_la_OBJECTS:.lo=.o) -e ./libmicrohttpd.exp && cd .. &&\
40	echo Created libmicrohttpd.exp and libmicrohttpd.lib.
41endif
42else
43  W32_MHD_LIB_LDFLAGS =
44endif
45
46if W32_STATIC_LIB
47noinst_DATA += $(lt_cv_objdir)/libmicrohttpd-static.lib
48MOSTLYCLEANFILES += $(lt_cv_objdir)/libmicrohttpd-static.lib
49
50$(lt_cv_objdir)/libmicrohttpd-static.lib: libmicrohttpd.la $(libmicrohttpd_la_OBJECTS)
51if USE_MS_LIB_TOOL
52	$(MS_LIB_TOOL) -out:$@ $(libmicrohttpd_la_OBJECTS:.lo=.o)
53else
54	cp $(lt_cv_objdir)/libmicrohttpd.a $@
55endif
56endif
57
58
59libmicrohttpd_la_SOURCES = \
60  connection.c connection.h \
61  reason_phrase.c reason_phrase.h \
62  daemon.c  \
63  internal.c internal.h \
64  memorypool.c memorypool.h \
65  response.c response.h
66libmicrohttpd_la_CPPFLAGS = \
67  $(AM_CPPFLAGS) $(MHD_LIB_CPPFLAGS) \
68  -DBUILDING_MHD_LIB=1
69libmicrohttpd_la_CFLAGS = \
70  $(AM_CFLAGS) $(MHD_LIB_CFLAGS)
71libmicrohttpd_la_LDFLAGS = \
72  $(MHD_LIB_LDFLAGS) \
73  $(W32_MHD_LIB_LDFLAGS) \
74  -version-info @LIB_VERSION_CURRENT@:@LIB_VERSION_REVISION@:@LIB_VERSION_AGE@
75libmicrohttpd_la_LIBADD = \
76  $(MHD_W32_LIB) $(MHD_LIBDEPS)
77libmicrohttpd_la_DEPENDENCIES = \
78  $(MHD_W32_LIB)
79
80if HAVE_W32
81MHD_DLL_RES_SRC = microhttpd_dll_res.rc
82MHD_DLL_RES_LO = libmicrohttpd_la-$(MHD_DLL_RES_SRC:.rc=.lo)
83
84EXTRA_libmicrohttpd_la_DEPENDENCIES = $(MHD_DLL_RES_LO)
85libmicrohttpd_la_LIBADD += $(MHD_DLL_RES_LO)
86
87# General rule is not required, but keep it just in case
88.rc.lo:
89	$(LIBTOOL) $(AM_V_lt) --tag=RC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(RC) $(RCFLAGS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $< -o $@
90
91# To add dll resource only to .dll file and exclude it form static
92# lib, a little trick was used. Allow libtool to create file.lo,
93# file.o and .libs/file.lo, .libs/file.o files, then overwrite file.o
94# by empty object generated from empty c-file. Later libtool will
95# use .libs/file.o for shared lib and empty file.o for static lib.
96# This implementation is based on trick found in liblzma.
97# Note: windres does not understand '-isystem' flag, so all
98# possible '-isystem' flags are replaced by simple '-I' flags.
99$(MHD_DLL_RES_LO): $(MHD_DLL_RES_SRC)
100	RC_CPP_FLAGS=" $(DEFAULT_INCLUDES) $(INCLUDES) $(libmicrohttpd_la_CPPFLAGS) $(CPPFLAGS) " && \
101	$(LIBTOOL) $(AM_V_lt) --tag=RC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(RC) $(RCFLAGS) $(DEFS) $${RC_CPP_FLAGS// -isystem / -I } $< -o $@ && \
102	echo > $@-empty.c && $(CC) $(AM_CFLAGS) $(CFLAGS) -c $@-empty.c -o $(@:.lo=.o) && rm -f $@-empty.c
103endif
104
105if USE_COVERAGE
106  AM_CFLAGS += --coverage
107endif
108
109if !HAVE_TSEARCH
110libmicrohttpd_la_SOURCES += \
111  tsearch.c tsearch.h
112endif
113
114if HAVE_POSTPROCESSOR
115libmicrohttpd_la_SOURCES += \
116  postprocessor.c
117endif
118
119if ENABLE_DAUTH
120libmicrohttpd_la_SOURCES += \
121  digestauth.c \
122  md5.c md5.h
123endif
124
125if ENABLE_BAUTH
126libmicrohttpd_la_SOURCES += \
127  basicauth.c \
128  base64.c base64.h
129endif
130
131if ENABLE_HTTPS
132libmicrohttpd_la_SOURCES += \
133  connection_https.c connection_https.h
134endif
135
136
137
138check_PROGRAMS = \
139  test_daemon
140
141if HAVE_POSTPROCESSOR
142check_PROGRAMS += \
143  test_postprocessor \
144  test_postprocessor_large \
145  test_postprocessor_amp
146endif
147
148TESTS = $(check_PROGRAMS)
149
150test_daemon_SOURCES = \
151  test_daemon.c
152test_daemon_LDADD = \
153  $(top_builddir)/src/microhttpd/libmicrohttpd.la
154
155test_postprocessor_SOURCES = \
156  test_postprocessor.c
157test_postprocessor_CPPFLAGS = \
158  $(AM_CPPFLAGS) $(GNUTLS_CPPFLAGS)
159test_postprocessor_LDADD = \
160  $(top_builddir)/src/microhttpd/libmicrohttpd.la \
161  $(MHD_W32_LIB)
162
163test_postprocessor_amp_SOURCES = \
164  test_postprocessor_amp.c
165test_postprocessor_amp_CPPFLAGS = \
166  $(AM_CPPFLAGS) $(GNUTLS_CPPFLAGS)
167test_postprocessor_amp_LDADD = \
168  $(top_builddir)/src/microhttpd/libmicrohttpd.la
169
170test_postprocessor_large_SOURCES = \
171  test_postprocessor_large.c
172test_postprocessor_large_CPPFLAGS = \
173  $(AM_CPPFLAGS) $(GNUTLS_CPPFLAGS)
174test_postprocessor_large_LDADD = \
175  $(top_builddir)/src/microhttpd/libmicrohttpd.la \
176  $(MHD_W32_LIB)
177