TOP_DIR=../..
all: libperlvalues.a dllperlvalues.so perlvalues.cma dllfakelib.so \
libperlvalues.so libcamlidl.so
opt:
true
INSTOTHER = install-perl-libdir
include $(TOP_DIR)/Makefile.rules
PKGNAME = wdialog-perlguts
REQUIRES = camlidl
OCAMLC_OPTIONS = -ccopt -I$(PERL_INC) -ccopt "$(CCFLAGS)"
INSTALL_EXTRA = make-xs.pl
install-perl-libdir:
mkdir -p $(PERL_LIBDIR)
cp dllperlvalues.so libperlvalues.so dllfakelib.so libcamlidl.so $(PERL_LIBDIR)
perlvalues.c: perlvalues.idl
camlidl -prepro 'gcc -x c-header -E' perlvalues.idl
echo ';; Callback.register "Printexc.to_string" Printexc.to_string;;' >>perlvalues.ml
perlvalues.ml: perlvalues.c
perlvalues.mli: perlvalues.c
perlvalues.o: perlvalues.c perlvalues.h perlhelpers.h
$(OCAMLC) -c perlvalues.c
perlhelpers.o: perlhelpers.c perlhelpers.h
$(OCAMLC) -c perlhelpers.c
perlvalues.cmo: perlvalues.ml perlvalues.cmi
$(OCAMLC) -c perlvalues.ml
perlvalues.cmi: perlvalues.mli
$(OCAMLC) -c perlvalues.mli
perlvalues.cma: perlvalues.cmo
ocamlmklib -o perlvalues perlvalues.cmo
dllperlvalues.so: perlhelpers.o perlvalues.o
ocamlmklib -o perlvalues perlhelpers.o perlvalues.o
libperlvalues.a: perlhelpers.o perlvalues.o
rm -f libperlvalues.a
ar q libperlvalues.a perlhelpers.o perlvalues.o
dllfakelib.so: dllperlvalues.so
./make-fakelib >fakelib.c
$(OCAMLC) -c fakelib.c
ocamlmklib -o fakelib fakelib.o
libperlvalues.so: empty.o libcamlidl.so dllperlvalues.so
LD_RUN_PATH="$(PERL_LIBDIR)" \
gcc -shared -o libperlvalues.so empty.o dllperlvalues.so libcamlidl.so
libcamlidl.so: empty.o dllcamlidl.so
LD_RUN_PATH="$(PERL_LIBDIR)" \
gcc -shared -o libcamlidl.so empty.o dllcamlidl.so
dllcamlidl.so: empty.o
gcc -shared -o dllcamlidl.so empty.o
empty.o: empty.c
$(OCAMLC) -c empty.c
Dummy/Makefile:
cd Dummy; perl Makefile.PL
Dummy/Makefile.extracted: Dummy/Makefile
$(MAKE) -C Dummy -f Makefile.extract extract
clean::
rm -f Dummy/Makefile.extracted *.o *.cmi *.cmo *.so libperlvalues.a
rm -f perlvalues.mli perlvalues.ml perlvalues.c
cd Dummy; make clean
# Include knowledge about the local Perl installation:
# - PERL_INC
# - CCFLAGS
include Dummy/Makefile.extracted