From 1c03bfe4a957b47d09657f79099a31142752248f Mon Sep 17 00:00:00 2001 From: sam Date: Thu, 21 Aug 2003 12:40:09 +0000 Subject: [PATCH] * src/build: + Build libelk as shared and static libraries. + Dynamically link scheme with -lelk * debian/control: + New libelk0 and libelk0-dev packages. * debian/rules: + Changed build rules according to the new libelk. + Remove .svn directories from the examples in the elkdoc package. git-svn-id: svn://svn.zoy.org/elk/trunk@19 55e467fa-43c5-0310-a8a2-de718669efc6 --- debian/changelog | 6 ++++++ debian/control | 37 ++++++++++++++++++++++++++++++------- debian/libelk0-dev.dirs | 3 +++ debian/libelk0.dirs | 2 ++ debian/rules | 14 +++++++++++--- lib/xaw/build | 4 ++-- lib/xm/build | 4 ++-- src/build | 28 +++++++++++++++------------- 8 files changed, 71 insertions(+), 27 deletions(-) create mode 100644 debian/libelk0-dev.dirs create mode 100644 debian/libelk0.dirs diff --git a/debian/changelog b/debian/changelog index 20e9fab..e6f86fc 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +elk (3.99-1) unstable; urgency=low + + * Pending release. + + -- Sam Hocevar (Debian packages) Thu, 21 Aug 2003 12:55:31 +0200 + elk (3.0-16) unstable; urgency=low * **/build: Use gcc to link shared objects instead of ld, because gcc does diff --git a/debian/control b/debian/control index 6b26184..b72c761 100644 --- a/debian/control +++ b/debian/control @@ -2,26 +2,49 @@ Source: elk Section: devel Priority: optional Maintainer: Sam Hocevar (Debian packages) -Build-Depends: debhelper (>= 3.0), libelfg0-dev, xlibs-dev, lesstif-dev, libgdbm-dev, libxaw7-dev +Build-Depends: debhelper (>= 3.0), groff-base, libelfg0-dev, xlibs-dev, lesstif-dev, libgdbm-dev, libxaw7-dev Standards-Version: 3.6.0 Package: elk Architecture: any -Section: devel +Section: interpreters Priority: optional Depends: ${shlibs:Depends} Conflicts: pact (<= 980714-1) +Description: the Elk Scheme interpreted + Elk is an implementation of the Scheme programming language, + designed specifically as an embeddable, reusable extension + language subsystem for applications written in C or C++. + . + This package contains the Elk Scheme interpreter. + +Package: libelk0 +Architecture: any +Section: libs +Priority: optional +Depends: ${shlibs:Depends} Description: implementation of Scheme (the Extension Language Kit) Elk is an implementation of the Scheme programming language, designed specifically as an embeddable, reusable extension language subsystem for applications written in C or C++. . - Elk is also useful as a stand-alone Scheme implementation. + This package contains the libelk0 runtime library, as well as several plugins + shipped with Elk. They provide hooks for Unix system calls, the X Window + System, as well as the X Athena Widgets and the Motif toolkits. Example + scripts on how to use these plugins are provided in the elkdoc package. + +Package: libelk0-dev +Architecture: any +Section: libdevel +Priority: optional +Depends: ${shlibs:Depends} +Description: development files for libelk0 + Elk is an implementation of the Scheme programming language, + designed specifically as an embeddable, reusable extension + language subsystem for applications written in C or C++. . - This package also contains several plugins shipped with Elk. They provide - hooks for Unix system calls, the X Window System, as well as the X Athena - Widgets and the Motif toolkits. Example scripts on how to use these plugins - are provided in the elkdoc package. + This package contains the header files and static library needed to + compile applications that use libelk0. Package: elkdoc Architecture: all diff --git a/debian/libelk0-dev.dirs b/debian/libelk0-dev.dirs new file mode 100644 index 0000000..8c113cd --- /dev/null +++ b/debian/libelk0-dev.dirs @@ -0,0 +1,3 @@ +usr/lib +usr/include/elk +usr/share/doc diff --git a/debian/libelk0.dirs b/debian/libelk0.dirs new file mode 100644 index 0000000..2e6d5f6 --- /dev/null +++ b/debian/libelk0.dirs @@ -0,0 +1,2 @@ +usr/lib +usr/share/doc diff --git a/debian/rules b/debian/rules index 299fa57..52019df 100755 --- a/debian/rules +++ b/debian/rules @@ -50,7 +50,14 @@ install: build install -m 755 debian/scheme-warning-elk $(CURDIR)/debian/elk/usr/bin/ install -m 644 debian/elk.ini $(CURDIR)/debian/elk/usr/share/elk -# dh_movefiles + mv $(CURDIR)/debian/elk/usr/lib/*.so.* \ + $(CURDIR)/debian/libelk0/usr/lib/ + + mv $(CURDIR)/debian/elk/usr/include/elk/* \ + $(CURDIR)/debian/libelk0-dev/usr/include/elk/ + mv $(CURDIR)/debian/elk/usr/lib/*.so \ + $(CURDIR)/debian/elk/usr/lib/*.a \ + $(CURDIR)/debian/libelk0-dev/usr/lib/ # Build architecture-independent files here. # Pass -i to all debhelper commands in this target to reduce clutter. @@ -61,6 +68,7 @@ binary-indep: build install # dh_installdebconf dh_installdocs dh_installexamples examples/* + rm -Rf `find $(CURDIR)/debian/elkdoc/ -type d -name .svn` # dh_installmenu # dh_installemacsen # dh_installpam @@ -103,9 +111,9 @@ binary-arch: build install dh_compress dh_fixperms dh_installdeb -# dh_makeshlibs + dh_makeshlibs # dh_perl - dh_shlibdeps + dh_shlibdeps -L libelk0 -l debian/libelk0/usr/lib dh_gencontrol dh_md5sums dh_builddeb diff --git a/lib/xaw/build b/lib/xaw/build index 3ee3a5b..ac41d2f 100755 --- a/lib/xaw/build +++ b/lib/xaw/build @@ -86,10 +86,10 @@ WIDGET_SET= xaw ../../scripts/makedl \$@ \$@ .d.c: - ../../src/scheme \$(SCMFLAGS) -l mkwidget.scm \$< \$@ \$(WIDGET_SET) + LD_LIBRARY_PATH=../../src ../../src/scheme \$(SCMFLAGS) -l mkwidget.scm \$< \$@ \$(WIDGET_SET) .d.o: - ../../src/scheme \$(SCMFLAGS) -l mkwidget.scm \$< \$*.c \$(WIDGET_SET) + LD_LIBRARY_PATH=../../src ../../src/scheme \$(SCMFLAGS) -l mkwidget.scm \$< \$*.c \$(WIDGET_SET) \$(CC) \$(CFLAGS) -I\$(INC) -I../xlib $x11_incl -c \$*.c ../../scripts/makedl \$@ \$@ diff --git a/lib/xm/build b/lib/xm/build index 38b3f18..5d7806b 100755 --- a/lib/xm/build +++ b/lib/xm/build @@ -92,10 +92,10 @@ WIDGET_SET= xm ../../scripts/makedl \$@ \$@ .d.c: - ../../src/scheme \$(SCMFLAGS) -l mkwidget.scm \$< \$@ \$(WIDGET_SET) + LD_LIBRARY_PATH=../../src ../../src/scheme \$(SCMFLAGS) -l mkwidget.scm \$< \$@ \$(WIDGET_SET) .d.o: - ../../src/scheme \$(SCMFLAGS) -l mkwidget.scm \$< \$*.c \$(WIDGET_SET) + LD_LIBRARY_PATH=../../src ../../src/scheme \$(SCMFLAGS) -l mkwidget.scm \$< \$*.c \$(WIDGET_SET) \$(CC) \$(CFLAGS) -I\$(INC) -I../xlib $sys_incl -c \$*.c ../../scripts/makedl \$@ \$@ diff --git a/src/build b/src/build index 4908c2b..ed479de 100755 --- a/src/build +++ b/src/build @@ -112,17 +112,22 @@ OCOMMON=\\ type.o\\ vector.o -O1= \$(OCOMMON) libelk.o stab.o +O1= main.o O2= \$(OCOMMON) libelk2.o stab2.o O3= \$(OCOMMON) libelk3.o stab2.o -all: scheme libelk.so standalone.a module.a +all: libelk.so.0.0.0 libelk.a scheme -scheme: \$(O1) - \$(CC) -o \$@ \$(CFLAGS) \$(O1) \$(LDFLAGS) +scheme: libelk.so.0.0.0 \$(O1) + \$(CC) -o \$@ \$(CFLAGS) \$(O1) -L. -lelk \$(LDFLAGS) -libelk.so: \$(O3) - gcc -shared -o \$@ \$(O3) \$(LDFLAGS) +libelk.so.0.0.0: \$(O3) + \$(CC) -shared -fPIC -Wl,-soname,libelk.so.0 -o \$@ \$(O3) \$(LDFLAGS) + rm -f libelk.so.0 && ln -s libelk.so.0.0.0 libelk.so.0 + rm -f libelk.so && ln -s libelk.so.0 libelk.so + +libelk.a: \$(O3) + ar cru \$@ \$(O3) standalone.a: \$(O2) ar cru \$@ \$(O2) @@ -195,24 +200,21 @@ install: scheme standalone.a module.a echo mkdir $install_dir/bin; \\ mkdir $install_dir/bin; \\ fi - cp scheme $install_dir/bin + cp -d scheme $install_dir/bin -@if [ ! -d $install_dir/lib ]; then \\ echo mkdir $install_dir/lib; \\ mkdir $install_dir/lib; \\ fi - -@if [ ! -d $install_dir/lib/elk ]; then \\ - echo mkdir $install_dir/lib/elk; \\ - mkdir $install_dir/lib/elk; \\ - fi - cp standalone.a $install_dir/lib/elk - cp module.a $install_dir/lib/elk + cp -d libelk.a libelk.so libelk.so.* $install_dir/lib lint: lint \$(LINTFLAGS) -I\$(INC) \$(C) clean: rm -f *.o *.a core libelk2.c stab2.c libelk3.c + rm -f libelk.so.0.0.0 libelk.so.0 libelk.so libelk.a distclean: rm -f *.o *.a core libelk2.c stab2.c libelk3.c lint.out scheme Makefile.local + rm -f libelk.so.0.0.0 libelk.so.0 libelk.so libelk.a EOT