#Zlib Z_LIB_DIR= ./zlib/ Z_LIB = $(Z_LIB_DIR)libz.a #unzip based on zlib. UNZIP_DIR= ./unzip/ UNZIP_LIB= $(UNZIP_DIR)unzip.a Z80_DIR = ./cpu Z80_LIB = $(Z80_DIR)/z80_cpu.a Z80_OBJS = $(Z80_DIR)/z80.o $(Z80_DIR)/z80op1.o \ $(Z80_DIR)/z80op2cb.o $(Z80_DIR)/z80op2dd.o \ $(Z80_DIR)/z80op2ed.o $(Z80_DIR)/z80op2fd.o \ $(Z80_DIR)/z80op3xycb.o $(Z80_DIR)/z80sub.o DISASM_DIR = ./z80_disasm # Uncomment this line before builting with internal debugger. #OPT_OBJS = $(DISASM_DIR)/Z80Dasm.o SmsDebugger.o OSM_OBJS = main.o \ OsmoseCore.o\ IOMapper.o \ VDP.o \ MemoryMapper.o \ SmsEnvironment.o \ SN76489.o \ WaveWriter.o \ PrecisionTimer.o \ Options.o \ OsmoseConfiguration.o \ KeyConversion.o \ NullVideoFilter.o \ TvVideoFilter.o \ MonochromVideoFilter.o \ Scale2xVideoFilter.o \ BilinearVideoFilter.o \ TextWriter.o \ PadInputDevice.o \ PaddleInputDevice.o OSM_EXE = osmose # Compiler/Linker Flags # add -O3 to CFLAGS for speedup -pg on LFLAGS and CFLAGS for gprof CFLAGS += -Dlinux `sdl-config --cflags` ifdef OPTIMIZED_CFLAGS CFLAGS += -O3 endif LFLAGS = $(LDFLAGS) `sdl-config --libs` AFLAGS = -f elf CXX ?= g++ ASM = nasm # Our needed rules. $* is current file, without suffix. .SUFFIXES: .cxx .o .cxx.o: $(CXX) $(CFLAGS) -c $*.cxx -o $*.o .SUFFIXES: .cpp .o .cpp.o: $(CXX) $(CFLAGS) -c $*.cpp -o $*.o .SUFFIXES: .asm .o .asm.o: $(ASM) $(AFLAGS) $*.asm all: disasm z80_lib libs osmose osmose: $(z80_lib) $(OSM_OBJS) $(OPT_OBJS) $(CXX) $(CFLAGS) $(OSM_OBJS) $(Z80_LIB) $(OPT_OBJS) $(UNZIP_LIB) $(Z_LIB) -o $(OSM_EXE) $(LFLAGS) z80_lib: $(Z80_OBJS) ar -rv $(Z80_LIB) $(Z80_DIR)/*.o disasm: $(DISASM_OBJS) clean: rm -f $(DISASM_DIR)/*.o rm -f $(Z80_DIR)/*.o $(Z80_DIR)/*.a rm -f *.o core $(OSM_EXE) rm -f $(Z_LIB_DIR)*.o $(Z_LIB_DIR)*.a rm -f $(UNZIP_DIR)*.o $(UNZIP_DIR)*.a miniclean: rm -f *.o core $(OSM_EXE) libs: cd $(Z_LIB_DIR) && ${MAKE} libz.a cd $(UNZIP_DIR) && ${MAKE} unzip.a