Plasma GitLab Archive
Projects Blog Knowledge

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

This web site is published by Informatikbüro Gerd Stolpmann
Powered by Caml