From b6192827520ee582359e769ac8af5e83335965a7 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sun, 5 Feb 2012 15:45:47 +0000 Subject: [PATCH] Combine generator subdirectories into one. --- .gitignore | 2 +- APIs/Makefile.am | 11 ++-- Makefile.am | 8 +-- configure.ac | 4 +- generator-lib/.depend | 11 ---- generator-lib/Makefile.am | 68 ---------------------- generator-macros/.depend | 2 - generator-macros/Makefile.am | 54 ----------------- generator/.depend | 49 ++++++++++------ generator/Makefile.am | 50 ++++++++++++---- {generator-lib => generator}/config.ml.in | 0 {generator-macros => generator}/pa_wrap.ml | 2 +- {generator-lib => generator}/wrappi_accumulator.ml | 0 .../wrappi_accumulator.mli | 0 {generator-lib => generator}/wrappi_types.ml | 0 {generator-lib => generator}/wrappi_types.mli | 0 {generator-lib => generator}/wrappi_utils.ml | 0 {generator-lib => generator}/wrappi_utils.mli | 0 18 files changed, 80 insertions(+), 181 deletions(-) delete mode 100644 generator-lib/.depend delete mode 100644 generator-lib/Makefile.am delete mode 100644 generator-macros/.depend delete mode 100644 generator-macros/Makefile.am rename {generator-lib => generator}/config.ml.in (100%) rename {generator-macros => generator}/pa_wrap.ml (99%) rename {generator-lib => generator}/wrappi_accumulator.ml (100%) rename {generator-lib => generator}/wrappi_accumulator.mli (100%) rename {generator-lib => generator}/wrappi_types.ml (100%) rename {generator-lib => generator}/wrappi_types.mli (100%) rename {generator-lib => generator}/wrappi_utils.ml (100%) rename {generator-lib => generator}/wrappi_utils.mli (100%) diff --git a/.gitignore b/.gitignore index f73b822..5129a42 100644 --- a/.gitignore +++ b/.gitignore @@ -24,7 +24,7 @@ Makefile.in /daemon/wrappid /depcomp /examples/remote -/generator-lib/config.ml +/generator/config.ml /generator/generator /generator/stamp-generator /install-sh diff --git a/APIs/Makefile.am b/APIs/Makefile.am index ce6d4b3..1025d62 100644 --- a/APIs/Makefile.am +++ b/APIs/Makefile.am @@ -15,21 +15,20 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -OCAMLCFLAGS = -g -warn-error CDEFLMPSUVYZX -I +camlp4 -I ../generator-lib +OCAMLCFLAGS = -g -warn-error CDEFLMPSUVYZX -I +camlp4 -I ../generator OCAMLOPTFLAGS = $(OCAMLCFLAGS) -PP = -pp '$(CAMLP4O) ../generator-macros/pa_wrap.cmo -impl' +PP = -pp '$(CAMLP4O) ../generator/pa_wrap.cmo -impl' API_FILES = $(wildcard *.api) OBJECTS = $(patsubst %.api,%.cmo,$(API_FILES)) -noinst_SCRIPTS = apis.cma - -apis.cma: $(OBJECTS) ../generator-lib/generator_lib.cma +# Note this target is built by a recursive call from generator/Makefile.am. +apis.cma: $(OBJECTS) ../generator/generator_lib.cma $(OCAMLFIND) ocamlc -linkall -a $(OBJECTS) -o apis.cma -%.cmo: %.api ../generator-lib/generator_lib.cma ../generator-macros/pa_wrap.cmo +%.cmo: %.api ../generator/generator_lib.cma ../generator/pa_wrap.cmo $(OCAMLFIND) ocamlc $(OCAMLOPTFLAGS) $(PP) -impl $< -c -o $@ CLEANFILES = *.cmi *.cmo *.cmx *.cma *.cmxa *~ diff --git a/Makefile.am b/Makefile.am index 3877782..a0eba9c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,5 +1,5 @@ # wrappi -# Copyright (C) 2011 Red Hat Inc. +# Copyright (C) 2011-2012 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -17,11 +17,7 @@ ACLOCAL_AMFLAGS = -I m4 -# The API files are actually linked into the generator, but an extra -# camlp4-based preprocessor must be compiled first before we can -# compile the rest of the generator. Hence the rather convoluted set -# of subdirectories here. -SUBDIRS = generator-lib generator-macros APIs generator +SUBDIRS = generator APIs # The C library. SUBDIRS += lib diff --git a/configure.ac b/configure.ac index 54537c3..cde231e 100644 --- a/configure.ac +++ b/configure.ac @@ -93,8 +93,6 @@ AC_CONFIG_FILES([Makefile daemon/Makefile examples/Makefile generator/Makefile - generator-lib/config.ml - generator-lib/Makefile - generator-macros/Makefile + generator/config.ml lib/Makefile]) AC_OUTPUT diff --git a/generator-lib/.depend b/generator-lib/.depend deleted file mode 100644 index d922e9f..0000000 --- a/generator-lib/.depend +++ /dev/null @@ -1,11 +0,0 @@ -config.cmo: -config.cmx: -wrappi_accumulator.cmi: wrappi_types.cmi -wrappi_accumulator.cmo: wrappi_utils.cmi wrappi_types.cmi wrappi_accumulator.cmi -wrappi_accumulator.cmx: wrappi_utils.cmx wrappi_types.cmx wrappi_accumulator.cmi -wrappi_types.cmi: wrappi_utils.cmi -wrappi_types.cmo: wrappi_utils.cmi wrappi_types.cmi -wrappi_types.cmx: wrappi_utils.cmx wrappi_types.cmi -wrappi_utils.cmi: -wrappi_utils.cmo: wrappi_utils.cmi -wrappi_utils.cmx: wrappi_utils.cmi diff --git a/generator-lib/Makefile.am b/generator-lib/Makefile.am deleted file mode 100644 index f502f2d..0000000 --- a/generator-lib/Makefile.am +++ /dev/null @@ -1,68 +0,0 @@ -# wrappi -# Copyright (C) 2011 Red Hat Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -OCAMLPACKAGES = -package unix,camlp4.lib - -OCAMLCFLAGS = \ - -g -warn-error CDEFLMPSUVYZX \ - $(OCAMLPACKAGES) -OCAMLOPTFLAGS = $(OCAMLCFLAGS) - -# In alphabetical order. -SOURCES = \ - config.ml \ - wrappi_accumulator.mli \ - wrappi_accumulator.ml \ - wrappi_types.mli \ - wrappi_types.ml \ - wrappi_utils.mli \ - wrappi_utils.ml - -# In dependency order. -OBJECTS = \ - config.cmo \ - wrappi_utils.cmo \ - wrappi_types.cmo \ - wrappi_accumulator.cmo - -noinst_SCRIPTS = generator_lib.cma - -generator_lib.cma: $(OBJECTS) - $(OCAMLFIND) ocamlc -a $^ -o generator_lib.cma - -%.cmi: %.mli - $(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -c $< -o $@ -%.cmo: %.ml - $(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -c $< -o $@ -%.cmx: %.ml - $(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -c $< -o $@ - -CLEANFILES = *.cmi *.cmo *.cmx *.cma *.cmxa *~ - -depend: .depend - -.depend: $(SOURCES) - rm -f $@ $@-t - $(OCAMLFIND) ocamldep $^ | \ - $(SED) -e 's/ *$$//' | \ - $(SED) -e :a -e '/ *\\$$/N; s/ *\\\n */ /; ta' | \ - LANG=C sort > $@-t - mv $@-t $@ - -include .depend - -SUFFIXES = .cmo .cmi .cmx .ml .mli .mll .mly diff --git a/generator-macros/.depend b/generator-macros/.depend deleted file mode 100644 index baa61b8..0000000 --- a/generator-macros/.depend +++ /dev/null @@ -1,2 +0,0 @@ -pa_wrap.cmo: -pa_wrap.cmx: diff --git a/generator-macros/Makefile.am b/generator-macros/Makefile.am deleted file mode 100644 index 9d06078..0000000 --- a/generator-macros/Makefile.am +++ /dev/null @@ -1,54 +0,0 @@ -# wrappi -# Copyright (C) 2011 Red Hat Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -OCAMLPACKAGES = -package unix,camlp4.lib - -OCAMLCFLAGS = \ - -g -warn-error CDEFLMPSUVYZX \ - -I ../generator-lib $(OCAMLPACKAGES) -OCAMLOPTFLAGS = $(OCAMLCFLAGS) - -noinst_SCRIPTS = pa_wrap.cmo - -pa_wrap.cmo: pa_wrap.ml ../generator-lib/generator_lib.cma - $(OCAMLFIND) ocamlc $(OCAMLCFLAGS) \ - -linkpkg generator_lib.cma \ - -pp $(CAMLP4OF) \ - -c $< -o $@ - -%.cmi: %.mli - $(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -c $< -o $@ -%.cmo: %.ml - $(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -c $< -o $@ -%.cmx: %.ml - $(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -c $< -o $@ - -CLEANFILES = *.cmi *.cmo *.cmx *~ - -depend: .depend - -.depend: $(wildcard *.mli) $(wildcard *.ml) - rm -f $@ $@-t - $(OCAMLFIND) ocamldep -pp $(CAMLP4OF) $^ | \ - $(SED) -e 's/ *$$//' | \ - $(SED) -e :a -e '/ *\\$$/N; s/ *\\\n */ /; ta' | \ - LANG=C sort > $@-t - mv $@-t $@ - -include .depend - -SUFFIXES = .cmo .cmi .cmx .ml .mli .mll .mly diff --git a/generator/.depend b/generator/.depend index 335882d..ba64700 100644 --- a/generator/.depend +++ b/generator/.depend @@ -1,23 +1,34 @@ +config.cmo: +config.cmx: +wrappi_accumulator.cmi: wrappi_types.cmi +wrappi_accumulator.cmo: wrappi_utils.cmi wrappi_types.cmi wrappi_accumulator.cmi +wrappi_accumulator.cmx: wrappi_utils.cmx wrappi_types.cmx wrappi_accumulator.cmi wrappi_boilerplate.cmi: wrappi_boilerplate.cmo: wrappi_pr.cmi wrappi_boilerplate.cmi wrappi_boilerplate.cmx: wrappi_pr.cmx wrappi_boilerplate.cmi -wrappi_c.cmi: -wrappi_c.cmo: wrappi_pr.cmi wrappi_boilerplate.cmi wrappi_c.cmi -wrappi_c.cmx: wrappi_pr.cmx wrappi_boilerplate.cmx wrappi_c.cmi -wrappi_c_impl.cmi: -wrappi_c_impl.cmo: wrappi_pr.cmi wrappi_boilerplate.cmi wrappi_c_impl.cmi -wrappi_c_impl.cmx: wrappi_pr.cmx wrappi_boilerplate.cmx wrappi_c_impl.cmi -wrappi_c_xdr.cmi: -wrappi_c_xdr.cmo: wrappi_pr.cmi wrappi_boilerplate.cmi wrappi_c_xdr.cmi -wrappi_c_xdr.cmx: wrappi_pr.cmx wrappi_boilerplate.cmx wrappi_c_xdr.cmi -wrappi_enums.cmi: -wrappi_enums.cmo: wrappi_enums.cmi -wrappi_enums.cmx: wrappi_enums.cmi -wrappi_main.cmo: wrappi_structs.cmi wrappi_pr.cmi wrappi_enums.cmi wrappi_c_xdr.cmi wrappi_c_impl.cmi wrappi_c.cmi -wrappi_main.cmx: wrappi_structs.cmx wrappi_pr.cmx wrappi_enums.cmx wrappi_c_xdr.cmx wrappi_c_impl.cmx wrappi_c.cmx +wrappi_c.cmi: wrappi_types.cmi +wrappi_c.cmo: wrappi_utils.cmi wrappi_types.cmi wrappi_pr.cmi wrappi_boilerplate.cmi wrappi_c.cmi +wrappi_c.cmx: wrappi_utils.cmx wrappi_types.cmx wrappi_pr.cmx wrappi_boilerplate.cmx wrappi_c.cmi +wrappi_c_impl.cmi: wrappi_types.cmi +wrappi_c_impl.cmo: wrappi_utils.cmi wrappi_types.cmi wrappi_pr.cmi wrappi_boilerplate.cmi wrappi_c_impl.cmi +wrappi_c_impl.cmx: wrappi_utils.cmx wrappi_types.cmx wrappi_pr.cmx wrappi_boilerplate.cmx wrappi_c_impl.cmi +wrappi_c_xdr.cmi: wrappi_types.cmi +wrappi_c_xdr.cmo: wrappi_utils.cmi wrappi_types.cmi wrappi_pr.cmi wrappi_boilerplate.cmi wrappi_c_xdr.cmi +wrappi_c_xdr.cmx: wrappi_utils.cmx wrappi_types.cmx wrappi_pr.cmx wrappi_boilerplate.cmx wrappi_c_xdr.cmi +wrappi_enums.cmi: wrappi_types.cmi +wrappi_enums.cmo: wrappi_utils.cmi wrappi_types.cmi wrappi_enums.cmi +wrappi_enums.cmx: wrappi_utils.cmx wrappi_types.cmx wrappi_enums.cmi +wrappi_main.cmo: wrappi_utils.cmi wrappi_types.cmi wrappi_structs.cmi wrappi_pr.cmi wrappi_enums.cmi wrappi_c_xdr.cmi wrappi_c_impl.cmi wrappi_c.cmi wrappi_accumulator.cmi config.cmo +wrappi_main.cmx: wrappi_utils.cmx wrappi_types.cmx wrappi_structs.cmx wrappi_pr.cmx wrappi_enums.cmx wrappi_c_xdr.cmx wrappi_c_impl.cmx wrappi_c.cmx wrappi_accumulator.cmx config.cmx wrappi_pr.cmi: -wrappi_pr.cmo: wrappi_pr.cmi -wrappi_pr.cmx: wrappi_pr.cmi -wrappi_structs.cmi: -wrappi_structs.cmo: wrappi_structs.cmi -wrappi_structs.cmx: wrappi_structs.cmi +wrappi_pr.cmo: wrappi_utils.cmi wrappi_pr.cmi +wrappi_pr.cmx: wrappi_utils.cmx wrappi_pr.cmi +wrappi_structs.cmi: wrappi_types.cmi +wrappi_structs.cmo: wrappi_utils.cmi wrappi_types.cmi wrappi_structs.cmi +wrappi_structs.cmx: wrappi_utils.cmx wrappi_types.cmx wrappi_structs.cmi +wrappi_types.cmi: wrappi_utils.cmi +wrappi_types.cmo: wrappi_utils.cmi wrappi_types.cmi +wrappi_types.cmx: wrappi_utils.cmx wrappi_types.cmi +wrappi_utils.cmi: +wrappi_utils.cmo: wrappi_utils.cmi +wrappi_utils.cmx: wrappi_utils.cmi diff --git a/generator/Makefile.am b/generator/Makefile.am index cc34af3..62a36d6 100644 --- a/generator/Makefile.am +++ b/generator/Makefile.am @@ -1,5 +1,5 @@ # wrappi -# Copyright (C) 2011 Red Hat Inc. +# Copyright (C) 2011-2012 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -19,11 +19,14 @@ OCAMLPACKAGES = -package unix,camlp4.lib OCAMLCFLAGS = \ -g -warn-error CDEFLMPSUVYZX \ - -I ../generator-lib $(OCAMLPACKAGES) + $(OCAMLPACKAGES) OCAMLOPTFLAGS = $(OCAMLCFLAGS) # In alphabetical order. SOURCES = \ + config.ml \ + wrappi_accumulator.mli \ + wrappi_accumulator.ml \ wrappi_boilerplate.mli \ wrappi_boilerplate.ml \ wrappi_c_impl.mli \ @@ -38,9 +41,25 @@ SOURCES = \ wrappi_pr.mli \ wrappi_pr.ml \ wrappi_structs.mli \ - wrappi_structs.ml + wrappi_structs.ml \ + wrappi_types.mli \ + wrappi_types.ml \ + wrappi_utils.mli \ + wrappi_utils.ml +# The difference between LIB_OBJECTS and OBJECTS is just that +# functions and types in LIB_OBJECTS can be used in pa_wrap and in the +# code generated from the API objects (../APIs/*.api). LIB_OBJECTS +# are built into generator_lib.cma which is linked to pa_wrap, and to +# the APIs, and into the generator. +# # In dependency order. +LIB_OBJECTS = \ + config.cmo \ + wrappi_utils.cmo \ + wrappi_types.cmo \ + wrappi_accumulator.cmo + OBJECTS = \ wrappi_pr.cmo \ wrappi_boilerplate.cmo \ @@ -51,15 +70,26 @@ OBJECTS = \ wrappi_c.cmo \ wrappi_main.cmo -noinst_SCRIPTS = generator +noinst_SCRIPTS = generator_lib.cma pa_wrap.cmo generator + +generator_lib.cma: $(LIB_OBJECTS) + $(OCAMLFIND) ocamlc -a $^ -o $@ -generator: $(OBJECTS) ../generator-lib/generator_lib.cma ../APIs/apis.cma - $(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -linkpkg \ - ../generator-lib/generator_lib.cma ../APIs/apis.cma \ - $(OBJECTS) \ +pa_wrap.cmo: pa_wrap.ml generator_lib.cma + $(OCAMLFIND) ocamlc $(OCAMLCFLAGS) \ + -linkpkg generator_lib.cma \ + -pp $(CAMLP4OF) \ + -c $< -o $@ + +generator: generator_lib.cma $(OBJECTS) ../APIs/apis.cma + $(OCAMLFIND) ocamlc $(OCAMLCFLAGS) \ + -linkpkg generator_lib.cma ../APIs/apis.cma $(OBJECTS) \ -o $@ -%.cmi: %.mli ../generator-lib/generator_lib.cma +../APIs/apis.cma: generator_lib.cma pa_wrap.cmo + $(MAKE) -C ../APIs apis.cma + +%.cmi: %.mli $(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -c $< -o $@ %.cmo: %.ml $(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -c $< -o $@ @@ -84,6 +114,6 @@ depend: .depend include .depend -CLEANFILES = *.cmi *.cmo *.cmx *~ generator +CLEANFILES = *.cmi *.cmo *.cmx *.cma *.cmxa *~ generator SUFFIXES = .cmo .cmi .cmx .ml .mli .mll .mly diff --git a/generator-lib/config.ml.in b/generator/config.ml.in similarity index 100% rename from generator-lib/config.ml.in rename to generator/config.ml.in diff --git a/generator-macros/pa_wrap.ml b/generator/pa_wrap.ml similarity index 99% rename from generator-macros/pa_wrap.ml rename to generator/pa_wrap.ml index bfe28fb..26cf8ac 100644 --- a/generator-macros/pa_wrap.ml +++ b/generator/pa_wrap.ml @@ -1,5 +1,5 @@ (* wrappi - * Copyright (C) 2011 Red Hat Inc. + * Copyright (C) 2011-2012 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/generator-lib/wrappi_accumulator.ml b/generator/wrappi_accumulator.ml similarity index 100% rename from generator-lib/wrappi_accumulator.ml rename to generator/wrappi_accumulator.ml diff --git a/generator-lib/wrappi_accumulator.mli b/generator/wrappi_accumulator.mli similarity index 100% rename from generator-lib/wrappi_accumulator.mli rename to generator/wrappi_accumulator.mli diff --git a/generator-lib/wrappi_types.ml b/generator/wrappi_types.ml similarity index 100% rename from generator-lib/wrappi_types.ml rename to generator/wrappi_types.ml diff --git a/generator-lib/wrappi_types.mli b/generator/wrappi_types.mli similarity index 100% rename from generator-lib/wrappi_types.mli rename to generator/wrappi_types.mli diff --git a/generator-lib/wrappi_utils.ml b/generator/wrappi_utils.ml similarity index 100% rename from generator-lib/wrappi_utils.ml rename to generator/wrappi_utils.ml diff --git a/generator-lib/wrappi_utils.mli b/generator/wrappi_utils.mli similarity index 100% rename from generator-lib/wrappi_utils.mli rename to generator/wrappi_utils.mli -- 1.8.3.1