mirror of
https://github.com/holub/mame
synced 2025-10-04 16:34:53 +03:00
Work around Emscripten linking issues by avoiding ar altogether (nw)
See https://github.com/kripken/emscripten/issues/2619
This commit is contained in:
parent
5dab7eb95c
commit
31bc7f4bbb
25
makefile
25
makefile
@ -650,9 +650,6 @@ ifeq ($(COMMAND_MODE),"legacy")
|
|||||||
ARFLAGS = -crs
|
ARFLAGS = -crs
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
ifeq ($(TARGETOS),emscripten)
|
|
||||||
ARFLAGS = cr
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
#-------------------------------------------------
|
#-------------------------------------------------
|
||||||
@ -929,11 +926,19 @@ $(sort $(OBJDIRS)):
|
|||||||
|
|
||||||
ifndef EXECUTABLE_DEFINED
|
ifndef EXECUTABLE_DEFINED
|
||||||
|
|
||||||
$(EMULATOR): $(EMUINFOOBJ) $(DRIVLISTOBJ) $(DRVLIBS) $(LIBOSD) $(LIBBUS) $(LIBOPTIONAL) $(LIBEMU) $(LIBDASM) $(LIBUTIL) $(EXPAT) $(SOFTFLOAT) $(JPEG_LIB) $(FLAC_LIB) $(7Z_LIB) $(FORMATS_LIB) $(LUA_LIB) $(SQLITE3_LIB) $(WEB_LIB) $(ZLIB) $(LIBOCORE) $(MIDI_LIB) $(RESFILE)
|
EMULATOROBJLIST = $(EMUINFOOBJ) $(DRIVLISTOBJ) $(DRVLIBS) $(LIBOSD) $(LIBBUS) $(LIBOPTIONAL) $(LIBEMU) $(LIBDASM) $(LIBUTIL) $(EXPAT) $(SOFTFLOAT) $(JPEG_LIB) $(FLAC_LIB) $(7Z_LIB) $(FORMATS_LIB) $(LUA_LIB) $(SQLITE3_LIB) $(WEB_LIB) $(ZLIB) $(LIBOCORE) $(MIDI_LIB) $(RESFILE)
|
||||||
|
|
||||||
|
ifeq ($(TARGETOS),emscripten)
|
||||||
|
EMULATOROBJ = $(EMULATOROBJLIST:.a=.bc)
|
||||||
|
else
|
||||||
|
EMULATOROBJ = $(EMULATOROBJLIST)
|
||||||
|
endif
|
||||||
|
|
||||||
|
$(EMULATOR): $(EMULATOROBJ)
|
||||||
$(CC) $(CDEFS) $(CFLAGS) -c $(SRC)/version.c -o $(VERSIONOBJ)
|
$(CC) $(CDEFS) $(CFLAGS) -c $(SRC)/version.c -o $(VERSIONOBJ)
|
||||||
@echo Linking $@...
|
@echo Linking $@...
|
||||||
ifeq ($(TARGETOS),emscripten)
|
ifeq ($(TARGETOS),emscripten)
|
||||||
# Emscripten's linker seems to be stricter about the ordering of .a files
|
# Emscripten's linker seems to be stricter about the ordering of files
|
||||||
$(LD) $(LDFLAGS) $(LDFLAGSEMULATOR) $(VERSIONOBJ) -Wl,--start-group $^ -Wl,--end-group $(LIBS) -o $@
|
$(LD) $(LDFLAGS) $(LDFLAGSEMULATOR) $(VERSIONOBJ) -Wl,--start-group $^ -Wl,--end-group $(LIBS) -o $@
|
||||||
else
|
else
|
||||||
$(LD) $(LDFLAGS) $(LDFLAGSEMULATOR) $(VERSIONOBJ) $^ $(LIBS) -o $@
|
$(LD) $(LDFLAGS) $(LDFLAGSEMULATOR) $(VERSIONOBJ) $^ $(LIBS) -o $@
|
||||||
@ -1002,10 +1007,20 @@ $(DRIVLISTSRC): $(SRC)/$(TARGET)/$(SUBTARGET).lst $(MAKELIST_TARGET)
|
|||||||
@echo Building driver list $<...
|
@echo Building driver list $<...
|
||||||
@$(MAKELIST) $< >$@
|
@$(MAKELIST) $< >$@
|
||||||
|
|
||||||
|
ifeq ($(TARGETOS),emscripten)
|
||||||
|
# Avoid using .a files with Emscripten, link to bitcode instead
|
||||||
|
$(OBJ)/%.a:
|
||||||
|
@echo Linking $@...
|
||||||
|
$(RM) $@
|
||||||
|
$(LD) $^ -o $@
|
||||||
|
$(OBJ)/%.bc: $(OBJ)/%.a
|
||||||
|
@cp $< $@
|
||||||
|
else
|
||||||
$(OBJ)/%.a:
|
$(OBJ)/%.a:
|
||||||
@echo Archiving $@...
|
@echo Archiving $@...
|
||||||
$(RM) $@
|
$(RM) $@
|
||||||
$(AR) $(ARFLAGS) $@ $^
|
$(AR) $(ARFLAGS) $@ $^
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(TARGETOS),macosx)
|
ifeq ($(TARGETOS),macosx)
|
||||||
$(OBJ)/%.o: $(SRC)/%.m | $(OSPREBUILD)
|
$(OBJ)/%.o: $(SRC)/%.m | $(OSPREBUILD)
|
||||||
|
Loading…
Reference in New Issue
Block a user