ecl/src/Makefile.in
2004-11-22 19:02:58 +00:00

154 lines
4.2 KiB
Makefile

#
# Makefile for ECoLisp
#
top_srcdir= @top_srcdir@
srcdir = @srcdir@
# Programs used by "make":
#
CC = @ECL_CC@
LIBS = @STATICLIBS@ @LIBS@ @TKLIBS@ @CLIBS@
LDFLAGS = @LDFLAGS@
RM = @RM@
EXE = @EXEEXT@
# ==================== Where To Install Things ====================
# The default location for installation. Everything is placed in
# subdirectories of this directory. The default values for many of
# the variables below are expressed in terms of this one, so you may
# not need to change them. This defaults to /usr/local.
prefix=@prefix@
exec_prefix=@exec_prefix@
bindir=@bindir@
libdir=@libdir@
# Programs used by "make install":
#
SHELL = @SHELL@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_DATA = @INSTALL_DATA@
mkinstalldirs = $(SHELL) $(top_srcdir)/gc/mkinstalldirs
# Files
SUBDIR = @SUBDIR@
LIBRARIES = @LIBRARIES@
LSP_LIBRARIES = @LSP_LIBRARIES@
TARGETS = @TARGETS@
all: $(TARGETS) ecl-config doc
.PHONY: all
%Makefile: $(srcdir)/%Makefile.in config.status
./config.status
ecl$(EXE): ecl_min$(EXE) compile.lsp sysfun.lsp
if [ -f CROSS-COMPILER ]; then \
./CROSS-COMPILER < compile.lsp; \
else \
./ecl_min < compile.lsp; \
fi
ecl_min$(EXE): $(LIBRARIES) .gdbinit @LIBPREFIX@eclmin.@LIBEXT@
if [ -f CROSS-COMPILER ]; then \
touch $@; \
else \
$(CC) $(LDFLAGS) -o $@ cinit.o -L./ @LIBPREFIX@eclmin.@LIBEXT@ $(LIBS);\
fi
.gdbinit: $(srcdir)/util/gdbinit
cp $(srcdir)/util/gdbinit $@
lsp/config.lsp: lsp/config.pre
sed -e 's,@ecldir@,$(libdir),g' < lsp/config.pre > lsp/config.lsp
compile.lsp: compile.pre
sed -e 's,@ecldir@,$(libdir),g' < compile.pre > compile.lsp
ecl-config: ecl-config.pre
sed -e 's,~A,$(libdir),;s,~\*,,' \
-e 's,@libdir\\@,$(libdir),' \
-e 's,@includedir\\@,$(libdir)/h,' ecl-config.pre > ecl-config
@LIBPREFIX@eclmin.@LIBEXT@: @LIBPREFIX@eclgmp.@LIBEXT@ @LIBPREFIX@eclgc.@LIBEXT@ lsp/config.lsp
cd c; $(MAKE)
@LIBPREFIX@eclgc.@LIBEXT@:
if (echo $(SUBDIR) | grep gc); then \
cd gc; $(MAKE) install; \
cp -rf $(srcdir)/gc/include/private ../h/gc/; \
mv ../@LIBPREFIX@gc.@LIBEXT@ ../@LIBPREFIX@eclgc.@LIBEXT@; \
fi
@LIBPREFIX@eclgmp.@LIBEXT@:
if (echo $(SUBDIR) | grep gmp); then \
cd gmp; $(MAKE) install; \
mv ../@LIBPREFIX@gmp.@LIBEXT@ ../@LIBPREFIX@eclgmp.@LIBEXT@; \
fi
sysfun.lsp:
ln -s -f $(srcdir)/cmp/sysfun.lsp ./
BUILD-STAMP: config.status
(echo "#"; uname -a) > $@
head -8 config.status | tail -6 >> $@
install: BUILD-STAMP install-base
cd c; $(MAKE) prefix=$(prefix) install
cd doc; $(MAKE) prefix=$(prefix) install
install-base:
$(mkinstalldirs) $(bindir) $(libdir)/h
for i in $(TARGETS); do \
$(INSTALL) -s $$i $(bindir); \
done;
$(INSTALL_SCRIPT) ecl-config $(bindir)
for i in BUILD-STAMP $(LSP_LIBRARIES) $(LIBRARIES) c/dpp* help.doc ; do \
$(INSTALL_DATA) $$i $(libdir); \
done
$(INSTALL_DATA) h/config.h $(libdir)/h
flatinstall: BUILD-STAMP
$(MAKE) bindir=$(prefix) libdir=$(prefix) install-base
cd c; $(MAKE) prefix=$(prefix) flatinstall
cd doc; $(MAKE) prefix=$(prefix) docdir=$(prefix)/doc flatinstall
uninstall:
for i in $(TARGETS) ecl-config; do rm -rf $(bindir)/$$i; done
rm -rf $(libdir)
cd doc; $(MAKE) uninstall
doc: $(TARGETS)
cd doc; $(MAKE)
clean: clean_lisp
for i in ${SUBDIR}; do (cd $$i; $(MAKE) clean); done
$(RM) ecl_min$(EXE) ecl$(EXE) help.doc core a.out
$(RM) config.version config.log config.cache
$(RM) *.c *.o *.a *.h *.data
clean_lisp:
for i in lsp cmp clos clx tk; do $(RM) lib$$i.a $$i/?*.{o,dat,c,sdat,h,fas}; done
$(RM) help.doc
distclean: clean
realclean: distclean
test1:
cd c; $(MAKE)
$(MAKE) ecl_min
$(MAKE) ecl
cd tests; $(MAKE)
diff tests tests2
test2:
$(MAKE) clean_lisp
cd c; $(MAKE)
$(MAKE) ecl_min
$(RM) ecl
$(MAKE) ecl
for i in lsp clos cmp; do diff --exclude=\*.o $$i old/$$i; done
test3:
-mkdir stage2
cp -rf lsp clos cmp stage2
-for i in lsp cmp clos clx tk; do test -f lib$$i.a && mv lib$$i.a stage2; done
$(MAKE) clean_lisp
./ecl < compile.lsp
-for i in lsp clos cmp clx tk; do test -d $$i && diff --exclude=\*.o $$i stage2/$$i; done | less
test:
$(MAKE) -C tests
$(MAKE) -C ansi-tests > ansi-tests/log
#-(diff tests ~/src/tests; diff --exclude log ansi-tests ~/src/ansi-tests) | less