chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Chicken-users] MSVC makefile and patches


From: Ashley
Subject: [Chicken-users] MSVC makefile and patches
Date: Thu, 21 Feb 2008 03:17:43 -0500
User-agent: Thunderbird 2.0.0.9 (X11/20071031)

I hope I'm posting this to the right place.

Attached is a patch (which hopefully the list software allows)
with a makefile and some related mods for building chicken with
Visual C.  This is a gnu makefile and is integrated with the
regular build system, so you'll need cygwin or something similar
to do the build.  After installation, cmd.exe is sufficient.

I've tested the mingw, ming-msys, linux (32-bit and 64-bit), and
cygwin builds to make sure I didn't break anything.  Hopefully
someone can test it on the other supported platforms.

Here's a quick summary of the changes:

- added Makefile.msvc
- defaults.make:
 - changed some var=setting statements to var?=setting
 - added COMPILER_OUTPUT, LINKER_OUTPUT, etc.
- rules.make:
 - changed COMPILER_OUPUT_OPTION $@ to COMPILER_OUTPUT to
   handle VC's fear of spaces.  Same for linker, assembler, etc.
 - modified some install/clean rules and added
   C_COMPILER_SHARED_OPTIONS to some executable rules to handle
   some undefined symbols (vars. not declared dllimport due to
   no -DPIC)
- chicken.h:
 - modified C_externimport so it declares dllexport when
   C_BUILDING_CHICKEN is defined
- profiler.scm:
 - added #ifdef _MSC_VER guard around #include <unistd.h>
- chicken-setup.scm:
 - added check for msvc when setting *windows-shell*
- csc.scm:
 - numerous changes to support building with microsoft compiler
   and linker

I also added ASM, APPLY_HACK_SRC and some other stuff to handle
a C inline assembly file with an apply-hack for MSVC.  I then
realized that was unnecessary because runtime.c already has
inline assembly for when _MSC_VER is defined.  I just left
those changes in the makefiles.

All the tools and libraries build successfully with MSVC 2003,
and the install, uninstall, and clean targets work ok.  I've only
done light testing but most things seem to behave correctly.  The
build does NOT currently work with MSVC 2008 because 2008 has
some kind of 'manifest' files that have to be handled when linking
or maybe after linking.  I'm going to take a look at that later
this week.

There are some additional issues:

- chicken-setup uninstall doesn't work because "del" chokes on /
- programs generate .lib/.exp files due to dllexports, and chicken
 has a few innocuous linker warnings about imported local
 definitions
- csc currently is hard-coded to use "link" as the liner/c++-linker.
 Using cl would have required a lot of rearrangement.  Maybe this
 should go in chicken-config.h
- csc builds shared libraries with .so extension, not .dll.  This is
 probably ok for eggs but may be annoying if you use csc to build
 your own libraries.  Changing ##sys#load-dynamic-extension to .dll
 when building w/ msvc changes this, but eggs have .so hard-coded
 in them and this would cause the install to fail.
- static builds w/ chicken-setup and csc haven't been tested at all

I attempted to build about 30 different eggs, and I think about 20
built ok.  Many failed because some (non-chicken) dependency wasn't
present.  A few have other issues:

- easyffi won't compile because the stupid MS compiler can't handle
 string literals > 65535 bytes
- treap builds but has some unix-specific link flags in its setup file
- mathh has an undeclared identifier M_LN2 in mathh.c
- udp builds but bind hangs. I didn't look at this long, so i could
 have just made a mistake.


I hope this can eventually be integrated into the chicken distribution,
and I'd be happy to maintain it.  I'm going to fix some of the out-
standing issues in a couple of days.  Please let me know if you have
any questions or experience any problems.

