2017-12-04 15:49:40 +01:00
#Default platform is rpi3
2015-10-14 08:09:05 +01:00
i f e q ( $( PLATFORM ) , )
2016-08-11 13:31:22 +02:00
PLATFORM = rpi3
2015-10-14 08:09:05 +01:00
e n d i f
2016-08-11 13:31:22 +02:00
i f e q ( $( PLATFORM ) , r p i 3 )
2017-12-04 15:49:40 +01:00
CPU_FLAGS += -march= armv8-a -mfpu= neon-fp-armv8 -mfloat-abi= hard
MORE_CFLAGS += -DARMV6T2 -DUSE_ARMNEON -DCAPSLOCK_DEBIAN_WORKAROUND
MORE_CFLAGS += -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads
LDFLAGS += -lbcm_host -lvchiq_arm -lvcos -licui18n -licuuc -licudata -llzma -lfreetype -logg -lm -L/opt/vc/lib
PROFILER_PATH = /home/pi/projects/amiberry/amiberry-sdl2-prof
2016-08-11 13:31:22 +02:00
e l s e i f e q ( $( PLATFORM ) , r p i 2 )
2017-12-04 15:49:40 +01:00
CPU_FLAGS += -march= armv7-a -mfpu= neon-vfpv4 -mfloat-abi= hard
MORE_CFLAGS += -DARMV6T2 -DUSE_ARMNEON -DCAPSLOCK_DEBIAN_WORKAROUND
MORE_CFLAGS += -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads
LDFLAGS += -lbcm_host -lvchiq_arm -lvcos -licui18n -licuuc -licudata -llzma -lfreetype -logg -lm -L/opt/vc/lib
PROFILER_PATH = /home/pi/projects/amiberry/amiberry-sdl2-prof
2015-10-14 07:49:34 +01:00
e l s e i f e q ( $( PLATFORM ) , r p i 1 )
2017-12-04 15:49:40 +01:00
CPU_FLAGS += -march= armv6zk -mfpu= vfp -mfloat-abi= hard
MORE_CFLAGS += -DCAPSLOCK_DEBIAN_WORKAROUND
MORE_CFLAGS += -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads
LDFLAGS += -lbcm_host -lvchiq_arm -lvcos -licui18n -licuuc -licudata -llzma -lfreetype -logg -lm -L/opt/vc/lib
PROFILER_PATH = /home/pi/projects/amiberry/amiberry-sdl2-prof
e l s e i f e q ( $( PLATFORM ) , p i n e 6 4 )
CPU_FLAGS += -march= armv7-a -mfpu= vfpv3-d16 -mfloat-abi= hard
MORE_CFLAGS += -DARMV6T2 -D__arm__
LDFLAGS += -lvchiq_arm -lvcos -llzma -lfreetype -logg -lm
CC = arm-linux-gnueabihf-gcc
CXX = arm-linux-gnueabihf-g++
e l s e i f e q ( $( PLATFORM ) , P a n d o r a )
CPU_FLAGS += -march= armv7-a -mfpu= neon -mfloat-abi= softfp
MORE_CFLAGS += -DARMV6T2 -DUSE_ARMNEON -DPANDORA -msoft-float
PROFILER_PATH = /media/MAINSD/pandora/test
e l s e i f e q ( $( PLATFORM ) , x u 4 )
CPU_FLAGS += -march= armv7ve -mcpu= cortex-a15.cortex-a7 -mtune= cortex-a15.cortex-a7 -mfpu= neon-vfpv4 -mfloat-abi= hard
MORE_CFLAGS += -DARMV6T2 -DUSE_ARMNEON
LDFLAGS += -llzma -lfreetype -logg
ifdef DEBUG
# Otherwise we'll get compilation errors, check https://tls.mbed.org/kb/development/arm-thumb-error-r7-cannot-be-used-in-asm-here
# quote: The assembly code in bn_mul.h is optimized for the ARM platform and uses some registers, including r7 to efficiently do an operation. GCC also uses r7 as the frame pointer under ARM Thumb assembly.
MORE_CFLAGS += -fomit-frame-pointer
endif
e l s e i f e q ( $( PLATFORM ) , a n d r o i d )
CPU_FLAGS += -mfpu= neon -mfloat-abi= soft
DEFS += -DANDROIDSDL
ANDROID = 1
HAVE_NEON = 1
HAVE_SDL_DISPLAY = 1
2015-10-14 07:49:34 +01:00
e n d i f
2015-05-13 18:47:23 +00:00
2017-03-31 13:41:49 +02:00
NAME = amiberry-sdl2-dev
2017-01-27 23:23:03 +01:00
RM = rm -f
2017-12-04 15:49:40 +01:00
CC ?= gcc
CXX ?= g++
STRIP ?= strip
2015-05-13 18:47:23 +00:00
PROG = $( NAME)
2017-01-27 23:23:03 +01:00
all : guisan $( PROG )
guisan :
2017-12-04 15:49:40 +01:00
$( MAKE) -C src/guisan
2015-05-13 18:47:23 +00:00
2017-12-04 15:49:40 +01:00
#DEBUG=1
#GEN_PROFILE=1
#USE_PROFILE=1
2016-09-01 17:09:18 +02:00
2016-12-10 15:24:41 +01:00
SDL_CFLAGS = ` sdl2-config --cflags --libs`
2015-05-13 18:47:23 +00:00
2017-03-31 18:09:51 +02:00
DEFS += ` xml2-config --cflags`
2017-12-04 15:49:40 +01:00
DEFS += -DAMIBERRY -DCPU_arm -DARMV6_ASSEMBLY
2016-11-30 22:25:43 +01:00
DEFS += -DUSE_SDL
2015-05-13 18:47:23 +00:00
2017-12-04 15:49:40 +01:00
MORE_CFLAGS += -Isrc -Isrc/osdep -Isrc/threaddep -Isrc/include -Isrc/guisan/include -Isrc/archivers
MORE_CFLAGS += -fdiagnostics-color= auto
#MORE_CFLAGS += -mstructure-size-boundary=32
MORE_CFLAGS += -falign-functions= 32
MORE_CFLAGS += -std= gnu++14
2015-05-13 18:47:23 +00:00
2017-12-04 15:49:40 +01:00
LDFLAGS += -lpthread -lz -lpng -lrt -lxml2 -lFLAC -lmpg123 -ldl -lmpeg2convert -lmpeg2
LDFLAGS += -lSDL2 -lSDL2_image -lSDL2_ttf -lguisan -Lsrc/guisan/lib
2016-09-06 22:38:54 +02:00
2015-05-13 18:47:23 +00:00
i f n d e f D E B U G
2017-12-04 15:49:40 +01:00
MORE_CFLAGS += -Ofast -pipe
MORE_CFLAGS += -fweb -frename-registers
MORE_CFLAGS += -funroll-loops -ftracer -funswitch-loops
2015-05-13 18:47:23 +00:00
e l s e
2017-12-04 15:49:40 +01:00
MORE_CFLAGS += -g -rdynamic -funwind-tables -mapcs-frame -DDEBUG -Wl,--export-dynamic
e n d i f
i f d e f W I T H _ L O G G I N G
MORE_CFLAGS += -DWITH_LOGGING
2015-05-13 18:47:23 +00:00
e n d i f
2017-12-04 15:49:40 +01:00
ASFLAGS += $( CPU_FLAGS) -falign-functions= 32
2016-11-30 22:25:43 +01:00
CXXFLAGS += $( SDL_CFLAGS) $( CPU_FLAGS) $( DEFS) $( MORE_CFLAGS)
2017-12-04 15:49:40 +01:00
i f d e f G E N _ P R O F I L E
MORE_CFLAGS += -fprofile-generate= $( PROFILER_PATH) -fprofile-arcs -fvpt
e n d i f
i f d e f U S E _ P R O F I L E
MORE_CFLAGS += -fprofile-use -fprofile-correction -fbranch-probabilities -fvpt
e n d i f
2015-05-13 18:47:23 +00:00
OBJS = \
2016-07-10 13:48:11 +02:00
src/akiko.o \
2017-12-04 15:49:40 +01:00
src/ar.o \
2016-04-24 09:45:29 +00:00
src/aros.rom.o \
2015-05-13 18:47:23 +00:00
src/audio.o \
src/autoconf.o \
src/blitfunc.o \
src/blittable.o \
src/blitter.o \
2016-07-10 13:48:11 +02:00
src/blkdev.o \
src/blkdev_cdimage.o \
2016-04-24 09:45:29 +00:00
src/bsdsocket.o \
2016-08-27 20:39:53 +02:00
src/calc.o \
2017-12-04 15:49:40 +01:00
src/cd32_fmv.o \
src/cd32_fmv_genlock.o \
2016-07-10 13:48:11 +02:00
src/cdrom.o \
2015-05-13 18:47:23 +00:00
src/cfgfile.o \
src/cia.o \
src/crc32.o \
src/custom.o \
2017-12-04 15:49:40 +01:00
src/def_icons.o \
src/devices.o \
2015-05-13 18:47:23 +00:00
src/disk.o \
2016-04-24 09:45:29 +00:00
src/diskutil.o \
2015-05-13 18:47:23 +00:00
src/drawing.o \
2016-04-24 09:45:29 +00:00
src/events.o \
2015-05-13 18:47:23 +00:00
src/expansion.o \
2017-12-04 15:49:40 +01:00
src/fdi2raw.o \
2015-05-13 18:47:23 +00:00
src/filesys.o \
2017-12-04 15:49:40 +01:00
src/flashrom.o \
2015-05-13 18:47:23 +00:00
src/fpp.o \
2017-12-04 15:49:40 +01:00
src/fpp_native.o \
src/fpp_softfloat.o \
src/softfloat/softfloat.o \
src/softfloat/softfloat_decimal.o \
src/softfloat/softfloat_fpsp.o \
2015-05-13 18:47:23 +00:00
src/fsdb.o \
src/fsdb_unix.o \
src/fsusage.o \
2017-12-04 15:49:40 +01:00
src/gayle.o \
2016-11-30 22:25:43 +01:00
src/gfxboard.o \
2015-05-13 18:47:23 +00:00
src/gfxutil.o \
src/hardfile.o \
2017-12-04 15:49:40 +01:00
src/hrtmon.rom.o \
src/ide.o \
2015-05-13 18:47:23 +00:00
src/inputdevice.o \
src/keybuf.o \
src/main.o \
src/memory.o \
src/native2amiga.o \
2016-04-24 09:45:29 +00:00
src/rommgr.o \
2017-12-04 15:49:40 +01:00
src/rtc.o \
2015-05-13 18:47:23 +00:00
src/savestate.o \
2017-12-04 15:49:40 +01:00
src/scsi.o \
2016-08-27 20:39:53 +02:00
src/statusline.o \
2015-05-13 18:47:23 +00:00
src/traps.o \
2015-05-17 07:52:43 +00:00
src/uaelib.o \
2015-11-16 22:32:10 +01:00
src/uaeresource.o \
2015-05-13 18:47:23 +00:00
src/zfile.o \
2015-09-09 21:49:41 +02:00
src/zfile_archive.o \
2017-03-30 23:00:20 +02:00
src/archivers/7z/7zAlloc.o \
2016-04-24 09:45:29 +00:00
src/archivers/7z/7zBuf.o \
2015-09-09 21:49:41 +02:00
src/archivers/7z/7zCrc.o \
2017-12-04 15:49:40 +01:00
src/archivers/7z/7zCrcOpt.o \
src/archivers/7z/7zDec.o \
src/archivers/7z/7zIn.o \
2016-04-24 09:45:29 +00:00
src/archivers/7z/7zStream.o \
2016-07-10 13:48:11 +02:00
src/archivers/7z/Bcj2.o \
2016-04-24 09:45:29 +00:00
src/archivers/7z/Bra.o \
src/archivers/7z/Bra86.o \
src/archivers/7z/LzmaDec.o \
2017-12-04 15:49:40 +01:00
src/archivers/7z/Lzma2Dec.o \
src/archivers/7z/BraIA64.o \
src/archivers/7z/Delta.o \
src/archivers/7z/Sha256.o \
src/archivers/7z/Xz.o \
src/archivers/7z/XzCrc64.o \
src/archivers/7z/XzDec.o \
2015-09-09 21:49:41 +02:00
src/archivers/dms/crc_csum.o \
src/archivers/dms/getbits.o \
src/archivers/dms/maketbl.o \
src/archivers/dms/pfile.o \
src/archivers/dms/tables.o \
src/archivers/dms/u_deep.o \
src/archivers/dms/u_heavy.o \
src/archivers/dms/u_init.o \
src/archivers/dms/u_medium.o \
src/archivers/dms/u_quick.o \
src/archivers/dms/u_rle.o \
2015-10-11 14:23:51 +02:00
src/archivers/lha/crcio.o \
src/archivers/lha/dhuf.o \
src/archivers/lha/header.o \
src/archivers/lha/huf.o \
src/archivers/lha/larc.o \
src/archivers/lha/lhamaketbl.o \
src/archivers/lha/lharc.o \
src/archivers/lha/shuf.o \
src/archivers/lha/slide.o \
src/archivers/lha/uae_lha.o \
src/archivers/lha/util.o \
src/archivers/lzx/unlzx.o \
2017-12-04 15:49:40 +01:00
src/archivers/mp2/kjmp2.o \
2015-09-09 21:49:41 +02:00
src/archivers/wrp/warp.o \
src/archivers/zip/unzip.o \
2016-12-09 19:04:33 +01:00
src/machdep/support.o \
src/osdep/bsdsocket_host.o \
src/osdep/cda_play.o \
src/osdep/charset.o \
src/osdep/fsdb_host.o \
2017-12-04 15:49:40 +01:00
src/osdep/amiberry_hardfile.o \
src/osdep/keyboard.o \
2016-12-09 19:04:33 +01:00
src/osdep/mp3decoder.o \
2017-12-04 15:49:40 +01:00
src/osdep/picasso96.o \
2016-12-09 19:04:33 +01:00
src/osdep/writelog.o \
2017-02-27 14:29:54 +01:00
src/osdep/amiberry.o \
src/osdep/amiberry_filesys.o \
src/osdep/amiberry_input.o \
src/osdep/amiberry_gfx.o \
src/osdep/amiberry_gui.o \
src/osdep/amiberry_rp9.o \
src/osdep/amiberry_mem.o \
2016-12-09 19:04:33 +01:00
src/osdep/sigsegv_handler.o \
2017-12-04 15:49:40 +01:00
src/sounddep/sound.o \
2016-12-09 19:04:33 +01:00
src/osdep/gui/UaeRadioButton.o \
src/osdep/gui/UaeDropDown.o \
src/osdep/gui/UaeCheckBox.o \
src/osdep/gui/UaeListBox.o \
src/osdep/gui/InGameMessage.o \
src/osdep/gui/SelectorEntry.o \
2017-12-04 15:49:40 +01:00
src/osdep/gui/ShowHelp.o \
2016-12-09 19:04:33 +01:00
src/osdep/gui/ShowMessage.o \
src/osdep/gui/SelectFolder.o \
src/osdep/gui/SelectFile.o \
src/osdep/gui/CreateFilesysHardfile.o \
src/osdep/gui/EditFilesysVirtual.o \
src/osdep/gui/EditFilesysHardfile.o \
src/osdep/gui/PanelPaths.o \
2017-12-04 15:49:40 +01:00
src/osdep/gui/PanelQuickstart.o \
2016-12-09 19:04:33 +01:00
src/osdep/gui/PanelConfig.o \
src/osdep/gui/PanelCPU.o \
src/osdep/gui/PanelChipset.o \
2017-12-04 15:49:40 +01:00
src/osdep/gui/PanelCustom.o \
2016-12-09 19:04:33 +01:00
src/osdep/gui/PanelROM.o \
src/osdep/gui/PanelRAM.o \
src/osdep/gui/PanelFloppy.o \
src/osdep/gui/PanelHD.o \
2017-12-04 15:49:40 +01:00
src/osdep/gui/PanelInput.o \
2016-12-09 19:04:33 +01:00
src/osdep/gui/PanelDisplay.o \
src/osdep/gui/PanelSound.o \
src/osdep/gui/PanelMisc.o \
src/osdep/gui/PanelSavestate.o \
src/osdep/gui/main_window.o \
src/osdep/gui/Navigation.o
2017-12-04 15:49:40 +01:00
i f e q ( $( ANDROID ) , 1 )
OBJS += src/osdep/gui/androidsdl_event.o
OBJS += src/osdep/gui/PanelOnScreen.o
OBJS += src/osdep/pandora_gfx.o
e n d i f
2016-12-09 19:04:33 +01:00
OBJS += src/osdep/neon_helper.o
2015-10-14 07:49:34 +01:00
2015-05-13 18:47:23 +00:00
OBJS += src/newcpu.o
2016-11-30 22:25:43 +01:00
OBJS += src/newcpu_common.o
2015-05-13 18:47:23 +00:00
OBJS += src/readcpu.o
OBJS += src/cpudefs.o
OBJS += src/cpustbl.o
OBJS += src/cpuemu_0.o
2015-10-11 14:23:51 +02:00
OBJS += src/cpuemu_4.o
2015-09-09 21:49:41 +02:00
OBJS += src/cpuemu_11.o
2017-12-04 15:49:40 +01:00
OBJS += src/cpuemu_40.o
OBJS += src/cpuemu_44.o
2015-11-16 22:32:10 +01:00
OBJS += src/jit/compemu.o
OBJS += src/jit/compstbl.o
2016-06-25 09:23:49 +00:00
OBJS += src/jit/compemu_fpp.o
2015-11-16 22:32:10 +01:00
OBJS += src/jit/compemu_support.o
2015-05-13 18:47:23 +00:00
2016-12-09 19:04:33 +01:00
src/osdep/neon_helper.o : src /osdep /neon_helper .s
$( CXX) $( CPU_FLAGS) -Wall -o src/osdep/neon_helper.o -c src/osdep/neon_helper.s
2015-05-13 18:47:23 +00:00
2016-09-06 22:38:54 +02:00
$(PROG) : $( OBJS )
2017-01-24 15:56:23 +01:00
$( CXX) $( CXXFLAGS) -o $( PROG) $( OBJS) $( LDFLAGS)
2015-05-13 18:47:23 +00:00
i f n d e f D E B U G
$( STRIP) $( PROG)
e n d i f
clean :
2016-11-30 22:25:43 +01:00
$( RM) $( PROG) $( OBJS)
2017-12-04 15:49:40 +01:00
bootrom :
od -v -t xC -w8 src/filesys | tail -n +5 | sed -e "s,^.......,," -e "s,[0123456789abcdefABCDEF][0123456789abcdefABCDEF],db(0x&);,g" > src/filesys_bootrom.cpp
touch src/filesys.cpp