mirror of
https://github.com/holub/mame
synced 2025-04-22 08:22:15 +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
|
||||
endif
|
||||
endif
|
||||
ifeq ($(TARGETOS),emscripten)
|
||||
ARFLAGS = cr
|
||||
endif
|
||||
|
||||
|
||||
#-------------------------------------------------
|
||||
@ -929,11 +926,19 @@ $(sort $(OBJDIRS)):
|
||||
|
||||
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)
|
||||
@echo Linking $@...
|
||||
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 $@
|
||||
else
|
||||
$(LD) $(LDFLAGS) $(LDFLAGSEMULATOR) $(VERSIONOBJ) $^ $(LIBS) -o $@
|
||||
@ -1002,10 +1007,20 @@ $(DRIVLISTSRC): $(SRC)/$(TARGET)/$(SUBTARGET).lst $(MAKELIST_TARGET)
|
||||
@echo Building driver list $<...
|
||||
@$(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:
|
||||
@echo Archiving $@...
|
||||
$(RM) $@
|
||||
$(AR) $(ARFLAGS) $@ $^
|
||||
endif
|
||||
|
||||
ifeq ($(TARGETOS),macosx)
|
||||
$(OBJ)/%.o: $(SRC)/%.m | $(OSPREBUILD)
|
||||
|
Loading…
Reference in New Issue
Block a user