~ chicken-core (chicken-5) c1b3d35d78bfabf9bb989d4204ede10619e2cf8c
commit c1b3d35d78bfabf9bb989d4204ede10619e2cf8c Author: felix <felix@call-with-current-continuation.org> AuthorDate: Tue Mar 16 13:03:02 2010 +0100 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Tue Mar 16 13:09:23 2010 +0100 csc handles .rc files; install .rc for windows gui apps; patch by Thomas Chust for embedding manifest; new csc option -no-elevation diff --git a/Makefile.cygwin b/Makefile.cygwin index 927352f1..2104de65 100644 --- a/Makefile.cygwin +++ b/Makefile.cygwin @@ -44,6 +44,7 @@ EXE = .exe C_COMPILER = gcc CXX_COMPILER = g++ +RC_COMPILER = windres LINKER = gcc diff --git a/Makefile.mingw b/Makefile.mingw index 847e9471..9903e592 100644 --- a/Makefile.mingw +++ b/Makefile.mingw @@ -66,6 +66,7 @@ C_COMPILER_OPTIMIZATION_OPTIONS ?= -Os endif endif C_COMPILER_SHARED_OPTIONS = -DPIC +RC_COMPILER ?= windres LINKER_LINK_SHARED_LIBRARY_OPTIONS = -shared LIBRARIES = -lm -lws2_32 LINKER_OPTIONS += -Wl,--enable-auto-import @@ -76,6 +77,7 @@ LIBUCHICKEN_SO_LIBRARIES = -lm -lws2_32 LIBCHICKEN_IMPORT_LIBRARY = libchicken.dll.a LIBUCHICKEN_IMPORT_LIBRARY = libuchicken.dll.a MAKEDIR_COMMAND_OPTIONS = +CUSTOM_RC_FILE = 1 # special files @@ -143,6 +145,9 @@ endif echo #ifndef C_INSTALL_CXX >>$@ echo # define C_INSTALL_CXX "$(CXX_COMPILER)" >>$@ echo #endif >>$@ + echo #ifndef C_INSTALL_RC_COMPILER >>$@ + echo # define C_INSTALL_RC_COMPILER "$(RC_COMPILER)" >>$@ + echo #endif >>$@ echo #ifndef C_INSTALL_CFLAGS >>$@ echo # define C_INSTALL_CFLAGS "$(C_COMPILER_OPTIONS) $(C_COMPILER_OPTIMIZATION_OPTIONS)" >>$@ echo #endif >>$@ @@ -197,6 +202,9 @@ endif echo #ifndef C_TARGET_CXX >>$@ echo # define C_TARGET_CXX "$(TARGET_CXX_COMPILER)" >>$@ echo #endif >>$@ + echo #ifndef C_TARGET_RC_COMPILER >>$@ + echo # define C_TARGET_RC_COMPILER "$(TARGET_RC_COMPILER)" >>$@ + echo #endif >>$@ echo #ifndef C_TARGET_CFLAGS >>$@ echo # define C_TARGET_CFLAGS "$(TARGET_C_COMPILER_OPTIONS) $(TARGET_C_COMPILER_OPTIMIZATION_OPTIONS)" >>$@ echo #endif >>$@ @@ -241,4 +249,40 @@ endif echo #endif >>$@ echo /* END OF FILE */ >>$@ +chicken-install.rc: + echo /* GENERATED */ >$@ + echo 1 24 MOVEABLE PURE >>$@ + echo BEGIN >>$@ + echo "<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?>\r\n" >>$@ + echo "<assembly xmlns=""urn:schemas-microsoft-com:asm.v1"" manifestVersion=""1.0"">\r\n" >>$@ + echo " <assemblyIdentity version=""1.0.0.0"" processorArchitecture=""*"" name=""$(PROGRAM_PREFIX)chicken-install$(PROGRAM_SUFFIX)"" type=""win32""/>\r\n" >>$@ + echo " <ms_asmv2:trustInfo xmlns:ms_asmv2=""urn:schemas-microsoft-com:asm.v2"">\r\n" >>$@ + echo " <ms_asmv2:security>\r\n" >>$@ + echo " <ms_asmv2:requestedPrivileges>\r\n" >>$@ + echo " <ms_asmv2:requestedExecutionLevel level=""asInvoker"" uiAccess=""false""/>\r\n" >>$@ + echo " </ms_asmv2:requestedPrivileges>\r\n" >>$@ + echo " </ms_asmv2:security>\r\n" >>$@ + echo " </ms_asmv2:trustInfo>\r\n" >>$@ + echo "</assembly>\r\n" >>$@ + echo END >>$@ + echo /* END OF FILE */ >>$@ + +chicken-uninstall.rc: + echo /* END OF FILE */ >$@ + echo 1 24 MOVEABLE PURE >>$@ + echo BEGIN >>$@ + echo "<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?>\r\n" >>$@ + echo "<assembly xmlns=""urn:schemas-microsoft-com:asm.v1"" manifestVersion=""1.0"">\r\n" >>$@ + echo " <assemblyIdentity version=""1.0.0.0"" processorArchitecture=""*"" name=""$(PROGRAM_PREFIX)chicken-uninstall$(PROGRAM_SUFFIX)"" type=""win32""/>\r\n" >>$@ + echo " <ms_asmv2:trustInfo xmlns:ms_asmv2=""urn:schemas-microsoft-com:asm.v2"">\r\n" >>$@ + echo " <ms_asmv2:security>\r\n" >>$@ + echo " <ms_asmv2:requestedPrivileges>\r\n" >>$@ + echo " <ms_asmv2:requestedExecutionLevel level=""asInvoker"" uiAccess=""false""/>\r\n" >>$@ + echo " </ms_asmv2:requestedPrivileges>\r\n" >>$@ + echo " </ms_asmv2:security>\r\n" >>$@ + echo " </ms_asmv2:trustInfo>\r\n" >>$@ + echo "</assembly>\r\n" >>$@ + echo END >>$@ + echo /* END OF FILE */ >>$@ + include $(SRCDIR)rules.make diff --git a/config.make b/config.make index bf45faf9..1d94f4ef 100644 --- a/config.make +++ b/config.make @@ -29,6 +29,9 @@ # Add additional C compiler options: #C_COMPILER_OPTIMIZATION_OPTIONS=... +# Use alternative resource compiler (for Win32 builds) +#RC_COMPILER= + # Choose prefix to be added to installed programs: #PROGRAM_PREFIX= diff --git a/csc.scm b/csc.scm index 1457e379..0a076e37 100644 --- a/csc.scm +++ b/csc.scm @@ -32,8 +32,10 @@ (define-foreign-variable INSTALL_BIN_HOME c-string "C_INSTALL_BIN_HOME") (define-foreign-variable INSTALL_CC c-string "C_INSTALL_CC") (define-foreign-variable INSTALL_CXX c-string "C_INSTALL_CXX") +(define-foreign-variable TARGET_RC_COMPILER c-string "C_INSTALL_RC_COMPILER") (define-foreign-variable TARGET_CC c-string "C_TARGET_CC") (define-foreign-variable TARGET_CXX c-string "C_TARGET_CXX") +(define-foreign-variable TARGET_RC_COMPILER c-string "C_TARGET_RC_COMPILER") (define-foreign-variable TARGET_CFLAGS c-string "C_TARGET_CFLAGS") (define-foreign-variable INSTALL_CFLAGS c-string "C_INSTALL_CFLAGS") (define-foreign-variable TARGET_LDFLAGS c-string "C_TARGET_LDFLAGS") @@ -99,6 +101,7 @@ (define compiler (quotewrap (if host-mode INSTALL_CC TARGET_CC))) (define c++-compiler (quotewrap (if host-mode INSTALL_CXX TARGET_CXX))) +(define rc-compiler (quotewrap (if host-mode INSTALL_RC_COMPILER TARGET_RC_COMPILER))) (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")) @@ -111,6 +114,7 @@ (define default-translation-optimization-options '()) (define pic-options (if (or mingw msvc) '("-DPIC") '("-fPIC" "-DPIC"))) (define windows-shell WINDOWS_SHELL) +(define generate-manifest #f) (define default-library (string-append @@ -136,7 +140,7 @@ -analyze-only -keep-shadowed-macros -inline-global -ignore-repository -no-symbol-escape -no-parentheses-synonyms -r5rs-syntax -no-argc-checks -no-bound-checks -no-procedure-checks -no-compiler-syntax - -emit-all-import-libraries -setup-mode -unboxing + -emit-all-import-libraries -setup-mode -unboxing -no-elevation -no-procedure-checks-for-usual-bindings)) (define-constant complex-options @@ -174,7 +178,9 @@ (define scheme-files '()) (define generated-scheme-files '()) (define c-files '()) +(define rc-files '()) (define generated-c-files '()) +(define generated-rc-files '()) (define object-files '()) (define generated-object-files '()) (define cpp-mode #f) @@ -478,6 +484,8 @@ Usage: #{csc} FILENAME | OPTION ... -private-repository load extensions from executable path -deployed compile support file to be used from a deployed executable + -no-elevation embed manifest on Windows to supress elevation + warnings for programs named `install' or `setup' Options can be collapsed if unambiguous, so @@ -532,12 +540,9 @@ EOF (when show-libs (print* (linker-libraries #t) #\space)) (newline) (exit) ) - #; ;UNUSED - (when (null? scheme-files) - (set! scheme-files c-files) - (set! c-files '()) ) (cond [(null? scheme-files) - (when (and (null? c-files) (null? object-files)) + (when (and (null? c-files) + (null? object-files)) (quit "no source files specified") ) (let ((f0 (last (if (null? c-files) object-files c-files)))) (unless target-filename @@ -642,10 +647,17 @@ EOF (set! rest (cdr rest)) ] ((-private-repository) (use-private-repository)) + ((-no-elevation) + (set! generate-manifest #t)) [(-gui -windows |-W|) ;DEPRECATED (set! gui #t) (set! compile-options (cons "-DC_GUI" compile-options)) + (set! object-files + (cons (make-pathname + INSTALL_SHARE_HOME "chicken.rc" + object-extension) + object-files)) (when (or msvc mingw) (cond (mingw @@ -778,9 +790,12 @@ EOF [else (quit "invalid option `~A'" s)] ) ] [(file-exists? arg) (let-values ([(dirs name ext) (decompose-pathname arg)]) - (cond [(not ext) (set! scheme-files (append scheme-files (list arg)))] + (cond [(not ext) + (set! scheme-files (append scheme-files (list arg)))] [(member ext '("h" "c")) (set! c-files (append c-files (list arg))) ] + ((string-ci=? ext "rc") + (set! rc-files (append rc-files (list arg))) ) [(member ext '("cpp" "C" "cc" "cxx" "hpp")) (when osx (set! compile-options (cons "-no-cpp-precomp" compile-options))) (set! cpp-mode #t) @@ -827,7 +842,7 @@ EOF (unless keep-files (for-each $delete-file generated-scheme-files)) ) -;;; Compile all C files: +;;; Compile all C and .rc files: (define (run-compilation) (let ((ofiles '())) @@ -845,8 +860,24 @@ EOF (set! generated-object-files (cons fo generated-object-files)) (set! ofiles (cons fo ofiles)))) c-files) + (when (and generate-manifest (eq? 'windows (software-type))) + (let ((rcf (pathname-replace-extension target-filename "rc"))) + (create-win-manifest (pathname-file target-filename) rcf) + (set! rc-files (cons rcf rc-files)) + (set! generated-rc-files (cons rcf generated-rc-files)))) + (for-each + (lambda (f) + (let ((fo (string-append f "." object-extension))) + (command + (string-intersperse + (list rc-compiler (quotewrap f) (quotewrap fo)))) + (set! generated-object-files (cons fo generated-object-files)) + (set! ofiles (cons fo ofiles)))) + rc-files) (set! object-files (append (reverse ofiles) object-files)) ; put generated object files first - (unless keep-files (for-each $delete-file generated-c-files)) ) ) + (unless keep-files + (for-each $delete-file generated-c-files) + (for-each $delete-file generated-rc-files)))) (define (compiler-options) (string-intersperse @@ -1049,6 +1080,7 @@ EOF d2))) (let ((pl (make-pathname d0 "Info.plist"))) (unless (file-exists? pl) + (when verbose (print "generating " pl)) (with-output-to-file pl (cut print #<#EOF <?xml version="1.0" encoding="UTF-8"?> @@ -1071,6 +1103,28 @@ EOF ))) d))) +(define (create-win-manifest prg rcfname) + (when verbose (print "generating " rcfname)) + (with-output-to-file rcfname + (lambda () + (print #<#EOF +1 24 MOVEABLE PURE +BEGIN + "<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?>\r\n" + "<assembly xmlns=""urn:schemas-microsoft-com:asm.v1"" manifestVersion=""1.0"">\r\n" + " <assemblyIdentity version=""1.0.0.0"" processorArchitecture=""*"" name=""#{prg}"" type=""win32""/>\r\n" + " <ms_asmv2:trustInfo xmlns:ms_asmv2=""urn:schemas-microsoft-com:asm.v2"">\r\n" + " <ms_asmv2:security>\r\n" + " <ms_asmv2:requestedPrivileges>\r\n" + " <ms_asmv2:requestedExecutionLevel level=""asInvoker"" uiAccess=""false""/>\r\n" + " </ms_asmv2:requestedPrivileges>\r\n" + " </ms_asmv2:security>\r\n" + " </ms_asmv2:trustInfo>\r\n" + "</assembly>\r\n" +END +EOF +) ) ) ) + ;;; Run it: diff --git a/defaults.make b/defaults.make index e57128be..1b94ced8 100644 --- a/defaults.make +++ b/defaults.make @@ -96,6 +96,13 @@ C_COMPILER ?= gcc CXX_COMPILER ?= g++ LIBRARIAN ?= ar endif +ifdef WINDOWS +ifdef HOSTSYSTEM +RC_COMPILER ?= $(HOSTSYSTEM)-windres +else +RC_COMPILER ?= windres +endif +endif LINKER ?= $(C_COMPILER) ifdef WINDOWS_SHELL REMOVE_COMMAND ?= del @@ -123,9 +130,11 @@ HOST_LIBRARIAN ?= $(LIBRARIAN) ifdef TARGETSYSTEM TARGET_C_COMPILER ?= $(TARGETSYSTEM)-$(C_COMPILER) TARGET_CXX_COMPILER ?= $(TARGETSYSTEM)-$(CXX_COMPILER) +TARGET_RC_COMPILER ?= $(TARGETSYSTEM)-$(RC_COMPILER) else TARGET_C_COMPILER ?= $(C_COMPILER) TARGET_CXX_COMPILER ?= $(CXX_COMPILER) +TARGET_RC_COMPILER ?= $(RC_COMPILER) endif TARGET_C_COMPILER_OPTIONS ?= $(C_COMPILER_OPTIONS) @@ -345,6 +354,9 @@ TARGETS += $(TARGETLIBS) $(CHICKEN_SHARED_EXECUTABLE) \ $(CHICKEN_BUG_PROGRAM)$(EXE) \ $(IMPORT_LIBRARIES:%=%.import.so) endif +ifdef WINDOWS +TARGETS += chicken.rc$(O) +endif # main rule @@ -367,6 +379,9 @@ endif echo "#ifndef C_INSTALL_CXX" >>$@ echo "# define C_INSTALL_CXX \"$(CXX_COMPILER)\"" >>$@ echo "#endif" >>$@ + echo "#ifndef C_INSTALL_RC_COMPILER" >>$@ + echo "# define C_INSTALL_RC_COMPILER \"$(RC_COMPILER)\"" >>$@ + echo "#endif" >>$@ echo "#ifndef C_INSTALL_CFLAGS" >>$@ echo "# define C_INSTALL_CFLAGS \"$(C_COMPILER_OPTIONS) $(C_COMPILER_OPTIMIZATION_OPTIONS)\"" >>$@ echo "#endif" >>$@ @@ -421,6 +436,9 @@ endif echo "#ifndef C_TARGET_CXX" >>$@ echo "# define C_TARGET_CXX \"$(TARGET_CXX_COMPILER)\"" >>$@ echo "#endif" >>$@ + echo "#ifndef C_TARGET_RC_COMPILER" >>$@ + echo "# define C_TARGET_RC_COMPILER \"$(TARGET_RC_COMPILER)\"" >>$@ + echo "#endif" >>$@ echo "#ifndef C_TARGET_CFLAGS" >>$@ echo "# define C_TARGET_CFLAGS \"$(TARGET_C_COMPILER_OPTIONS) $(TARGET_C_COMPILER_OPTIMIZATION_OPTIONS)\"" >>$@ echo "#endif" >>$@ @@ -475,3 +493,41 @@ endif echo "#endif" >>$@ echo "/* END OF FILE */" >>$@ endif + +ifndef CUSTOM_RC_FILE +chicken-install.rc: + echo '/* GENERATED */' >$@ + echo '1 24 MOVEABLE PURE' >>$@ + echo 'BEGIN' >>$@ + echo ' "<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?>\r\n"' >>$@ + echo ' "<assembly xmlns=""urn:schemas-microsoft-com:asm.v1"" manifestVersion=""1.0"">\r\n"' >>$@ + echo ' " <assemblyIdentity version=""1.0.0.0"" processorArchitecture=""*"" name=""chicken-install"" type=""win32""/>\r\n"' >>$@ + echo ' " <ms_asmv2:trustInfo xmlns:ms_asmv2=""urn:schemas-microsoft-com:asm.v2"">\r\n"' >>$@ + echo ' " <ms_asmv2:security>\r\n"' >>$@ + echo ' " <ms_asmv2:requestedPrivileges>\r\n"' >>$@ + echo ' " <ms_asmv2:requestedExecutionLevel level=""asInvoker"" uiAccess=""false""/>\r\n"' >>$@ + echo ' " </ms_asmv2:requestedPrivileges>\r\n"' >>$@ + echo ' " </ms_asmv2:security>\r\n"' >>$@ + echo ' " </ms_asmv2:trustInfo>\r\n"' >>$@ + echo ' "</assembly>\r\n"' >>$@ + echo 'END' >>$@ + echo '/* END OF FILE */' >>$@ + +chicken-uninstall.rc: + echo '/* GENERATED */' >$@ + echo '1 24 MOVEABLE PURE' >>$@ + echo 'BEGIN' >>$@ + echo ' "<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?>\r\n"' >>$@ + echo ' "<assembly xmlns=""urn:schemas-microsoft-com:asm.v1"" manifestVersion=""1.0"">\r\n"' >>$@ + echo ' " <assemblyIdentity version=""1.0.0.0"" processorArchitecture=""*"" name=""$(PROGRAM_PREFIX)chicken-install$(PROGRAM_SUFFIX)"" type=""win32""/>\r\n"' >>$@ + echo ' " <ms_asmv2:trustInfo xmlns:ms_asmv2=""urn:schemas-microsoft-com:asm.v2"">\r\n"' >>$@ + echo ' " <ms_asmv2:security>\r\n"' >>$@ + echo ' " <ms_asmv2:requestedPrivileges>\r\n"' >>$@ + echo ' " <ms_asmv2:requestedExecutionLevel level=""asInvoker"" uiAccess=""false""/>\r\n"' >>$@ + echo ' " </ms_asmv2:requestedPrivileges>\r\n"' >>$@ + echo ' " </ms_asmv2:security>\r\n"' >>$@ + echo ' " </ms_asmv2:trustInfo>\r\n"' >>$@ + echo ' "</assembly>\r\n"' >>$@ + echo 'END' >>$@ + echo '/* END OF FILE */' >>$@ +endif diff --git a/rules.make b/rules.make index c7ea82e7..88caeb09 100644 --- a/rules.make +++ b/rules.make @@ -668,6 +668,13 @@ chicken-bug$(O): chicken-bug.c chicken.h $(CHICKEN_CONFIG_H) $(C_COMPILER_STATIC_OPTIONS) \ $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $< $(C_COMPILER_OUTPUT) +# resource objects + +.SUFFIXES: .rc + +%.rc.o: %.rc + $(RC_COMPILER) $< $@ + # libraries .PHONY: libs @@ -719,7 +726,7 @@ libuchicken$(A): $(APPLY_HACK_OBJECT) $(LIBUCHICKEN_STATIC_OBJECTS) .SUFFIXES: .so -%.so: %.o +%.so: %.$(O) $(HOST_LINKER) $(HOST_LINKER_OPTIONS) $(HOST_LINKER_LINK_SHARED_DLOADABLE_OPTIONS) $^ $(HOST_LINKER_OUTPUT_OPTION) $@ \ $(HOST_LINKER_LIBRARY_PREFIX)chicken$(HOST_LINKER_LIBRARY_SUFFIX) \ $(HOST_LIBRARIES) @@ -734,12 +741,24 @@ $(CSI_SHARED_EXECUTABLE): csi$(O) $(PRIMARY_LIBCHICKEN) $(LINKER) $(LINKER_OPTIONS) $(LINKER_EXECUTABLE_OPTIONS) $< $(LINKER_OUTPUT) \ $(LINKER_LIBRARY_PREFIX)chicken$(LINKER_LIBRARY_SUFFIX) $(LINKER_LINK_SHARED_PROGRAM_OPTIONS) $(LIBRARIES) +ifneq ($(RC_COMPILER),) +$(CHICKEN_INSTALL_PROGRAM)$(EXE): chicken-install$(O) chicken-install.rc$(O) $(PRIMARY_LIBCHICKEN) + $(LINKER) $(LINKER_OPTIONS) $(LINKER_EXECUTABLE_OPTIONS) $< chicken-install.rc$(O) $(LINKER_OUTPUT) \ + $(LINKER_LIBRARY_PREFIX)chicken$(LINKER_LIBRARY_SUFFIX) $(LINKER_LINK_SHARED_PROGRAM_OPTIONS) $(LIBRARIES) +else $(CHICKEN_INSTALL_PROGRAM)$(EXE): chicken-install$(O) $(PRIMARY_LIBCHICKEN) $(LINKER) $(LINKER_OPTIONS) $(LINKER_EXECUTABLE_OPTIONS) $< $(LINKER_OUTPUT) \ $(LINKER_LIBRARY_PREFIX)chicken$(LINKER_LIBRARY_SUFFIX) $(LINKER_LINK_SHARED_PROGRAM_OPTIONS) $(LIBRARIES) +endif +ifneq ($(RC_COMPILER),) +$(CHICKEN_UNINSTALL_PROGRAM)$(EXE): chicken-uninstall$(O) chicken-uninstall.rc$(O) $(PRIMARY_LIBCHICKEN) + $(LINKER) $(LINKER_OPTIONS) $(LINKER_EXECUTABLE_OPTIONS) $< chicken-uninstall.rc$(O) $(LINKER_OUTPUT) \ + $(LINKER_LIBRARY_PREFIX)chicken$(LINKER_LIBRARY_SUFFIX) $(LINKER_LINK_SHARED_PROGRAM_OPTIONS) $(LIBRARIES) +else $(CHICKEN_UNINSTALL_PROGRAM)$(EXE): chicken-uninstall$(O) $(PRIMARY_LIBCHICKEN) $(LINKER) $(LINKER_OPTIONS) $(LINKER_EXECUTABLE_OPTIONS) $< $(LINKER_OUTPUT) \ $(LINKER_LIBRARY_PREFIX)chicken$(LINKER_LIBRARY_SUFFIX) $(LINKER_LINK_SHARED_PROGRAM_OPTIONS) $(LIBRARIES) +endif $(CHICKEN_STATUS_PROGRAM)$(EXE): chicken-status$(O) $(PRIMARY_LIBCHICKEN) $(LINKER) $(LINKER_OPTIONS) $(LINKER_EXECUTABLE_OPTIONS) $< $(LINKER_OUTPUT) \ $(LINKER_LIBRARY_PREFIX)chicken$(LINKER_LIBRARY_SUFFIX) $(LINKER_LINK_SHARED_PROGRAM_OPTIONS) $(LIBRARIES) @@ -907,6 +926,11 @@ endif endif ifeq ($(PLATFORM),macosx) $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) $(SRCDIR)mac.r "$(DESTDIR)$(ISHAREDIR)" + $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) $(SRCDIR)CHICKEN.icns "$(DESTDIR)$(IDATADIR)" +endif +ifdef WINDOWS + $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) $(SRCDIR)chicken.ico "$(DESTDIR)$(IDATADIR)" + $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) $(SRCDIR)chicken.rc$(O) "$(DESTDIR)$(IDATADIR)" endif ifdef STATICBUILD @@ -964,9 +988,6 @@ install-setup-files: $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) $(SRCDIR)setup.defaults "$(DESTDIR)$(IDATADIR)" $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_EXECUTABLE_OPTIONS) setup-api.so "$(DESTDIR)$(IEGGDIR)" $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_EXECUTABLE_OPTIONS) setup-download.so "$(DESTDIR)$(IEGGDIR)" -ifeq ($(PLATFORM),macosx) - $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) $(SRCDIR)CHICKEN.icns "$(DESTDIR)$(IDATADIR)" -endif uninstall: $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) "$(DESTDIR)$(IBINDIR)$(SEP)$(CHICKEN_PROGRAM)$(EXE)" \ @@ -1240,7 +1261,8 @@ ifdef USES_SONAME endif confclean: - -$(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) chicken-config.h chicken-defaults.h + -$(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) \ + chicken-config.h chicken-defaults.h chicken-install.rc chicken-uninstall.rc spotless: distclean testclean -$(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) library.c eval.c data-structures.c \Trap