From f549788c323bf3127c83cee049e1a50b644b46d1 Mon Sep 17 00:00:00 2001 From: kichik Date: Fri, 13 Aug 2004 19:07:09 +0000 Subject: [PATCH] patch #1005305 - Source/exehead/Makefile for cross compiling on POSIX systems git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@3619 212acab6-be3b-0410-9dea-997c60f758d6 --- Source/exehead/Makefile | 58 ++++++++++++++++++++++------------------- 1 file changed, 31 insertions(+), 27 deletions(-) diff --git a/Source/exehead/Makefile b/Source/exehead/Makefile index 8b7ad77f..121ec8fe 100644 --- a/Source/exehead/Makefile +++ b/Source/exehead/Makefile @@ -1,3 +1,6 @@ +# +# Adapted for cross-compiling by Bas Mevissen +# # -- Objects and source files -- DEPENDS = ../Platform.h config.h @@ -14,12 +17,23 @@ SRCS = $(ZLIB_SRCS) $(BZIP2_SRCS) $(LZMA_SRCS) LIBS = -lole32 -lgdi32 -lversion -luuid -lcomctl32 -lkernel32 -luser32 -lshell32 -ladvapi32 +# Detect if cross compiling. If so, set cross prefix and NATIVE EXE suffix +ifeq "$(strip $(findstring i386pe,$(shell ld -V)))" "" + CROSS_PREFIX = mingw32- + EXESUFF = +else + CROSS_PREFIX = + EXESUFF = .exe +endif + # -- Programs -- -CC = gcc -RC = windres -RM = rm -MKDIR = mkdir -BIN2H = ./bin2h +NATIVE_CC = gcc +CC = $(CROSS_PREFIX)gcc +CXX = $(CROSS_PREFIX)g++ +RC = $(CROSS_PREFIX)windres +RM = rm +MKDIR = mkdir +BIN2H = ./bin2h$(EXESUFF) # -- Compilers and linker flags -- CPPFLAGS = -DEXEHEAD -DWIN32_LEAN_AND_MEAN -DZEXPORT=__stdcall -DLZMACALL=__fastcall @@ -45,12 +59,15 @@ endif dirs : $(mkdirline) +$(BIN2H) : bin2h.c + $(NATIVE_CC) -Wall -ansi -Wl,-s -o $@ $^ + exehead_zlib : dirs Release-zlib/exehead_zlib.exe Release-zlib/exehead_zlib.h Release-zlib/exehead_zlib.exe : $(ZLIB_OBJS) sections_script $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(ZLIB_OBJS) $(LIBS) -Release-zlib/exehead_zlib.h : Release-zlib/exehead_zlib.exe +Release-zlib/exehead_zlib.h : Release-zlib/exehead_zlib.exe $(BIN2H) $(BIN2H) $< $@ zlib_header_data Release-zlib/%.o : %.c @@ -67,7 +84,7 @@ exehead_bzip2 : dirs Release-bzip2/exehead_bzip2.exe Release-bzip2/exehead_bzip2 Release-bzip2/exehead_bzip2.exe : $(BZIP2_OBJS) sections_script $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(BZIP2_OBJS) $(LIBS) -Release-bzip2/exehead_bzip2.h : Release-bzip2/exehead_bzip2.exe +Release-bzip2/exehead_bzip2.h : Release-bzip2/exehead_bzip2.exe $(BIN2H) $(BIN2H) $< $@ bzip2_header_data Release-bzip2/%.o : %.c @@ -81,7 +98,7 @@ exehead_lzma : dirs Release-lzma/exehead_lzma.exe Release-lzma/exehead_lzma.h Release-lzma/exehead_lzma.exe : $(LZMA_OBJS) sections_script $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(LZMA_OBJS) $(LIBS) -Release-lzma/exehead_lzma.h : Release-lzma/exehead_lzma.exe +Release-lzma/exehead_lzma.h : Release-lzma/exehead_lzma.exe $(BIN2H) $(BIN2H) $< $@ lzma_header_data Release-lzma/%.o : %.c @@ -92,13 +109,13 @@ Release-lzma/resource.res : resource.rc resource.h config.h exehead_resources : dirs Release-zlib/bitmap1.h Release-zlib/icon.h Release-zlib/unicon.h -Release-zlib/bitmap1.h : bitmap1.bmp +Release-zlib/bitmap1.h : bitmap1.bmp $(BIN2H) $(BIN2H) bitmap1.bmp Release-zlib/bitmap1.h bitmap1_data -Release-zlib/icon.h : nsis.ico +Release-zlib/icon.h : nsis.ico $(BIN2H) $(BIN2H) nsis.ico Release-zlib/icon.h icon_data -Release-zlib/unicon.h : uninst.ico +Release-zlib/unicon.h : uninst.ico $(BIN2H) $(BIN2H) uninst.ico Release-zlib/unicon.h unicon_data sections_script: @@ -122,20 +139,7 @@ CFLAGS += $(getdefine) clean :: $(RM) -f sections_script - $(RM) -f Release-zlib/*.o - $(RM) -f Release-zlib/resource.res - $(RM) -f Release-zlib/exehead_zlib.exe - $(RM) -f Release-zlib/exehead_zlib.h - $(RM) -f Release-zlib/bitmap1.h - $(RM) -f Release-zlib/icon.h - $(RM) -f Release-zlib/unicon.h - $(RM) -f Release-bzip2/*.o - $(RM) -f Release-bzip2/resource.res - $(RM) -f Release-bzip2/exehead_bzip2.exe - $(RM) -f Release-bzip2/exehead_bzip2.h - $(RM) -f Release-lzma/*.o - $(RM) -f Release-lzma/resource.res - $(RM) -f Release-lzma/exehead_lzma.exe - $(RM) -f Release-lzma/exehead_lzma.h + $(RM) -rf Release-{zlib,bzip2,lzma} + $(RM) bin2h 2>/dev/null || true -.PHONY : exehead_zlib exehead_bzip2 exehead_lzma exehead_resources dirs clean \ No newline at end of file +.PHONY : exehead_zlib exehead_bzip2 exehead_lzma exehead_resources dirs clean