Adapt for mingw32 cross-compilation
authorMatthew Mondor <mmondor@pulsar-zone.net>
Sat, 12 Jul 2014 08:42:49 +0000 (08:42 +0000)
committerMatthew Mondor <mmondor@pulsar-zone.net>
Sat, 12 Jul 2014 08:42:49 +0000 (08:42 +0000)
mmsoftware/mystic_ships/client/GNUmakefile

index 25be517..4e71b4f 100644 (file)
@@ -1,6 +1,7 @@
-# $Id: GNUmakefile,v 1.6 2014/06/29 23:58:38 mmondor Exp $
+# $Id: GNUmakefile,v 1.7 2014/07/12 08:42:49 mmondor Exp $
 
 CC := cc
+CC_HOST := cc
 RM := rm
 UNAME := uname
 DATE := date
@@ -39,26 +40,47 @@ RAWFILES_C   := $(addsuffix .c, $(RAWFILES_ENC))
 RAWFILES_H   := $(addsuffix .h, $(RAWFILES_ENC))
 RAWFILES_O   := $(addsuffix .o, $(RAWFILES_ENC))
 
-SDL_CFLAGS := $(shell sdl-config --cflags)
-SDL_LDFLAGS := $(shell sdl-config --libs)
-SDL_LDFLAGS += -lSDL_image -lSDL_mixer -lSDL_net -lSDL_gfx
-
-Z_CFLAGS := -I/usr/local/include
-Z_LDFLAGS := -lz
-
-LDFLAGS += -lm
-
 # OS dependent settings follow
 OS_TARGET := UNIX
-OS := $(shell $(UNAME) -s)
+SDLCONFIG := sdl-config
+EXE_SUFFIX :=
 
-ifneq (,$(findstring CYGWIN,$(OS)))
-       # cygwin-mingw
+# MINGW=yes gmake
+ifdef MINGW
        OS_TARGET := MINGW
-       CFLAGS += -mno-cygwin -I/usr/include/mingw -DWIN32
-       LDFLAGS += -mwindows -mno-cygwin -L/usr/lib/mingw -L/usr/local/lib
+       OS := MINGW
+else
+       OS := $(shell $(UNAME) -s)
+endif
+
+ifneq (,$(findstring MINGW,$(OS)))
+       # i386--mingw32 from NetBSD, libraries under /usr/local/mingw32/
+       OS_TARGET := MINGW
+       EXE_SUFFIX := .exe
+       PREFIX_PKG := /usr/pkg/cross/i386--mingw32
+       PREFIX_OPT := /usr/local/mingw32
+       CFLAGS += -I$(PREFIX_PKG)/include -I$(PREFIX_OPT)/include -DWIN32
+       LDFLAGS += -mwindows -L$(PREFIX_PKG)/lib -L$(PREFIX_OPT)/lib
 #      GL_CFLAGS :=
 #      GL_LDFLAGS := -lopengl32 -lglu32
+       # New path to tools
+       SDLCONFIG := $(PREFIX_OPT)/bin/sdl-config
+#      PKG_CONFIG := /usr/pkg/bin/pkg-config
+#      PKG_CONFIG_PATH := $(PREFIX_OPT)/lib/pkgconfig
+#      MAKE := gmake
+       CPP := $(PREFIX_PKG)/bin/cpp
+       CC := $(PREFIX_PKG)/bin/cc
+#      AS := $(PREFIX_PKG)/bin/as
+#      CXX := $(PREFIX_PKG)/bin/g++
+#      LD := $(PREFIX_PKG)/bin/ld
+#      AR := $(PREFIX_PKG)/bin/ar
+       STRIP := $(PREFIX_PKG)/bin/strip
+#      RANLIB := $(PREFIX_PKG)/bin/ranlib
+#      OBJDUMP := $(PREFIX_PKG)/bin/objdump
+#      NM := $(PREFIX_PKG)/bin/nm
+#      DLLTOOL := $(PREFIX_PKG)/bin/dlltool
+#      WINDRES := $(PREFIX_PKG)/bin/windres
+#      HOSTARCH := i386--mingw32
 endif
 
 ifneq (,$(findstring Darwin,$(OS)))
@@ -73,12 +95,17 @@ endif
 
 ifneq (,$(findstring UNIX,$(OS_TARGET)))
        # Other unix (BSD, Linux)
-       CFLAGS += -I/usr/include -I/usr/pkg/include -I/usr/X11R7/include
-       LDFLAGS += -L/usr/lib -L/usr/pkg/lib -L/usr/X11R7/lib
+       CFLAGS += -I/usr/local/include -I/usr/include -I/usr/pkg/include -I/usr/X11R7/include
+       LDFLAGS += -L/usr/local/lib -L/usr/lib -L/usr/pkg/lib -L/usr/X11R7/lib
 #      GL_CFLAGS :=
 #      GL_LDFLAGS := -lGL -lGLU
 endif
 
+SDL_CFLAGS := $(shell $(SDLCONFIG) --cflags)
+SDL_LDFLAGS := $(shell $(SDLCONFIG) --libs)
+SDL_LDFLAGS += -lSDL_image -lSDL_mixer -lSDL_net -lSDL_gfx
+Z_CFLAGS := -I/usr/local/include
+Z_LDFLAGS := -lz
 
 SEED := $(shell $(DATE) +%s)
 
@@ -97,10 +124,10 @@ all: $(BIN)
        $(CC) -c $(CFLAGS) -I. -o $@ $<
 
 encode:
-       $(CC) -o src/encode src/encode.c
+       $(CC_HOST) -o src/encode src/encode.c
 
 filetoc:
-       $(CC) -o src/file-to-c src/file-to-c.c
+       $(CC_HOST) -o src/file-to-c src/file-to-c.c
 
 $(RAWFILES_O): encode filetoc
        src/encode $(basename $(basename $@)) $(basename $@) $(SEED)
@@ -108,8 +135,8 @@ $(RAWFILES_O): encode filetoc
        $(CC) -c -o $@ $(basename $@).c
 
 $(BIN): $(OBJS) $(RAWFILES_O)
-       $(CC) -o $@ $(OBJS) $(RAWFILES_O) $(LDFLAGS)
-       $(STRIP) $@*
+       $(CC) -o $@$(EXE_SUFFIX) $(OBJS) $(RAWFILES_O) $(LDFLAGS)
+       $(STRIP) $@$(EXE_SUFFIX)
 
 clean:
        $(RM) -f $(BIN) $(BIN).exe $(OBJS) \