--- hatari/src/Makefile 2019/04/01 07:13:27 1.1.1.13 +++ hatari/src/Makefile 2019/04/09 08:48:26 1.1.1.17 @@ -1,10 +1,8 @@ # Main Makefile for Hatari. -# Set ENABLE_DSP_EMU to 1 to enable experimental DSP emulation code -# (there are currently no known programs which this would help, -# but it will make many of the Falcon programs not to work). -# If you change this, do "make clean" -ENABLE_DSP_EMU = 0 +# Use "export ENABLE_DSP_EMU=0" & "make clean" +# to disable experimental DSP emulation code. +ENABLE_DSP_EMU ?= 1 # Select CPU directory: CPUDIR = uae-cpu @@ -13,66 +11,54 @@ CPUDIR = uae-cpu include ../Makefile.cnf # Additional include directories: -CPPFLAGS += -I.. -I./includes -I$(CPUDIR) -I./falcon -CPPFLAGS += -DCONFDIR=\"$(CONFDIR)\" $(SDL_CFLAGS) +CPPFLAGS += -I.. -I./includes -I$(CPUDIR) -I./debug -I./falcon \ + -DCONFDIR=\"$(CONFDIR)\" $(SDL_CFLAGS) $(PNG_CFLAGS) $(X11_CFLAGS) ifeq ($(ENABLE_DSP_EMU),1) CPPFLAGS += -DENABLE_DSP_EMU=1 endif -GUIOBJS = ./gui-sdl/dlgAbout.o ./gui-sdl/dlgAlert.o ./gui-sdl/dlgDevice.o \ - ./gui-sdl/dlgDisk.o ./gui-sdl/dlgJoystick.o ./gui-sdl/dlgKeyboard.o \ - ./gui-sdl/dlgMain.o ./gui-sdl/dlgMemory.o ./gui-sdl/dlgNewDisk.o \ - ./gui-sdl/dlgRom.o ./gui-sdl/dlgScreen.o ./gui-sdl/dlgSound.o \ - ./gui-sdl/dlgSystem.o ./gui-sdl/dlgFileSelect.o ./gui-sdl/sdlgui.o - -GUIWINOBJS = ./gui-win/hatari-winicon.o ./gui-win/opencon.o - -FALCOBJS = ./falcon/videl.o ./falcon/hostscreen.o ./falcon/nvram.o -ifeq ($(ENABLE_DSP_EMU),1) -FALCOBJS += ./falcon/dsp.o ./falcon/dsp_cpu.o ./falcon/dsp_disasm.o -endif - -SRCS = audio.c bios.c blitter.c cart.c cfgopts.c configuration.c options.c \ - createBlankImage.c cycles.c debugui.c dialog.c dim.c dmaSnd.c fdc.c file.c \ - floppy.c gemdos.c hdc.c ide.c ikbd.c int.c ioMem.c ioMemTabST.c \ - ioMemTabSTE.c ioMemTabTT.c ioMemTabFalcon.c joy.c keymap.c paths.c \ - log.c m68000.c main.c midi.c memorySnapShot.c mfp.c misc.c msa.c psg.c \ - printer.c rs232.c reset.c rtc.c scandir.c st.c stMemory.c screen.c \ - screenSnapShot.c shortcut.c sound.c spec512.c trace.c tos.c unzip.c \ - vdi.c video.c wavFormat.c xbios.c ymFormat.c zip.c +SRCS = audio.c avi_record.c bios.c blitter.c cart.c cfgopts.c \ + configuration.c options.c createBlankImage.c change.c control.c \ + cycInt.c cycles.c dialog.c dim.c dmaSnd.c fdc.c file.c floppy.c \ + gemdos.c hd6301_cpu.c hdc.c ide.c ikbd.c ioMem.c ioMemTabST.c \ + ioMemTabSTE.c ioMemTabTT.c ioMemTabFalcon.c joy.c keymap.c m68000.c \ + main.c midi.c memorySnapShot.c mfp.c msa.c paths.c psg.c printer.c \ + resolution.c rs232.c reset.c rtc.c scandir.c st.c stMemory.c screen.c \ + screenSnapShot.c shortcut.c sound.c spec512.c statusbar.c str.c tos.c \ + unzip.c utils.c vdi.c video.c wavFormat.c xbios.c ymFormat.c zip.c OBJS = $(SRCS:.c=.o) - -ALLOBJS = $(OBJS) $(GUIOBJS) $(CPUDIR)/cpu68k.a $(FALCOBJS) +SUBDIRLIBS = $(CPUDIR)/cpu68k.a debug/debug.a falcon/falcon.a gui-sdl/gui-sdl.a ifeq ($(SYS_WINDOWS),1) - ALLOBJS += $(GUIWINOBJS) -endif + SUBDIRLIBS += gui-win/gui-win.a + OBJS += gui-win/hatari-winicon.o +else ifneq ($(strip $(shell gcc -v 2>&1 |grep "cygwin")),) - ALLOBJS += $(GUIWINOBJS) + SUBDIRLIBS += gui-win/gui-win.a endif +endif +SUBDIRS = $(dir $(SUBDIRLIBS)) +ALLOBJS = $(OBJS) $(SUBDIRLIBS) -all: hatari - -hatari: $(ALLOBJS) - $(CC) $(LDFLAGS) $(ALLOBJS) $(SDL_LIBS) $(LIBS) -o hatari -# Sub-folder dependencies: -.PHONY : $(CPUDIR)/cpu68k.a -$(CPUDIR)/cpu68k.a: - $(MAKE) -C $(CPUDIR) +.PHONY : all +all: ../Makefile.cnf + $(MAKE) $(SUBDIRS) + $(MAKE) hatari -gui-sdl/%.o: gui-sdl/%.c - $(MAKE) ENABLE_DSP_EMU=$(ENABLE_DSP_EMU) -C gui-sdl/ all +LIBS := $(PORTAUDIO_LIBS) $(PNG_LIBS) $(SDL_LIBS) $(X11_LIBS) $(LIBS) -gui-win/%.o: - $(MAKE) ENABLE_DSP_EMU=$(ENABLE_DSP_EMU) -C gui-win/ all +hatari: $(ALLOBJS) + $(CC) $(LDFLAGS) $(ALLOBJS) $(LIBS) -o hatari -falcon/%.o: falcon/%.c - $(MAKE) ENABLE_DSP_EMU=$(ENABLE_DSP_EMU) CPUDIR=$(CPUDIR) -C falcon/ +# Sub-folder dependencies: +.PHONY : $(SUBDIRS) +$(SUBDIRS): + $(MAKE) ENABLE_DSP_EMU=$(ENABLE_DSP_EMU) CPUDIR=$(CPUDIR) -C $@ clean: @@ -81,6 +67,7 @@ clean: $(MAKE) -C gui-win/ clean $(MAKE) -C $(CPUDIR) clean $(MAKE) -C falcon/ clean + $(MAKE) -C debug/ clean distclean: $(RM) *.o hatari @@ -90,13 +77,24 @@ distclean: $(MAKE) -C gui-win/ distclean $(MAKE) -C $(CPUDIR) distclean $(MAKE) -C falcon/ distclean + $(MAKE) -C debug/ distclean # Use "make depend" to generate file dependencies: -Makefile.dep: Makefile +Makefile.dep: Makefile ../Makefile.cnf $(CC) -M $(CPPFLAGS) $(SRCS) > Makefile.dep -depend: Makefile.dep +.PHONY : depend +depend: + $(MAKE) cleandeps + $(MAKE) Makefile.dep $(MAKE) -C gui-sdl/ depend + $(MAKE) -C $(CPUDIR) depend + $(MAKE) -C falcon/ depend + $(MAKE) -C debug/ depend + +.PHONY : cleandeps +cleandeps: + $(RM) Makefile.dep */Makefile.dep -include Makefile.dep