~ chicken-core (chicken-5) /defaults.make
Trap1# defaults.make - default settings -*- Makefile -*-
2#
3# Copyright (c) 2008-2022, The CHICKEN Team
4# Copyright (c) 2007, Felix L. Winkelmann
5# All rights reserved.
6#
7# Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following
8# conditions are met:
9#
10# Redistributions of source code must retain the above copyright notice, this list of conditions and the following
11# disclaimer.
12# Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
13# disclaimer in the documentation and/or other materials provided with the distribution.
14# Neither the name of the author nor the names of its contributors may be used to endorse or promote
15# products derived from this software without specific prior written permission.
16#
17# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
18# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
19# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
20# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
22# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
24# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25# POSSIBILITY OF SUCH DAMAGE.
26
27
28# basic parameters
29
30BINARYVERSION = 11
31STACKDIRECTION ?= 1
32CROSS_CHICKEN ?= 0
33
34# directories
35
36SEP ?= /
37DESTDIR ?=
38PREFIX ?= /usr/local
39
40BINDIR ?= $(PREFIX)/bin
41LIBDIR ?= $(PREFIX)/lib
42SHAREDIR ?= $(PREFIX)/share
43DATADIR ?= $(SHAREDIR)/$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)
44INCLUDEDIR ?= $(PREFIX)/include
45MANDIR ?= $(SHAREDIR)/man
46
47DOCDIR ?= $(DATADIR)/doc
48VARDIR ?= $(LIBDIR)
49MAN1DIR ?= $(MANDIR)/man1
50CHICKENLIBDIR ?= $(VARDIR)/$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)
51EGGDIR ?= $(CHICKENLIBDIR)/$(BINARYVERSION)
52CHICKENINCDIR ?= $(INCLUDEDIR)/$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)
53
54# For the windows shell, we must distinguish between paths built into
55# binaries (system calls may use slash as a separator) and paths
56# passed to shell commands when installing. We prefix the latter with
57# an 'I':
58INST_DIRS=BINDIR LIBDIR SHAREDIR DATADIR MAN1DIR CHICKENINCDIR DOCDIR EGGDIR
59$(foreach dir,$(INST_DIRS),$(eval I$(dir)=$(subst /,$(SEP),$($(dir)))))
60
61INSTALL_LIB_NAME = $(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)
62RUNTIME_LINKER_PATH ?= .
63
64# commands
65
66ifdef HOSTSYSTEM
67C_COMPILER ?= $(HOSTSYSTEM)-gcc
68CXX_COMPILER ?= $(HOSTSYSTEM)-g++
69LIBRARIAN ?= $(HOSTSYSTEM)-ar
70else
71C_COMPILER ?= gcc
72CXX_COMPILER ?= g++
73LIBRARIAN ?= ar
74endif
75ifdef WINDOWS
76ifdef HOSTSYSTEM
77RC_COMPILER ?= $(HOSTSYSTEM)-windres
78else
79RC_COMPILER ?= windres
80endif
81endif
82LINKER ?= $(C_COMPILER)
83ASSEMBLER ?= $(C_COMPILER)
84ifdef WINDOWS_SHELL
85REMOVE_COMMAND ?= del
86INSTALL_PROGRAM ?= copy
87MAKEDIR_COMMAND ?= -mkdir
88else
89REMOVE_COMMAND ?= rm
90INSTALL_PROGRAM ?= install
91MAKEDIR_COMMAND ?= $(INSTALL_PROGRAM)
92endif
93PREINSTALL_PROGRAM_FIXUP ?= true
94POSTINSTALL_STATIC_LIBRARY ?= true
95POSTINSTALL_PROGRAM ?= true
96
97# target variables
98
99ifdef TARGETSYSTEM
100TARGET_C_COMPILER ?= $(TARGETSYSTEM)-$(C_COMPILER)
101TARGET_CXX_COMPILER ?= $(TARGETSYSTEM)-$(CXX_COMPILER)
102TARGET_RC_COMPILER ?= $(TARGETSYSTEM)-$(RC_COMPILER)
103TARGET_LIBRARIAN ?= $(TARGETSYSTEM)-$(LIBRARIAN)
104else
105TARGET_C_COMPILER ?= $(C_COMPILER)
106TARGET_CXX_COMPILER ?= $(CXX_COMPILER)
107TARGET_RC_COMPILER ?= $(RC_COMPILER)
108TARGET_LIBRARIAN ?= $(LIBRARIAN)
109endif
110
111TARGET_C_COMPILER_OPTIONS ?= $(C_COMPILER_OPTIONS)
112TARGET_C_COMPILER_OPTIMIZATION_OPTIONS ?= $(C_COMPILER_OPTIMIZATION_OPTIONS)
113TARGET_LIBRARIAN_OPTIONS ?= $(LIBRARIAN_OPTIONS)
114TARGET_PREFIX ?= $(PREFIX)
115TARGET_RUN_PREFIX ?= $(TARGET_PREFIX)
116TARGET_LIBRARIES ?= $(LIBRARIES)
117TARGET_LINKER_OPTIONS ?= $(LINKER_OPTIONS)
118TARGET_LINKER_OPTIMIZATION_OPTIONS ?= $(LINKER_OPTIMIZATION_OPTIONS)
119TARGET_FEATURES ?=
120TARGET_LIB_NAME ?= chicken
121
122ifneq ($(TARGET_C_COMPILER),$(C_COMPILER))
123CROSS_CHICKEN = 1
124else
125CROSS_CHICKEN = 0
126endif
127
128
129# options
130
131INCLUDES ?= -I. -I$(SRCDIR)
132C_COMPILER_COMPILE_OPTION ?= -c
133C_COMPILER_OUTPUT_OPTION ?= -o
134C_COMPILER_OUTPUT ?= $(C_COMPILER_OUTPUT_OPTION) $@
135
136ifndef NOPTABLES
137C_COMPILER_OPTIONS += -DC_ENABLE_PTABLES
138endif
139
140ifdef DEBUGBUILD
141ifeq ($(C_COMPILER),gcc)
142C_COMPILER_OPTIMIZATION_OPTIONS ?= -g -Wall -Wno-unused
143endif
144endif
145C_COMPILER_BUILD_RUNTIME_OPTIONS ?= -DC_BUILDING_LIBCHICKEN
146C_COMPILER_SHARED_OPTIONS ?= -fPIC -DPIC
147LINKER_EXECUTABLE_OPTIONS ?= -L.
148LINKER_STATIC_OPTIONS ?= $(LINKER_EXECUTABLE_OPTIONS)
149LINKER_OUTPUT_OPTION ?= -o
150LINKER_OUTPUT ?= $(LINKER_OUTPUT_OPTION) $@
151LINKER_LIBRARY_OPTION ?= -l
152ifdef STATICBUILD
153LINKER_LIBRARY_PREFIX ?= lib
154LINKER_LIBRARY_SUFFIX ?= .a
155else
156LINKER_LIBRARY_PREFIX ?= -l
157LINKER_LIBRARY_SUFFIX ?=
158endif
159LINKER_LINK_SHARED_LIBRARY_OPTIONS ?= -shared
160LINKER_LINK_SHARED_DLOADABLE_OPTIONS ?= -shared -L.
161LIBRARIAN_OPTIONS ?= cru
162LIBRARIAN_OUTPUT_OPTION ?=
163LIBRARIAN_OUTPUT ?= $(LIBRARIAN_OUTPUT_OPTION) $@
164LIBRARIES ?= -lm
165ifdef WINDOWS_SHELL
166REMOVE_COMMAND_OPTIONS ?= /f /q
167REMOVE_COMMAND_RECURSIVE_OPTIONS ?= /f /s /q
168MAKE_WRITABLE_COMMAND ?= rem
169INSTALL_PROGRAM_SHARED_LIBRARY_OPTIONS ?= /Y
170INSTALL_PROGRAM_STATIC_LIBRARY_OPTIONS ?= /Y
171INSTALL_PROGRAM_EXECUTABLE_OPTIONS ?= /Y
172INSTALL_PROGRAM_FILE_OPTIONS ?= /Y
173else
174REMOVE_COMMAND_OPTIONS ?= -f
175REMOVE_COMMAND_RECURSIVE_OPTIONS ?= -fr
176MAKE_WRITABLE_COMMAND ?= chmod 0755
177INSTALL_PROGRAM_SHARED_LIBRARY_OPTIONS ?= -m 755
178INSTALL_PROGRAM_STATIC_LIBRARY_OPTIONS ?= -m 644
179INSTALL_PROGRAM_EXECUTABLE_OPTIONS ?= -m 755
180INSTALL_PROGRAM_FILE_OPTIONS ?= -m 644
181MAKEDIR_COMMAND_OPTIONS ?= -d -m 755
182endif
183ASSEMBLER_OPTIONS ?= $(C_COMPILER_OPTIONS)
184ASSEMBLER_OUTPUT_OPTION ?= -o
185ASSEMBLER_OUTPUT ?= $(ASSEMBLER_OUTPUT_OPTION) $@
186ASSEMBLER_COMPILE_OPTION ?= -c
187ifdef STATICBUILD
188PRIMARY_LIBCHICKEN ?= lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(A)
189else
190ifeq ($(PLATFORM),cygwin)
191PRIMARY_LIBCHICKEN = cyg$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)-0.dll
192LIBCHICKEN_SO_FILE = cyg$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)-0.dll
193else
194PRIMARY_LIBCHICKEN ?= lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(SO)
195LIBCHICKEN_SO_FILE ?= lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(SO)
196endif
197endif
198LIBCHICKEN_SO_LIBRARIES ?= $(LIBRARIES)
199
200# other settings
201
202ifdef WINDOWS_SHELL
203BUILD_TIME ?= $(shell date /t)
204SCRIPT_EXT = .bat
205COPY_COMMAND = copy /Y
206HOSTNAME ?= $(shell hostname)
207UNAME_SYS ?= Windows
208# This is a poor man's version of $(file ...) in GNU Make 4.0
209# We should consider replacing it when it becomes so widespread
210# that systems (Debian, OS X, Haiku, Mingw, Cygwin) are shipping it
211echo = echo $(3)$(1)$(2)
212else
213SCRIPT_EXT =
214COPY_COMMAND = cp
215echo = echo '$(subst ','\'',$(3))'$(1)$(2)
216#' fix Emacs syntax highlighting
217endif
218WISH ?= "$$wish"
219GENERATE_DEBUGGER ?= cat $< >$@; echo 'exec $(WISH) "$(DATADIR)/feathers.tcl" -- "$$@"' >>$@
220
221
222# file extensions
223
224O ?= .o
225A ?= .a
226# EXE ?=
227SO ?= .so
228ASM ?= .S
229MAN ?= .mdoc
230
231# special files
232
233POSIXFILE ?= posixunix
234CHICKEN_CONFIG_H = chicken-config.h
235
236# bootstrapping compiler
237
238CHICKEN ?= chicken$(EXE)
239
240# interpreter for scripts
241
242CSI ?= csi$(EXE)
243
244# Scheme compiler flags
245
246CHICKEN_OPTIONS = -optimize-level 2 -include-path . -include-path $(SRCDIR) -inline -ignore-repository -feature chicken-bootstrap
247ifdef DEBUGBUILD
248CHICKEN_OPTIONS += -feature debugbuild -verbose
249else
250CHICKEN_OPTIONS += -no-warnings
251endif
252ifndef BUILDING_CHICKEN_BOOT
253CHICKEN_OPTIONS += -specialize -consult-types-file $(SRCDIR)types.db
254endif
255CHICKEN_OPTIONS += $(EXTRA_CHICKEN_OPTIONS)
256CHICKEN_LIBRARY_OPTIONS = $(CHICKEN_OPTIONS) -explicit-use -no-trace
257CHICKEN_PROGRAM_OPTIONS = $(CHICKEN_OPTIONS) -no-lambda-info
258CHICKEN_DYNAMIC_OPTIONS = $(CHICKEN_OPTIONS) -feature chicken-compile-shared -dynamic
259CHICKEN_IMPORT_LIBRARY_OPTIONS = $(CHICKEN_DYNAMIC_OPTIONS) -no-trace
260
261ifndef DEBUGBUILD
262CHICKEN_PROGRAM_OPTIONS += -no-trace
263endif
264
265CHICKEN_PROGRAM_OPTIONS += $(if $(PROFILE_OBJECTS),-profile)
266
267# import libraries
268
269PRIMITIVE_IMPORT_LIBRARIES = chicken.base chicken.condition \
270 chicken.csi chicken.foreign chicken.syntax chicken.time
271DYNAMIC_IMPORT_LIBRARIES = srfi-4
272DYNAMIC_CHICKEN_IMPORT_LIBRARIES = bitwise blob errno file.posix \
273 fixnum flonum format gc io keyword load locative memory \
274 memory.representation platform plist pretty-print \
275 process process.signal process-context process-context.posix \
276 random sort string time.posix
277DYNAMIC_CHICKEN_COMPILER_IMPORT_LIBRARIES = user-pass
278DYNAMIC_CHICKEN_UNIT_IMPORT_LIBRARIES = continuation eval file \
279 internal irregex pathname port read-syntax repl tcp
280
281# targets
282
283CHICKEN_PROGRAM = $(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)
284CSC_PROGRAM = $(PROGRAM_PREFIX)csc$(PROGRAM_SUFFIX)
285CSI_PROGRAM = $(PROGRAM_PREFIX)csi$(PROGRAM_SUFFIX)
286CHICKEN_PROFILE_PROGRAM = $(PROGRAM_PREFIX)chicken-profile$(PROGRAM_SUFFIX)
287CHICKEN_INSTALL_PROGRAM = $(PROGRAM_PREFIX)chicken-install$(PROGRAM_SUFFIX)
288CHICKEN_UNINSTALL_PROGRAM = $(PROGRAM_PREFIX)chicken-uninstall$(PROGRAM_SUFFIX)
289CHICKEN_STATUS_PROGRAM = $(PROGRAM_PREFIX)chicken-status$(PROGRAM_SUFFIX)
290CHICKEN_DO_PROGRAM = $(PROGRAM_PREFIX)chicken-do$(PROGRAM_SUFFIX)
291CHICKEN_DEBUGGER_PROGRAM ?= $(PROGRAM_PREFIX)feathers$(PROGRAM_SUFFIX)$(SCRIPT_EXT)
292IMPORT_LIBRARIES = $(DYNAMIC_IMPORT_LIBRARIES) \
293 $(PRIMITIVE_IMPORT_LIBRARIES) \
294 $(foreach lib,$(DYNAMIC_CHICKEN_IMPORT_LIBRARIES),chicken.$(lib)) \
295 $(foreach lib,$(DYNAMIC_CHICKEN_UNIT_IMPORT_LIBRARIES),chicken.$(lib)) \
296 $(foreach lib,$(DYNAMIC_CHICKEN_COMPILER_IMPORT_LIBRARIES),chicken.compiler.$(lib))
297
298ifdef STATICBUILD
299CHICKEN_STATIC_EXECUTABLE = $(CHICKEN_PROGRAM)$(EXE)
300CSI_STATIC_EXECUTABLE = $(CSI_PROGRAM)$(EXE)
301CHICKEN_SHARED_EXECUTABLE = $(CHICKEN_PROGRAM)-shared$(EXE)
302CSI_SHARED_EXECUTABLE = $(CSI_PROGRAM)-shared$(EXE)
303TARGETLIBS ?= lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(A)
304TARGETS += $(TARGETLIBS) $(CHICKEN_STATIC_EXECUTABLE) \
305 $(CSI_STATIC_EXECUTABLE)
306else
307CHICKEN_STATIC_EXECUTABLE = $(CHICKEN_PROGRAM)-static$(EXE)
308CSI_STATIC_EXECUTABLE = $(CSI_PROGRAM)-static$(EXE)
309CHICKEN_SHARED_EXECUTABLE = $(CHICKEN_PROGRAM)$(EXE)
310CSI_SHARED_EXECUTABLE = $(CSI_PROGRAM)$(EXE)
311TARGETLIBS ?= lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(A) $(LIBCHICKEN_SO_FILE)
312TARGETS += $(TARGETLIBS) $(CHICKEN_SHARED_EXECUTABLE) \
313 $(CSI_SHARED_EXECUTABLE) \
314 $(IMPORT_LIBRARIES:%=%.import.so)
315endif
316
317TARGETS += $(CHICKEN_INSTALL_PROGRAM)$(EXE) \
318 $(CHICKEN_UNINSTALL_PROGRAM)$(EXE) \
319 $(CHICKEN_STATUS_PROGRAM)$(EXE) \
320 $(CHICKEN_PROFILE_PROGRAM)$(EXE) \
321 $(CSC_PROGRAM)$(EXE) \
322 $(CHICKEN_DO_PROGRAM)$(EXE) \
323 $(CHICKEN_DEBUGGER_PROGRAM)
324
325ifdef WINDOWS
326TARGETS += chicken.rc$(O)
327endif
328
329
330# main rule
331
332.PHONY: all
333
334all: $(TARGETS)
335
336# generic part of chicken-config.h
337
338chicken-defaults.h:
339ifdef OPTIMIZE_FOR_SPEED
340 $(call echo, >,$@.tmp, /* (this build was optimized for speed) */)
341endif
342ifdef DEBUGBUILD
343 $(call echo, >>, $@.tmp,#define DEBUGBUILD 1)
344endif
345ifdef STATICBUILD
346 $(call echo, >>, $@.tmp,#define STATICBUILD 1)
347endif
348 $(call echo, >>, $@.tmp,#define C_CHICKEN_PROGRAM "$(CHICKEN_PROGRAM)$(EXE)")
349 $(call echo, >>, $@.tmp,#ifndef C_INSTALL_CC)
350 $(call echo, >>, $@.tmp,# define C_INSTALL_CC "$(C_COMPILER)")
351 $(call echo, >>, $@.tmp,#endif)
352 $(call echo, >>, $@.tmp,#ifndef C_INSTALL_CXX)
353 $(call echo, >>, $@.tmp,# define C_INSTALL_CXX "$(CXX_COMPILER)")
354 $(call echo, >>, $@.tmp,#endif)
355 $(call echo, >>, $@.tmp,#ifndef C_INSTALL_POSTINSTALL_PROGRAM)
356 $(call echo, >>, $@.tmp,# define C_INSTALL_POSTINSTALL_PROGRAM "$(POSTINSTALL_PROGRAM)")
357 $(call echo, >>, $@.tmp,#endif)
358 $(call echo, >>, $@.tmp,#ifndef C_INSTALL_RC_COMPILER)
359 $(call echo, >>, $@.tmp,# define C_INSTALL_RC_COMPILER "$(RC_COMPILER)")
360 $(call echo, >>, $@.tmp,#endif)
361 $(call echo, >>, $@.tmp,#ifndef C_INSTALL_CFLAGS)
362 $(call echo, >>, $@.tmp,# define C_INSTALL_CFLAGS "$(C_COMPILER_OPTIONS) $(C_COMPILER_OPTIMIZATION_OPTIONS)")
363 $(call echo, >>, $@.tmp,#endif)
364 $(call echo, >>, $@.tmp,#ifndef C_INSTALL_LDFLAGS)
365 $(call echo, >>, $@.tmp,# define C_INSTALL_LDFLAGS "$(LINKER_OPTIONS) $(LINKER_OPTIMIZATION_OPTIONS)")
366 $(call echo, >>, $@.tmp,#endif)
367 $(call echo, >>, $@.tmp,#ifndef C_INSTALL_PREFIX)
368 $(call echo, >>, $@.tmp,# define C_INSTALL_PREFIX "$(PREFIX)")
369 $(call echo, >>, $@.tmp,#endif)
370 $(call echo, >>, $@.tmp,#ifndef C_INSTALL_SHARE_HOME)
371 $(call echo, >>, $@.tmp,# define C_INSTALL_SHARE_HOME "$(DATADIR)")
372 $(call echo, >>, $@.tmp,#endif)
373 $(call echo, >>, $@.tmp,#ifndef C_INSTALL_BIN_HOME)
374 $(call echo, >>, $@.tmp,# define C_INSTALL_BIN_HOME "$(BINDIR)")
375 $(call echo, >>, $@.tmp,#endif)
376 $(call echo, >>, $@.tmp,#ifndef C_INSTALL_EGG_HOME)
377 $(call echo, >>, $@.tmp,# define C_INSTALL_EGG_HOME "$(EGGDIR)")
378 $(call echo, >>, $@.tmp,#endif)
379 $(call echo, >>, $@.tmp,#ifndef C_INSTALL_LIB_HOME)
380 $(call echo, >>, $@.tmp,# define C_INSTALL_LIB_HOME "$(LIBDIR)")
381 $(call echo, >>, $@.tmp,#endif)
382 $(call echo, >>, $@.tmp,#ifndef C_INSTALL_LIB_NAME)
383 $(call echo, >>, $@.tmp,# define C_INSTALL_LIB_NAME "$(INSTALL_LIB_NAME)")
384 $(call echo, >>, $@.tmp,#endif)
385 $(call echo, >>, $@.tmp,#ifndef C_INSTALL_STATIC_LIB_HOME)
386 $(call echo, >>, $@.tmp,# define C_INSTALL_STATIC_LIB_HOME "$(LIBDIR)")
387 $(call echo, >>, $@.tmp,#endif)
388 $(call echo, >>, $@.tmp,#ifndef C_INSTALL_INCLUDE_HOME)
389 $(call echo, >>, $@.tmp,# define C_INSTALL_INCLUDE_HOME "$(CHICKENINCDIR)")
390 $(call echo, >>, $@.tmp,#endif)
391 $(call echo, >>, $@.tmp,#ifndef C_INSTALL_MORE_LIBS)
392 $(call echo, >>, $@.tmp,# define C_INSTALL_MORE_LIBS "$(LIBRARIES)")
393 $(call echo, >>, $@.tmp,#endif)
394 $(call echo, >>, $@.tmp,#ifndef C_INSTALL_MORE_STATIC_LIBS)
395 $(call echo, >>, $@.tmp,# define C_INSTALL_MORE_STATIC_LIBS "$(LIBRARIES)")
396 $(call echo, >>, $@.tmp,#endif)
397 $(call echo, >>, $@.tmp,#ifndef C_STACK_GROWS_DOWNWARD)
398 $(call echo, >>, $@.tmp,# define C_STACK_GROWS_DOWNWARD $(STACKDIRECTION))
399 $(call echo, >>, $@.tmp,#endif)
400 $(call echo, >>, $@.tmp,#ifndef C_TARGET_MORE_LIBS)
401 $(call echo, >>, $@.tmp,# define C_TARGET_MORE_LIBS "$(TARGET_LIBRARIES)")
402 $(call echo, >>, $@.tmp,#endif)
403 $(call echo, >>, $@.tmp,#ifndef C_TARGET_MORE_STATIC_LIBS)
404 $(call echo, >>, $@.tmp,# define C_TARGET_MORE_STATIC_LIBS "$(TARGET_LIBRARIES)")
405 $(call echo, >>, $@.tmp,#endif)
406 $(call echo, >>, $@.tmp,#ifndef C_TARGET_CC)
407 $(call echo, >>, $@.tmp,# define C_TARGET_CC "$(TARGET_C_COMPILER)")
408 $(call echo, >>, $@.tmp,#endif)
409 $(call echo, >>, $@.tmp,#ifndef C_TARGET_CXX)
410 $(call echo, >>, $@.tmp,# define C_TARGET_CXX "$(TARGET_CXX_COMPILER)")
411 $(call echo, >>, $@.tmp,#endif)
412 $(call echo, >>, $@.tmp,#ifndef C_TARGET_RC_COMPILER)
413 $(call echo, >>, $@.tmp,# define C_TARGET_RC_COMPILER "$(TARGET_RC_COMPILER)")
414 $(call echo, >>, $@.tmp,#endif)
415 $(call echo, >>, $@.tmp,#ifndef C_TARGET_LIBRARIAN)
416 $(call echo, >>, $@.tmp,# define C_TARGET_LIBRARIAN "$(TARGET_LIBRARIAN)")
417 $(call echo, >>, $@.tmp,#endif)
418 $(call echo, >>, $@.tmp,#ifndef C_TARGET_INSTALL_PROGRAM)
419 $(call echo, >>, $@.tmp,# define C_TARGET_INSTALL_PROGRAM "$(INSTALL_PROGRAM)")
420 $(call echo, >>, $@.tmp,#endif)
421 $(call echo, >>, $@.tmp,#ifndef C_TARGET_CFLAGS)
422 $(call echo, >>, $@.tmp,# define C_TARGET_CFLAGS "$(TARGET_C_COMPILER_OPTIONS) $(TARGET_C_COMPILER_OPTIMIZATION_OPTIONS)")
423 $(call echo, >>, $@.tmp,#endif)
424 $(call echo, >>, $@.tmp,#ifndef C_TARGET_LIBRARIAN_FLAGS)
425 $(call echo, >>, $@.tmp,# define C_TARGET_LIBRARIAN_FLAGS "$(TARGET_LIBRARIAN_OPTIONS)")
426 $(call echo, >>, $@.tmp,#endif)
427 $(call echo, >>, $@.tmp,#ifndef C_TARGET_LDFLAGS)
428 $(call echo, >>, $@.tmp,# define C_TARGET_LDFLAGS "$(TARGET_LINKER_OPTIONS) $(TARGET_LINKER_OPTIMIZATION_OPTIONS)")
429 $(call echo, >>, $@.tmp,#endif)
430 $(call echo, >>, $@.tmp,#ifndef C_TARGET_INSTALL_PROGRAM_EXECUTABLE_OPTIONS)
431 $(call echo, >>, $@.tmp,# define C_TARGET_INSTALL_PROGRAM_EXECUTABLE_OPTIONS "$(INSTALL_PROGRAM_EXECUTABLE_OPTIONS)")
432 $(call echo, >>, $@.tmp,#endif)
433 $(call echo, >>, $@.tmp,#ifndef C_TARGET_INSTALL_PROGRAM_FILE_OPTIONS)
434 $(call echo, >>, $@.tmp,# define C_TARGET_INSTALL_PROGRAM_FILE_OPTIONS "$(INSTALL_PROGRAM_FILE_OPTIONS)")
435 $(call echo, >>, $@.tmp,#endif)
436 $(call echo, >>, $@.tmp,#ifndef C_TARGET_FEATURES)
437 $(call echo, >>, $@.tmp,# define C_TARGET_FEATURES "$(TARGET_FEATURES)")
438 $(call echo, >>, $@.tmp,#endif)
439 $(call echo, >>, $@.tmp,#ifndef C_CROSS_CHICKEN)
440 $(call echo, >>, $@.tmp,# define C_CROSS_CHICKEN $(CROSS_CHICKEN))
441 $(call echo, >>, $@.tmp,#endif)
442 $(call echo, >>, $@.tmp,#ifndef C_TARGET_PREFIX)
443 $(call echo, >>, $@.tmp,# define C_TARGET_PREFIX "$(TARGET_PREFIX)")
444 $(call echo, >>, $@.tmp,#endif)
445 $(call echo, >>, $@.tmp,#ifndef C_TARGET_BIN_HOME)
446 $(call echo, >>, $@.tmp,# define C_TARGET_BIN_HOME "$(TARGET_PREFIX)/bin")
447 $(call echo, >>, $@.tmp,#endif)
448 $(call echo, >>, $@.tmp,#ifndef C_TARGET_LIB_HOME)
449 $(call echo, >>, $@.tmp,# define C_TARGET_LIB_HOME "$(TARGET_PREFIX)/lib")
450 $(call echo, >>, $@.tmp,#endif)
451 $(call echo, >>, $@.tmp,#ifndef C_TARGET_LIB_NAME)
452 $(call echo, >>, $@.tmp,# define C_TARGET_LIB_NAME "$(TARGET_LIB_NAME)")
453 $(call echo, >>, $@.tmp,#endif)
454 $(call echo, >>, $@.tmp,#ifndef C_TARGET_RUN_LIB_HOME)
455ifdef DLLSINPATH
456 $(call echo, >>, $@.tmp,# define C_TARGET_RUN_LIB_HOME "$(TARGET_RUN_PREFIX)/bin")
457else
458 $(call echo, >>, $@.tmp,# define C_TARGET_RUN_LIB_HOME "$(TARGET_RUN_PREFIX)/lib")
459endif
460 $(call echo, >>, $@.tmp,#endif)
461 $(call echo, >>, $@.tmp,#ifndef C_TARGET_SHARE_HOME)
462 $(call echo, >>, $@.tmp,# define C_TARGET_SHARE_HOME "$(TARGET_PREFIX)/share/chicken")
463 $(call echo, >>, $@.tmp,#endif)
464 $(call echo, >>, $@.tmp,#ifndef C_TARGET_INCLUDE_HOME)
465 $(call echo, >>, $@.tmp,# define C_TARGET_INCLUDE_HOME "$(TARGET_PREFIX)/include/chicken")
466 $(call echo, >>, $@.tmp,#endif)
467 $(call echo, >>, $@.tmp,#ifndef C_TARGET_STATIC_LIB_HOME)
468 $(call echo, >>, $@.tmp,# define C_TARGET_STATIC_LIB_HOME "$(TARGET_PREFIX)/lib")
469 $(call echo, >>, $@.tmp,#endif)
470 $(call echo, >>, $@.tmp,#ifndef C_CHICKEN_PROGRAM)
471 $(call echo, >>, $@.tmp,# define C_CHICKEN_PROGRAM "$(CHICKEN_PROGRAM)")
472 $(call echo, >>, $@.tmp,#endif)
473 $(call echo, >>, $@.tmp,#ifndef C_CSC_PROGRAM)
474 $(call echo, >>, $@.tmp,# define C_CSC_PROGRAM "$(CSC_PROGRAM)")
475 $(call echo, >>, $@.tmp,#endif)
476 $(call echo, >>, $@.tmp,#ifndef C_CSI_PROGRAM)
477 $(call echo, >>, $@.tmp,# define C_CSI_PROGRAM "$(CSI_PROGRAM)")
478 $(call echo, >>, $@.tmp,#endif)
479 $(call echo, >>, $@.tmp,#ifndef C_CHICKEN_DO_PROGRAM)
480 $(call echo, >>, $@.tmp,# define C_CHICKEN_DO_PROGRAM "$(CHICKEN_DO_PROGRAM)")
481 $(call echo, >>, $@.tmp,#endif)
482 $(call echo, >>, $@.tmp,#ifndef C_CHICKEN_INSTALL_PROGRAM)
483 $(call echo, >>, $@.tmp,# define C_CHICKEN_INSTALL_PROGRAM "$(CHICKEN_INSTALL_PROGRAM)")
484 $(call echo, >>, $@.tmp,#endif)
485 $(call echo, >>, $@.tmp,#ifndef C_CHICKEN_UNINSTALL_PROGRAM)
486 $(call echo, >>, $@.tmp,# define C_CHICKEN_UNINSTALL_PROGRAM "$(CHICKEN_UNINSTALL_PROGRAM)")
487 $(call echo, >>, $@.tmp,#endif)
488 $(call echo, >>, $@.tmp,#ifndef C_CHICKEN_STATUS_PROGRAM)
489 $(call echo, >>, $@.tmp,# define C_CHICKEN_STATUS_PROGRAM "$(CHICKEN_STATUS_PROGRAM)")
490 $(call echo, >>, $@.tmp,#endif)
491 $(call echo, >>, $@.tmp,#ifndef C_WINDOWS_SHELL)
492ifdef WINDOWS_SHELL
493 $(call echo, >>, $@.tmp,# define C_WINDOWS_SHELL 1)
494else
495 $(call echo, >>, $@.tmp,# define C_WINDOWS_SHELL 0)
496endif
497 $(call echo, >>, $@.tmp,#endif)
498 $(call echo, >>, $@.tmp,#ifndef C_BINARY_VERSION)
499 $(call echo, >>, $@.tmp,# define C_BINARY_VERSION $(BINARYVERSION))
500 $(call echo, >>, $@.tmp,#endif)
501 $(call echo, >>, $@.tmp,#ifndef C_USES_SONAME)
502ifdef USES_SONAME
503 $(call echo, >>, $@.tmp,# define C_USES_SONAME 1)
504else
505 $(call echo, >>, $@.tmp,# define C_USES_SONAME 0)
506endif
507 $(call echo, >>, $@.tmp,#endif)
508 $(call echo, >>, $@.tmp,/* END OF FILE */)
509 mv $@.tmp $@
510
511chicken-install.rc:
512 $(call echo, >, $@.tmp,/* GENERATED */)
513 $(call echo, >>, $@.tmp,1 24 MOVEABLE PURE)
514 $(call echo, >>, $@.tmp,BEGIN)
515 $(call echo, >>, $@.tmp, "<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?>\r\n")
516 $(call echo, >>, $@.tmp, "<assembly xmlns=""urn:schemas-microsoft-com:asm.v1"" manifestVersion=""1.0"">\r\n")
517 $(call echo, >>, $@.tmp, " <assemblyIdentity version=""1.0.0.0"" processorArchitecture=""*"" name=""$(PROGRAM_PREFIX)chicken-install$(PROGRAM_SUFFIX)"" type=""win32""/>\r\n")
518 $(call echo, >>, $@.tmp, " <ms_asmv2:trustInfo xmlns:ms_asmv2=""urn:schemas-microsoft-com:asm.v2"">\r\n")
519 $(call echo, >>, $@.tmp, " <ms_asmv2:security>\r\n")
520 $(call echo, >>, $@.tmp, " <ms_asmv2:requestedPrivileges>\r\n")
521 $(call echo, >>, $@.tmp, " <ms_asmv2:requestedExecutionLevel level=""asInvoker"" uiAccess=""false""/>\r\n")
522 $(call echo, >>, $@.tmp, " </ms_asmv2:requestedPrivileges>\r\n")
523 $(call echo, >>, $@.tmp, " </ms_asmv2:security>\r\n")
524 $(call echo, >>, $@.tmp, " </ms_asmv2:trustInfo>\r\n")
525 $(call echo, >>, $@.tmp, "</assembly>\r\n")
526 $(call echo, >>, $@.tmp,END)
527 $(call echo, >>, $@.tmp,/* END OF FILE */)
528 mv $@.tmp $@
529
530chicken-uninstall.rc:
531 $(call echo, >, $@.tmp,/* GENERATED */)
532 $(call echo, >>, $@.tmp,1 24 MOVEABLE PURE)
533 $(call echo, >>, $@.tmp,BEGIN)
534 $(call echo, >>, $@.tmp, "<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?>\r\n")
535 $(call echo, >>, $@.tmp, "<assembly xmlns=""urn:schemas-microsoft-com:asm.v1"" manifestVersion=""1.0"">\r\n")
536 $(call echo, >>, $@.tmp, " <assemblyIdentity version=""1.0.0.0"" processorArchitecture=""*"" name=""$(PROGRAM_PREFIX)chicken-uninstall$(PROGRAM_SUFFIX)"" type=""win32""/>\r\n")
537 $(call echo, >>, $@.tmp, " <ms_asmv2:trustInfo xmlns:ms_asmv2=""urn:schemas-microsoft-com:asm.v2"">\r\n")
538 $(call echo, >>, $@.tmp, " <ms_asmv2:security>\r\n")
539 $(call echo, >>, $@.tmp, " <ms_asmv2:requestedPrivileges>\r\n")
540 $(call echo, >>, $@.tmp, " <ms_asmv2:requestedExecutionLevel level=""asInvoker"" uiAccess=""false""/>\r\n")
541 $(call echo, >>, $@.tmp, " </ms_asmv2:requestedPrivileges>\r\n")
542 $(call echo, >>, $@.tmp, " </ms_asmv2:security>\r\n")
543 $(call echo, >>, $@.tmp, " </ms_asmv2:trustInfo>\r\n")
544 $(call echo, >>, $@.tmp, "</assembly>\r\n")
545 $(call echo, >>, $@.tmp,END)
546 $(call echo, >>, $@.tmp,/* END OF FILE */)
547 mv $@.tmp $@