~ chicken-core (master) /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 = 12
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 ?= -static.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)-static$(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
218
219
220# file extensions
221
222O ?= .o
223A ?= .a
224# EXE ?=
225SO ?= .so
226ASM ?= .S
227MAN ?= .mdoc
228
229# special files
230
231POSIXFILE ?= posixunix
232CHICKEN_CONFIG_H = chicken-config.h
233
234# bootstrapping compiler
235
236CHICKEN ?= chicken$(EXE)
237
238# interpreter for scripts
239
240CSI ?= csi$(EXE)
241
242# Scheme compiler flags
243
244CHICKEN_OPTIONS = -optimize-level 2 -include-path . -include-path $(SRCDIR) -inline -ignore-repository -feature chicken-bootstrap
245ifdef DEBUGBUILD
246CHICKEN_OPTIONS += -feature debugbuild -verbose
247else
248CHICKEN_OPTIONS += -no-warnings
249endif
250ifndef BUILDING_CHICKEN_BOOT
251CHICKEN_OPTIONS += -specialize -consult-types-file $(SRCDIR)types.db
252endif
253CHICKEN_OPTIONS += $(EXTRA_CHICKEN_OPTIONS)
254CHICKEN_LIBRARY_OPTIONS = $(CHICKEN_OPTIONS) -explicit-use -no-trace
255CHICKEN_PROGRAM_OPTIONS = $(CHICKEN_OPTIONS) -no-lambda-info
256CHICKEN_DYNAMIC_OPTIONS = $(CHICKEN_OPTIONS) -feature chicken-compile-shared -dynamic
257CHICKEN_IMPORT_LIBRARY_OPTIONS = $(CHICKEN_DYNAMIC_OPTIONS) -no-trace
258
259ifndef DEBUGBUILD
260CHICKEN_PROGRAM_OPTIONS += -no-trace
261endif
262
263CHICKEN_PROGRAM_OPTIONS += $(if $(PROFILE_OBJECTS),-profile)
264
265# import libraries
266
267PRIMITIVE_IMPORT_LIBRARIES = chicken.base chicken.condition \
268 chicken.csi chicken.foreign chicken.syntax chicken.time scheme.write \
269 scheme.time scheme.file scheme.process-context
270DYNAMIC_IMPORT_LIBRARIES = srfi-4
271DYNAMIC_CHICKEN_IMPORT_LIBRARIES = bitwise bytevector errno file.posix \
272 fixnum flonum format gc io keyword load locative memory \
273 memory.representation platform plist pretty-print \
274 process process.signal process-context process-context.posix \
275 random sort string time.posix number-vector
276DYNAMIC_CHICKEN_COMPILER_IMPORT_LIBRARIES = user-pass
277DYNAMIC_CHICKEN_UNIT_IMPORT_LIBRARIES = continuation eval file \
278 internal irregex pathname port read-syntax repl tcp
279
280# targets
281
282CHICKEN_PROGRAM = $(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)
283CSC_PROGRAM = $(PROGRAM_PREFIX)csc$(PROGRAM_SUFFIX)
284CSI_PROGRAM = $(PROGRAM_PREFIX)csi$(PROGRAM_SUFFIX)
285CHICKEN_PROFILE_PROGRAM = $(PROGRAM_PREFIX)chicken-profile$(PROGRAM_SUFFIX)
286CHICKEN_INSTALL_PROGRAM = $(PROGRAM_PREFIX)chicken-install$(PROGRAM_SUFFIX)
287CHICKEN_UNINSTALL_PROGRAM = $(PROGRAM_PREFIX)chicken-uninstall$(PROGRAM_SUFFIX)
288CHICKEN_STATUS_PROGRAM = $(PROGRAM_PREFIX)chicken-status$(PROGRAM_SUFFIX)
289CHICKEN_DO_PROGRAM = $(PROGRAM_PREFIX)chicken-do$(PROGRAM_SUFFIX)
290IMPORT_LIBRARIES = $(DYNAMIC_IMPORT_LIBRARIES) \
291 $(PRIMITIVE_IMPORT_LIBRARIES) \
292 $(foreach lib,$(DYNAMIC_CHICKEN_IMPORT_LIBRARIES),chicken.$(lib)) \
293 $(foreach lib,$(DYNAMIC_CHICKEN_UNIT_IMPORT_LIBRARIES),chicken.$(lib)) \
294 $(foreach lib,$(DYNAMIC_CHICKEN_COMPILER_IMPORT_LIBRARIES),chicken.compiler.$(lib))
295
296ifdef STATICBUILD
297CHICKEN_STATIC_EXECUTABLE = $(CHICKEN_PROGRAM)$(EXE)
298CSI_STATIC_EXECUTABLE = $(CSI_PROGRAM)$(EXE)
299CHICKEN_SHARED_EXECUTABLE = $(CHICKEN_PROGRAM)-shared$(EXE)
300CSI_SHARED_EXECUTABLE = $(CSI_PROGRAM)-shared$(EXE)
301TARGETLIBS ?= lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)-static$(A)
302TARGETS += $(TARGETLIBS) $(CHICKEN_STATIC_EXECUTABLE) \
303 $(CSI_STATIC_EXECUTABLE)
304else
305CHICKEN_STATIC_EXECUTABLE = $(CHICKEN_PROGRAM)-static$(EXE)
306CSI_STATIC_EXECUTABLE = $(CSI_PROGRAM)-static$(EXE)
307CHICKEN_SHARED_EXECUTABLE = $(CHICKEN_PROGRAM)$(EXE)
308CSI_SHARED_EXECUTABLE = $(CSI_PROGRAM)$(EXE)
309TARGETLIBS ?= lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)-static$(A) $(LIBCHICKEN_SO_FILE)
310TARGETS += $(TARGETLIBS) $(CHICKEN_SHARED_EXECUTABLE) \
311 $(CSI_SHARED_EXECUTABLE) \
312 $(IMPORT_LIBRARIES:%=%.import.so)
313endif
314
315TARGETS += $(CHICKEN_INSTALL_PROGRAM)$(EXE) \
316 $(CHICKEN_UNINSTALL_PROGRAM)$(EXE) \
317 $(CHICKEN_STATUS_PROGRAM)$(EXE) \
318 $(CHICKEN_PROFILE_PROGRAM)$(EXE) \
319 $(CSC_PROGRAM)$(EXE) \
320 $(CHICKEN_DO_PROGRAM)$(EXE) \
321 $(CHICKEN_DEBUGGER_PROGRAM)
322
323ifdef WINDOWS
324TARGETS += chicken.rc$(O)
325endif
326
327
328# main rule
329
330.PHONY: all
331
332all: $(TARGETS)
333
334# generic part of chicken-config.h
335
336chicken-defaults.h: config.make
337ifdef OPTIMIZE_FOR_SPEED
338 $(call echo, >,$@.tmp, /* (this build was optimized for speed) */)
339endif
340ifdef DEBUGBUILD
341 $(call echo, >>, $@.tmp,#define DEBUGBUILD 1)
342endif
343ifdef STATICBUILD
344 $(call echo, >>, $@.tmp,#define STATICBUILD 1)
345endif
346 $(call echo, >>, $@.tmp,#define C_CHICKEN_PROGRAM "$(CHICKEN_PROGRAM)$(EXE)")
347 $(call echo, >>, $@.tmp,#ifndef C_INSTALL_CC)
348 $(call echo, >>, $@.tmp,# define C_INSTALL_CC "$(C_COMPILER)")
349 $(call echo, >>, $@.tmp,#endif)
350 $(call echo, >>, $@.tmp,#ifndef C_INSTALL_CXX)
351 $(call echo, >>, $@.tmp,# define C_INSTALL_CXX "$(CXX_COMPILER)")
352 $(call echo, >>, $@.tmp,#endif)
353 $(call echo, >>, $@.tmp,#ifndef C_INSTALL_POSTINSTALL_PROGRAM)
354 $(call echo, >>, $@.tmp,# define C_INSTALL_POSTINSTALL_PROGRAM "$(POSTINSTALL_PROGRAM)")
355 $(call echo, >>, $@.tmp,#endif)
356 $(call echo, >>, $@.tmp,#ifndef C_INSTALL_RC_COMPILER)
357 $(call echo, >>, $@.tmp,# define C_INSTALL_RC_COMPILER "$(RC_COMPILER)")
358 $(call echo, >>, $@.tmp,#endif)
359 $(call echo, >>, $@.tmp,#ifndef C_INSTALL_CFLAGS)
360 $(call echo, >>, $@.tmp,# define C_INSTALL_CFLAGS "$(C_COMPILER_OPTIONS) $(C_COMPILER_OPTIMIZATION_OPTIONS)")
361 $(call echo, >>, $@.tmp,#endif)
362 $(call echo, >>, $@.tmp,#ifndef C_INSTALL_LDFLAGS)
363 $(call echo, >>, $@.tmp,# define C_INSTALL_LDFLAGS "$(LINKER_OPTIONS) $(LINKER_OPTIMIZATION_OPTIONS)")
364 $(call echo, >>, $@.tmp,#endif)
365 $(call echo, >>, $@.tmp,#ifndef C_INSTALL_PREFIX)
366 $(call echo, >>, $@.tmp,# define C_INSTALL_PREFIX "$(PREFIX)")
367 $(call echo, >>, $@.tmp,#endif)
368 $(call echo, >>, $@.tmp,#ifndef C_INSTALL_SHARE_HOME)
369 $(call echo, >>, $@.tmp,# define C_INSTALL_SHARE_HOME "$(DATADIR)")
370 $(call echo, >>, $@.tmp,#endif)
371 $(call echo, >>, $@.tmp,#ifndef C_INSTALL_BIN_HOME)
372 $(call echo, >>, $@.tmp,# define C_INSTALL_BIN_HOME "$(BINDIR)")
373 $(call echo, >>, $@.tmp,#endif)
374 $(call echo, >>, $@.tmp,#ifndef C_INSTALL_EGG_HOME)
375 $(call echo, >>, $@.tmp,# define C_INSTALL_EGG_HOME "$(EGGDIR)")
376 $(call echo, >>, $@.tmp,#endif)
377 $(call echo, >>, $@.tmp,#ifndef C_INSTALL_LIB_HOME)
378 $(call echo, >>, $@.tmp,# define C_INSTALL_LIB_HOME "$(LIBDIR)")
379 $(call echo, >>, $@.tmp,#endif)
380 $(call echo, >>, $@.tmp,#ifndef C_INSTALL_LIB_NAME)
381 $(call echo, >>, $@.tmp,# define C_INSTALL_LIB_NAME "$(INSTALL_LIB_NAME)")
382 $(call echo, >>, $@.tmp,#endif)
383 $(call echo, >>, $@.tmp,#ifndef C_INSTALL_STATIC_LIB_HOME)
384 $(call echo, >>, $@.tmp,# define C_INSTALL_STATIC_LIB_HOME "$(LIBDIR)")
385 $(call echo, >>, $@.tmp,#endif)
386 $(call echo, >>, $@.tmp,#ifndef C_INSTALL_INCLUDE_HOME)
387 $(call echo, >>, $@.tmp,# define C_INSTALL_INCLUDE_HOME "$(CHICKENINCDIR)")
388 $(call echo, >>, $@.tmp,#endif)
389 $(call echo, >>, $@.tmp,#ifndef C_INSTALL_MORE_LIBS)
390 $(call echo, >>, $@.tmp,# define C_INSTALL_MORE_LIBS "$(LIBRARIES)")
391 $(call echo, >>, $@.tmp,#endif)
392 $(call echo, >>, $@.tmp,#ifndef C_INSTALL_MORE_STATIC_LIBS)
393 $(call echo, >>, $@.tmp,# define C_INSTALL_MORE_STATIC_LIBS "$(LIBRARIES)")
394 $(call echo, >>, $@.tmp,#endif)
395 $(call echo, >>, $@.tmp,#ifndef C_STACK_GROWS_DOWNWARD)
396 $(call echo, >>, $@.tmp,# define C_STACK_GROWS_DOWNWARD $(STACKDIRECTION))
397 $(call echo, >>, $@.tmp,#endif)
398 $(call echo, >>, $@.tmp,#ifndef C_TARGET_MORE_LIBS)
399 $(call echo, >>, $@.tmp,# define C_TARGET_MORE_LIBS "$(TARGET_LIBRARIES)")
400 $(call echo, >>, $@.tmp,#endif)
401 $(call echo, >>, $@.tmp,#ifndef C_TARGET_MORE_STATIC_LIBS)
402 $(call echo, >>, $@.tmp,# define C_TARGET_MORE_STATIC_LIBS "$(TARGET_LIBRARIES)")
403 $(call echo, >>, $@.tmp,#endif)
404 $(call echo, >>, $@.tmp,#ifndef C_TARGET_CC)
405 $(call echo, >>, $@.tmp,# define C_TARGET_CC "$(TARGET_C_COMPILER)")
406 $(call echo, >>, $@.tmp,#endif)
407 $(call echo, >>, $@.tmp,#ifndef C_TARGET_CXX)
408 $(call echo, >>, $@.tmp,# define C_TARGET_CXX "$(TARGET_CXX_COMPILER)")
409 $(call echo, >>, $@.tmp,#endif)
410 $(call echo, >>, $@.tmp,#ifndef C_TARGET_RC_COMPILER)
411 $(call echo, >>, $@.tmp,# define C_TARGET_RC_COMPILER "$(TARGET_RC_COMPILER)")
412 $(call echo, >>, $@.tmp,#endif)
413 $(call echo, >>, $@.tmp,#ifndef C_TARGET_LIBRARIAN)
414 $(call echo, >>, $@.tmp,# define C_TARGET_LIBRARIAN "$(TARGET_LIBRARIAN)")
415 $(call echo, >>, $@.tmp,#endif)
416 $(call echo, >>, $@.tmp,#ifndef C_TARGET_INSTALL_PROGRAM)
417 $(call echo, >>, $@.tmp,# define C_TARGET_INSTALL_PROGRAM "$(INSTALL_PROGRAM)")
418 $(call echo, >>, $@.tmp,#endif)
419 $(call echo, >>, $@.tmp,#ifndef C_TARGET_CFLAGS)
420 $(call echo, >>, $@.tmp,# define C_TARGET_CFLAGS "$(TARGET_C_COMPILER_OPTIONS) $(TARGET_C_COMPILER_OPTIMIZATION_OPTIONS)")
421 $(call echo, >>, $@.tmp,#endif)
422 $(call echo, >>, $@.tmp,#ifndef C_TARGET_LIBRARIAN_FLAGS)
423 $(call echo, >>, $@.tmp,# define C_TARGET_LIBRARIAN_FLAGS "$(TARGET_LIBRARIAN_OPTIONS)")
424 $(call echo, >>, $@.tmp,#endif)
425 $(call echo, >>, $@.tmp,#ifndef C_TARGET_LDFLAGS)
426 $(call echo, >>, $@.tmp,# define C_TARGET_LDFLAGS "$(TARGET_LINKER_OPTIONS) $(TARGET_LINKER_OPTIMIZATION_OPTIONS)")
427 $(call echo, >>, $@.tmp,#endif)
428 $(call echo, >>, $@.tmp,#ifndef C_TARGET_INSTALL_PROGRAM_EXECUTABLE_OPTIONS)
429 $(call echo, >>, $@.tmp,# define C_TARGET_INSTALL_PROGRAM_EXECUTABLE_OPTIONS "$(INSTALL_PROGRAM_EXECUTABLE_OPTIONS)")
430 $(call echo, >>, $@.tmp,#endif)
431 $(call echo, >>, $@.tmp,#ifndef C_TARGET_INSTALL_PROGRAM_FILE_OPTIONS)
432 $(call echo, >>, $@.tmp,# define C_TARGET_INSTALL_PROGRAM_FILE_OPTIONS "$(INSTALL_PROGRAM_FILE_OPTIONS)")
433 $(call echo, >>, $@.tmp,#endif)
434 $(call echo, >>, $@.tmp,#ifndef C_TARGET_FEATURES)
435 $(call echo, >>, $@.tmp,# define C_TARGET_FEATURES "$(TARGET_FEATURES)")
436 $(call echo, >>, $@.tmp,#endif)
437 $(call echo, >>, $@.tmp,#ifndef C_CROSS_CHICKEN)
438 $(call echo, >>, $@.tmp,# define C_CROSS_CHICKEN $(CROSS_CHICKEN))
439 $(call echo, >>, $@.tmp,#endif)
440 $(call echo, >>, $@.tmp,#ifndef C_TARGET_PREFIX)
441 $(call echo, >>, $@.tmp,# define C_TARGET_PREFIX "$(TARGET_PREFIX)")
442 $(call echo, >>, $@.tmp,#endif)
443 $(call echo, >>, $@.tmp,#ifndef C_TARGET_BIN_HOME)
444 $(call echo, >>, $@.tmp,# define C_TARGET_BIN_HOME "$(TARGET_PREFIX)/bin")
445 $(call echo, >>, $@.tmp,#endif)
446 $(call echo, >>, $@.tmp,#ifndef C_TARGET_LIB_HOME)
447 $(call echo, >>, $@.tmp,# define C_TARGET_LIB_HOME "$(TARGET_PREFIX)/lib")
448 $(call echo, >>, $@.tmp,#endif)
449 $(call echo, >>, $@.tmp,#ifndef C_TARGET_LIB_NAME)
450 $(call echo, >>, $@.tmp,# define C_TARGET_LIB_NAME "$(TARGET_LIB_NAME)")
451 $(call echo, >>, $@.tmp,#endif)
452 $(call echo, >>, $@.tmp,#ifndef C_TARGET_RUN_LIB_HOME)
453ifdef DLLSINPATH
454 $(call echo, >>, $@.tmp,# define C_TARGET_RUN_LIB_HOME "$(TARGET_RUN_PREFIX)/bin")
455else
456 $(call echo, >>, $@.tmp,# define C_TARGET_RUN_LIB_HOME "$(TARGET_RUN_PREFIX)/lib")
457endif
458 $(call echo, >>, $@.tmp,#endif)
459 $(call echo, >>, $@.tmp,#ifndef C_TARGET_SHARE_HOME)
460 $(call echo, >>, $@.tmp,# define C_TARGET_SHARE_HOME "$(TARGET_PREFIX)/share/chicken")
461 $(call echo, >>, $@.tmp,#endif)
462 $(call echo, >>, $@.tmp,#ifndef C_TARGET_INCLUDE_HOME)
463 $(call echo, >>, $@.tmp,# define C_TARGET_INCLUDE_HOME "$(TARGET_PREFIX)/include/chicken")
464 $(call echo, >>, $@.tmp,#endif)
465 $(call echo, >>, $@.tmp,#ifndef C_TARGET_STATIC_LIB_HOME)
466 $(call echo, >>, $@.tmp,# define C_TARGET_STATIC_LIB_HOME "$(TARGET_PREFIX)/lib")
467 $(call echo, >>, $@.tmp,#endif)
468 $(call echo, >>, $@.tmp,#ifndef C_CHICKEN_PROGRAM)
469 $(call echo, >>, $@.tmp,# define C_CHICKEN_PROGRAM "$(CHICKEN_PROGRAM)")
470 $(call echo, >>, $@.tmp,#endif)
471 $(call echo, >>, $@.tmp,#ifndef C_CSC_PROGRAM)
472 $(call echo, >>, $@.tmp,# define C_CSC_PROGRAM "$(CSC_PROGRAM)")
473 $(call echo, >>, $@.tmp,#endif)
474 $(call echo, >>, $@.tmp,#ifndef C_CSI_PROGRAM)
475 $(call echo, >>, $@.tmp,# define C_CSI_PROGRAM "$(CSI_PROGRAM)")
476 $(call echo, >>, $@.tmp,#endif)
477 $(call echo, >>, $@.tmp,#ifndef C_CHICKEN_DO_PROGRAM)
478 $(call echo, >>, $@.tmp,# define C_CHICKEN_DO_PROGRAM "$(CHICKEN_DO_PROGRAM)")
479 $(call echo, >>, $@.tmp,#endif)
480 $(call echo, >>, $@.tmp,#ifndef C_CHICKEN_INSTALL_PROGRAM)
481 $(call echo, >>, $@.tmp,# define C_CHICKEN_INSTALL_PROGRAM "$(CHICKEN_INSTALL_PROGRAM)")
482 $(call echo, >>, $@.tmp,#endif)
483 $(call echo, >>, $@.tmp,#ifndef C_CHICKEN_UNINSTALL_PROGRAM)
484 $(call echo, >>, $@.tmp,# define C_CHICKEN_UNINSTALL_PROGRAM "$(CHICKEN_UNINSTALL_PROGRAM)")
485 $(call echo, >>, $@.tmp,#endif)
486 $(call echo, >>, $@.tmp,#ifndef C_CHICKEN_STATUS_PROGRAM)
487 $(call echo, >>, $@.tmp,# define C_CHICKEN_STATUS_PROGRAM "$(CHICKEN_STATUS_PROGRAM)")
488 $(call echo, >>, $@.tmp,#endif)
489 $(call echo, >>, $@.tmp,#ifndef C_WINDOWS_SHELL)
490ifdef WINDOWS_SHELL
491 $(call echo, >>, $@.tmp,# define C_WINDOWS_SHELL 1)
492else
493 $(call echo, >>, $@.tmp,# define C_WINDOWS_SHELL 0)
494endif
495 $(call echo, >>, $@.tmp,#endif)
496 $(call echo, >>, $@.tmp,#ifndef C_BINARY_VERSION)
497 $(call echo, >>, $@.tmp,# define C_BINARY_VERSION $(BINARYVERSION))
498 $(call echo, >>, $@.tmp,#endif)
499 $(call echo, >>, $@.tmp,#ifndef C_USES_SONAME)
500ifdef USES_SONAME
501 $(call echo, >>, $@.tmp,# define C_USES_SONAME 1)
502else
503 $(call echo, >>, $@.tmp,# define C_USES_SONAME 0)
504endif
505 $(call echo, >>, $@.tmp,#endif)
506 $(call echo, >>, $@.tmp,/* END OF FILE */)
507 mv $@.tmp $@
508
509chicken-install.rc:
510 $(call echo, >, $@.tmp,/* GENERATED */)
511 $(call echo, >>, $@.tmp,1 24 MOVEABLE PURE)
512 $(call echo, >>, $@.tmp,BEGIN)
513 $(call echo, >>, $@.tmp, "<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?>\r\n")
514 $(call echo, >>, $@.tmp, "<assembly xmlns=""urn:schemas-microsoft-com:asm.v1"" manifestVersion=""1.0"">\r\n")
515 $(call echo, >>, $@.tmp, " <assemblyIdentity version=""1.0.0.0"" processorArchitecture=""*"" name=""$(PROGRAM_PREFIX)chicken-install$(PROGRAM_SUFFIX)"" type=""win32""/>\r\n")
516 $(call echo, >>, $@.tmp, " <ms_asmv2:trustInfo xmlns:ms_asmv2=""urn:schemas-microsoft-com:asm.v2"">\r\n")
517 $(call echo, >>, $@.tmp, " <ms_asmv2:security>\r\n")
518 $(call echo, >>, $@.tmp, " <ms_asmv2:requestedPrivileges>\r\n")
519 $(call echo, >>, $@.tmp, " <ms_asmv2:requestedExecutionLevel level=""asInvoker"" uiAccess=""false""/>\r\n")
520 $(call echo, >>, $@.tmp, " </ms_asmv2:requestedPrivileges>\r\n")
521 $(call echo, >>, $@.tmp, " </ms_asmv2:security>\r\n")
522 $(call echo, >>, $@.tmp, " </ms_asmv2:trustInfo>\r\n")
523 $(call echo, >>, $@.tmp, "</assembly>\r\n")
524 $(call echo, >>, $@.tmp,END)
525 $(call echo, >>, $@.tmp,/* END OF FILE */)
526 mv $@.tmp $@
527
528chicken-uninstall.rc:
529 $(call echo, >, $@.tmp,/* GENERATED */)
530 $(call echo, >>, $@.tmp,1 24 MOVEABLE PURE)
531 $(call echo, >>, $@.tmp,BEGIN)
532 $(call echo, >>, $@.tmp, "<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?>\r\n")
533 $(call echo, >>, $@.tmp, "<assembly xmlns=""urn:schemas-microsoft-com:asm.v1"" manifestVersion=""1.0"">\r\n")
534 $(call echo, >>, $@.tmp, " <assemblyIdentity version=""1.0.0.0"" processorArchitecture=""*"" name=""$(PROGRAM_PREFIX)chicken-uninstall$(PROGRAM_SUFFIX)"" type=""win32""/>\r\n")
535 $(call echo, >>, $@.tmp, " <ms_asmv2:trustInfo xmlns:ms_asmv2=""urn:schemas-microsoft-com:asm.v2"">\r\n")
536 $(call echo, >>, $@.tmp, " <ms_asmv2:security>\r\n")
537 $(call echo, >>, $@.tmp, " <ms_asmv2:requestedPrivileges>\r\n")
538 $(call echo, >>, $@.tmp, " <ms_asmv2:requestedExecutionLevel level=""asInvoker"" uiAccess=""false""/>\r\n")
539 $(call echo, >>, $@.tmp, " </ms_asmv2:requestedPrivileges>\r\n")
540 $(call echo, >>, $@.tmp, " </ms_asmv2:security>\r\n")
541 $(call echo, >>, $@.tmp, " </ms_asmv2:trustInfo>\r\n")
542 $(call echo, >>, $@.tmp, "</assembly>\r\n")
543 $(call echo, >>, $@.tmp,END)
544 $(call echo, >>, $@.tmp,/* END OF FILE */)
545 mv $@.tmp $@