diff options
Diffstat (limited to 'apMakefile.tmpl')
-rw-r--r-- | apMakefile.tmpl | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/apMakefile.tmpl b/apMakefile.tmpl new file mode 100644 index 0000000000..e7ba023ed0 --- /dev/null +++ b/apMakefile.tmpl @@ -0,0 +1,77 @@ +## +## Apache 1.3 Makefile template for PHP3 Module +## [src/modules/php3/Makefile.tmpl] +## + +# the parametrized target +LIB=libphp3.$(LIBEXT) + +# objects for building the static library +OBJS=mod_php3.o +OBJS_LIB=libmodphp3.a + +# objects for building the shared object library +SHLIB_OBJS=mod_php3.so-o +SHLIB_OBJS_LIB=libmodphp3-so.a + +# the general targets +all: lib +lib: $(LIB) + +# build the static library by merging the object files +libphp3.a: $(OBJS) $(OBJS_LIB) + cp $(OBJS_LIB) $@ + ar r $@ $(OBJS) + $(RANLIB) $@ + +# ugly hack to support older Apache-1.3 betas that don't set $LIBEXT +libphp3.: $(OBJS) $(OBJS_LIB) + cp $(OBJS_LIB) $@ + ar r $@ $(OBJS) + $(RANLIB) $@ + cp libphp3. libphp3.a + +# build the shared object library by linking the object files +libphp3.so: $(SHLIB_OBJS) $(SHLIB_OBJS_LIB) + rm -f $@ + $(LD_SHLIB) $(LDFLAGS_SHLIB) -o $@ $(SHLIB_OBJS) $(SHLIB_OBJS_LIB) $(LIBS) + +# 1. extension .o for shared objects cannot be used here because +# first these files aren't still shared objects and second we +# have to use a different name to trigger the different +# implicit Make rule +# 2. extension -so.o (as used elsewhere) cannot be used because +# the suffix feature of Make really wants just .x, so we use +# extension .so-o +.SUFFIXES: .o .so-o +.c.o: + $(CC) -c $(INCLUDES) $(CFLAGS) $(SPACER) $< +.c.so-o: + $(CC) -c $(INCLUDES) $(CFLAGS) $(CFLAGS_SHLIB) $(SPACER) $< && mv $*.o $*.so-o + +# cleanup +clean: + -rm -f $(OBJS) $(SHLIB_OBJS) $(LIB) + +# We really don't expect end users to use this rule. It works only with +# gcc, and rebuilds Makefile.tmpl. You have to re-run Configure after +# using it. +depend: + cp Makefile.tmpl Makefile.tmpl.bak \ + && sed -ne '1,/^# DO NOT REMOVE/p' Makefile.tmpl > Makefile.new \ + && gcc -MM $(INCLUDES) $(CFLAGS) *.c >> Makefile.new \ + && sed -e '1,$$s: $(INCDIR)/: $$(INCDIR)/:g' Makefile.new \ + > Makefile.tmpl \ + && rm Makefile.new + +#Dependencies + +$(OBJS): Makefile + +# DO NOT REMOVE +mod_php3.o: mod_php3.c $(INCDIR)/httpd.h $(INCDIR)/conf.h \ + $(INCDIR)/alloc.h $(INCDIR)/buff.h \ + $(INCDIR)/http_config.h \ + $(INCDIR)/http_core.h $(INCDIR)/http_main.h \ + $(INCDIR)/http_protocol.h $(INCDIR)/http_request.h \ + $(INCDIR)/http_log.h $(INCDIR)/util_script.h mod_php3.h |