| ## |
| ## Makefile.tmpl -- Makefile template for mod_perl (Apache-side) |
| ## Written by Ralf S. Engelschall <rse@apache.org> |
| ## |
| ## This is a hybrid Makefile template: It can is used both |
| ## inside the Apache source tree as the skeleton for the |
| ## src/modules/perl/Makefile which is created by Apache's |
| ## src/Configure script and out-side of the Apache source tree |
| ## for building via APXS. Here it is the skeketon for the |
| ## Makefile created by the local configure script. |
| ## |
| |
| # Reassemble mod_perl parameters |
| # from Perl and Apache parameters |
| MP_CC=$(PERL_CC) |
| MP_CFLAGS=$(PERL_OPTIMIZE) -I$(PERL_INC) $(PERL_CCFLAGS) \ |
| $(PERL_DEFS) $(INCLUDES) $(AP_CFLAGS) $(CFLAGS) |
| MP_CFLAGS_SHLIB=$(PERL_CCCDLFLAGS) $(MP_CFLAGS) |
| MP_LD=$(PERL_LD) |
| MP_LDFLAGS_SHLIB=$(PERL_LDDLFLAGS) |
| MP_LIBS=$(PERL_LIBS) |
| MP_XSUBPP=$(PERL_XSUBPP) |
| MP_XSINIT=$(PERL_XSINIT) |
| MP_RM=rm -f |
| MP_AR=$(PERL_AR) |
| MP_RANLIB=$(PERL_RANLIB) |
| MP_STATIC_EXTS=$(PERL_STATIC_EXTS) |
| MP_STATIC_AR=$(PERL_STATIC_AR) |
| MP_STATIC_SRCS=$(PERL_STATIC_SRCS) |
| MP_STATIC_OBJS=$(PERL_STATIC_OBJS) |
| MP_STATIC_OBJS_PIC=$(PERL_STATIC_OBJS_PIC) |
| MP_LIBS=$(PERL_LIBS) |
| MP_DISTCLEAN_FILES=Makefile $(ADD_DISTCLEAN_FILES) |
| |
| ## |
| ## ____ DO NOT CHANGE ANYTHING BELOW THIS LINE ______________________ |
| ## |
| |
| # the library to build |
| MP_LIB=libperl.$(LIBEXT) |
| |
| # the objects to use |
| MP_OBJS=\ |
| mod_perl.o perlxsi.o perl_config.o perl_util.o perlio.o mod_perl_opmask.o \ |
| $(MP_STATIC_OBJS) |
| MP_OBJS_PIC=\ |
| mod_perl.lo perlxsi.lo perl_config.lo perl_util.lo perlio.lo mod_perl_opmask.lo \ |
| $(MP_STATIC_OBJS_PIC) |
| |
| all: lib |
| |
| lib: $(MP_LIB) |
| |
| libperl.a: $(MP_OBJS) |
| $(MP_RM) $@ |
| $(MP_AR) crv $@ $(MP_OBJS) |
| $(MP_RANLIB) $@ |
| |
| libperl.$(PERL_DLEXT): $(MP_OBJS_PIC) |
| $(MP_RM) $@ |
| $(MP_LD) $(MP_LDFLAGS_SHLIB) -o $@ $(MP_OBJS_PIC) $(MP_LIBS) |
| |
| .SUFFIXES: .xs .c .o .lo |
| |
| .c.lo: |
| $(MP_CC) $(MP_CFLAGS_SHLIB) -c $< && mv $*.o $*.lo |
| |
| .c.o: |
| $(MP_CC) $(MP_CFLAGS) -c $< |
| |
| .xs.c: |
| $(MP_XSUBPP) $*.xs >$@ |
| |
| .xs.o: |
| $(MP_XSUBPP) $*.xs >$*.c |
| $(MP_CC) $(MP_CFLAGS) -c $*.c |
| |
| .xs.lo: |
| $(MP_XSUBPP) $*.xs >$*.c |
| $(MP_CC) $(MP_CFLAGS_SHLIB) -c $*.c && mv $*.o $*.lo |
| |
| perlxsi.c: |
| $(MP_XSINIT) -- -o perlxsi.c -std $(MP_STATIC_EXTS) |
| |
| clean: |
| $(MP_RM) $(MP_LIB) |
| $(MP_RM) $(MP_OBJS) |
| $(MP_RM) $(MP_OBJS_PIC) |
| $(MP_RM) $(MP_STATIC_SRCS) |
| $(MP_RM) perlxsi.c |
| |
| distclean: clean |
| $(MP_RM) $(MP_DISTCLEAN_FILES) |
| |
| # FOR STAND-ALONE BUILDING ONLY |
| install: |
| $(APXS) -i -a -n perl libperl.$(LIBEXT) |
| |
| depend: |
| cp Makefile.tmpl Makefile.tmpl.bak \ |
| && sed -ne '1,/^# DO NOT REMOVE/p' Makefile.tmpl > Makefile.new \ |
| && gcc -MM $(INCLUDES) $(AP_CFLAGS) $(CFLAGS) *.c >> Makefile.new \ |
| && sed -e '1,$$s: $(INCDIR)/: $$(INCDIR)/:g' \ |
| -e '1,$$s: $(OSDIR)/: $$(OSDIR)/:g' Makefile.new \ |
| > Makefile.tmpl \ |
| && rm Makefile.new |
| |
| # Dependencies |
| $(MP_OBJS) $(MP_OBJS_PIC): Makefile |
| |
| # DO NOT REMOVE |