# file GPLv3 for details. ;-)
#
-# Figure out which system we're compiling for, and set the appropriate variables
-
-OSTYPE := $(shell uname -a)
-
-ifeq "$(findstring Msys,$(OSTYPE))" "Msys" # Win32
-
-SYSTYPE := __GCCWIN32__
-SDLLIBTYPE := --libs
-
-else ifeq "$(findstring Darwin,$(OSTYPE))" "Darwin" # Should catch both 'darwin' and 'darwin7.0'
-
-SYSTYPE := __GCCUNIX__ -D__THINK_STUPID__
-SDLLIBTYPE := --static-libs
+ifeq ("$(V)","1")
+Q :=
+else
+Q := @
+endif
-else ifeq "$(findstring Linux,$(OSTYPE))" "Linux" # Linux
+# Cross compilation with MXE
+#CROSS = i686-pc-mingw32-
SYSTYPE := __GCCUNIX__
-SDLLIBTYPE := --libs
-
-else # ???
-
-$(error OS TYPE UNDETECTED)
+ifneq "$(CROSS)" ""
+SYSTYPE := __GCCWIN32__
+else
+OSTYPE := $(shell uname -o)
+ifeq "$(OSTYPE)" "Msys"
+SYSTYPE := __GCCWIN32__
+endif
endif
# Set vars for libcdio
CDIOLIB :=
endif
-CC := gcc
-LD := gcc
-AR := ar
+CC := $(CROSS)gcc
+LD := $(CROSS)gcc
+AR := $(CROSS)ar
ARFLAGS := -rs
-# Note that we use optimization level 2 instead of 3--3 doesn't seem to gain much over 2
-CFLAGS := -MMD -O2 -ffast-math -fomit-frame-pointer `sdl-config --cflags` -D$(SYSTYPE)
-CXXFLAGS := -MMD -O2 -ffast-math -fomit-frame-pointer `sdl-config --cflags` -D$(SYSTYPE)
+SDL_CFLAGS = `$(CROSS)sdl-config --cflags`
+DEFINES = -D$(SYSTYPE)
+GCC_DEPS = -MMD
INCS := -I./src
obj/filedb.o \
obj/gpu.o \
obj/jagbios.o \
+ obj/jagbios2.o \
obj/jagcdbios.o \
obj/jagdevcdbios.o \
obj/jagstub1bios.o \
# Library rules (might not be cross-platform compatible)
obj/libjaguarcore.a: $(OBJS)
- @$(AR) $(ARFLAGS) obj/libjaguarcore.a $(OBJS)
+ $(Q)$(AR) $(ARFLAGS) obj/libjaguarcore.a $(OBJS)
# Main source compilation (implicit rules)...
-obj/%.o: src/%.c
- @echo -e "\033[01;33m***\033[00;32m Compiling $<...\033[00m"
- @$(CC) $(CFLAGS) $(INCS) -c $< -o $@
-
obj/%.o: src/%.cpp
@echo -e "\033[01;33m***\033[00;32m Compiling $<...\033[00m"
- @$(CC) $(CXXFLAGS) $(INCS) -c $< -o $@
+ $(Q)$(CC) $(GCC_DEPS) $(CXXFLAGS) $(SDL_CFLAGS) $(DEFINES) $(INCS) -c $< -o $@
-include obj/*.d