diff --git a/modules/Makefile.in b/modules/Makefile.in index 06a03759..edcad6a6 100644 --- a/modules/Makefile.in +++ b/modules/Makefile.in @@ -38,6 +38,7 @@ INSTALL := @INSTALL@ INSTALL_PROGRAM := @INSTALL_PROGRAM@ INSTALL_SCRIPT := @INSTALL_SCRIPT@ INSTALL_DATA := @INSTALL_DATA@ +SED := @SED@ TCL_FLAGS:= @TCL_FLAGS@ @@ -47,9 +48,11 @@ endif ifeq "$(VERBOSE)" "" Q=@ E=@echo +C=-s else Q= E=@\# +C= endif ifneq "$(LIBZNC)" "" diff --git a/modules/modperl/Makefile.gen b/modules/modperl/Makefile.gen new file mode 100644 index 00000000..e1ad3dec --- /dev/null +++ b/modules/modperl/Makefile.gen @@ -0,0 +1,40 @@ +all: + +VPATH := $(srcdir) + +ifneq "$(V)" "" +VERBOSE=1 +endif +ifeq "$(VERBOSE)" "" +Q=@ +E=@echo +C=-s +else +Q= +E=@\# +C= +endif + +modperl/modperl.tar.bz2: modperl/gen/ZNC.cpp modperl/gen/ZNC.pm modperl/gen/functions.cpp modperl/gen/swigperlrun.h + $(E) Packing modperl files... + $(Q)tar -cjf $@ -C modperl/gen ZNC.cpp ZNC.pm functions.cpp swigperlrun.h + +modperl/gen/swigperlrun.h: + @mkdir -p modperl/gen + $(Q)$(SWIG) -perl5 -c++ -shadow -external-runtime $@ + +modperl/gen/ZNC.cpp: modperl/modperl.i modperl/module.h modperl/CString.i + $(E) Generating ZNC API for Perl... + @mkdir -p modperl/gen + $(Q)$(SWIG) -perl5 -c++ -shadow -outdir modperl/gen -I$(srcdir) -MD -MF .depend/modperl.swig.dep -w362,315,401,402 -o $@ $< + $(Q)$(SED) 's#^modperl/gen/ZNC.cpp:#modperl/modperl.tar.bz2:#' .depend/modperl.swig.dep > .depend/modperl.tar.dep + +modperl/gen/ZNC.pm: modperl/gen/ZNC.cpp + +modperl/gen/functions.cpp: modperl/codegen.pl modperl/functions.in + @mkdir -p modperl + $(Q)$(PERL) $^ $@ + +all: modperl/modperl.tar.bz2 + +-include .depend/modperl.swig.dep diff --git a/modules/modperl/Makefile.inc b/modules/modperl/Makefile.inc index 40e40b89..87248215 100644 --- a/modules/modperl/Makefile.inc +++ b/modules/modperl/Makefile.inc @@ -17,6 +17,7 @@ modperlCXXFLAGS += -I. PERLHOOK := modperl_install CLEAN += modperl/ZNC.so modperl/ZNC.pm modperl/ZNC.o CLEAN += modperl/swigperlrun.h modperl/ZNC.cpp modperl/functions.cpp +CLEAN += modperl/gen else FILES := $(shell echo $(FILES) | sed -e "s/modperl//") @@ -27,27 +28,28 @@ endif install: $(PERLHOOK) modperl.o: modperl/ZNC.so modperl/swigperlrun.h modperl/functions.cpp + modperl/ZNC.so: modperl/ZNC.o Makefile $(E) Linking ZNC Perl bindings library... $(Q)$(CXX) $(MODFLAGS) $(LDFLAGS) $(MODLINK) $(PERL_LD) -o $@ $< + modperl/ZNC.o: modperl/ZNC.cpp Makefile @mkdir -p modperl @mkdir -p .depend $(E) Building ZNC Perl bindings library... $(Q)$(CXX) $(MODFLAGS) -I$(srcdir) -MD -MF .depend/modperl.library.dep $(PERL_CXX) -Wno-unused-variable -Wno-shadow -o $@ $< -c + +modperl/swigperlrun.h modperl/functions.cpp modperl/ZNC.cpp modperl/ZNC.pm: modperl/modperl.tar.bz2 + @mkdir -p modperl + $(E) Unpacking modperl files... + $(Q)tar -xf $^ -C modperl + $(Q)touch modperl/swigperlrun.h modperl/functions.cpp modperl/ZNC.cpp modperl/ZNC.pm + ifneq "$(SWIG)" "" -modperl/swigperlrun.h: - @mkdir -p modperl - $(Q)$(SWIG) -perl5 -c++ -shadow -external-runtime $@ -modperl/ZNC.cpp: modperl/modperl.i Makefile modperl/module.h modperl/CString.i - $(E) Generating ZNC API for Perl... - @mkdir -p modperl - @mkdir -p .depend - $(Q)$(SWIG) -perl5 -c++ -shadow -outdir modperl -I$(srcdir) -MD -MF .depend/modperl.swig.dep -w362,315,401,402 -o $@ $< +modperl/modperl.tar.bz2: modperl/codegen.pl modperl/functions.in Makefile + @mkdir -p modperl .depend + $(Q)$(MAKE) -f $(srcdir)/modperl/Makefile.gen $(C) SWIG="$(SWIG)" srcdir="$(srcdir)" PERL="$(PERL)" VERBOSE="$(VERBOSE)" SED="$(SED)" endif -modperl/functions.cpp: modperl/functions.in modperl/codegen.pl - @mkdir -p modperl - $(Q)$(PERL) $(srcdir)/modperl/codegen.pl $< $@ modperl_install: install_datadir modperl.so for i in $(wildcard $(srcdir)/*.pm); do \