ashley
diff -Naur original-chicken-3.0.0/Makefile.msvc chicken-3.0.0/Makefile.msvc
--- original-chicken-3.0.0/Makefile.msvc        1969-12-31 19:00:00.000000000 
-0500
+++ chicken-3.0.0/Makefile.msvc 2008-02-21 00:48:39.000000000 -0500
@@ -0,0 +1,194 @@
+# Makefile.msvc - configuration for MSVC -*- Makefile -*-
+#
+# Copyright (c) 2007, Felix L. Winkelmann
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without 
modification, are permitted provided that the following
+# conditions are met:
+#
+#   Redistributions of source code must retain the above copyright notice, 
this list of conditions and the following
+#     disclaimer. 
+#   Redistributions in binary form must reproduce the above copyright notice, 
this list of conditions and the following
+#     disclaimer in the documentation and/or other materials provided with the 
distribution. 
+#   Neither the name of the author nor the names of its contributors may be 
used to endorse or promote
+#     products derived from this software without specific prior written 
permission. 
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
AND ANY EXPRESS
+# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
OF MERCHANTABILITY
+# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
COPYRIGHT HOLDERS OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
(INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+# Send bugs, suggestions and ideas to: 
+#
+# address@hidden
+#
+# Felix L. Winkelmann
+# Unter den Gleichen 1
+# 37130 Gleichen
+# Germany
+
+PREFIX = c:/msvc-devtools
+
+# platform configuration
+
+DLLSINPATH = 1
+ARCH = x86
+HACKED_APPLY = 0 # inline assembly used in runtime w/ MSVC
+WINDOWS = 1
+
+# file extensions
+
+O = .obj
+A = -static.lib
+SO = .dll
+EXE = .exe
+ASM = .c
+
+# commands
+
+C_COMPILER = cl
+CXX_COMPILER = cl
+LINKER = link
+LIBRARIAN = lib
+
+# options
+
+C_COMPILER_OPTIONS = /nologo /MD /wd4142 /DHAVE_CHICKEN_CONFIG_H
+LINKER_OPTIONS = /nologo
+C_COMPILER_GUI_RUNTIME_OPTIONS = /DC_WINDOWS_GUI
+INCLUDES = /I.
+LIBRARIES = ws2_32.lib advapi32.lib
+
+# debug
+
+ifdef DEBUGBUILD
+C_COMPILER_OPTIONS = /nologo /MDd /DHAVE_CHICKEN_CONFIG_H
+C_COMPILER_OPTIMIZATION_OPTIONS = /Zi /Wall
+LINKER_OPTIONS += /debug
+endif
+
+# compiler-dependent output options used by rules
+
+C_COMPILER_COMPILE_OPTION = /c
+C_COMPILER_OUTPUT_OPTION = /Fo
+C_COMPILER_OUTPUT = $(C_COMPILER_OUTPUT_OPTION)$@
+
+C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS = $(C_COMPILER_BUILD_RUNTIME_OPTIONS) 
/DC_UNSAFE_RUNTIME
+C_COMPILER_SHARED_OPTIONS = /DPIC
+
+# linker-dependent output options
+
+LINKER_EXECUTABLE_OPTIONS = 
+LINKER_STATIC_OPTIONS = $(LINKER_EXECUTABLE_OPTIONS)
+LINKER_OUTPUT_OPTION = /out:
+LINKER_OUTPUT = $(LINKER_OUTPUT_OPTION)$@
+LINKER_LIBRARY_OPTION =
+LINKER_LIBRARY_PREFIX = lib
+LINKER_LIBRARY_SUFFIX = .lib
+LINKER_LINK_SHARED_LIBRARY_OPTIONS = /dll
+
+PROGRAM_IMPORT_LIBRARIES = chicken.lib csi.lib csc.lib chicken-setup.lib 
chicken-profile.lib chicken-bug.lib
+LIBCHICKEN_IMPORT_LIBRARY = libchicken.lib
+LIBUCHICKEN_IMPORT_LIBRARY = libuchicken.lib
+LIBCHICKENGUI_IMPORT_LIBRARY = libchickengui.lib
+MSVC_CHICKEN_IMPORT_LIBRARIES = $(PROGRAM_IMPORT_LIBRARIES) 
$(LIBCHICKEN_IMPORT_LIBRARY) \
+                               $(LIBUCHICKEN_IMPORT_LIBRARY) 
$(LIBCHICKENGUI_IMPORT_LIBRARY)
+MSVC_CHICKEN_EXPORT_FILES = $(MSVC_CHICKEN_IMPORT_LIBRARIES:.lib=.exp)
+LIBCHICKEN_SO_LINKER_OPTIONS = /implib:$(LIBCHICKEN_IMPORT_LIBRARY)
+LIBUCHICKEN_SO_LINKER_OPTIONS = /implib:$(LIBUCHICKEN_IMPORT_LIBRARY)
+LIBCHICKENGUI_SO_LINKER_OPTIONS = /implib:$(LIBCHICKENGUI_IMPORT_LIBRARY)
+
+# librarian-dependent output options
+
+LIBRARIAN_OPTIONS = /nologo
+LIBRARIAN_OUTPUT_OPTION = /out:
+LIBRARIAN_OUTPUT = $(LIBRARIAN_OUTPUT_OPTION)$@
+
+# assembler-dependent (here we are configured for compiling C w/ inline 
assembly)
+
+ASSEMBLER_OPTIONS = $(C_COMPILER_OPTIONS)
+ASSEMBLER_OUTPUT_OPTION = /Fo
+ASSEMBLER_OUTPUT = $(ASSEMBLER_OUTPUT_OPTION)$@
+ASSEMBLER_COMPILE_OPTION = /c
+
+# stuff for static-only builds
+ifdef STATICBUILD
+PRIMARY_LIBCHICKEN = libchicken$(A)
+else
+PRIMARY_LIBCHICKEN = libchicken$(SO)
+LIBCHICKEN_SO_FILE = libchicken$(SO)
+LIBUCHICKEN_SO_FILE = libuchicken$(SO)
+LIBCHICKENGUI_SO_FILE = libchickengui$(SO)
+endif
+
+# import libraries, needed in windows
+
+LIBCHICKEN_SO_LIBRARIES = $(LIBRARIES)
+LIBUCHICKEN_SO_LIBRARIES = $(LIBRARIES)
+LIBCHICKENGUI_SO_LIBRARIES = $(LIBRARIES) kernel32.lib user32.lib gdi32.lib
+
+# special files
+
+CHICKEN_CONFIG_H = chicken-config.h
+APPLY_HACK_SRC = 
+APPLY_HACK_OBJECT = 
+POSIXFILE = posixwin
+
+# default settings (the default chicken-defaults.h seems to be fine)
+
+include defaults.make
+
+# main target
+
+all: libchicken$(A) libuchicken$(A) chicken$(EXE) csi$(EXE) 
chicken-profile$(EXE) \
+       csc$(EXE) libchicken$(SO) \
+       libuchicken$(SO) libchickengui$(SO) libchickengui$(A) 
chicken-setup$(EXE) \
+       chicken.info
+
+chicken-config.h: chicken-defaults.h
+       echo "#define HAVE_DIRENT_H 0" >>$@
+       echo "#define HAVE_INTTYPES_H 0" >>$@
+       echo "#define HAVE_LIMITS_H 1" >>$@
+       echo "#define HAVE_LONG_LONG 1" >>$@
+       echo "#define HAVE_MEMMOVE 1" >>$@
+       echo "#define HAVE_MEMORY_H 1" >>$@
+       echo "#define HAVE_STDINT_H 0" >>$@
+       echo "#define HAVE_STDLIB_H 1" >>$@
+       echo "#define HAVE_STRERROR 1" >>$@
+       echo "#define HAVE_STRINGS_H 0" >>$@
+       echo "#define HAVE_STRING_H 1" >>$@
+       echo "#define HAVE_STRTOLL 0" >>$@
+       echo "#define HAVE_SYS_STAT_H 1" >>$@
+       echo "#define HAVE_SYS_TYPES_H 1" >>$@
+       echo "#define HAVE_UNISTD_H 0" >>$@
+       echo "#define HAVE_UNSIGNED_LONG_LONG 0" >>$@
+       echo "#define HAVE_WINDOWS_H 1" >>$@
+       echo "#define HAVE__STRTOI64 1" >>$@
+       echo "#define STDC_HEADERS 1" >>$@
+       echo "#define HAVE_ALLOCA_H 0" >>$@
+       echo "#define HAVE_DIRECT_H 1" >>$@
+       echo "#define HAVE_ERRNO_H 1" >>$@
+       echo "#define HAVE_GCVT 1" >>$@
+       echo "#define HAVE_LOADLIBRARY 1" >>$@
+       echo "#define HAVE_GETPROCADDRESS 1" >>$@
+       echo "#define HAVE_WINSOCK2_H 1" >>$@
+       echo "#define HAVE_WS2TCPIP_H 1" >>$@
+       echo "#define C_STACK_GROWS_DOWNWARD 1" >>$@
+ifdef GCHOOKS
+       echo "#define C_GC_HOOKS" >>$@
+endif
+ifdef SYMBOLGC
+       echo "#define C_COLLECT_ALL_SYMBOLS" >>$@
+endif
+ifdef NOAPPLYHOOK
+       echo "#define C_NO_APPLY_HOOK" >>$@
+endif
+       echo "#define C_HACKED_APPLY" >>$@
+       cat chicken-defaults.h >>$@
+
+include rules.make
diff -Naur original-chicken-3.0.0/chicken-setup.scm 
chicken-3.0.0/chicken-setup.scm
--- original-chicken-3.0.0/chicken-setup.scm    2008-02-03 22:47:44.000000000 
-0500
+++ chicken-3.0.0/chicken-setup.scm     2008-02-21 00:48:23.000000000 -0500
@@ -153,7 +153,8 @@
   (and (eq? (software-type) 'windows) 
        (build-platform) ) )
 
