Second attempt :) On Sat, Dec 04, 2010 at 08:53:16PM +0500, Alexandr Shadchin wrote: > > 1) reorder, cleanup and aligned in Makefile > 2) add CONFIGURE_ARGS += --enable-unicode
remove CONFIGURE_ARGS += --enable-unicode because add two regress in math/maxima (rtest8: 125, 126) > 3) fix replacement of ecl-config.1 on ecl.1 > 4) remove create symlinks lib/libecl.so returned symlink lib/libecl.so plus 5) remove create lib/{Copyright, LGPL} (or better to be moved to share/ecl ?) 6) fix two regress math/maxima (rtest16: 382, 383) based on the commit http://ecls.git.sourceforge.net/git/gitweb.cgi?p=ecls/ecl;a=commit;h=ed8dbe4c139f3428abbbda962d9bd243ab5eb777 Tested on amd64. -- Alexandr Shadchin Index: Makefile =================================================================== RCS file: /cvs/ports/lang/ecl/Makefile,v retrieving revision 1.10 diff -u -p -r1.10 Makefile --- Makefile 4 Dec 2010 14:36:19 -0000 1.10 +++ Makefile 7 Dec 2010 16:41:17 -0000 @@ -1,53 +1,52 @@ # $OpenBSD: Makefile,v 1.10 2010/12/04 14:36:19 espie Exp $ -COMMENT = embeddable common-lisp -CATEGORIES = lang +COMMENT = embeddable common-lisp +BROKEN-hppa = infinite loop during build -BROKEN-hppa = infinite loop during build +V = 10.4.1 +DISTNAME = ecl-$V +REVISION = 0 +SHARED_LIBS = ecl 1.0 -V = 10.4.1 -DISTNAME = ecl-$V -SHARED_LIBS += ecl 1.0 +CATEGORIES = lang -HOMEPAGE = http://ecls.sourceforge.net/ -SUBST_VARS = V +HOMEPAGE = http://ecls.sourceforge.net/ -# GPLv2 or later -PERMIT_PACKAGE_CDROM = Yes +# LGPLv2 +PERMIT_PACKAGE_CDROM = Yes PERMIT_PACKAGE_FTP = Yes -PERMIT_DISTFILES_CDROM = Yes -PERMIT_DISTFILES_FTP = Yes +PERMIT_DISTFILES_CDROM =Yes +PERMIT_DISTFILES_FTP = Yes MASTER_SITES = ${MASTER_SITE_SOURCEFORGE:=ecls/} -CONFIGURE_STYLE = gnu -USE_GMAKE = Yes -USE_LIBTOOL = Yes +WANTLIB = c gc gmp m pthread + +LIB_DEPENDS = devel/boehm-gc \ + devel/gmp + +SUBST_VARS = V + +USE_GMAKE = Yes USE_GROFF = Yes -NO_REGRESS = Yes -CONFIGURE_ENV += LDFLAGS='-pthread -L${LOCALBASE}/lib' \ - CPPFLAGS=-I${LOCALBASE}/include \ - CFLAGS='${CFLAGS} -pthread' \ - ECLLIB_VERSION=${LIBecl_VERSION} + +NO_REGRESS = Yes + +CONFIGURE_STYLE = gnu +CONFIGURE_ARGS = --enable-boehm=system \ + --with-system-gmp +CONFIGURE_ENV = ECLLIB_VERSION=${LIBecl_VERSION} \ + CPPFLAGS="-I${LOCALBASE}/include" \ + LDFLAGS="-L${LOCALBASE}/lib" + +MODGNU_CONFIG_GUESS_DIRS = ${WRKDIST} \ + ${WRKDIST}/src + FLAVORS = debug FLAVOR ?= -CONFIGURE_ARGS += --enable-boehm=system \ - --with-system-gmp \ - --with-gmp-prefix=${LOCALBASE} \ - .if ${FLAVOR:L:Mdebug} CONFIGURE_ARGS += --with-debug-cflags=-g .endif - -MODGNU_CONFIG_GUESS_DIRS = ${WRKDIST} \ - ${WRKDIST}/src \ - ${WRKDIST}/src/gc \ - ${WRKDIST}/src/gmp - -LIB_DEPENDS += devel/gmp \ - devel/boehm-gc - -WANTLIB += c gc gmp m pthread .include <bsd.port.mk> Index: patches/patch-src_Makefile_in =================================================================== RCS file: /cvs/ports/lang/ecl/patches/patch-src_Makefile_in,v retrieving revision 1.2 diff -u -p -r1.2 patch-src_Makefile_in --- patches/patch-src_Makefile_in 4 Dec 2010 14:36:19 -0000 1.2 +++ patches/patch-src_Makefile_in 7 Dec 2010 16:41:17 -0000 @@ -1,6 +1,6 @@ $OpenBSD: patch-src_Makefile_in,v 1.2 2010/12/04 14:36:19 espie Exp $ ---- src/Makefile.in.orig Sun Apr 4 16:31:27 2010 -+++ src/Makefile.in Sun Nov 28 20:14:34 2010 +--- src/Makefile.in.orig Sun Apr 4 20:31:27 2010 ++++ src/Makefile.in Sun Dec 5 15:28:33 2010 @@ -152,6 +152,7 @@ install: for i in BUILD-STAMP help.doc TAGS ; do \ $(INSTALL_DATA) $$i $(DESTDIR)$(ecldir); \ @@ -9,7 +9,7 @@ $OpenBSD: patch-src_Makefile_in,v 1.2 20 for i in $(LSP_LIBRARIES) $(LIBRARIES); do \ if test -s $$i ; then \ if echo $$i | grep dll; then \ -@@ -160,13 +161,7 @@ install: +@@ -160,25 +161,16 @@ install: $(INSTALL_LIBRARY) $$i $(DESTDIR)$(libdir); \ fi \ done @@ -24,3 +24,17 @@ $OpenBSD: patch-src_Makefile_in,v 1.2 20 for i in c/dpp$(EXE) ecl_min$(EXE) `cat MODULES`; do \ case $$i in \ *.fas) $(INSTALL_PROGRAM) $$i $(DESTDIR)$(ecldir);; \ + *) $(INSTALL_DATA) $$i $(DESTDIR)$(ecldir);; \ + esac \ + done +- for i in Copyright LGPL; do \ +- $(INSTALL_DATA) $(top_srcdir)/../$$i $(DESTDIR)$(libdir); \ +- done + $(mkinstalldirs) $(DESTDIR)$(mandir)/man$(manext) +- for i in doc/ecl.man doc/ecl-config.man; do \ +- $(INSTALL_DATA) $$i $(DESTDIR)$(mandir)/man$(manext)/ecl.$(manext); \ ++ for i in ecl ecl-config; do \ ++ $(INSTALL_DATA) doc/$$i.man $(DESTDIR)$(mandir)/man$(manext)/$$i.$(manext); \ + done + + flatinstall: BUILD-STAMP Index: patches/patch-src_c_num_sfun_d =================================================================== RCS file: patches/patch-src_c_num_sfun_d diff -N patches/patch-src_c_num_sfun_d --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_c_num_sfun_d 7 Dec 2010 16:41:17 -0000 @@ -0,0 +1,105 @@ +$OpenBSD$ +--- src/c/num_sfun.d.orig Sun Apr 4 20:31:28 2010 ++++ src/c/num_sfun.d Tue Dec 7 21:34:18 2010 +@@ -153,52 +153,67 @@ cl_exp(cl_object x) + } + + cl_object +-cl_expt(cl_object x, cl_object y) ++expt_zero(cl_object x, cl_object y) + { + cl_type ty, tx; + cl_object z; +- ty = type_of(y); +- if (ecl_unlikely(!ECL_NUMBER_TYPE_P(ty))) { +- FEwrong_type_nth_arg(@[expt], 2, y, @[number]); ++ ty = type_of(y); ++ tx = type_of(x); ++ if (ecl_unlikely(!ECL_NUMBER_TYPE_P(tx))) { ++ FEwrong_type_nth_arg(@[expt], 1, x, @[number]); + } +- tx = type_of(x); +- if (ecl_unlikely(!ECL_NUMBER_TYPE_P(tx))) { +- FEwrong_type_nth_arg(@[expt], 2, x, @[number]); +- } +- if (ecl_zerop(y)) { +- /* INV: The most specific numeric types come first. */ +- switch ((ty > tx)? ty : tx) { +- case t_fixnum: +- case t_bignum: +- case t_ratio: +- z = MAKE_FIXNUM(1); break; ++ /* INV: The most specific numeric types come first. */ ++ switch ((ty > tx)? ty : tx) { ++ case t_fixnum: ++ case t_bignum: ++ case t_ratio: ++ return MAKE_FIXNUM(1); + #ifdef ECL_SHORT_FLOAT +- case t_shortfloat: +- z = make_shortfloat(1.0); break; ++ case t_shortfloat: ++ return make_shortfloat(1.0); + #endif +- case t_singlefloat: +- z = ecl_make_singlefloat(1.0); break; +- case t_doublefloat: +- z = ecl_make_doublefloat(1.0); break; ++ case t_singlefloat: ++ return ecl_make_singlefloat(1.0); ++ case t_doublefloat: ++ return ecl_make_doublefloat(1.0); + #ifdef ECL_LONG_FLOAT +- case t_longfloat: +- z = ecl_make_longfloat(1.0); break; ++ case t_longfloat: ++ return ecl_make_longfloat(1.0); + #endif +- case t_complex: +- z = cl_expt((tx == t_complex)? x->complex.real : x, +- (ty == t_complex)? y->complex.real : y); +- z = ecl_make_complex(z, MAKE_FIXNUM(0)); +- break; +- default: +- /* We will never reach this */ +- (void)0; +- } +- } else if (ecl_zerop(x)) { ++ case t_complex: ++ z = expt_zero((tx == t_complex)? x->complex.real : x, ++ (ty == t_complex)? y->complex.real : y); ++ return ecl_make_complex(z, MAKE_FIXNUM(0)); ++ default: ++ /* We will never reach this */ ++ (void)0; ++ } ++} ++ ++cl_object ++cl_expt(cl_object x, cl_object y) ++{ ++ cl_type ty, tx; ++ cl_object z; ++ if (ecl_unlikely(ecl_zerop(y))) { ++ @(return expt_zero(x, y)); ++ } ++ ty = type_of(y); ++ tx = type_of(x); ++ if (ecl_unlikely(!ECL_NUMBER_TYPE_P(tx))) { ++ FEwrong_type_nth_arg(@[expt], 1, x, @[number]); ++ } ++ if (ecl_zerop(x)) { + z = ecl_times(x, y); + if (!ecl_plusp(ty==t_complex?y->complex.real:y)) + z = ecl_divide(MAKE_FIXNUM(1), z); + } else if (ty != t_fixnum && ty != t_bignum) { +- z = ecl_log1(x); ++ /* The following could be just ++ z = ecl_log1(x); ++ however, Maxima expects EXPT to have double accuracy ++ when the first argument is integer and the second ++ is double-float */ ++ z = ecl_log1(ecl_times(x, expt_zero(x, y))); + z = ecl_times(z, y); + z = cl_exp(z); + } else if (ecl_minusp(y)) { Index: patches/patch-src_configure =================================================================== RCS file: /cvs/ports/lang/ecl/patches/patch-src_configure,v retrieving revision 1.2 diff -u -p -r1.2 patch-src_configure --- patches/patch-src_configure 4 Dec 2010 14:36:19 -0000 1.2 +++ patches/patch-src_configure 7 Dec 2010 16:41:17 -0000 @@ -1,14 +1,16 @@ $OpenBSD: patch-src_configure,v 1.2 2010/12/04 14:36:19 espie Exp $ ---- src/configure.orig Sun Apr 4 16:31:32 2010 -+++ src/configure Sun Nov 28 20:13:19 2010 -@@ -13715,13 +13715,14 @@ _ACEOF - - fi - -+: ${ECLLIB_VERSION:=8.12} - if test ${enable_shared} = "yes"; then - - cat >>confdefs.h <<\_ACEOF +--- src/configure.orig Sun Apr 4 20:31:32 2010 ++++ src/configure Fri Jul 23 00:18:53 2010 +@@ -4459,7 +4459,7 @@ case "${host_os}" in + SHARED_LDFLAGS="-shared ${LDFLAGS}" + BUNDLE_LDFLAGS="-shared ${LDFLAGS}" + ECL_LDRPATH="-Wl,--rpath,~A" +- clibs="-lpthread -lm" ++ clibs="-pthread -lm" + SONAME="${SHAREDPREFIX}ecl.${SHAREDEXT}.SOVERSION" + SONAME_LDFLAGS="-Wl,-soname,SONAME" + ;; +@@ -13721,7 +13721,7 @@ cat >>confdefs.h <<\_ACEOF #define ENABLE_DLOPEN 1 _ACEOF Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/lang/ecl/pkg/PLIST,v retrieving revision 1.4 diff -u -p -r1.4 PLIST --- pkg/PLIST 4 Dec 2010 14:36:19 -0000 1.4 +++ pkg/PLIST 7 Dec 2010 16:41:17 -0000 @@ -18,8 +18,6 @@ include/ecl/object.h include/ecl/page.h include/ecl/stacks.h include/ecl/unify.h -lib/Copyright -lib/LGPL lib/ecl-${V}/ lib/ecl-${V}/BUILD-STAMP lib/ecl-${V}/TAGS @@ -54,4 +52,5 @@ lib/ecl-${V}/sockets.asd @bin lib/ecl-${V}/sockets.fas lib/ecl-${V}/sysfun.lsp lib/ecl-${V}/ucd.dat +...@man man/man1/ecl-config.1 @man man/man1/ecl.1