diff --git a/src/build/build.mak b/src/build/build.mak index d7c1a001a09..de333e56930 100644 --- a/src/build/build.mak +++ b/src/build/build.mak @@ -9,11 +9,6 @@ # ########################################################################### - -BUILDSRC = $(SRC)/build -BUILDOBJ = $(OBJ)/build -BUILDOUT = $(BUILDOBJ) - OBJDIRS += \ $(BUILDOBJ) \ @@ -23,8 +18,10 @@ OBJDIRS += \ # set of build targets #------------------------------------------------- -FILE2STR = $(BUILDOUT)/file2str$(EXE) -PNG2BDC = $(BUILDOUT)/png2bdc$(EXE) +FILE2STR = $(BUILDOUT)/file2str$(BUILD_EXE) +PNG2BDC = $(BUILDOUT)/png2bdc$(BUILD_EXE) +VERINFO = $(BUILDOUT)/verinfo$(BUILD_EXE) + VERINFO = $(BUILDOUT)/verinfo$(EXE) ifneq ($(CROSS_BUILD),1) diff --git a/src/build/verinfo.c b/src/build/verinfo.c index e737120dff4..99621f691fc 100644 --- a/src/build/verinfo.c +++ b/src/build/verinfo.c @@ -13,7 +13,10 @@ #include #include -#define ARRAY_LENGTH(x) (sizeof(x) / sizeof(x[0])) +#define ARRAY_LENGTH(x) (sizeof(x) / sizeof(x[0])) +#define BUILD_WINDOWS (0) +#define BUILD_WINUI (1) +#define BUILD_MESS (2) //============================================================ // TYPE DEFINITIONS @@ -39,6 +42,13 @@ struct _version_info +//============================================================ +// STATIC +//============================================================ + +static int build; + + //============================================================ // emit_version_info //============================================================ @@ -157,6 +167,16 @@ static int parse_version(char *str, int *version_major, int *version_minor, int +//============================================================ +// main +//============================================================ +static int usage(char *me) +{ + fprintf(stderr, "Usage: %s [-b windows|winui|mess] \n", me); + return 1; +} + + //============================================================ // main //============================================================ @@ -167,22 +187,43 @@ int main(int argc, char *argv[]) char legal_copyright[512]; char *buffer; size_t size; + int opt; FILE *f; memset(&v, 0, sizeof(v)); - + build = BUILD_WINDOWS; + // validate parameters - if (argc < 2) + opt = 1; + while (opt < argc && *argv[opt] == '-') { - printf("Usage: %s \n", argv[0]); - return 0; + if (!strcmp(argv[opt], "-b")) + { + char *p = argv[++opt]; + if (!strcmp(p,"windows")) + build = BUILD_WINDOWS; + else if (!strcmp(p,"winui")) + build = BUILD_WINUI; + else if (!strcmp(p,"mess")) + build = BUILD_MESS; + else + return usage(argv[0]); + } + else + return usage(argv[0]); + opt++; + } + + if (opt != argc-1 ) + { + return usage(argv[0]); } // open the file - f = fopen(argv[1], "rb"); + f = fopen(argv[argc-1], "rb"); if (f == NULL) { - fprintf(stderr, "Error opening file %s\n", argv[1]); + fprintf(stderr, "Error opening file %s\n", argv[argc-1]); return 1; } @@ -209,34 +250,39 @@ int main(int argc, char *argv[]) if (parse_version(buffer, &v.version_major, &v.version_minor, &v.version_build, &v.version_string)) return 1; -#ifdef MESS - // MESS - v.author = "MESS Team"; - v.comments = "Multi Emulation Super System"; - v.company_name = "MESS Team"; - v.file_description = "Multi Emulation Super System"; - v.internal_name = "MESS"; - v.original_filename = "MESS"; - v.product_name = "MESS"; -#elif defined(WINUI) - // MAMEUI - v.author = "Christopher Kirmse and the MAMEUI team"; - v.comments = "Multiple Arcade Machine Emulator with GUI"; - v.company_name = "MAME Team"; - v.file_description = "Multiple Arcade Machine Emulator with GUI"; - v.internal_name = "MAMEUI"; - v.original_filename = "MAMEUI"; - v.product_name = "MAMEUI"; -#else - // MAME - v.author = "Nicola Salmoria and the MAME Team"; - v.comments = "Multiple Arcade Machine Emulator"; - v.company_name = "MAME Team"; - v.file_description = "Multiple Arcade Machine Emulator"; - v.internal_name = "MAME"; - v.original_filename = "MAME"; - v.product_name = "MAME"; -#endif + if (build == BUILD_MESS) + { + // MESS + v.author = "MESS Team"; + v.comments = "Multi Emulation Super System"; + v.company_name = "MESS Team"; + v.file_description = "Multi Emulation Super System"; + v.internal_name = "MESS"; + v.original_filename = "MESS"; + v.product_name = "MESS"; + } + else if (build == BUILD_WINUI) + { + // MAMEUI + v.author = "Christopher Kirmse and the MAMEUI team"; + v.comments = "Multiple Arcade Machine Emulator with GUI"; + v.company_name = "MAME Team"; + v.file_description = "Multiple Arcade Machine Emulator with GUI"; + v.internal_name = "MAMEUI"; + v.original_filename = "MAMEUI"; + v.product_name = "MAMEUI"; + } + else + { + // MAME + v.author = "Nicola Salmoria and the MAME Team"; + v.comments = "Multiple Arcade Machine Emulator"; + v.company_name = "MAME Team"; + v.file_description = "Multiple Arcade Machine Emulator"; + v.internal_name = "MAME"; + v.original_filename = "MAME"; + v.product_name = "MAME"; + } // build legal_copyright string v.legal_copyright = legal_copyright; diff --git a/src/emu/cpu/cpu.mak b/src/emu/cpu/cpu.mak index d97a683ba45..91ec2a7bfaa 100644 --- a/src/emu/cpu/cpu.mak +++ b/src/emu/cpu/cpu.mak @@ -1020,7 +1020,7 @@ OBJDIRS += $(CPUOBJ)/m68000 CPUOBJS += $(CPUOBJ)/m68000/m68kcpu.o $(CPUOBJ)/m68000/m68kmame.o $(CPUOBJ)/m68000/m68kops.o DBGOBJS += $(CPUOBJ)/m68000/m68kdasm.o endif -M68KMAKE = $(CPUOBJ)/m68000/m68kmake$(EXE) +M68KMAKE = $(BUILDOUT)/m68kmake$(BUILD_EXE) # when we compile source files we need to include generated files from the OBJ directory $(CPUOBJ)/m68000/%.o: $(CPUSRC)/m68000/%.c @@ -1039,6 +1039,9 @@ $(CPUOBJ)/m68000/m68kops.c: $(M68KMAKE) $(CPUSRC)/m68000/m68k_in.c # rule to build the generator ifneq ($(CROSS_BUILD),1) + +BUILD += $(M68KMAKE) + $(M68KMAKE): $(CPUOBJ)/m68000/m68kmake.o $(LIBOCORE) @echo Linking $@... $(LD) $(LDFLAGS) $(OSDBGLDFLAGS) $^ $(LIBS) -o $@ diff --git a/src/osd/windows/windows.mak b/src/osd/windows/windows.mak index b27ecfbdfb4..5d1c8a18683 100644 --- a/src/osd/windows/windows.mak +++ b/src/osd/windows/windows.mak @@ -135,6 +135,7 @@ DEFS += -D_CRT_SECURE_NO_DEPRECATE -DXML_STATIC -D__inline__=__inline -Dsnprintf # make msvcprep into a pre-build step # OSPREBUILD = $(VCONV) +ifneq ($(CROSS_BUILD),1) # add VCONV to the build tools BUILD += $(VCONV) @@ -147,7 +148,7 @@ $(WINOBJ)/vconv.o: $(WINSRC)/vconv.c @cl.exe /nologo /O1 -D_CRT_SECURE_NO_DEPRECATE -c $< /Fo$@ endif - +endif #------------------------------------------------- @@ -301,6 +302,7 @@ $(WINOBJ)/%.res: $(WINSRC)/%.rc | $(OSPREBUILD) $(RESFILE): $(WINSRC)/mame.rc $(WINOBJ)/mamevers.rc -$(WINOBJ)/mamevers.rc: $(OBJ)/build/verinfo$(EXE) $(SRC)/version.c +$(WINOBJ)/mamevers.rc: $(BUILDOUT)/verinfo$(BUILD_EXE) $(SRC)/version.c @echo Emitting $@... - @$(OBJ)/build/verinfo$(EXE) $(SRC)/version.c > $@ + @$(BUILDOUT)/verinfo$(BUILD_EXE) -b windows $(SRC)/version.c > $@ +