mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
Makefile & build system update:
* verinfo: New syntax. verinfo now uses the following syntax: verinfo.exe -b windows|winui|mess. Does not depend on compile time defines any longer. * makefile will include - if it exists - src/osd/$(CROSS_BUILD_OSD)/build.mak. This was necessary to enable cross builds for winui. winui adds mkhelp to build tools and the rules for mkhelp thus had to be moved outside src/osd/winui/winui.mak * Tested on Linux 64bit, Linux 32bit, Windows 32bit mingw, Windows 32bit MSVC * Cross build environment to be posted to the list
This commit is contained in:
parent
885d66e31a
commit
9c460a6248
@ -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)
|
||||
|
@ -13,7 +13,10 @@
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#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] <filename>\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 <filename>\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;
|
||||
|
@ -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 $@
|
||||
|
@ -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 > $@
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user