~ chicken-core (chicken-5) 8817a2cebbaf5599c7eb8d9bb9cda92406c09acf
commit 8817a2cebbaf5599c7eb8d9bb9cda92406c09acf
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Wed Dec 22 07:31:47 2010 +0100
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Wed Dec 22 07:31:47 2010 +0100
apply PROGRAM_PREFIX/SUFFIX also to share + lib subdirectories and library names; use distinctive subdir in include; remove msvc specific stuff from csc; use build-variable for actual library name; prefix/suffix-related build fixes; things may be broken at this point
diff --git a/Makefile.bsd b/Makefile.bsd
index 705afa69..c18a288b 100644
--- a/Makefile.bsd
+++ b/Makefile.bsd
@@ -56,7 +56,7 @@ endif
LINKER_LINK_SHARED_LIBRARY_OPTIONS = -shared
LINKER_LINK_SHARED_DLOADABLE_OPTIONS = -shared -Wl,-R"$(RUNTIME_LINKER_PATH)" -Wl,-L.
LINKER_LINK_SHARED_PROGRAM_OPTIONS = -Wl,-R"$(RUNTIME_LINKER_PATH)"
-LIBCHICKEN_SO_LINKER_OPTIONS = -Wl,-soname,libchicken.so$(SONAME_VERSION)
+LIBCHICKEN_SO_LINKER_OPTIONS = -Wl,-soname,lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX).so$(SONAME_VERSION)
LIBRARIES = -lm
NEEDS_RELINKING = yes
USES_SONAME = yes
diff --git a/Makefile.cross-linux-mingw b/Makefile.cross-linux-mingw
index 583f1a49..51facbf6 100644
--- a/Makefile.cross-linux-mingw
+++ b/Makefile.cross-linux-mingw
@@ -62,11 +62,10 @@ endif
C_COMPILER_SHARED_OPTIONS = -DPIC
LINKER_LINK_SHARED_LIBRARY_OPTIONS = -shared
LIBRARIES = -lm -lws2_32
-LIBCHICKEN_SO_LINKER_OPTIONS = -Wl,--out-implib,libchicken.dll.a
+LIBCHICKEN_SO_LINKER_OPTIONS = -Wl,--out-implib,lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX).dll.a
LIBCHICKEN_SO_LIBRARIES = -lws2_32
LIBUCHICKEN_SO_LIBRARIES = -lws2_32
-LIBCHICKEN_IMPORT_LIBRARY = libchicken.dll.a
-LIBUCHICKEN_IMPORT_LIBRARY = libuchicken.dll.a
+LIBCHICKEN_IMPORT_LIBRARY = lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX).dll.a
TARGET_C_COMPILER = gcc
TARGET_CXX_COMPILER = g++
@@ -82,14 +81,13 @@ include $(SRCDIR)/defaults.make
# main target
ifndef BUILD_SETUP_TOOLS
-TARGETS = libchicken$(A) libuchicken$(A) $(CHICKEN_PROGRAM)$(EXE) $(CSI_PROGRAM)$(EXE) \
- $(CHICKEN_PROFILE_PROGRAM)$(EXE) $(CSC_PROGRAM)$(EXE) libchicken$(SO) \
- libuchicken$(SO) \
+TARGETS = libchicken$(A) $(CHICKEN_PROGRAM)$(EXE) $(CSI_PROGRAM)$(EXE) \
+ $(CHICKEN_PROFILE_PROGRAM)$(EXE) $(CSC_PROGRAM)$(EXE) lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(SO) \
$(CHICKEN_BUG_PROGRAM)$(EXE)
else
-TARGETS = libchicken$(A) libuchicken$(A) $(CHICKEN_PROGRAM)$(EXE) $(CSI_PROGRAM)$(EXE) \
- $(CHICKEN_PROFILE_PROGRAM)$(EXE) $(CSC_PROGRAM)$(EXE) libchicken$(SO) \
- libuchicken$(SO) $(CHICKEN_INSTALL_PROGRAM)$(EXE) $(CHICKEN_UNINSTALL_PROGRAM)$(EXE) \
+TARGETS = libchicken$(A) $(CHICKEN_PROGRAM)$(EXE) $(CSI_PROGRAM)$(EXE) \
+ $(CHICKEN_PROFILE_PROGRAM)$(EXE) $(CSC_PROGRAM)$(EXE) lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(SO) \
+ $(CHICKEN_INSTALL_PROGRAM)$(EXE) $(CHICKEN_UNINSTALL_PROGRAM)$(EXE) \
$(CHICKEN_STATUS_PROGRAM)$(EXE) \
$(CHICKEN_BUG_PROGRAM)$(EXE)
endif
diff --git a/Makefile.cygwin b/Makefile.cygwin
index e1f70c69..39fa2e11 100644
--- a/Makefile.cygwin
+++ b/Makefile.cygwin
@@ -61,7 +61,7 @@ endif
C_COMPILER_SHARED_OPTIONS = -DPIC
LINKER_LINK_SHARED_LIBRARY_OPTIONS = -shared
LINKER_LINK_SHARED_PROGRAM_OPTIONS = -Wl,--dll-search-prefix=cyg
-LIBCHICKEN_SO_LINKER_OPTIONS = -Wl,--out-implib,libchicken.dll.a \
+LIBCHICKEN_SO_LINKER_OPTIONS = -Wl,--out-implib,lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX).dll.a \
-Wl,--export-all-symbols \
-Wl,--enable-auto-import \
-Wl,--image-base=0x10000000 \
@@ -70,7 +70,7 @@ LIBCHICKEN_SO_LINKER_OPTIONS = -Wl,--out-implib,libchicken.dll.a \
-Wl,--no-whole-archive
LIBRARIES = -lm
-LIBCHICKEN_IMPORT_LIBRARY = libchicken.dll.a
+LIBCHICKEN_IMPORT_LIBRARY = lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX).dll.a
# special files
diff --git a/Makefile.haiku b/Makefile.haiku
index e8b27425..2b3cde26 100644
--- a/Makefile.haiku
+++ b/Makefile.haiku
@@ -49,8 +49,7 @@ endif
LINKER_LINK_SHARED_LIBRARY_OPTIONS = -shared
LINKER_LINK_SHARED_DLOADABLE_OPTIONS = -L. -shared -Wl,-R$(RUNTIME_LINKER_PATH)
LINKER_LINK_SHARED_PROGRAM_OPTIONS = -Wl,-R$(RUNTIME_LINKER_PATH)
-LIBCHICKEN_SO_LINKER_OPTIONS = -Wl,-soname,libchicken.so$(SONAME_VERSION)
-LIBUCHICKEN_SO_LINKER_OPTIONS = -Wl,-soname,libuchicken.so$(SONAME_VERSION)
+LIBCHICKEN_SO_LINKER_OPTIONS = -Wl,-soname,lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX).so$(SONAME_VERSION)
LIBRARIES = -lnetwork
NEEDS_RELINKING = yes
USES_SONAME = yes
diff --git a/Makefile.linux b/Makefile.linux
index f4b8cc4a..686ae88d 100644
--- a/Makefile.linux
+++ b/Makefile.linux
@@ -50,7 +50,7 @@ endif
LINKER_LINK_SHARED_LIBRARY_OPTIONS = -shared
LINKER_LINK_SHARED_DLOADABLE_OPTIONS = -L. -shared -Wl,-R"$(RUNTIME_LINKER_PATH)"
LINKER_LINK_SHARED_PROGRAM_OPTIONS = -Wl,-R"$(RUNTIME_LINKER_PATH)"
-LIBCHICKEN_SO_LINKER_OPTIONS = -Wl,-soname,libchicken.so$(SONAME_VERSION)
+LIBCHICKEN_SO_LINKER_OPTIONS = -Wl,-soname,lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX).so$(SONAME_VERSION)
LIBRARIES = -lm -ldl
NEEDS_RELINKING = yes
USES_SONAME = yes
diff --git a/Makefile.macosx b/Makefile.macosx
index d7e72d09..8290c9f2 100644
--- a/Makefile.macosx
+++ b/Makefile.macosx
@@ -52,7 +52,7 @@ C_COMPILER_OPTIMIZATION_OPTIONS ?= -Os -fomit-frame-pointer
endif
endif
LINKER_LINK_SHARED_LIBRARY_OPTIONS = -dynamiclib -compatibility_version 1 -current_version 1.0 -install_name $@
-POSTINSTALL_PROGRAM_FLAGS = -change libchicken$(SO) $(LIBDIR)/libchicken$(SO)
+POSTINSTALL_PROGRAM_FLAGS = -change lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(SO) $(LIBDIR)/lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(SO)
LIBRARIAN_OPTIONS = scru
LINKER_LINK_SHARED_DLOADABLE_OPTIONS = -bundle -L.
ASSEMBLER_OPTIONS =
diff --git a/Makefile.mingw b/Makefile.mingw
index 67c2d354..34465cbe 100644
--- a/Makefile.mingw
+++ b/Makefile.mingw
@@ -70,9 +70,9 @@ RC_COMPILER ?= windres
LINKER_LINK_SHARED_LIBRARY_OPTIONS = -shared
LIBRARIES = -lm -lws2_32
LINKER_OPTIONS += -Wl,--enable-auto-import
-LIBCHICKEN_SO_LINKER_OPTIONS = -Wl,--out-implib,libchicken.dll.a
+LIBCHICKEN_SO_LINKER_OPTIONS = -Wl,--out-implib,lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX).dll.a
LIBCHICKEN_SO_LIBRARIES = -lm -lws2_32
-LIBCHICKEN_IMPORT_LIBRARY = libchicken.dll.a
+LIBCHICKEN_IMPORT_LIBRARY = lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX).dll.a
MAKEDIR_COMMAND_OPTIONS =
CUSTOM_RC_FILE = 1
@@ -165,6 +165,9 @@ endif
echo #ifndef C_INSTALL_LIB_HOME >>$@
echo # define C_INSTALL_LIB_HOME "$(LIBDIR)" >>$@
echo #endif >>$@
+ echo #ifndef C_INSTALL_LIB_NAME >>$@
+ echo # define C_INSTALL_LIB_NAME "$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX))" >>$@
+ echo #endif >>$@
echo #ifndef C_INSTALL_STATIC_LIB_HOME >>$@
echo # define C_INSTALL_STATIC_LIB_HOME "$(LIBDIR)" >>$@
echo #endif >>$@
@@ -222,6 +225,9 @@ endif
echo #ifndef C_TARGET_LIB_HOME >>$@
echo # define C_TARGET_LIB_HOME "$(TARGET_PREFIX)/lib" >>$@
echo #endif >>$@
+ echo #ifndef C_TARGET_LIB_NAME >>$@
+ echo # define C_TARGET_LIB_NAME "$(INSTALL_LIB_NAME)" >>$@
+ echo #endif >>$@
echo #ifndef C_TARGET_RUN_LIB_HOME >>$@
echo # define C_TARGET_RUN_LIB_HOME "$(TARGET_PREFIX)/lib" >>$@
echo #endif >>$@
@@ -229,7 +235,7 @@ endif
echo # define C_TARGET_SHARE_HOME "$(TARGET_PREFIX)/share" >>$@
echo #endif >>$@
echo #ifndef C_TARGET_INCLUDE_HOME >>$@
- echo # define C_TARGET_INCLUDE_HOME "$(TARGET_PREFIX)/include" >>$@
+ echo # define C_TARGET_INCLUDE_HOME "$(TARGET_PREFIX)/include/chicken" >>$@
echo #endif >>$@
echo #ifndef C_TARGET_STATIC_LIB_HOME >>$@
echo # define C_TARGET_STATIC_LIB_HOME "$(TARGET_PREFIX)/lib" >>$@
diff --git a/Makefile.mingw-msys b/Makefile.mingw-msys
index 6e3bc1e0..630989db 100644
--- a/Makefile.mingw-msys
+++ b/Makefile.mingw-msys
@@ -63,9 +63,9 @@ C_COMPILER_SHARED_OPTIONS = -DPIC
LINKER_OPTIONS += -Wl,--enable-auto-import
LINKER_LINK_SHARED_LIBRARY_OPTIONS = -shared
LIBRARIES = -lm -lws2_32
-LIBCHICKEN_SO_LINKER_OPTIONS = -Wl,--out-implib,libchicken.dll.a
+LIBCHICKEN_SO_LINKER_OPTIONS = -Wl,--out-implib,lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX).dll.a
LIBCHICKEN_SO_LIBRARIES = -lm -lws2_32
-LIBCHICKEN_IMPORT_LIBRARY = libchicken.dll.a
+LIBCHICKEN_IMPORT_LIBRARY = lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX).dll.a
# Don't use "install" program as it is broken in some Mingw versions and
# Vista doesn't like it, anyway.
diff --git a/csc.scm b/csc.scm
index d74247a8..d57ca083 100644
--- a/csc.scm
+++ b/csc.scm
@@ -45,6 +45,7 @@
(define-foreign-variable INSTALL_MORE_STATIC_LIBS c-string "C_INSTALL_MORE_STATIC_LIBS")
(define-foreign-variable INSTALL_SHARE_HOME c-string "C_INSTALL_SHARE_HOME")
(define-foreign-variable INSTALL_LIB_HOME c-string "C_INSTALL_LIB_HOME")
+(define-foreign-variable INSTALL_LIB_NAME c-string "C_INSTALL_LIB_NAME")
(define-foreign-variable INSTALL_INCLUDE_HOME c-string "C_INSTALL_INCLUDE_HOME")
(define-foreign-variable INSTALL_STATIC_LIB_HOME c-string "C_INSTALL_STATIC_LIB_HOME")
(define-foreign-variable TARGET_MORE_LIBS c-string "C_TARGET_MORE_LIBS")
@@ -52,6 +53,7 @@
(define-foreign-variable TARGET_BIN_HOME c-string "C_TARGET_BIN_HOME")
(define-foreign-variable TARGET_SHARE_HOME c-string "C_TARGET_SHARE_HOME")
(define-foreign-variable TARGET_LIB_HOME c-string "C_TARGET_LIB_HOME")
+(define-foreign-variable TARGET_LIB_NAME c-string "C_TARGET_LIB_NAME")
(define-foreign-variable TARGET_INCLUDE_HOME c-string "C_TARGET_INCLUDE_HOME")
(define-foreign-variable TARGET_STATIC_LIB_HOME c-string "C_TARGET_STATIC_LIB_HOME")
(define-foreign-variable TARGET_RUN_LIB_HOME c-string "C_TARGET_RUN_LIB_HOME")
@@ -219,9 +221,7 @@
(string-append "/" default-library)))) ))
(define default-shared-library-files
- (if msvc
- (list (string-append "libchicken." library-extension))
- '("-lchicken")))
+ (list (string-append "-l" (if host-mode INSTALL_LIB_NAME TARGET_LIB_NAME))))
(define library-files default-library-files)
(define shared-library-files default-shared-library-files)
@@ -505,7 +505,6 @@ EOF
(set! link-options
(cons (cond
(osx (if lib "-dynamiclib" "-bundle"))
- (msvc "-dll")
(else "-shared")) link-options))
(set! shared #t) )
@@ -601,9 +600,9 @@ EOF
(set! inquiry-only #t)
(set! show-libs #t) ]
[(-v -verbose)
- (when (and (number? verbose) (not msvc))
+ (when (number? verbose)
(set! compile-options (cons* "-v" "-Q" compile-options))
- (set! link-options (cons (if msvc "-VERBOSE" "-v") link-options)) )
+ (set! link-options (cons "-v" link-options)) )
(cond (verbose
(t-options "-verbose")
(set! verbose 2))
@@ -646,15 +645,10 @@ EOF
INSTALL_SHARE_HOME "chicken.rc"
object-extension)
object-files))
- (when (or msvc mingw)
- (cond
- (mingw
- (set! link-options
- (cons* "-lkernel32" "-luser32" "-lgdi32" "-mwindows"
- link-options)))
- (msvc
- (set! link-options
- (cons* "kernel32.lib" "user32.lib" "gdi32.lib" link-options)))))]
+ (when mingw
+ (set! link-options
+ (cons* "-lkernel32" "-luser32" "-lgdi32" "-mwindows"
+ link-options)))]
((-deploy)
(set! deploy #t)
(set! deployed #t))
@@ -998,7 +992,7 @@ EOF
(string-intersperse
(append linking-optimization-options link-options
(nth-value 1 (static-extension-info)) ) )
- (if (and static (not mingw) (not msvc) (not osx)) " -static" "") ) )
+ (if (and static (not mingw) (not osx)) " -static" "") ) )
(define (linker-libraries #!optional staticexts)
(string-intersperse
diff --git a/defaults.make b/defaults.make
index 6293d656..e14752b8 100644
--- a/defaults.make
+++ b/defaults.make
@@ -48,13 +48,13 @@ BRANCHNAME ?= $(shell sh identify-branch.sh $(SRCDIR))
BINDIR = $(PREFIX)/bin
LIBDIR = $(PREFIX)/lib
SHAREDIR = $(PREFIX)/share
-DATADIR = $(SHAREDIR)/chicken
+DATADIR = $(SHAREDIR)/$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)
TOPMANDIR = $(SHAREDIR)/man
MANDIR = $(TOPMANDIR)/man1
-INCDIR = $(PREFIX)/include
+INCDIR = $(PREFIX)/include/$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)
DOCDIR = $(DATADIR)/doc
VARDIR ?= $(LIBDIR)
-CHICKENLIBDIR = $(VARDIR)/chicken
+CHICKENLIBDIR = $(VARDIR)/$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)
EGGDIR = $(CHICKENLIBDIR)/$(BINARYVERSION)
ifdef WINDOWS_SHELL
@@ -62,12 +62,12 @@ SPREFIX = $(subst /,$(SEP),$(PREFIX))
IBINDIR = $(SPREFIX)$(SEP)bin
ILIBDIR = $(SPREFIX)$(SEP)lib
ISHAREDIR = $(SPREFIX)$(SEP)share
-IDATADIR = $(ISHAREDIR)$(SEP)chicken
+IDATADIR = $(ISHAREDIR)$(SEP)$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)
ITOPMANDIR = $(ISHAREDIR)$(SEP)man
IMANDIR = $(ITOPMANDIR)$(SEP)man1
-IINCDIR = $(SPREFIX)$(SEP)include
+IINCDIR = $(SPREFIX)$(SEP)include$(SEP)$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)
IDOCDIR = $(IDATADIR)$(SEP)doc
-ICHICKENLIBDIR = $(ILIBDIR)$(SEP)chicken
+ICHICKENLIBDIR = $(ILIBDIR)$(SEP)$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)
IEGGDIR = $(ICHICKENLIBDIR)$(SEP)$(BINARYVERSION)
else
SPREFIX = $(PREFIX)
@@ -210,14 +210,14 @@ ASSEMBLER_OUTPUT_OPTION ?= -o
ASSEMBLER_OUTPUT ?= $(ASSEMBLER_OUTPUT_OPTION) $@
ASSEMBLER_COMPILE_OPTION ?= -c
ifdef STATICBUILD
-PRIMARY_LIBCHICKEN ?= libchicken$(A)
+PRIMARY_LIBCHICKEN ?= lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(A)
else
ifeq ($(PLATFORM),cygwin)
-PRIMARY_LIBCHICKEN = cygchicken-0.dll
-LIBCHICKEN_SO_FILE = cygchicken-0.dll
+PRIMARY_LIBCHICKEN = cyg$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)-0.dll
+LIBCHICKEN_SO_FILE = cyg$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)-0.dll
else
-PRIMARY_LIBCHICKEN ?= libchicken$(SO)
-LIBCHICKEN_SO_FILE ?= libchicken$(SO)
+PRIMARY_LIBCHICKEN ?= lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(SO)
+LIBCHICKEN_SO_FILE ?= lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(SO)
endif
endif
LIBCHICKEN_SO_LIBRARIES ?= $(LIBRARIES)
@@ -308,7 +308,7 @@ CHICKEN_STATIC_EXECUTABLE = $(CHICKEN_PROGRAM)$(EXE)
CSI_STATIC_EXECUTABLE = $(CSI_PROGRAM)$(EXE)
CHICKEN_SHARED_EXECUTABLE = $(CHICKEN_PROGRAM)-shared$(EXE)
CSI_SHARED_EXECUTABLE = $(CSI_PROGRAM)-shared$(EXE)
-TARGETLIBS ?= libchicken$(A)
+TARGETLIBS ?= lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(A)
TARGETS += $(TARGETLIBS) $(CHICKEN_STATIC_EXECUTABLE) \
$(CSI_STATIC_EXECUTABLE) $(CHICKEN_PROFILE_PROGRAM)$(EXE) \
$(CSC_PROGRAM)$(EXE) \
@@ -318,7 +318,7 @@ CHICKEN_STATIC_EXECUTABLE = $(CHICKEN_PROGRAM)-static$(EXE)
CSI_STATIC_EXECUTABLE = $(CSI_PROGRAM)-static$(EXE)
CHICKEN_SHARED_EXECUTABLE = $(CHICKEN_PROGRAM)$(EXE)
CSI_SHARED_EXECUTABLE = $(CSI_PROGRAM)$(EXE)
-TARGETLIBS ?= libchicken$(A) $(LIBCHICKEN_SO_FILE)
+TARGETLIBS ?= lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(A) $(LIBCHICKEN_SO_FILE)
TARGETS += $(TARGETLIBS) $(CHICKEN_SHARED_EXECUTABLE) \
$(CSI_SHARED_EXECUTABLE) $(CHICKEN_PROFILE_PROGRAM)$(EXE) \
$(CSC_PROGRAM)$(EXE) $(CHICKEN_INSTALL_PROGRAM)$(EXE) $(CHICKEN_UNINSTALL_PROGRAM)$(EXE) \
@@ -380,6 +380,9 @@ endif
echo "#ifndef C_INSTALL_LIB_HOME" >>$@
echo "# define C_INSTALL_LIB_HOME \"$(LIBDIR)\"" >>$@
echo "#endif" >>$@
+ echo "#ifndef C_INSTALL_LIB_NAME" >>$@
+ echo "# define C_INSTALL_LIB_NAME \"$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX))\"" >>$@
+ echo "#endif" >>$@
echo "#ifndef C_INSTALL_STATIC_LIB_HOME" >>$@
echo "# define C_INSTALL_STATIC_LIB_HOME \"$(LIBDIR)\"" >>$@
echo "#endif" >>$@
@@ -437,6 +440,9 @@ endif
echo "#ifndef C_TARGET_LIB_HOME" >>$@
echo "# define C_TARGET_LIB_HOME \"$(TARGET_PREFIX)/lib\"" >>$@
echo "#endif" >>$@
+ echo "#ifndef C_TARGET_LIB_NAME" >>$@
+ echo "# define C_TARGET_LIB_NAME \"$(INSTALL_LIB_NAME)\"" >>$@
+ echo "#endif" >>$@
echo "#ifndef C_TARGET_RUN_LIB_HOME" >>$@
echo "# define C_TARGET_RUN_LIB_HOME \"$(TARGET_RUN_PREFIX)/lib\"" >>$@
echo "#endif" >>$@
@@ -444,7 +450,7 @@ endif
echo "# define C_TARGET_SHARE_HOME \"$(TARGET_PREFIX)/share\"" >>$@
echo "#endif" >>$@
echo "#ifndef C_TARGET_INCLUDE_HOME" >>$@
- echo "# define C_TARGET_INCLUDE_HOME \"$(TARGET_PREFIX)/include\"" >>$@
+ echo "# define C_TARGET_INCLUDE_HOME \"$(TARGET_PREFIX)/include/$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)\"" >>$@
echo "#endif" >>$@
echo "#ifndef C_TARGET_STATIC_LIB_HOME" >>$@
echo "# define C_TARGET_STATIC_LIB_HOME \"$(TARGET_PREFIX)/lib\"" >>$@
diff --git a/rules.make b/rules.make
index a44b750f..69dc90c6 100644
--- a/rules.make
+++ b/rules.make
@@ -220,14 +220,14 @@ $(foreach obj, $(ALWAYS_STATIC_UTILITY_PROGRAM_OBJECTS_1),\
libs: $(TARGETLIBS)
-libchicken$(SO): $(LIBCHICKEN_SHARED_OBJECTS) $(APPLY_HACK_OBJECT)
+lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(SO): $(LIBCHICKEN_SHARED_OBJECTS) $(APPLY_HACK_OBJECT)
$(LINKER) $(LINKER_OPTIONS) $(LINKER_LINK_SHARED_LIBRARY_OPTIONS) $(LIBCHICKEN_SO_LINKER_OPTIONS) \
$(LINKER_OUTPUT) $^ $(LIBCHICKEN_SO_LIBRARIES)
ifdef USES_SONAME
ln -sf $(LIBCHICKEN_SO_FILE) $(LIBCHICKEN_SO_FILE).$(BINARYVERSION)
endif
-cygchicken-0.dll: $(LIBCHICKEN_SHARED_OBJECTS) $(APPLY_HACK_OBJECT)
+cyg$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)-0.dll: $(LIBCHICKEN_SHARED_OBJECTS) $(APPLY_HACK_OBJECT)
gcc -shared -o $(LIBCHICKEN_SO_FILE) -Wl,--dll -Wl,--add-stdcall-alias \
-Wl,--enable-stdcall-fixup -Wl,--warn-unresolved-symbols \
-Wl,--dll-search-prefix=cyg -Wl,--allow-multiple-definition \
@@ -237,21 +237,21 @@ cygchicken-0.dll: $(LIBCHICKEN_SHARED_OBJECTS) $(APPLY_HACK_OBJECT)
-Wl,--whole-archive $(LIBCHICKEN_SHARED_OBJECTS) $(APPLY_HACK_OBJECT) \
-Wl,--no-whole-archive $(LIBCHICKEN_SO_LIBRARIES)
-libchicken$(A): $(APPLY_HACK_OBJECT) $(LIBCHICKEN_STATIC_OBJECTS)
+lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(A): $(APPLY_HACK_OBJECT) $(LIBCHICKEN_STATIC_OBJECTS)
$(LIBRARIAN) $(LIBRARIAN_OPTIONS) $(LIBRARIAN_OUTPUT) $^
# import libraries and extensions
%.so: %.o
$(LINKER) $(LINKER_OPTIONS) $(LINKER_LINK_SHARED_DLOADABLE_OPTIONS) $^ $(LINKER_OUTPUT_OPTION) $@ \
- $(LINKER_LIBRARY_PREFIX)chicken$(LINKER_LIBRARY_SUFFIX) \
+ $(LINKER_LIBRARY_PREFIX)$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(LINKER_LIBRARY_SUFFIX) \
$(LIBRARIES)
# executables
$(CHICKEN_SHARED_EXECUTABLE): $(COMPILER_OBJECTS) $(PRIMARY_LIBCHICKEN)
$(LINKER) $(LINKER_OPTIONS) $(LINKER_EXECUTABLE_OPTIONS) $(COMPILER_OBJECTS) $(LINKER_OUTPUT) \
- $(LINKER_LIBRARY_PREFIX)chicken$(LINKER_LIBRARY_SUFFIX) $(LINKER_LINK_SHARED_PROGRAM_OPTIONS) $(LIBRARIES)
+ $(LINKER_LIBRARY_PREFIX)$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(LINKER_LIBRARY_SUFFIX) $(LINKER_LINK_SHARED_PROGRAM_OPTIONS) $(LIBRARIES)
define declare-program-from-object
$(1)-RC_FILE = $(if $(and $(RC_COMPILER),$(3)),$(2).rc$(O))
@@ -259,7 +259,7 @@ $(1)-RC_FILE = $(if $(and $(RC_COMPILER),$(3)),$(2).rc$(O))
$(1): $(2)$(O) $$(PRIMARY_LIBCHICKEN) $$($(1)-RC_FILE)
$$(LINKER) $$(LINKER_OPTIONS) $$(LINKER_EXECUTABLE_OPTIONS) $$< \
$$($(1)-RC_FILE) $$(LINKER_OUTPUT) \
- $$(LINKER_LIBRARY_PREFIX)chicken$$(LINKER_LIBRARY_SUFFIX) \
+ $$(LINKER_LIBRARY_PREFIX)$$(PROGRAM_PREFIX)chicken$$(PROGRAM_SUFFIX)$$(LINKER_LIBRARY_SUFFIX) \
$$(LINKER_LINK_SHARED_PROGRAM_OPTIONS) $$(LIBRARIES)
endef
@@ -274,12 +274,12 @@ $(eval $(call declare-program-from-object,$(CSC_PROGRAM)$(EXE),csc))
# static executables
-$(CHICKEN_STATIC_EXECUTABLE): $(COMPILER_STATIC_OBJECTS) libchicken$(A)
- $(LINKER) $(LINKER_OPTIONS) $(LINKER_STATIC_OPTIONS) $(COMPILER_STATIC_OBJECTS) $(LINKER_OUTPUT) libchicken$(A) $(LIBRARIES)
+$(CHICKEN_STATIC_EXECUTABLE): $(COMPILER_STATIC_OBJECTS) lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(A)
+ $(LINKER) $(LINKER_OPTIONS) $(LINKER_STATIC_OPTIONS) $(COMPILER_STATIC_OBJECTS) $(LINKER_OUTPUT) lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(A) $(LIBRARIES)
define declare-static-program-from-object
-$(1): $(2)$(O) libchicken$(A)
- $$(LINKER) $$(LINKER_OPTIONS) $$(LINKER_STATIC_OPTIONS) $$< $$(LINKER_OUTPUT) libchicken$(A) $$(LIBRARIES)
+$(1): $(2)$(O) lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(A)
+ $$(LINKER) $$(LINKER_OPTIONS) $$(LINKER_STATIC_OPTIONS) $$< $$(LINKER_OUTPUT) lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(A) $$(LIBRARIES)
endef
$(eval $(call declare-program-from-object,$(CSI_STATIC_EXECUTABLE),csi))
@@ -309,7 +309,7 @@ else
endif
ifdef USES_SONAME
ifeq ($(DESTDIR),)
- cd "$(DESTDIR)$(ILIBDIR)" && ln -sf $(LIBCHICKEN_SO_FILE).$(BINARYVERSION) libchicken$(SO)
+ cd "$(DESTDIR)$(ILIBDIR)" && ln -sf $(LIBCHICKEN_SO_FILE).$(BINARYVERSION) lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(SO)
endif
endif
endif
@@ -325,7 +325,7 @@ install-dev: install-libs
$(MAKEDIR_COMMAND) $(MAKEDIR_COMMAND_OPTIONS) "$(DESTDIR)$(IEGGDIR)"
$(MAKEDIR_COMMAND) $(MAKEDIR_COMMAND_OPTIONS) "$(DESTDIR)$(IINCDIR)"
$(MAKEDIR_COMMAND) $(MAKEDIR_COMMAND_OPTIONS) "$(DESTDIR)$(IDATADIR)"
- $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_STATIC_LIBRARY_OPTIONS) libchicken$(A) "$(DESTDIR)$(ILIBDIR)"
+ $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_STATIC_LIBRARY_OPTIONS) lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(A) "$(DESTDIR)$(ILIBDIR)"
ifneq ($(POSTINSTALL_STATIC_LIBRARY),true)
$(POSTINSTALL_STATIC_LIBRARY) $(POSTINSTALL_STATIC_LIBRARY_FLAGS) "$(ILIBDIR)$(SEP)libchicken$(A)"
endif
@@ -435,17 +435,17 @@ uninstall:
$(REMOVE_COMMAND) $(REMOVE_COMMAND_RECURSIVE_OPTIONS) "$(DESTDIR)$(IEGGDIR)"
- $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) "$(DESTDIR)$(ILIBDIR)$(SEP)libchicken$(A)"
- $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) "$(DESTDIR)$(ILIBDIR)$(SEP)libchicken$(SO)"
+ $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) "$(DESTDIR)$(ILIBDIR)$(SEP)lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(A)"
+ $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) "$(DESTDIR)$(ILIBDIR)$(SEP)lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(SO)"
ifdef USES_SONAME
- -$(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) "$(DESTDIR)$(ILIBDIR)$(SEP)libchicken$(SO).$(BINARYVERSION)"
+ -$(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) "$(DESTDIR)$(ILIBDIR)$(SEP)lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(SO).$(BINARYVERSION)"
endif
ifdef WINDOWS
- $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) "$(DESTDIR)$(IBINDIR)$(SEP)libchicken$(SO)"
+ $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) "$(DESTDIR)$(IBINDIR)$(SEP)lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(SO)"
$(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) "$(DESTDIR)$(ILIBDIR)$(SEP)$(LIBCHICKEN_IMPORT_LIBRARY)"
endif
ifeq ($(PLATFORM),cygwin)
- $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) "$(DESTDIR)$(IBINDIR)$(SEP)cygchicken*"
+ $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) "$(DESTDIR)$(IBINDIR)$(SEP)cyg$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)*"
endif
$(foreach obj,$(MANPAGES),\
@@ -586,18 +586,19 @@ html:
.PHONY: clean distclean spotless confclean testclean
clean:
- -$(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) chicken$(EXE) csi$(EXE) csc$(EXE) \
+ -$(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) $(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(EXE) $(PROGRAM_PREFIX)csi$(PROGRAM_SUFFIX)$(EXE) $(PROGRAM_PREFIX)csc$(PROGRAM_SUFFIX)$(EXE) \
$(CHICKEN_PROFILE_PROGRAM)$(EXE) \
$(CHICKEN_INSTALL_PROGRAM)$(EXE) \
$(CHICKEN_UNINSTALL_PROGRAM)$(EXE) \
$(CHICKEN_STATUS_PROGRAM)$(EXE) \
$(CHICKEN_BUG_PROGRAM)$(EXE) *$(O) \
$(LIBCHICKEN_SO_FILE) \
- libchicken$(A) libchicken$(SO) $(PROGRAM_IMPORT_LIBRARIES) \
+ lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(A) \
+ lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(SO) $(PROGRAM_IMPORT_LIBRARIES) \
$(IMPORT_LIBRARIES:=.import.so) $(LIBCHICKEN_IMPORT_LIBRARY) \
$(SETUP_API_OBJECTS_1:=.so) $(SETUP_API_OBJECTS_1:=.import.so)
ifdef USES_SONAME
- $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) libchicken.so.$(BINARYVERSION)
+ $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX).so.$(BINARYVERSION)
endif
confclean:
Trap