summaryrefslogtreecommitdiff
path: root/src/netcgi2-apache/Makefile
blob: 4e260b8b4659bdbb17a125721ac30efe37561ddf (plain)
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
TOP_DIR=../..

include $(TOP_DIR)/Makefile.conf

PKGNAME = netcgi2-apache
# Keep the name in sync with the one on handler.c :
BUILD_EXTRA = mod_netcgi_apache.so

INCLUDES += $(INC_NETSTRING) $(INC_NETSYS) $(INC_NETCGI2)
REQUIRES += findlib

OBJECTS = netcgi_apache.cmo netcgi_modtpl.cmo
DOBJECTS = netcgi_apache.mli netcgi_modtpl.mli

ALL_EXTRA = mod_netcgi_apache.so
INSTALL_EXTRA = mod_netcgi_apache.so 500netcgi_apache.info

OCAMLC_OPTIONS += $(STRING_OPTS)
OCAMLOPT_OPTIONS += $(STRING_OPTS)

PP_OPTIONS = -pp "$(CPPO) $(PP_BYTES) $(PP_DEPRECATED)"

DOC_IGNORABLE = true

include $(TOP_DIR)/Makefile.rules

ifeq ($(APACHE_MAJOR),2)
APACHE_LDFLAGS_SHLIB += -lapr-1 -laprutil-1
endif

# mod_netcgi_apache.so: apache.lo handler.lo wrappers.lo netcgi_apache_mod.cmo
# 	$(OCAMLC) -verbose -custom -linkall -o $@ \
# 	  -cc "$(APXS) -c $(filter %.lo,$^)" \
# 	  dynlink.cma unix.cma $(filter-out %.lo,$^) \
# 	  -cclib '$(APACHE_CFLAGS) $(APACHE_LDFLAGS_SHLIB) $(APACHE_OCAMLLIBS)'
# $(patsubst %.o,.libs/%.o,$^) \

# %.o: %.c
# 	$(APACHE_CC) $(APACHE_CFLAGS) -I $(APACHE_OCAMLLIBDIR) -c $<

# -Wl,-bI:$(APACHE_LIBDIR)/httpd.exp
# mod_netcgi_apache.so: netcgi_apache_mod.cmo apache.o handler.o wrappers.o
# 	$(OCAMLC) -o $@ -verbose -linkall -custom \
# 	  -ccopt -Wl,--warn-unresolved-symbols \
# 	  dynlink.cma unix.cma $(patsubst %.o, ./.libs/%.o, $^) \
# 	  -cclib "$(APACHE_CFLAGS) $(APACHE_LDFLAGS_SHLIB) $(APACHE_OCAMLLIBS)"

MOD_OBJECTS := wrappers.o handler.o apache.o netcgi_apache_mod.o

# must be after the `include' for APACHE_MAJOR to be defined
ifeq ($(APACHE_MAJOR),2)
MOD_OBJECTS := $(patsubst %.o,%.lo,$(MOD_OBJECTS))
else
MOD_OBJECTS := $(MOD_OBJECTS)
endif

### Embed Caml code into the C code.
### Requires `caml_startup' instead of `caml_main' in handler.c
### Only works with OCaml >= 3.11 on plafforms where PIC differs from non-PIC
### See http://caml.inria.fr/mantis/view.php?id=3866
mod_netcgi_apache.so: $(MOD_OBJECTS)
	$(APXS) -c -o $@ $^ -L$(APACHE_OCAMLLIBDIR) -Wl,-R,$(APACHE_OCAMLLIBDIR) $(APACHE_OCAMLLIBS)
	test -f .libs/$@ && cp .libs/$@ .

netcgi_apache_mod.lo: netcgi_apache_mod.o
	echo "$@ generated by the rule for $^"
netcgi_apache_mod.o: netcgi_apache_mod.ml
	$(OCAMLC) -verbose -output-obj -linkall -o $@ \
	  -cc "./drive-apxs $(APXS)" \
	  -package "dynlink bytes unix findlib" -linkpkg $^

%.o: %.c
	$(APXS) -I$(APACHE_OCAMLLIBDIR) -c $<
%.lo: %.c
	$(APXS) -I$(APACHE_OCAMLLIBDIR) -c $<

include depend