#
# by James L. Hammons
# (C) 2005 Underground Software
-# This software is licensed under the GPL v2
+# This software is licensed under the GPL v3 or later
#
+FIND = find
+
ifeq "$(OSTYPE)" "msys" # Win32
SYSTYPE = __GCCWIN32__
EXESUFFIX = .exe
-GLLIB = -lopengl32
ICON = obj/icon.o
SDLLIBTYPE = --libs
MSG = Win32 on MinGW
else
-#ifeq "$(OSTYPE)" "darwin"
ifeq "darwin" "$(findstring darwin,$(OSTYPE))" # Should catch both 'darwin' and 'darwin7.0'
SYSTYPE = __GCCUNIX__ -D_OSX_
EXESUFFIX =
-GLLIB =
ICON =
SDLLIBTYPE = --static-libs
MSG = Mac OS X
SYSTYPE = __GCCUNIX__
EXESUFFIX =
-GLLIB = -lGL
ICON =
SDLLIBTYPE = --libs
MSG = generic Unix/Linux
LD = gcc
TARGET = stargem2
-CFLAGS = -MMD -Wall -Wno-switch -Wno-uninitialized -O2 -D$(SYSTYPE) -fomit-frame-pointer `sdl-config --cflags`
-CPPFLAGS = -MMD -Wall -Wno-switch -Wno-non-virtual-dtor -Wno-uninitialized -O2 -D$(SYSTYPE) \
- -fomit-frame-pointer `sdl-config --cflags` \
+CFLAGS = -MMD -Wall -Wno-switch -Wno-uninitialized -Wno-unused -O2 -D$(SYSTYPE) -fomit-frame-pointer `sdl2-config --cflags`
+CPPFLAGS = -MMD -Wall -Wno-switch -Wno-non-virtual-dtor -Wno-uninitialized -Wno-unused -O2 -D$(SYSTYPE) \
+ -fomit-frame-pointer `sdl2-config --cflags` \
-g
# -DLOG_UNMAPPED_MEMORY_ACCESSES
LDFLAGS =
-LIBS = -L/usr/local/lib `sdl-config $(SDLLIBTYPE)` -lstdc++ -lz $(GLLIB)
+LIBS = -L/usr/local/lib `sdl2-config $(SDLLIBTYPE)` -lstdc++ -lz
INCS = -I. -Isrc -I/usr/local/include
obj/log.o \
obj/v6808.o \
obj/v6809.o \
+ obj/v6821.o \
obj/video.o \
obj/settings.o \
obj/sound.o \
obj/sdlemu_config.o \
- obj/sdlemu_opengl.o \
obj/timing.o \
obj/stargem2.o \
$(ICON)
all: checkenv message obj $(TARGET)$(EXESUFFIX)
@echo
- @echo "*** Looks like it compiled OK... Give it a whirl!"
+ @echo -e "\033[01;33m***\033[00;32m Looks like it compiled OK... Give it a whirl!\033[00m"
# Check the compilation environment, barf if not appropriate
checkenv:
@echo
- @echo -n "*** Checking compilation environment... "
+ @echo -en "\033[01;33m***\033[00;32m Checking compilation environment... \033[00m"
ifeq "" "$(shell which sdl-config)"
@echo
@echo
- @echo "It seems that you don't have the SDL development libraries installed. If you"
- @echo "have installed them, make sure that the sdl-config file is somewhere in your"
- @echo "path and is executable."
+ @echo -e "\033[01;33mIt seems that you don't have the SDL development libraries installed.
+ @echo -e "have installed them, make sure that the sdl-config file is somewhere in your"
+ @echo -e "path and is executable.\033[00m"
@echo
#Is there a better way to break out of the makefile?
@break
else
- @echo "OK"
+ @echo -e "\033[01;37mOK\033[00m"
endif
message:
@echo
- @echo "*** Building StarGem 2 for $(MSG)..."
+ @echo -e "\033[01;33m***\033[00;32m Building StarGem 2 for $(MSG)...\033[00m"
@echo
clean:
- @echo -n "*** Cleaning out the garbage..."
+ @echo -en "\033[01;33m***\033[00;32m Cleaning out the garbage...\033[00m"
@rm -rf obj
@rm -f ./$(TARGET)$(EXESUFFIX)
- @echo "done!"
+ @echo -e "\033[01;37mdone!\033[00m"
obj:
@mkdir obj
ifneq "" "$(ICON)"
$(ICON): res/$(TARGET).rc res/$(TARGET).ico
- @echo "*** Processing icon..."
+ @echo -e "\033[01;33m***\033[00;32m Processing icon...\033[00m"
@windres -i res/$(TARGET).rc -o $(ICON) --include-dir=./res
endif
obj/%.o: src/%.c
- @echo "*** Compiling $<..."
+ @echo -e "\033[01;33m***\033[00;32m Compiling $<...\033[00m"
@$(CC) $(CFLAGS) $(INCS) -c $< -o $@
obj/%.o: src/%.cpp
- @echo "*** Compiling $<..."
+ @echo -e "\033[01;33m***\033[00;32m Compiling $<...\033[00m"
@$(CC) $(CPPFLAGS) $(INCS) -c $< -o $@
$(TARGET)$(EXESUFFIX): $(OBJS)
- @echo "*** Linking it all together..."
+ @echo -e "\033[01;33m***\033[00;32m Linking it all together...\033[00m"
@$(LD) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
# strip --strip-all $(TARGET)$(EXESUFFIX)
# upx -9 $(TARGET)$(EXESUFFIX)
+statistics:
+ @echo -n "Lines in source files: "
+ @-$(FIND) ./src -name "*.cpp" | xargs cat | wc -l
+ @echo -n "Lines in header files: "
+ @-$(FIND) ./src -name "*.h" | xargs cat | wc -l
+
# Pull in dependencies autogenerated by gcc's -MMD switch
# The "-" in front in there just in case they haven't been created yet