From 4e5e56c45a0eba97bf68cd187af0a7d6983e68e4 Mon Sep 17 00:00:00 2001 From: "Clifford T. Matthews" Date: Sat, 20 Jun 2009 21:12:35 -0600 Subject: [PATCH] GNU build mods that seem to work. --- src/Makefile.am | 50 +++++++++++++++++++++++++----------------------- src/TODO | 16 ++++++++++++---- src/configure.ac | 32 +++++++++++++++++-------------- src/map_to_c.c | 2 ++ 4 files changed, 58 insertions(+), 42 deletions(-) diff --git a/src/Makefile.am b/src/Makefile.am index 80463a9..043de00 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -15,24 +15,11 @@ wind_bitmap_c_files = zoom.c go_away.c active.c ractive.c grow.c CLEANFILES = $(ctl_bitmap_c_files) $(wind_bitmap_c_files) apple.c \ seedtables.c ultable.c sspairtable.c rawpatstubs.c rawsrcstubs.c -map_to_c_CPPFLAGS = -DCOMPILE_FOR_BUILD $(AM_CPPFLAGS) -mkseedtables_CPPFLAGS = -DCOMPILE_FOR_BUILD $(AM_CPPFLAGS) -mkultable_CPPFLAGS = -DCOMPILE_FOR_BUILD $(AM_CPPFLAGS) -mksspairtable_CPPFLAGS = -DCOMPILE_FOR_BUILD $(AM_CPPFLAGS) - $(ctl_bitmap_c_files) apple.c $(wind_bitmap_c_files): map_to_c .map.c: map_to_c ./map_to_c < $< > $@ -map_to_c_SOURCES = map_to_c.c - -mkseedtables_SOURCES = mkseedtables.c - -mkultable_SOURCES = mkultable.c - -mksspairtable_SOURCES = mksspairtable.c - opfind_SOURCES = config/arch/i386/opfind.c opfind_CPPFLAGS = -DCOMPILE_FOR_BUILD $(AM_CPPFLAGS) @@ -47,10 +34,10 @@ sspairtable.c: mksspairtable ./mksspairtable > $@ rawpatstubs.c: $(srcdir)/makerawblt.pl $(srcdir)/pat-blitters.tmpl - $(srcdir)/makerawblt.pl < $(srcdir)/pat-blitters.tmpl > rawpatstubs.c + $(PERL) $(srcdir)/makerawblt.pl < $(srcdir)/pat-blitters.tmpl > rawpatstubs.c rawsrcstubs.c: $(srcdir)/makerawblt.pl $(srcdir)/src-blitters.tmpl - $(srcdir)/makerawblt.pl < $(srcdir)/src-blitters.tmpl > rawsrcstubs.c + $(PERL) $(srcdir)/makerawblt.pl < $(srcdir)/src-blitters.tmpl > rawsrcstubs.c ctlArrows.$(OBJEXT): $(ctl_bitmap_c_files) @@ -128,14 +115,14 @@ misc_sources = desk.c device.c disk.c diskinit.c dump.c trapname.c font.c \ emutrap.c emutraptables.c emustubs.c unix_like.c parse.y check_structs.c \ executor.c mkvol/mkvol.c crc.c -front_end_sdl_sources = config/front-ends/sdl/SDL_bmp.c \ +front_end_sdl_sources = config/front-ends/sdl/SDL_bmp.c \ config/front-ends/sdl/sdlevents.c \ - config/front-ends/sdl/sdl_mem.c \ - config/front-ends/sdl/sdlquit.c \ - config/front-ends/sdl/sdlscrap.c \ - config/front-ends/sdl/sdlwin.c \ - config/front-ends/sdl/sdlwm.c \ - config/front-ends/sdl/sdlX.c \ + config/front-ends/sdl/sdl_mem.c \ + config/front-ends/sdl/sdlquit.c \ + config/front-ends/sdl/sdlscrap.c \ + config/front-ends/sdl/sdlwin.c \ + config/front-ends/sdl/sdlwm.c \ + config/front-ends/sdl/sdlX.c \ config/front-ends/sdl/syswm_map.c \ config/front-ends/sdl/winmain.c @@ -145,12 +132,27 @@ os_linux_sources = config/os/linux/linux.c \ config/os/linux/linux_except.c \ config/os/linux/lowglobals-mem.c +arch_alpha_sources = config/arch/alpha/alpha.c + arch_i386_sources = config/arch/i386/x86patblt.S \ config/arch/i386/x86srcblt.S \ config/arch/i386/xdstubtables.c \ config/arch/i386/sbstubtables.c \ config/arch/i386/i386.c +# TODO: If we ever support the m68k target again we'll need to make it so that +# we build m68k-callback-stubs.s + +arch_m68k_sources = config/arch/m68k/m68k.c \ + config/arch/m68k/m68k-callback.c \ + config/arch/m68k/m68k-callback-handler.s \ + config/arch/m68k/m68k-call-emulator.s \ + config/arch/m68k/m68k-destroy.c \ + config/arch/m68k/m68k-stack.c \ + config/arch/m68k/m68k-trap-handler.s \ + config/arch/m68k/trap.S \ + config/arch/m68k/m68k-callback-stubs.s + x86patblt.$(OBJEXT): pat-blitters.s x86srcblt.$(OBJEXT): src-blitters.s @@ -158,7 +160,7 @@ x86srcblt.$(OBJEXT): src-blitters.s pat-blitters-stamp pat-blitters.h pat-blitters.s: \ config/arch/i386/opfind.c config/arch/i386/opfind.h \ config/arch/i386/metaasm.pl config/arch/i386/pat-blitters.meta - $(srcdir)/config/arch/i386/metaasm.pl $(METAASM_ARGS)\ + $(PERL) $(srcdir)/config/arch/i386/metaasm.pl $(METAASM_ARGS)\ $(srcdir)/config/arch/i386/pat-blitters.meta\ pat-blitters.s pat-blitters.h\ config/arch/i386/opfind.c @@ -176,7 +178,7 @@ src-blitters-stamp src-blitters.h src-blitters.s: \ config/arch/i386/src-shift-fgbk.meta \ config/arch/i386/src-noshift-fgbk.meta \ pat-blitters-stamp config/arch/i386/src-blitters-core.meta - $(srcdir)/config/arch/i386/metaasm.pl -define DST_SEG= $(METAASM_ARGS)\ + $(PERL) $(srcdir)/config/arch/i386/metaasm.pl -define DST_SEG= $(METAASM_ARGS)\ $(srcdir)/config/arch/i386/src-blitters.meta\ src-blitters.s src-blitters.h\ config/arch/i386/opfind.c diff --git a/src/TODO b/src/TODO index d01aa1a..75aa986 100644 --- a/src/TODO +++ b/src/TODO @@ -1,15 +1,17 @@ GNU build fixes + stuff is being left behind + + {src,pat}-blitters.{h,s} + asmsamples.h + parse.c + Make it so people can select the front-end and the sound, but that we default to SDL if it's available Make it so if we don't find libsyn68k, we die properly (unless we're on a 68k) - See if there's a more elegant way to identify the build - parameters than our current per-target override using - -DCOMPILE_FOR_BUILD - See if there's a more elegant solution to the blitters code (can we nuke the config/arch/i386 prefixes in the dependencies? should we make it so both source and pattern @@ -17,6 +19,12 @@ test parallel builds + Add in as much for the targets we don't currently have + a machine for as possible + + arch/alpha + arch/m68k + CToPascalCall -- look hard for arguments that sometimes take a pointer and sometimes take a long diff --git a/src/configure.ac b/src/configure.ac index cd00922..54407f2 100644 --- a/src/configure.ac +++ b/src/configure.ac @@ -1,13 +1,12 @@ -AC_INIT(executor, 2.1pr16, ctm@ardi.com) +AC_INIT(executor, 2.1pr17, ctm@ardi.com) AC_CANONICAL_SYSTEM AM_INIT_AUTOMAKE([-Wall]) -AM_PROG_AS - AC_CONFIG_SRCDIR([executor.c]) AC_CONFIG_HEADERS([config.h]) # Checks for programs. +AM_PROG_AS AC_PROG_CC AM_PROG_CC_C_O AC_PROG_RANLIB @@ -23,17 +22,6 @@ AC_SYS_LARGEFILE AC_CHECK_LIB(syn68k, initialize_68k_emulator) -# Right now we blindly look for the libraries we need for the SDL Linux -# port since that's the first one I'll get going with the this file. - -AC_CHECK_LIB(SDL, SDL_Init) -AC_CHECK_LIB(db, __db_ndbm_open) -AC_CHECK_LIB(X11, XInitThreads) -AC_CHECK_LIB(m, pow) - -AC_CONFIG_FILES([Makefile]) - - # Normalize to our old names case ${build_cpu} in @@ -73,6 +61,20 @@ sound_config=sdl # end of cheat +AC_ARG_WITH(front-end, [AS_HELP_STRING([--with-front-end=arg], [arg must be sdl or x (default is sdl)])]) +AC_ARG_WITH(sound, [AS_HELP_STRING([--with-sound=arg], [arg must be linux or sdl (default is sdl)])]) + +# Right now we blindly look for the libraries we need for the SDL Linux +# port since that's the first one I'll get going with the this file. + +AC_CHECK_LIB(SDL, SDL_Init) +AC_CHECK_LIB(db, __db_ndbm_open) +AC_CHECK_LIB(X11, XInitThreads) +AC_CHECK_LIB(m, pow) + + + + AC_SUBST(host_cpu) AC_SUBST(host_os) AC_SUBST(front_end) @@ -85,4 +87,6 @@ AC_CONFIG_LINKS([build-arch-config.h:config/arch/$build_cpu/$build_cpu.h front-end-config.h:config/front-ends/$front_end/$front_end.h sound-config.h:config/sound/$sound_config/$sound_config-sound.h]) +AC_CONFIG_FILES([Makefile]) + AC_OUTPUT diff --git a/src/map_to_c.c b/src/map_to_c.c index 1aab418..9b92d9b 100644 --- a/src/map_to_c.c +++ b/src/map_to_c.c @@ -7,6 +7,8 @@ char ROMlib_rcsid_map_to_c[] = "$Id: map_to_c.c 63 2004-12-24 18:19:43Z ctm $"; #endif +#define COMPILE_FOR_BUILD + #include "rsys/common.h" #include