-(define *windows-shell* (eq? *windows* 'mingw32))
+(define *windows-shell* (or (eq? *windows* 'mingw32)
+                            (eq? *windows* 'msvc)))
 (define *debug* #f)
 
 (register-feature! 'chicken-setup)
diff -Naur original-chicken-3.0.0/chicken.h chicken-3.0.0/chicken.h
--- original-chicken-3.0.0/chicken.h    2008-02-03 22:47:44.000000000 -0500
+++ chicken-3.0.0/chicken.h     2008-02-21 00:48:29.000000000 -0500
@@ -33,7 +33,6 @@
 ; Germany
 */
 
-
 /* Configuration: */
 
 #ifndef ___CHICKEN
@@ -92,16 +91,17 @@
 #  define C_fctimport              __declspec(dllexport)
 #  undef  C_externimport
 #  undef  C_externexport
-#  define C_externimport           C_extern __declspec(dllimport)
 #  define C_externexport           C_extern __declspec(dllexport)
 #  undef  C_varextern
 #  undef  C_fctexport
 #  ifdef C_BUILDING_LIBCHICKEN
 #   define C_varextern             C_extern __declspec(dllexport)
 #   define C_fctexport             __declspec(dllexport)
+#   define C_externimport          C_extern __declspec(dllexport)
 #  else
 #   define C_varextern             C_extern __declspec(dllimport)
 #   define C_fctexport             __declspec(dllimport)
+#   define C_externimport          C_extern __declspec(dllimport)
 #  endif
 # elif defined(__WATCOMC__)
 #  undef  C_fctimport
@@ -261,8 +261,8 @@
 typedef __int16            int16_t;
 typedef unsigned  __int16  uint16_t;
 typedef __int32            int32_t;
-typedef unsigned __int32   int32_t;
-typedef __int64            uint64_t;
+typedef unsigned __int32   uint32_t;
+typedef __int64            int64_t;
 typedef unsigned __int64   uint64_t;
 # pragma warning(disable: 4101)
 #endif
diff -Naur original-chicken-3.0.0/csc.scm chicken-3.0.0/csc.scm
--- original-chicken-3.0.0/csc.scm      2008-02-03 22:47:44.000000000 -0500
+++ chicken-3.0.0/csc.scm       2008-02-21 00:48:23.000000000 -0500
@@ -112,6 +112,7 @@
 ;;; Parameters:
 
 (define mingw (eq? (build-platform) 'mingw32))
+(define msvc (eq? (build-platform) 'msvc))
 (define osx (eq? (software-version) 'macosx))
 (define hpux-hppa (and (eq? (software-version) 'hpux)
                        (eq? (machine-type) 'hppa)))
@@ -148,17 +149,24 @@
 
 (define compiler (quotewrap (if host-mode INSTALL_CC TARGET_CC)))
 (define c++-compiler (quotewrap (if host-mode INSTALL_CXX TARGET_CXX)))
-(define linker (quotewrap (if host-mode INSTALL_CC TARGET_CC)))
-(define c++-linker (quotewrap (if host-mode INSTALL_CXX TARGET_CXX)))
-(define object-extension "o")
-(define library-extension "a")
-(define link-output-flag "-o ")
-(define executable-extension "")
-(define compile-output-flag "-o ")
+(define linker (quotewrap (if msvc "link" (if host-mode INSTALL_CC 
TARGET_CC))))
+(define c++-linker (quotewrap (if msvc "link" (if host-mode INSTALL_CXX 
TARGET_CXX))))
+(define object-extension (if msvc "obj" "o"))
+(define library-extension (if msvc "lib" "a"))
+(define link-output-flag (if msvc "/out:" "-o "))
+(define executable-extension (if msvc "exe" ""))
+(define compile-output-flag (if msvc "/Fo" "-o "))
 (define nonstatic-compilation-options '())
 (define shared-library-extension ##sys#load-dynamic-extension)
 (define default-translation-optimization-options '())
-(define pic-options (if mingw '("-DPIC") '("-fPIC" "-DPIC")))
+(define pic-options (if (or mingw msvc) '("-DPIC") '("-fPIC" "-DPIC")))
+
+(define default-library (string-append
+                         (if msvc "libchicken-static." "libchicken.")
+                         library-extension))
+(define default-unsafe-library (string-append
+                                (if msvc "libuchicken-static." "libuchicken.")
+                                library-extension))
 
 (define cleanup-filename
   (if (not mingw)
@@ -235,19 +243,23 @@
 (define default-library-files 
   (list
    (quotewrap
-    (prefix "libchicken.a" "lib"
+    (prefix default-library "lib"
            (string-append
             (if host-mode INSTALL_LIB_HOME TARGET_LIB_HOME)
-            "/libchicken.a"))) ))
-(define default-shared-library-files '("-lchicken"))
+            (string-append "/" default-library)))) ))
+(define default-shared-library-files (if msvc
+                                         (list (string-append "libchicken." 
library-extension))
+                                         '("-lchicken")))
 (define unsafe-library-files
   (list
    (quotewrap 
-    (prefix "libuchicken.a" "lib"
+    (prefix default-unsafe-library "lib"
            (string-append 
             (if host-mode INSTALL_LIB_HOME TARGET_LIB_HOME)
-            "/libuchicken.a"))) ))
-(define unsafe-shared-library-files '("-luchicken"))
+            (string-append "/" default-unsafe-library)))) ))
+(define unsafe-shared-library-files (if msvc
+                                        (list (string-append "libuchicken." 
library-extension))
+                                        '("-luchicken")))
 (define gui-library-files default-library-files)
 (define gui-shared-library-files default-shared-library-files)
 (define library-files default-library-files)
@@ -276,6 +288,12 @@
                                   (if host-mode 
                                       INSTALL_LIB_HOME
                                       TARGET_LIB_HOME)) ))))
+        (msvc
+         (list (conc "/LIBPATH:" (quotewrap
+                                  (prefix "" "lib"
+                                          (if host-mode 
+                                              INSTALL_LIB_HOME
+                                              TARGET_LIB_HOME)) ))))
        (else 
         (list
          (conc "-L" (quotewrap (prefix "" "lib"
@@ -477,9 +495,12 @@
 
   (define (shared-build lib)
     (set! translate-options (cons* "-feature" "chicken-compile-shared" 
translate-options))
-    (set! compile-options (append pic-options '("-DC_SHARED") 
compile-options)) 
+    (set! compile-options (append pic-options '("-DC_SHARED") compile-options))
     (set! link-options
-      (cons (if osx (if lib "-dynamiclib" "-bundle") "-shared") link-options))
+      (cons (cond
+             (osx (if lib "-dynamiclib" "-bundle"))
+             (msvc "/dll")
+             (else "-shared")) link-options))
     (set! shared #t) )
 
   (let loop ([args args])
@@ -571,8 +592,9 @@
               [(-v3)
                (set! verbose #t)
                (t-options "-verbose")
-               (set! compile-options (cons* "-v" "-Q" compile-options))
-               (set! link-options (cons "-v" link-options)) ]
+                (if (not msvc)
+                    (set! compile-options (cons* "-v" "-Q" compile-options)))
+               (set! link-options (cons (if msvc "/VERBOSE" "-v") 
link-options)) ]
               [(|-A| -analyze-only)
                (set! translate-only #t)
                (t-options "-analyze-only") ]
@@ -592,11 +614,16 @@
                (set! rest (cdr rest)) ]
               [(-windows |-W|)
                (set! gui #t)
-               (when mingw
+               (cond
+                 (mingw
                  (set! link-options
                    (cons* "-lkernel32" "-luser32.lib" "-lgdi32" "-mwindows"
                           link-options))
-                 (set! compile-options (cons "-DC_WINDOWS_GUI" 
compile-options))) ]
+                 (set! compile-options (cons "-DC_WINDOWS_GUI" 
compile-options)))
+                 (msvc
+                  (set! link-options
+                    (cons* "kernel32.lib" "user32.lib" "gdi32.lib" 
link-options))
+                 (set! compile-options (cons "-DC_WINDOWS_GUI" 
compile-options)))) ]
               [(-framework)
                (check s rest)
                (when osx 
@@ -825,7 +852,7 @@
              (string-intersperse 
               (cons* (cond (cpp-mode c++-linker)
                            (else linker) )
-                     (append 
+                     (append
                       files
                       (list (string-append link-output-flag target)
                             (linker-options)
@@ -868,7 +895,7 @@
    (string-intersperse
     (append linking-optimization-options link-options
            (nth-value 1 (static-extension-info)) ) )
-   (if (and static (not mingw) (not osx)) " -static" "") ) )
+   (if (and static (not mingw) (not msvc) (not osx)) " -static" "") ) )
 
 (define (linker-libraries #!optional staticexts)
   (string-intersperse
diff -Naur original-chicken-3.0.0/defaults.make chicken-3.0.0/defaults.make
--- original-chicken-3.0.0/defaults.make        2008-02-03 22:47:44.000000000 
-0500
+++ chicken-3.0.0/defaults.make 2008-02-20 15:45:12.000000000 -0500
@@ -154,11 +154,13 @@
 PCRE_INCLUDES = $(INCLUDES) -Ipcre
 endif
 ifndef NOPTABLES
-C_COMPILER_PTABLES_OPTIONS = -DC_ENABLE_PTABLES
+C_COMPILER_PTABLES_OPTIONS ?= -DC_ENABLE_PTABLES
 endif
 INCLUDES ?= -I.
 C_COMPILER_COMPILE_OPTION ?= -c
 C_COMPILER_OUTPUT_OPTION ?= -o
+C_COMPILER_OUTPUT ?= $(C_COMPILER_OUTPUT_OPTION) $@
+
 ifdef DEBUGBUILD
 C_COMPILER_OPTIMIZATION_OPTIONS ?= -g -Wall -Wno-unused
 endif
@@ -168,9 +170,14 @@
 LINKER_EXECUTABLE_OPTIONS ?= -L.
 LINKER_STATIC_OPTIONS ?= $(LINKER_EXECUTABLE_OPTIONS)
 LINKER_OUTPUT_OPTION ?= -o
+LINKER_OUTPUT ?= $(LINKER_OUTPUT_OPTION) $@
 LINKER_LIBRARY_OPTION ?= -l
+LINKER_LIBRARY_PREFIX ?= -l
+LINKER_LIBRARY_SUFFIX ?= 
 LINKER_LINK_SHARED_LIBRARY_OPTIONS ?= -shared
 LIBRARIAN_OPTIONS ?= cru
+LIBRARIAN_OUTPUT_OPTION ?=
+LIBRARIAN_OUTPUT ?= $(LIBRARIAN_OUTPUT_OPTION) $@
 LIBRARIES ?= -lm
 ifeq ($(PLATFORM),mingw)
 REMOVE_COMMAND_OPTIONS ?= /f /q
@@ -191,6 +198,7 @@
 endif
 ASSEMBLER_OPTIONS ?= $(C_COMPILER_OPTIONS)
 ASSEMBLER_OUTPUT_OPTION ?= -o
+ASSEMBLER_OUTPUT ?= $(ASSEMBLER_OUTPUT_OPTION) $@
 ASSEMBLER_COMPILE_OPTION ?= -c
 ifdef STATICBUILD
 PRIMARY_LIBCHICKEN ?= libchicken$(A)
@@ -199,10 +207,12 @@
 PRIMARY_LIBCHICKEN = cygchicken-0.dll
 LIBCHICKEN_SO_FILE = cygchicken-0.dll
 LIBUCHICKEN_SO_FILE = cyguchicken-0.dll
+LIBCHICKENGUI_SO_FILE ?= 
 else
 PRIMARY_LIBCHICKEN ?= libchicken$(SO)
 LIBCHICKEN_SO_FILE ?= libchicken$(SO)
 LIBUCHICKEN_SO_FILE ?= libuchicken$(SO)
+LIBCHICKENGUI_SO_FILE ?= 
 endif
 endif
 UNINSTALLINFO_PROGRAM_OPTIONS ?= --delete
@@ -233,6 +243,7 @@
 A ?= .a
 # EXE ?=
 SO ?= .so
+ASM ?= .s
 
 # special files
 
@@ -240,8 +251,9 @@
 CHICKEN_CONFIG_H = chicken-config.h
 
 ifneq ($(ARCH),)
-HACKED_APPLY = 1
-APPLY_HACK_OBJECT = apply-hack.$(ARCH)$(O)
+HACKED_APPLY ?= 1
+APPLY_HACK_SRC ?= apply-hack.$(ARCH)$(ASM)
+APPLY_HACK_OBJECT ?= apply-hack.$(ARCH)$(O)
 endif
 
 # bootstrapping compiler
diff -Naur original-chicken-3.0.0/profiler.scm chicken-3.0.0/profiler.scm
--- original-chicken-3.0.0/profiler.scm 2008-02-03 22:47:44.000000000 -0500
+++ chicken-3.0.0/profiler.scm  2008-02-21 00:48:23.000000000 -0500
@@ -48,7 +48,12 @@
      write-char write make-vector)
     (no-bound-checks) ) ] )
 
-(foreign-declare "#include <unistd.h>")
+(foreign-declare #<<EOF
+#if !defined(_MSC_VER) && !defined(__DJGPP__) && !defined(__MWERKS__)
+# include <unistd.h>
+#endif
+EOF
+)
 
 (define-foreign-variable profile-id int "getpid()")
 
diff -Naur original-chicken-3.0.0/rules.make chicken-3.0.0/rules.make
--- original-chicken-3.0.0/rules.make   2008-02-03 22:47:44.000000000 -0500
+++ chicken-3.0.0/rules.make    2008-02-20 21:00:20.000000000 -0500
@@ -91,548 +91,548 @@
 runtime$(O): runtime.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 gui-runtime$(O): runtime.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
          $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $(C_COMPILER_GUI_RUNTIME_OPTIONS) 
$< \
-         $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_OUTPUT)
 eval$(O): eval.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 extras$(O): extras.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 library$(O): library.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 lolevel$(O): lolevel.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 match$(O): match.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 posixunix$(O): posixunix.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 posixwin$(O): posixwin.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 profiler$(O): profiler.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 regex$(O): regex.c chicken.h $(CHICKEN_CONFIG_H) pcre/pcre.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $(C_COMPILER_PCRE_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $(C_COMPILER_PCRE_OPTIONS) $< 
$(C_COMPILER_OUTPUT)
 regex-extras$(O): regex-extras.c chicken.h $(CHICKEN_CONFIG_H) pcre/pcre.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $(C_COMPILER_PCRE_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $(C_COMPILER_PCRE_OPTIONS) $< 
$(C_COMPILER_OUTPUT)
 scheduler$(O): scheduler.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 srfi-1$(O): srfi-1.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 srfi-13$(O): srfi-13.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 srfi-14$(O): srfi-14.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 srfi-18$(O): srfi-18.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 srfi-4$(O): srfi-4.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 stub$(O): stub.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 tcp$(O): tcp.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 utils$(O): utils.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 
 uruntime$(O): runtime.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 ueval$(O): ueval.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 uextras$(O): uextras.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 ulibrary$(O): ulibrary.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 ulolevel$(O): ulolevel.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 uposixunix$(O): uposixunix.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 uposixwin$(O): uposixwin.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 uregex$(O): uregex.c chicken.h $(CHICKEN_CONFIG_H) pcre/pcre.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $(C_COMPILER_PCRE_OPTIONS) 
$< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $(C_COMPILER_PCRE_OPTIONS) 
$< $(C_COMPILER_OUTPUT)
 usrfi-1$(O): usrfi-1.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 usrfi-13$(O): usrfi-13.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 usrfi-14$(O): usrfi-14.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 usrfi-18$(O): usrfi-18.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 usrfi-4$(O): usrfi-4.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 utcp$(O): utcp.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 uutils$(O): uutils.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) \
-         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 
 runtime-static$(O): runtime.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 gui-runtime-static$(O): runtime.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
          $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $(C_COMPILER_GUI_RUNTIME_OPTIONS) 
$< \
-         $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_OUTPUT)
 eval-static$(O): eval.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 extras-static$(O): extras.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 library-static$(O): library.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 lolevel-static$(O): lolevel.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 match-static$(O): match.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 posixunix-static$(O): posixunix.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 posixwin-static$(O): posixwin.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 profiler-static$(O): profiler.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 regex-static$(O): regex.c chicken.h $(CHICKEN_CONFIG_H) pcre/pcre.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $(C_COMPILER_PCRE_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $(C_COMPILER_PCRE_OPTIONS) $< 
$(C_COMPILER_OUTPUT)
 regex-extras-static$(O): regex-extras.c chicken.h $(CHICKEN_CONFIG_H) 
pcre/pcre.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $(C_COMPILER_PCRE_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $(C_COMPILER_PCRE_OPTIONS) $< 
$(C_COMPILER_OUTPUT)
 scheduler-static$(O): scheduler.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 srfi-1-static$(O): srfi-1.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 srfi-13-static$(O): srfi-13.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 srfi-14-static$(O): srfi-14.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 srfi-18-static$(O): srfi-18.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 srfi-4-static$(O): srfi-4.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 stub-static$(O): stub.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 tcp-static$(O): tcp.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 utils-static$(O): utils.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 
 uruntime-static$(O): runtime.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 ueval-static$(O): ueval.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 uextras-static$(O): uextras.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 ulibrary-static$(O): ulibrary.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 ulolevel-static$(O): ulolevel.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 uposixunix-static$(O): uposixunix.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 uposixwin-static$(O): uposixwin.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 uregex-static$(O): uregex.c chicken.h $(CHICKEN_CONFIG_H) pcre/pcre.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $(C_COMPILER_PCRE_OPTIONS) 
$< $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $(C_COMPILER_PCRE_OPTIONS) 
$< $(C_COMPILER_OUTPUT)
 usrfi-1-static$(O): usrfi-1.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 usrfi-13-static$(O): usrfi-13.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 usrfi-14-static$(O): usrfi-14.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 usrfi-18-static$(O): usrfi-18.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 usrfi-4-static$(O): usrfi-4.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 utcp-static$(O): utcp.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 uutils-static$(O): uutils.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \
-         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT)
 
 # compiler objects
 
 batch-driver$(O): batch-driver.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) $< \
-         $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_OUTPUT)
 c-backend$(O): c-backend.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) $< \
-         $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_OUTPUT)
 c-platform$(O): c-platform.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) $< \
-         $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_OUTPUT)
 optimizer$(O): optimizer.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) $< \
-         $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_OUTPUT)
 chicken$(O): chicken.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) $< \
-         $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_OUTPUT)
 compiler$(O): compiler.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) $< \
-         $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_OUTPUT)
 support$(O): support.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
          $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) 
$(C_COMPILER_SHARED_OPTIONS) $< \
-         $(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_OUTPUT)
 
 # static compiler objects
 
 batch-driver-static$(O): batch-driver.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
-         $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $< 
$(C_COMPILER_OUTPUT)
 c-backend-static$(O): c-backend.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
-         $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $< 
$(C_COMPILER_OUTPUT)
 c-platform-static$(O): c-platform.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
-         $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $< 
$(C_COMPILER_OUTPUT)
 chicken-static$(O): chicken.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
-         $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $< 
$(C_COMPILER_OUTPUT)
 compiler-static$(O): compiler.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
-         $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $< 
$(C_COMPILER_OUTPUT)
 support-static$(O): support.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
-         $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $< 
$(C_COMPILER_OUTPUT)
 optimizer-static$(O): optimizer.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
-         $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $< 
$(C_COMPILER_OUTPUT)
 
 # pcre objects
 
 pcre/pcre_compile$(O): pcre/pcre_compile.c pcre/pcre_internal.h pcre/config.h 
$(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_config$(O): pcre/pcre_config.c pcre/pcre_internal.h pcre/config.h 
$(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_dfa_exec$(O): pcre/pcre_dfa_exec.c pcre/pcre_internal.h 
pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_exec$(O): pcre/pcre_exec.c pcre/pcre_internal.h pcre/config.h 
$(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_fullinfo$(O): pcre/pcre_fullinfo.c pcre/pcre_internal.h 
pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_get$(O): pcre/pcre_get.c pcre/pcre_internal.h pcre/config.h 
$(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_globals$(O): pcre/pcre_globals.c pcre/pcre_internal.h pcre/config.h 
$(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_info$(O): pcre/pcre_info.c pcre/pcre_internal.h pcre/config.h 
$(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_maketables$(O): pcre/pcre_maketables.c pcre/pcre_internal.h 
pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_newline$(O): pcre/pcre_newline.c pcre/pcre_internal.h pcre/config.h 
$(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_ord2utf8$(O): pcre/pcre_ord2utf8.c pcre/pcre_internal.h 
pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_refcount$(O): pcre/pcre_refcount.c pcre/pcre_internal.h 
pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_study$(O): pcre/pcre_study.c pcre/pcre_internal.h pcre/config.h 
$(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_tables$(O): pcre/pcre_tables.c pcre/pcre_internal.h pcre/config.h 
$(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_try_flipped$(O): pcre/pcre_try_flipped.c pcre/pcre_internal.h 
pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_ucp_searchfuncs$(O): pcre/pcre_ucp_searchfuncs.c 
pcre/pcre_internal.h pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h 
pcre/ucptable.h pcre/ucpinternal.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_valid_utf8$(O): pcre/pcre_valid_utf8.c pcre/pcre_internal.h 
pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_version$(O): pcre/pcre_version.c pcre/pcre_internal.h pcre/config.h 
$(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_xclass$(O): pcre/pcre_xclass.c pcre/pcre_internal.h pcre/config.h 
$(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_chartables$(O): pcre/pcre_chartables.c pcre/pcre_internal.h 
pcre/config.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 
 # static pcre objects
 
 pcre/pcre_compile-static$(O): pcre/pcre_compile.c pcre/pcre_internal.h 
pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_config-static$(O): pcre/pcre_config.c pcre/pcre_internal.h 
pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_dfa_exec-static$(O): pcre/pcre_dfa_exec.c pcre/pcre_internal.h 
pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_exec-static$(O): pcre/pcre_exec.c pcre/pcre_internal.h pcre/config.h 
$(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_fullinfo-static$(O): pcre/pcre_fullinfo.c pcre/pcre_internal.h 
pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_get-static$(O): pcre/pcre_get.c pcre/pcre_internal.h pcre/config.h 
$(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_globals-static$(O): pcre/pcre_globals.c pcre/pcre_internal.h 
pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_info-static$(O): pcre/pcre_info.c pcre/pcre_internal.h pcre/config.h 
$(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_maketables-static$(O): pcre/pcre_maketables.c pcre/pcre_internal.h 
pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_newline-static$(O): pcre/pcre_newline.c pcre/pcre_internal.h 
pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_ord2utf8-static$(O): pcre/pcre_ord2utf8.c pcre/pcre_internal.h 
pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_refcount-static$(O): pcre/pcre_refcount.c pcre/pcre_internal.h 
pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_study-static$(O): pcre/pcre_study.c pcre/pcre_internal.h 
pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_tables-static$(O): pcre/pcre_tables.c pcre/pcre_internal.h 
pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_try_flipped-static$(O): pcre/pcre_try_flipped.c pcre/pcre_internal.h 
pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_ucp_searchfuncs-static$(O): pcre/pcre_ucp_searchfuncs.c 
pcre/pcre_internal.h pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h 
pcre/ucptable.h pcre/ucpinternal.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_valid_utf8-static$(O): pcre/pcre_valid_utf8.c pcre/pcre_internal.h 
pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_version-static$(O): pcre/pcre_version.c pcre/pcre_internal.h 
pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_xclass-static$(O): pcre/pcre_xclass.c pcre/pcre_internal.h 
pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 pcre/pcre_chartables-static$(O): pcre/pcre_chartables.c pcre/pcre_internal.h 
pcre/config.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) 
$(C_COMPILER_COMPILE_OPTION) \
-         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) \
-         $@ $(C_COMPILER_PCRE_OPTIONS)
+         $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< 
$(C_COMPILER_OUTPUT) \
+         $(C_COMPILER_PCRE_OPTIONS)
 
 # assembler objects
 
 ifdef HACKED_APPLY
-$(APPLY_HACK_OBJECT): apply-hack.$(ARCH).s
-       $(ASSEMBLER) $(ASSEMBLER_OPTIONS) $(ASSEMBLER_COMPILE_OPTION) $< 
$(ASSEMBLER_OUTPUT_OPTION) $@
+$(APPLY_HACK_OBJECT): $(APPLY_HACK_SRC)
+       $(ASSEMBLER) $(ASSEMBLER_OPTIONS) $(ASSEMBLER_COMPILE_OPTION) $< 
$(ASSEMBLER_OUTPUT)
 endif
 
 # program objects
 
 chicken-profile$(O): chicken-profile.c chicken.h $(CHICKEN_CONFIG_H)
-       $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
-         $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+       $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) $(C_COMPILER_SHARED_OPTIONS) \
+         $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $< 
$(C_COMPILER_OUTPUT)
 chicken-setup$(O): chicken-setup.c chicken.h $(CHICKEN_CONFIG_H)
-       $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
-         $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+       $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) $(C_COMPILER_SHARED_OPTIONS) \
+         $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $< 
$(C_COMPILER_OUTPUT)
 csc$(O): csc.c chicken.h $(CHICKEN_CONFIG_H)
-       $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
-         $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+       $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) $(C_COMPILER_SHARED_OPTIONS) \
+         $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $< 
$(C_COMPILER_OUTPUT)
 csi$(O): csi.c chicken.h $(CHICKEN_CONFIG_H)
-       $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
-         $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+       $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) $(C_COMPILER_SHARED_OPTIONS) \
+         $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $< 
$(C_COMPILER_OUTPUT)
 
 # static program objects
 
 csi-static$(O): csi.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
-         $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $< 
$(C_COMPILER_OUTPUT)
 chicken-bug$(O): chicken-bug.c chicken.h $(CHICKEN_CONFIG_H)
        $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) 
$(INCLUDES) \
-         $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $< 
$(C_COMPILER_OUTPUT_OPTION) $@
+         $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $< 
$(C_COMPILER_OUTPUT)
 
 # libchicken
 
@@ -642,11 +642,11 @@
 
 libchicken$(SO): $(LIBCHICKEN_SHARED_OBJECTS) $(PCRE_SHARED_OBJECTS) 
$(APPLY_HACK_OBJECT)
        $(LINKER) $(LINKER_OPTIONS) $(LINKER_LINK_SHARED_LIBRARY_OPTIONS) 
$(LIBCHICKEN_SO_LINKER_OPTIONS) \
-         $(LINKER_OUTPUT_OPTION) $@ $^ $(LIBCHICKEN_SO_LIBRARIES)
+         $(LINKER_OUTPUT) $^ $(LIBCHICKEN_SO_LIBRARIES)
 
 libuchicken$(SO): $(LIBUCHICKEN_SHARED_OBJECTS) $(PCRE_SHARED_OBJECTS) 
$(APPLY_HACK_OBJECT)
        $(LINKER) $(LINKER_OPTIONS) $(LINKER_LINK_SHARED_LIBRARY_OPTIONS) 
$(LIBUCHICKEN_SO_LINKER_OPTIONS) \
-         $(LINKER_OUTPUT_OPTION) $@ $^ $(LIBUCHICKEN_SO_LIBRARIES)
+         $(LINKER_OUTPUT) $^ $(LIBUCHICKEN_SO_LIBRARIES)
 
 cygchicken-0.dll: $(LIBCHICKEN_SHARED_OBJECTS) $(PCRE_SHARED_OBJECTS) 
$(APPLY_HACK_OBJECT)
        gcc -shared -o $(LIBCHICKEN_SO_FILE) -Wl,--dll -Wl,--add-stdcall-alias \
@@ -671,50 +671,50 @@
 
 libchickengui$(SO): $(LIBCHICKENGUI_SHARED_OBJECTS) $(PCRE_SHARED_OBJECTS) 
$(APPLY_HACK_OBJECT)
        $(LINKER) $(LINKER_OPTIONS) $(LINKER_LINK_SHARED_LIBRARY_OPTIONS) 
$(LIBCHICKENGUI_SO_LINKER_OPTIONS) \
-         $(LINKER_OUTPUT_OPTION) $@ $^ $(LIBCHICKENGUI_SO_LIBRARIES)
+       $(LINKER_OUTPUT) $^ $(LIBCHICKENGUI_SO_LIBRARIES)
 
 libchicken$(A): $(LIBCHICKEN_STATIC_OBJECTS) $(PCRE_STATIC_OBJECTS) 
$(APPLY_HACK_OBJECT)
-       $(LIBRARIAN) $(LIBRARIAN_OPTIONS) $(LLIBRARIAN_OUTPUT_OPTION) $@ $^
+       $(LIBRARIAN) $(LIBRARIAN_OPTIONS) $(LIBRARIAN_OUTPUT) $^
 
 libuchicken$(A): $(LIBUCHICKEN_STATIC_OBJECTS) $(PCRE_STATIC_OBJECTS) 
$(APPLY_HACK_OBJECT)
-       $(LIBRARIAN) $(LIBRARIAN_OPTIONS) $(LLIBRARIAN_OUTPUT_OPTION) $@ $^
+       $(LIBRARIAN) $(LIBRARIAN_OPTIONS) $(LIBRARIAN_OUTPUT) $^
 
 libchickengui$(A): $(LIBCHICKENGUI_STATIC_OBJECTS) $(PCRE_STATIC_OBJECTS) 
$(APPLY_HACK_OBJECT)
-       $(LIBRARIAN) $(LIBRARIAN_OPTIONS) $(LLIBRARIAN_OUTPUT_OPTION) $@ $^
+       $(LIBRARIAN) $(LIBRARIAN_OPTIONS) $(LIBRARIAN_OUTPUT) $^
 
 # executables
 
 $(CHICKEN_SHARED_EXECUTABLE): $(COMPILER_OBJECTS) $(PRIMARY_LIBCHICKEN)
-       $(LINKER) $(LINKER_OPTIONS) $(LINKER_EXECUTABLE_OPTIONS) 
$(COMPILER_OBJECTS) $(LINKER_OUTPUT_OPTION) $@ \
-          $(LINKER_LIBRARY_OPTION)chicken 
$(LINKER_LINK_SHARED_PROGRAM_OPTIONS) $(LIBRARIES)
+       $(LINKER) $(LINKER_OPTIONS) $(LINKER_EXECUTABLE_OPTIONS) 
$(COMPILER_OBJECTS) $(LINKER_OUTPUT) \
+          $(LINKER_LIBRARY_PREFIX)chicken$(LINKER_LIBRARY_SUFFIX) 
$(LINKER_LINK_SHARED_PROGRAM_OPTIONS) $(LIBRARIES)
 
 $(CSI_SHARED_EXECUTABLE): csi$(O) $(PRIMARY_LIBCHICKEN)
-       $(LINKER) $(LINKER_OPTIONS) $(LINKER_EXECUTABLE_OPTIONS) $< 
$(LINKER_OUTPUT_OPTION) $@ \
-          $(LINKER_LIBRARY_OPTION)chicken 
$(LINKER_LINK_SHARED_PROGRAM_OPTIONS) $(LIBRARIES)
+       $(LINKER) $(LINKER_OPTIONS) $(LINKER_EXECUTABLE_OPTIONS) $< 
$(LINKER_OUTPUT) \
+          $(LINKER_LIBRARY_PREFIX)chicken$(LINKER_LIBRARY_SUFFIX) 
$(LINKER_LINK_SHARED_PROGRAM_OPTIONS) $(LIBRARIES)
 
 $(CHICKEN_SETUP_PROGRAM)$(EXE): chicken-setup$(O) $(PRIMARY_LIBCHICKEN)
-       $(LINKER) $(LINKER_OPTIONS) $(LINKER_EXECUTABLE_OPTIONS) $< 
$(LINKER_OUTPUT_OPTION) $@ \
-          $(LINKER_LIBRARY_OPTION)chicken 
$(LINKER_LINK_SHARED_PROGRAM_OPTIONS) $(LIBRARIES)
+       $(LINKER) $(LINKER_OPTIONS) $(LINKER_EXECUTABLE_OPTIONS) $< 
$(LINKER_OUTPUT) \
+          $(LINKER_LIBRARY_PREFIX)chicken$(LINKER_LIBRARY_SUFFIX) 
$(LINKER_LINK_SHARED_PROGRAM_OPTIONS) $(LIBRARIES)
 
 $(CHICKEN_PROFILE_PROGRAM)$(EXE): chicken-profile$(O) $(PRIMARY_LIBCHICKEN)
-       $(LINKER) $(LINKER_OPTIONS) $(LINKER_EXECUTABLE_OPTIONS) $< 
$(LINKER_OUTPUT_OPTION) $@ \
-          $(LINKER_LIBRARY_OPTION)chicken 
$(LINKER_LINK_SHARED_PROGRAM_OPTIONS) $(LIBRARIES)
+       $(LINKER) $(LINKER_OPTIONS) $(LINKER_EXECUTABLE_OPTIONS) $< 
$(LINKER_OUTPUT) \
+          $(LINKER_LIBRARY_PREFIX)chicken$(LINKER_LIBRARY_SUFFIX) 
$(LINKER_LINK_SHARED_PROGRAM_OPTIONS) $(LIBRARIES)
 
 $(CSC_PROGRAM)$(EXE): csc$(O) $(PRIMARY_LIBCHICKEN)
-       $(LINKER) $(LINKER_OPTIONS) $(LINKER_EXECUTABLE_OPTIONS) $< 
$(LINKER_OUTPUT_OPTION) $@ \
-          $(LINKER_LIBRARY_OPTION)chicken 
$(LINKER_LINK_SHARED_PROGRAM_OPTIONS) $(LIBRARIES)
+       $(LINKER) $(LINKER_OPTIONS) $(LINKER_EXECUTABLE_OPTIONS) $< 
$(LINKER_OUTPUT) \
+          $(LINKER_LIBRARY_PREFIX)chicken$(LINKER_LIBRARY_SUFFIX) 
$(LINKER_LINK_SHARED_PROGRAM_OPTIONS) $(LIBRARIES)
 
 # static executables
 
 $(CHICKEN_STATIC_EXECUTABLE): $(COMPILER_STATIC_OBJECTS) libchicken$(A)
        $(LINKER) $(LINKER_OPTIONS) $(LINKER_STATIC_OPTIONS) 
$(COMPILER_STATIC_OBJECTS) \
-         $(LINKER_OUTPUT_OPTION) $@ libchicken$(A) $(LIBRARIES)
+         $(LINKER_OUTPUT) libchicken$(A) $(LIBRARIES)
 $(CSI_STATIC_EXECUTABLE): csi$(O) libchicken$(A)
-       $(LINKER) $(LINKER_OPTIONS) $(LINKER_STATIC_OPTIONS) $< 
$(LINKER_OUTPUT_OPTION) \
-         $@ libchicken$(A) $(LIBRARIES)
+       $(LINKER) $(LINKER_OPTIONS) $(LINKER_STATIC_OPTIONS) $< 
$(LINKER_OUTPUT) \
+         libchicken$(A) $(LIBRARIES)
 $(CHICKEN_BUG_PROGRAM)$(EXE): chicken-bug$(O) libchicken$(A)
-       $(LINKER) $(LINKER_OPTIONS) $(LINKER_STATIC_OPTIONS) $< 
$(LINKER_OUTPUT_OPTION) \
-          $@ libchicken$(A) $(LIBRARIES)
+       $(LINKER) $(LINKER_OPTIONS) $(LINKER_STATIC_OPTIONS) $< 
$(LINKER_OUTPUT) \
+          libchicken$(A) $(LIBRARIES)
 
 # info documentation
 
@@ -740,6 +740,7 @@
        $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_STATIC_LIBRARY_OPTIONS) 
$(LIBCHICKEN_IMPORT_LIBRARY) $(DESTDIR)$(ILIBDIR)
        $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_STATIC_LIBRARY_OPTIONS) 
$(LIBUCHICKEN_IMPORT_LIBRARY) $(DESTDIR)$(ILIBDIR)
 ifdef WINDOWS
+       $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_STATIC_LIBRARY_OPTIONS) 
libchickengui$(A) $(DESTDIR)$(ILIBDIR)
        $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_STATIC_LIBRARY_OPTIONS) 
$(LIBCHICKENGUI_IMPORT_LIBRARY) $(DESTDIR)$(ILIBDIR)
 endif
 endif
@@ -832,7 +833,7 @@
          $(DESTDIR)$(IBINDIR)/$(CSI_PROGRAM)$(EXE) 
$(DESTDIR)$(IBINDIR)/$(CHICKEN_PROFILE_PROGRAM)$(EXE) \
          $(DESTDIR)$(IBINDIR)/$(CHICKEN_SETUP_PROGRAM)$(EXE) 
$(DESTDIR)$(IBINDIR)/$(CSC_PROGRAM)$(EXE) \
          $(DESTDIR)$(IBINDIR)/$(CHICKEN_BUG_PROGRAM)$(EXE)
-       $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) 
$(DESTDIR)$(ILIBDIR)/libchicken.* $(DESTDIR)$(ILIBDIR)/libuchicken.*
+       $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) 
$(DESTDIR)$(ILIBDIR)/libchicken*.* $(DESTDIR)$(ILIBDIR)/libuchicken*.* 
$(DESTDIR)$(IBINDIR)/libchicken*.* $(DESTDIR)$(IBINDIR)/libuchicken*.*
 ifdef ($(PLATFORM),cygwin)
        $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) 
$(DESTDIR)$(IBINDIR)/cygchicken* $(DESTDIR)$(IBINDIR)/cyguchicken*
 endif
@@ -842,6 +843,7 @@
        $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) 
$(DESTDIR)$(IINCDIR)/chicken.h $(DESTDIR)$(IINCDIR)/chicken-config.h
        $(REMOVE_COMMAND) $(REMOVE_COMMAND_RECURSIVE_OPTIONS) 
$(DESTDIR)$(IDATADIR)
        $(UNINSTALLINFO_PROGRAM) $(UNINSTALLINFO_PROGRAM_OPTIONS) 
--infodir=$(DESTDIR)$(IINFODIR) chicken.info
+       $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) 
$(DESTDIR)$(IINFODIR)/chicken.info
 ifdef WINDOWS
        $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) 
$(DESTDIR)$(IBINDIR)/csibatch.bat
 endif
@@ -976,10 +978,10 @@
        -$(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) chicken$(EXE) csi$(EXE) 
csc$(EXE) \
          chicken-setup$(EXE) chicken-profile$(EXE) csi-static$(EXE) \
          csc-static$(EXE) chicken-static$(EXE) chicken-bug$(EXE) chicken.info 
*$(O) \
-         $(LIBCHICKEN_SO_FILE) $(LIBUCHICKEN_SO_FILE) \
-         libchicken$(A) libuchicken$(A) \
-         $(LIBCHICKEN_IMPORT_LIBRARY) $(LIBUCHICKEN_IMPORT_LIBRARY) \
-         chicken.info $(CLEAN_PCRE) $(CLEAN_MINGW_LIBS)
+         $(LIBCHICKEN_SO_FILE) $(LIBUCHICKEN_SO_FILE) $(LIBCHICKENGUI_SO_FILE) 
\
+         libchicken$(A) libuchicken$(A) libchickengui$(A) 
$(PROGRAM_IMPORT_LIBRARIES) \
+         $(LIBCHICKEN_IMPORT_LIBRARY) $(LIBUCHICKEN_IMPORT_LIBRARY) 
$(LIBCHICKENGUI_IMPORT_LIBRARY)  \
+         $(MSVC_CHICKEN_EXPORT_FILES) chicken.info $(CLEAN_PCRE) 
$(CLEAN_MINGW_LIBS)
 
 confclean:
        -$(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) chicken-config.h 
chicken-defaults.h

reply via email to

[Prev in Thread] Current Thread [Next in Thread]