CC = gcc RC = windres DEFS = -DHAVE_CONFIG_H LIBS = -lreadline -ltermcap -lm TARGET_BASE_NAME = atari800 TARGET = $(TARGET_BASE_NAME) CONFIGURE_TARGET = basic ifeq (,.mips) FINALTARGET = $(TARGET_BASE_NAME).jar JAVAFLAGS = JAVA = java JAVACFLAGS = JAVAC = javac else FINALTARGET = $(TARGET) endif CFLAGS = -O2 -Wall LDFLAGS = INSTALL = /usr/bin/install -c INSTALL_PROGRAM = ${INSTALL} -s INSTALL_DATA = ${INSTALL} -m 644 BIN_DIR = /usr/local/bin MAN_DIR = /usr/local/share/man/man1 DOC_DIR = /usr/local/share/doc/atari800 DESTDIR = OBJS = \ afile.o \ antic.o \ atari.o \ binload.o \ cartridge.o \ cassette.o \ compfile.o \ cfg.o \ cpu.o \ devices.o \ esc.o \ gtia.o \ log.o \ memory.o \ monitor.o \ pbi.o \ pia.o \ pokey.o \ rtime.o \ sio.o \ util.o \ atari_basic.o pbi_mio.o pbi_bb.o pbi_scsi.o pokeysnd.o mzpokeysnd.o remez.o sndsave.o sound_oss.o pbi_xld.o votrax.o all: $(FINALTARGET) # A special rule for SDL_win32_main.c to suppress warnings since this file is # from SDL and should not have to be modified SDL_win32_main.o: SDL_win32_main.c $(CC) -c -o $@ $(DEFS) -I. $(CFLAGS) -Wno-missing-declarations -Wno-missing-prototypes $< # A special rule for win32 to not compile with -ansi -pedantic win32/%.o: win32/%.c $(CC) -c -o $@ $(DEFS) -I. $($(CFLAGS:-ansi= ):-pedantic= ) $< %.o: %.c $(CC) -c -o $@ $(DEFS) -I. $(CFLAGS) $< %.ro: %.rc $(RC) --define WIN32 --define __MINGW32__ --include-dir . $< $@ %.o: %.cpp $(CC) -c -o $@ $(DEFS) -I. $(CFLAGS) $< %.o: %.S $(CC) -c -o $@ $(DEFS) -I. $(CFLAGS) $< ifeq ($(CONFIGURE_TARGET),javanvm) $(TARGET_BASE_NAME).class: javanvm/$(TARGET_BASE_NAME).java | $(TARGET_BASE_NAME)_runtime.class $(JAVAC) -d . $(JAVACFLAGS) javanvm/$(TARGET_BASE_NAME).java RUNTIME = _runtime else RUNTIME = endif $(TARGET_BASE_NAME)$(RUNTIME).class: $(TARGET) #To compile using java bytecode directly: # $(JAVA) $(JAVAFLAGS) org.ibex.nestedvm.Compiler -o UnixRuntime -outfile $@ $(TARGET_BASE_NAME)$(RUNTIME) $(TARGET) $(JAVA) $(JAVAFLAGS) org.ibex.nestedvm.Compiler -o UnixRuntime -outformat javasource -outfile $(TARGET_BASE_NAME)$(RUNTIME).java $(TARGET_BASE_NAME)$(RUNTIME) $(TARGET) $(JAVAC) -d . $(JAVACFLAGS) -J-Xmx128m $(TARGET_BASE_NAME)$(RUNTIME).java ##Also, -o UnixRuntime fixes directory browsing but requires /c:/-style paths $(TARGET_BASE_NAME).jar: $(TARGET_BASE_NAME).class $(TARGET_BASE_NAME)$(RUNTIME).class echo -e "Manifest-Version: 1.0\nMain-Class: $(TARGET_BASE_NAME)\nClass-Path: unix_runtime.jar\n" > .manifest jar cfm $(TARGET_BASE_NAME).jar .manifest *.class $(TARGET): $(OBJS) $(CC) -o $@ $(LDFLAGS) $(OBJS) $(LIBS) dep: @if ! makedepend -Y $(DEFS) -I. ${OBJS:.o=.c} 2>/dev/null; \ then echo warning: makedepend failed; fi clean: rm -f *.o dos/*.o falcon/*.o win32/*.o win32/*.ro javanvm/*.o *.class .manifest $(TARGET) $(TARGET_BASE_NAME).jar $(TARGET_BASE_NAME)_runtime.java core *.bak *~ distclean: clean -rm -f Makefile configure config.log config.status config.h -rm -rf autom4te.cache install: $(TARGET) installdirs $(INSTALL_PROGRAM) $(TARGET) ${DESTDIR}${BIN_DIR}/$(TARGET) $(INSTALL_DATA) atari800.man ${DESTDIR}${MAN_DIR}/atari800.1 # install also the documentation $(INSTALL_DATA) ../COPYING ${DESTDIR}${DOC_DIR}/COPYING $(INSTALL_DATA) ../README.1ST ${DESTDIR}${DOC_DIR}/README.1ST $(INSTALL_DATA) ../DOC/README ${DESTDIR}${DOC_DIR}/README $(INSTALL_DATA) ../DOC/INSTALL ${DESTDIR}${DOC_DIR}/INSTALL $(INSTALL_DATA) ../DOC/USAGE ${DESTDIR}${DOC_DIR}/USAGE $(INSTALL_DATA) ../DOC/NEWS ${DESTDIR}${DOC_DIR}/NEWS readme.html: $(TARGET) ./$(TARGET) -help $@ doc: readme.html installdirs: mkdir -p $(DESTDIR)$(BIN_DIR) $(DESTDIR)$(MAN_DIR) $(DESTDIR)$(DOC_DIR)