diff --git a/Makefile.in b/Makefile.in index 7148ceb93..38295cd4b 100644 --- a/Makefile.in +++ b/Makefile.in @@ -46,6 +46,8 @@ CFLAGS=@CFLAGS@ # This is set by the configure script's `--srcdir' option. srcdir=@srcdir@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ bindir=@bindir@ infodir=@infodir@ mandir=@mandir@ @@ -169,15 +171,15 @@ binary-dist: all su -c "rm -rf tmp" mkdir tmp for i in tmp$(bindir) tmp$(infodir) tmp$(mandir) tmp$(libdir); do \ - (echo $$i; IFS="/"; for k in $$i; do echo $$k; (test -d $$k || mkdir $$k); chmod 755 $$k; cd $$k; done); \ + (echo $$i; IFS="/"; \for k in $$i; do echo $$k; (test -d $$k || mkdir $$k); chmod 755 $$k; cd $$k; done); \ done - PREFIX=`pwd`/tmp; cd build; $(MAKE) install PREFIX="$${PREFIX}" + prefix=`pwd`/tmp; cd build; $(MAKE) install prefix=$(prefix) su -c "chown -R root.root tmp && cd tmp; tar czf ../ecl-$(VERSION)-$(MACHINE).tgz * && cd .. && rm -rf tmp" # This creates a ZIP file with a flattened directory structure windows-dist: all cd build; rm -rf $(TAR_DIR); mkdir $(TAR_DIR); \ - $(MAKE) flatinstall PREFIX=`pwd`/$(TAR_DIR); \ + $(MAKE) flatinstall prefix=`pwd`/$(TAR_DIR); \ zip -r $(TAR_DIR).zip $(TAR_DIR) dist: diff --git a/src/CHANGELOG b/src/CHANGELOG index 28e7b2cac..ec2b5aaac 100644 --- a/src/CHANGELOG +++ b/src/CHANGELOG @@ -1671,7 +1671,8 @@ ECL 0.9d compilation/linking flags for a given architecture. This is required in platforms such as Solaris/Ultrasparc, where there are multiple ABIs (i.e. applications may use 32-bit or 64-pointers, 32-bit or - 64-registers, etc). + 64-registers, etc). On other platforms this process is not required, + and you may get a faster configuration using --enable-simple-conf * System design: Multithreading @@ -1728,6 +1729,9 @@ ECL 0.9d - HASH-TABLE-SIZE and HASH-TABLE-TEST have been finally implemented. + - The configuration process now does respect the values of libdir, + bindir, infodir,... supplied by the user. + * Documentation: - New manual page documents the scripting facilities of ECL @@ -1747,7 +1751,13 @@ ECL 0.9d logical pathnames. - Under windows, the system directory is defined to be the place - where ecl.exe resides. + where ecl.exe resides. Windows user will want to use the + command "make windows-dist", which builds a ZIP file with a + ready to be installed ECL. + + - If you want to install ECL to a different place, use "make prefix=..." + instead of the old form "make PREFIX=...". ECL now follows the GNU + coding standards in this particular point. TODO: ===== diff --git a/src/Makefile.in b/src/Makefile.in index 2f971bcbf..eaa8a9211 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -21,9 +21,10 @@ EXE = @EXEEXT@ # 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@ -infodir=@infodir@ # Programs used by "make install": # @@ -56,19 +57,21 @@ ecl_min$(EXE): $(LIBRARIES) .gdbinit libecl.a if [ -f CROSS-COMPILER ]; then \ touch $@; \ else \ - $(CC) $(LDFLAGS) -o $@ c/cinit.o -L./ libecl.a -lgmp -lgc $(LIBS);\ + $(CC) $(LDFLAGS) -o $@ c/cinit.o -L./ @LIBPREFIX@ecl.@LIBEXT@ -lgmp -lgc $(LIBS);\ fi .gdbinit: $(srcdir)/util/gdbinit cp $(srcdir)/util/gdbinit $@ -libecl.a: libgmp.a libgc.a +lsp/config.lsp: lsp/config.lsp.in + sed -e 's,@ecldir@,$(libdir),g' < lsp/config.lsp.in > lsp/config.lsp +@LIBPREFIX@ecl.@LIBEXT@: @LIBPREFIX@gmp.@LIBEXT@ @LIBPREFIX@gc.@LIBEXT@ lsp/config.lsp cd c; $(MAKE) -libgc.a: +@LIBPREFIX@gc.@LIBEXT@: if (echo $(SUBDIR) | grep gc); then \ cd gc; $(MAKE) install; \ fi -libgmp.a: +@LIBPREFIX@gmp.@LIBEXT@: if (echo $(SUBDIR) | grep gmp); then \ cd gmp; $(MAKE) install; \ fi @@ -79,38 +82,26 @@ 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 + cd c; $(MAKE) prefix=$(prefix) install + cd doc; $(MAKE) prefix=$(prefix) install install-base: - $(mkinstalldirs) $(PREFIX)$(bindir) $(PREFIX)$(libdir)/h + $(mkinstalldirs) $(bindir) $(libdir)/h for i in $(TARGETS); do \ - $(INSTALL) -s $$i $(PREFIX)$(bindir); \ + $(INSTALL) -s $$i $(bindir); \ done - $(INSTALL_PROGRAM) -s $(TARGETS) $(PREFIX)$(bindir) + $(INSTALL_PROGRAM) -s $(TARGETS) $(bindir) sed 's,~A,$(libdir),;s,~\*,,;' ecl-config > foo; \ - $(INSTALL_PROGRAM) foo $(PREFIX)$(bindir)/ecl-config; \ + $(INSTALL_PROGRAM) foo $(bindir)/ecl-config; \ rm foo for i in BUILD-STAMP $(LSP_LIBRARIES) $(LIBRARIES) c/dpp* help.doc ; do \ - $(INSTALL_DATA) $$i $(PREFIX)$(libdir); \ + $(INSTALL_DATA) $$i $(libdir); \ done - $(INSTALL_DATA) h/config.h $(PREFIX)$(libdir)/h - if (echo $(SUBDIR) | grep gc); then $(MAKE) installgc; fi - if (echo $(SUBDIR) | grep gmp); then $(MAKE) installgmp; fi -installgc: - $(mkinstalldirs) $(PREFIX)$(libdir)/h/private - for i in $(srcdir)/gc/include/*.h; do \ - $(INSTALL_DATA) $$i $(PREFIX)$(libdir)/h/; \ - done - for i in $(srcdir)/gc/include/private/*.h; do \ - $(INSTALL_DATA) $$i $(PREFIX)$(libdir)/h/private/; \ - done -installgmp: - $(INSTALL_DATA) h/gmp.h $(PREFIX)$(libdir)/h/ + $(INSTALL_DATA) h/config.h $(libdir)/h flatinstall: BUILD-STAMP - $(MAKE) install PREFIX= bindir=$(PREFIX) libdir=$(PREFIX) install-base - cd c; $(MAKE) PREFIX=$(PREFIX) flatinstall - cd doc; $(MAKE) PREFIX=$(PREFIX) flatinstall + $(MAKE) install bindir=$(prefix) libdir=$(prefix) install-base + cd c; $(MAKE) prefix=$(prefix) flatinstall + cd doc; $(MAKE) prefix=$(prefix) flatinstall uninstall: for i in $(TARGETS) ecl-config; do rm -rf $(bindir)/$$i; done diff --git a/src/c/Makefile.in b/src/c/Makefile.in index d43cb9067..b46924328 100644 --- a/src/c/Makefile.in +++ b/src/c/Makefile.in @@ -20,7 +20,9 @@ DPP = ./dpp$(EXE) # INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ -libdir = @libdir@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ # Files @@ -55,14 +57,18 @@ all: $(DPP) ../libecl.a cinit.o .PHONY: all install: $(HFILES) - for i in $(HFILES); do $(INSTALL_DATA) $$i $(PREFIX)$(libdir)/h/; done + for i in $(HFILES); do $(INSTALL_DATA) $$i $(libdir)/h/; done sed '/-CUT-/,$$d' ../h/config.h > ../h/config-install.h - $(INSTALL_DATA) ../h/config-install.h $(PREFIX)$(libdir)/h/config.h -flatinstall: $(HFILES) - for i in $(HFILES); do $(INSTALL_DATA) $$i $(PREFIX)/h/; done - sed '/-CUT-/,$$d' ../h/config.h > ../h/config-install.h - $(INSTALL_DATA) ../h/config-install.h $(PREFIX)/h/config.h + $(INSTALL_DATA) ../h/*.h $(libdir)/h/ + rm $(libdir)/h/config.h + mv $(libdir)/h/config-install.h $(libdir)/h/config.h +flatinstall: $(HFILES) + for i in $(HFILES); do $(INSTALL_DATA) $$i $(prefix)/h/; done + sed '/-CUT-/,$$d' ../h/config.h > ../h/config-install.h + $(INSTALL_DATA) ../h/*.h $(prefix)/h/ + rm $(prefix)/h/config.h + mv $(prefix)/h/config-install.h $(prefix)/h/config.h ../libecl.a: $(OBJS) $(RM) $@ diff --git a/src/c/main.d b/src/c/main.d index ba2de76b2..408ea282f 100644 --- a/src/c/main.d +++ b/src/c/main.d @@ -262,7 +262,7 @@ cl_boot(int argc, char **argv) mp_make_lock(2, @':name', @'mp::+load-compile-lock+')); #endif aux = cl_list( -#ifdef ECL_DLOPEN +#ifdef ENABLE_DLOPEN 4,CONS(make_simple_string("fas"), @'si::load-binary'), #else 3, diff --git a/src/configure b/src/configure index 993a70c4c..21b47baa4 100755 --- a/src/configure +++ b/src/configure @@ -3742,13 +3742,8 @@ if test "$ac_cv_search_strerror" != no; then fi -if test "x$prefix" = "xNONE"; then prefix=${ac_default_prefix}; fi -if test "x$exec_prefix" = "xNONE"; then exec_prefix=${prefix}; fi -bindir="${exec_prefix}/bin" -libdir="${exec_prefix}/lib/ecl" -includedir="${exec_prefix}/lib/ecl/h" -mandir="${prefix}/man" -infodir="${prefix}/info" +libdir="${libdir}/ecl" +includedir="${libdir}/ecl/h" @@ -6027,6 +6022,8 @@ fi ac_config_files="$ac_config_files h/configpre:h/config.h.in" + ac_config_files="$ac_config_files lsp/config.lsp.in:lsp/config.lsp.in" + ac_config_headers="$ac_config_headers h/config.h:h/configpre" cat >confcache <<\_ACEOF @@ -6571,6 +6568,7 @@ do "gabriel/Makefile" ) CONFIG_FILES="$CONFIG_FILES gabriel/Makefile" ;; "ecl-config" ) CONFIG_FILES="$CONFIG_FILES ecl-config:util/ecl-config" ;; "h/configpre" ) CONFIG_FILES="$CONFIG_FILES h/configpre:h/config.h.in" ;; + "lsp/config.lsp.in" ) CONFIG_FILES="$CONFIG_FILES lsp/config.lsp.in:lsp/config.lsp.in" ;; "h/config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS h/config.h:h/configpre" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} diff --git a/src/configure.in b/src/configure.in index e36b2a792..ee6f43776 100644 --- a/src/configure.in +++ b/src/configure.in @@ -148,13 +148,8 @@ AC_ISC_POSIX dnl ---------------------------------------------------------------------- dnl Installation directories dnl -if test "x$prefix" = "xNONE"; then prefix=${ac_default_prefix}; fi -if test "x$exec_prefix" = "xNONE"; then exec_prefix=${prefix}; fi -bindir="${exec_prefix}/bin" -libdir="${exec_prefix}/lib/ecl" -includedir="${exec_prefix}/lib/ecl/h" -mandir="${prefix}/man" -infodir="${prefix}/info" +libdir="${libdir}/ecl" +includedir="${libdir}/ecl/h" dnl ---------------------------------------------------------------------- dnl Checks which do not come with autoconf @@ -374,5 +369,6 @@ AC_CONFIG_FILES(compile.lsp bare.lsp tk/Makefile tests/Makefile ansi-tests/Makefile gabriel/Makefile) AC_CONFIG_FILES([ecl-config:util/ecl-config],[chmod +x ecl-config]) AC_CONFIG_FILES([h/configpre:h/config.h.in]) +AC_CONFIG_FILES([lsp/config.lsp.in:lsp/config.lsp.in]) AC_CONFIG_HEADER([h/config.h:h/configpre]) AC_OUTPUT diff --git a/src/doc/Makefile.in b/src/doc/Makefile.in index afe5476fc..06bea0861 100644 --- a/src/doc/Makefile.in +++ b/src/doc/Makefile.in @@ -1,8 +1,9 @@ top_srcdir= @top_srcdir@ srcdir = @srcdir@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ infodir = @infodir@ -libdir = @libdir@ mandir=@mandir@ manext=1 @@ -33,28 +34,28 @@ ecldev.ps: ecldev.dvi $(srcdir)/macros.txi dvips -o $@ ecldev.dvi install: all - $(mkinstalldirs) $(PREFIX)$(infodir) - $(INSTALL_DATA) ecl.info $(PREFIX)$(infodir) - $(INSTALL_DATA) ecldev.info $(PREFIX)$(infodir) - $(mkinstalldirs) $(PREFIX)$(mandir)/man$(manext) - $(INSTALL_DATA) ecl.man $(PREFIX)$(mandir)/man$(manext)/ecl.$(manext) + $(mkinstalldirs) $(infodir) + $(INSTALL_DATA) ecl.info $(infodir) + $(INSTALL_DATA) ecldev.info $(infodir) + $(mkinstalldirs) $(mandir)/man$(manext) + $(INSTALL_DATA) ecl.man $(mandir)/man$(manext)/ecl.$(manext) flatinstall: all - $(mkinstalldirs) $(PREFIX)/doc - $(INSTALL_DATA) ecl.info $(PREFIX)/doc - $(INSTALL_DATA) ecldev.info $(PREFIX)/doc + $(mkinstalldirs) $(prefix)/doc + $(INSTALL_DATA) ecl.info $(prefix)/doc + $(INSTALL_DATA) ecldev.info $(prefix)/doc if [ -f user.html ]; then \ - $(INSTALL_DATA) $$i $(PREFIX)/doc/; \ + $(INSTALL_DATA) $$i $(prefix)/doc/; \ else \ - $(mkinstalldirs) $(PREFIX)/doc/ecl; \ - for i in ecl/*; do $(INSTALL_DATA) $$i $(PREFIX)/doc/ecl/; done; \ + $(mkinstalldirs) $(prefix)/doc/ecl; \ + for i in ecl/*; do $(INSTALL_DATA) $$i $(prefix)/doc/ecl/; done; \ fi if [ -f devel.html ]; then \ - $(INSTALL_DATA) devel.html $(PREFIX)/doc/; \ + $(INSTALL_DATA) devel.html $(prefix)/doc/; \ else \ - $(mkinstalldirs) $(PREFIX)/doc/ecldev; \ - for i in ecldev/*; do $(INSTALL_DATA) $$i $(PREFIX)/doc/ecldev/; done; \ + $(mkinstalldirs) $(prefix)/doc/ecldev; \ + for i in ecldev/*; do $(INSTALL_DATA) $$i $(prefix)/doc/ecldev/; done; \ fi - for i in *.html; do $(INSTALL_DATA) $$i $(PREFIX)/doc/; done + for i in *.html; do $(INSTALL_DATA) $$i $(prefix)/doc/; done uninstall: rm -r $(infodir)/ecl.info $(infodir)/ecldev.info diff --git a/src/lsp/config.lsp.in b/src/lsp/config.lsp.in index 210ac0fb8..9d6a63353 100644 --- a/src/lsp/config.lsp.in +++ b/src/lsp/config.lsp.in @@ -67,9 +67,11 @@ Returns, as a string, the version of the software under which ECL runs." ;; * Set configuration pathnames. Notice the trailing slash! ;; Otherwise it would not be a directory. ;; -#-mingw32 -(si::pathname-translations "SYS" '(("**;*.*" "@libdir@/**/*.*"))) -#+mingw32 -(si::pathname-translations "SYS" - `(("**;*.*" ,(merge-pathnames "**/*.*" (si::argv 0))))) +#+(and (not mingw32) (not ecl-min)) +(si::pathname-translations "SYS" '(("**;*.*" "@ecldir@/**/*.*"))) +#+(and mingw32 (not ecl-min)) +(let ((d (merge-pathnames "**/*.*" + (or (si::getenv "ECLDIR") (si::argv 0))))) + (si::pathname-translations "SYS" + `(("**;*.*" ,d)))) (si::pathname-translations "HOME" '(("**;*.*" "~/**/*.*"))) diff --git a/src/util/ecl.spec b/src/util/ecl.spec index 335e13c90..6b90e20fb 100644 --- a/src/util/ecl.spec +++ b/src/util/ecl.spec @@ -89,7 +89,6 @@ _d=$_r/%{_docdir}/%{_nv} for i in \ build/doc/*.html \ src/doc/BUGS \ - src/doc/help.lsp \ src/doc/todo.txt do %{__install} -m 644 $i $_d @@ -108,15 +107,15 @@ done # BUG: to fix problems in the installation code # -# BUG: the cause of the first problem is in the configure.in which set the values of -# libdir, infodir, bindir -( - cd $_r/%{_prefix} - %{__installdir} -m 755 share - %{__mv} man info share -) -# BUG: the cause of this problem is an 'install -m 644' that installs "cmp.so" with -# some archive files and lisp files. +# BUG: the cause of the first problem is in the configure.in which set the +# values of libdir, infodir, bindir +#( +# cd $_r/%{_prefix} +# %{__installdir} -m 755 share +# %{__mv} man info share +#) +# BUG: the cause of this problem is an 'install -m 644' that installs "cmp.so" +# with some archive files and lisp files. # find $_r -name "*.fas" | xargs chmod a+x ##################################################