summaryrefslogtreecommitdiff
path: root/Source/Makefile.am
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Makefile.am')
-rw-r--r--Source/Makefile.am144
1 files changed, 144 insertions, 0 deletions
diff --git a/Source/Makefile.am b/Source/Makefile.am
new file mode 100644
index 0000000..aadf50d
--- /dev/null
+++ b/Source/Makefile.am
@@ -0,0 +1,144 @@
+## Process this file with automake to produce Makefile.in
+
+# subdir-objects generates object files using the directory structure of the source files.
+AUTOMAKE_OPTIONS = foreign nostdinc subdir-objects 1.7.2
+
+SOURCE_DIR=$(top_srcdir)/Source
+BUILD_SOURCE_DIR=$(top_builddir)/Source
+
+SWIG_CXX_DEFS = @SWILL@
+
+AM_CPPFLAGS = -I$(BUILD_SOURCE_DIR)/Include \
+ -I$(BUILD_SOURCE_DIR)/CParse \
+ -I$(SOURCE_DIR)/Include \
+ -I$(SOURCE_DIR)/DOH \
+ -I$(SOURCE_DIR)/CParse \
+ -I$(SOURCE_DIR)/Preprocessor \
+ -I$(SOURCE_DIR)/Swig \
+ -I$(SOURCE_DIR)/Modules
+
+AM_CXXFLAGS = $(SWIG_CXX_DEFS)
+
+AM_YFLAGS = -d
+
+BUILT_SOURCES = CParse/parser.h
+eswig_SOURCES = CParse/cscanner.c \
+ CParse/parser.y \
+ CParse/templ.c \
+ CParse/util.c \
+ DOH/base.c \
+ DOH/file.c \
+ DOH/fio.c \
+ DOH/hash.c \
+ DOH/list.c \
+ DOH/memory.c \
+ DOH/string.c \
+ DOH/void.c \
+ Modules/allegrocl.cxx \
+ Modules/allocate.cxx \
+ Modules/browser.cxx \
+ Modules/cffi.cxx \
+ Modules/chicken.cxx \
+ Modules/clisp.cxx \
+ Modules/contract.cxx \
+ Modules/csharp.cxx \
+ Modules/directors.cxx \
+ Modules/emit.cxx \
+ Modules/guile.cxx \
+ Modules/java.cxx \
+ Modules/lang.cxx \
+ Modules/lua.cxx \
+ Modules/main.cxx \
+ Modules/modula3.cxx \
+ Modules/module.cxx \
+ Modules/mzscheme.cxx \
+ Modules/ocaml.cxx \
+ Modules/octave.cxx \
+ Modules/overload.cxx \
+ Modules/perl5.cxx \
+ Modules/php.cxx \
+ Modules/pike.cxx \
+ Modules/python.cxx \
+ Modules/r.cxx \
+ Modules/ruby.cxx \
+ Modules/s-exp.cxx \
+ Modules/swigmain.cxx \
+ Modules/tcl8.cxx \
+ Modules/typepass.cxx \
+ Modules/uffi.cxx \
+ Modules/utils.cxx \
+ Modules/xml.cxx \
+ Preprocessor/cpp.c \
+ Preprocessor/expr.c \
+ Swig/cwrap.c \
+ Swig/deprecate.c \
+ Swig/error.c \
+ Swig/fragment.c \
+ Swig/getopt.c \
+ Swig/include.c \
+ Swig/misc.c \
+ Swig/naming.c \
+ Swig/parms.c \
+ Swig/scanner.c \
+ Swig/stype.c \
+ Swig/symbol.c \
+ Swig/tree.c \
+ Swig/typeobj.c \
+ Swig/typemap.c \
+ Swig/typesys.c \
+ Swig/warn.c \
+ Swig/wrapfunc.c
+
+bin_PROGRAMS = eswig
+eswig_LDADD = @SWIGLIBS@
+
+# Override the link stage to avoid using Libtool
+CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+
+# The executable is copied to the root directory for installation and running the test-suite.
+# This occurs on each invocation of make and is a step towards providing support for multiple
+# build directories.
+all-local: eswig@EXEEXT@
+ cp -f $(top_builddir)/Source/eswig@EXEEXT@ $(top_builddir)/swig@EXEEXT@
+
+clean-local:
+ rm -f $(top_builddir)/swig@EXEEXT@
+ rm -f core @EXTRA_CLEAN@
+
+
+# Beautify the code.
+# Note that this works well on C code, but does some odd joining of lines for C++ code.
+# Compiling with -DNDEBUG and no optimisations will allow one to do a binary diff of the
+# swig executable as a way of checking before and after the 'beautifying'.
+# Single files can be beautified with the beautify-file target, eg: 'make beautify-file INDENTFILE=chosenfile.c'
+
+SWIGTYPEDEFS=-T File -T DohObjInfo -T Parm -T Language -T List -T Typetab -T ModuleFactory -T ErrorMessageFormat -T Symtab -T Hash -T String -T DohBase -T Node -T String_or_char -T SwigType -T Dispatcher -T Wrapper -T DohStringMethods -T DohFileMethods -T DohListMethods -T DohHashMethods -T DOH -T DohIterator -T ParmList -T FILE -T HashNode -T DOHString_or_char
+INDENTBAKSDIR=../IndentBaks
+
+beautify:
+ rm -rf $(INDENTBAKSDIR)
+ mkdir $(INDENTBAKSDIR)
+ mkdir $(INDENTBAKSDIR)/CParse
+ mkdir $(INDENTBAKSDIR)/DOH
+ mkdir $(INDENTBAKSDIR)/Modules
+ mkdir $(INDENTBAKSDIR)/Preprocessor
+ mkdir $(INDENTBAKSDIR)/Swig
+ mkdir $(INDENTBAKSDIR)/Include
+ (csources=`find . -name "*.c"` && \
+ hsources=`find . -name "*.h"` && \
+ cxxsources=`find . -name "*.cxx"` && \
+ for file in $$csources $$hsources $$cxxsources; do \
+ $(MAKE) beautify-file INDENTFILE=$$file; \
+ done; )
+
+beautify-file:
+ test -e $(INDENTBAKSDIR) || (echo $(INDENTBAKSDIR) directory does not exist && exit 1;)
+ test -n "$(INDENTFILE)" || (echo INDENTFILE not defined && exit 1;)
+ test -e $(INDENTFILE) || (echo File does not exist: $(INDENTFILE) && exit 1;)
+ cp $(INDENTFILE) $(INDENTBAKSDIR)/$(INDENTFILE);
+ unix2dos $(INDENTFILE)
+ dos2unix $(INDENTFILE)
+ indent -kr --honour-newlines --line-length160 --indent-level2 --braces-on-func-def-line --leave-optional-blank-lines $(SWIGTYPEDEFS) $(INDENTFILE) -o $(INDENTFILE).tmp;
+ cat $(INDENTFILE).tmp | sed -e 's/const const /const /' > $(INDENTFILE);
+ rm $(INDENTFILE).tmp;
+