Skip to content

Commit 1eb3661

Browse files
committed
Add STATIC_LINKING support
1 parent 90ad0db commit 1eb3661

File tree

1 file changed

+43
-17
lines changed

1 file changed

+43
-17
lines changed

Makefile

+43-17
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
DEBUG=0
2+
STATIC_LINKING=0
23

34
ifeq ($(platform),)
45
platform = unix
@@ -37,17 +38,24 @@ TARGET_NAME := prboom
3738
LIBM :=
3839
LDFLAGS :=
3940

41+
ifeq ($(STATIC_LINKING),1)
42+
EXT=a
43+
endif
44+
4045
ifeq ($(platform), unix)
41-
TARGET := $(TARGET_NAME)_libretro.so
46+
EXT ?= so
47+
TARGET := $(TARGET_NAME)_libretro.$(EXT)
4248
fpic := -fPIC
4349
SHARED := -shared -Wl,--version-script=libretro/link.T -Wl,-no-undefined
4450
else ifeq ($(platform), linux-portable)
45-
TARGET := $(TARGET_NAME)_libretro.so
51+
EXT ?= so
52+
TARGET := $(TARGET_NAME)_libretro.$(EXT)
4653
fpic := -fPIC -nostdlib
4754
SHARED := -shared -Wl,--version-script=libretro/link.T
4855
LIBM :=
4956
else ifeq ($(platform), osx)
50-
TARGET := $(TARGET_NAME)_libretro.dylib
57+
EXT ?= dylib
58+
TARGET := $(TARGET_NAME)_libretro.$(EXT)
5159
fpic := -fPIC
5260
SHARED := -dynamiclib
5361
ifeq ($(arch),ppc)
@@ -59,8 +67,8 @@ endif
5967

6068
# iOS
6169
else ifneq (,$(findstring ios,$(platform)))
62-
63-
TARGET := $(TARGET_NAME)_libretro_ios.dylib
70+
EXT ?= dylib
71+
TARGET := $(TARGET_NAME)_libretro_ios.$(EXT)
6472
fpic := -fPIC
6573
SHARED := -dynamiclib
6674

@@ -85,52 +93,60 @@ include $(THEOS)/makefiles/common.mk
8593

8694
LIBRARY_NAME = $(TARGET_NAME)_libretro_ios
8795

96+
8897
else ifeq ($(platform), qnx)
89-
TARGET := $(TARGET_NAME)_libretro_qnx.so
98+
EXT ?= so
99+
TARGET := $(TARGET_NAME)_libretro_qnx.$(EXT)
90100
fpic := -fPIC
91101
SHARED := -shared -Wl,--version-script=libretro/link.T -Wl,-no-undefined
92102
CC = qcc -Vgcc_ntoarmv7le
93103
AR = qcc -Vgcc_ntoarmv7le
94104
CFLAGS += -DHAVE_STRLWR
95105
CFLAGS += -D__BLACKBERRY_QNX__ -marm -mcpu=cortex-a9 -mfpu=neon -mfloat-abi=softfp
96106
else ifeq ($(platform), ps3)
97-
TARGET := $(TARGET_NAME)_libretro_ps3.a
107+
EXT=a
108+
TARGET := $(TARGET_NAME)_libretro_ps3.$(EXT)
98109
CC = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-gcc.exe
99110
AR = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-ar.exe
100111
CFLAGS += -DMSB_FIRST
101112
STATIC_LINKING = 1
102113
else ifeq ($(platform), sncps3)
103-
TARGET := $(TARGET_NAME)_libretro_ps3.a
114+
EXT=a
115+
TARGET := $(TARGET_NAME)_libretro_ps3.$(EXT)
104116
CC = $(CELL_SDK)/host-win32/sn/bin/ps3ppusnc.exe
105117
AR = $(CELL_SDK)/host-win32/sn/bin/ps3snarl.exe
106118
CFLAGS += -DMSB_FIRST
107119
STATIC_LINKING = 1
108120
else ifeq ($(platform), psl1ght)
109-
TARGET := $(TARGET_NAME)_libretro_psl1ght.a
121+
EXT=a
122+
TARGET := $(TARGET_NAME)_libretro_psl1ght.$(EXT)
110123
CC = $(PS3DEV)/ppu/bin/ppu-gcc$(EXE_EXT)
111124
AR = $(PS3DEV)/ppu/bin/ppu-ar$(EXE_EXT)
112125
CFLAGS += -DMSB_FIRST -DHAVE_STRLWR
113126
STATIC_LINKING = 1
114127

115128
# PSP1
116129
else ifeq ($(platform), psp1)
117-
TARGET := $(TARGET_NAME)_libretro_psp1.a
130+
EXT=a
131+
TARGET := $(TARGET_NAME)_libretro_psp1.$(EXT)
118132
CC = psp-gcc$(EXE_EXT)
119133
AR = psp-ar$(EXE_EXT)
120134
CFLAGS += -DHAVE_STRLWR -DPSP -G0
121135
STATIC_LINKING = 1
122136

123137
# Vita
124138
else ifeq ($(platform), vita)
125-
TARGET := $(TARGET_NAME)_libretro_vita.a
139+
EXT=a
140+
TARGET := $(TARGET_NAME)_libretro_vita.$(EXT)
126141
CC = arm-vita-eabi-gcc$(EXE_EXT)
127142
AR = arm-vita-eabi-ar$(EXE_EXT)
128143
CFLAGS += -DHAVE_STRLWR -DVITA
129144
STATIC_LINKING = 1
130145

131146
# CTR (3DS)
132147
else ifeq ($(platform), ctr)
133-
TARGET := $(TARGET_NAME)_libretro_ctr.a
148+
EXT=a
149+
TARGET := $(TARGET_NAME)_libretro_ctr.$(EXT)
134150
CC = $(DEVKITARM)/bin/arm-none-eabi-gcc$(EXE_EXT)
135151
AR = $(DEVKITARM)/bin/arm-none-eabi-ar$(EXE_EXT)
136152
PLATFORM_DEFINES := -DARM11 -D_3DS
@@ -140,25 +156,29 @@ else ifeq ($(platform), ctr)
140156
STATIC_LINKING = 1
141157

142158
else ifeq ($(platform), xenon)
143-
TARGET := $(TARGET_NAME)_libretro_xenon360.a
159+
EXT=a
160+
TARGET := $(TARGET_NAME)_libretro_xenon360.$(EXT)
144161
CC = xenon-gcc$(EXE_EXT)
145162
AR = xenon-ar$(EXE_EXT)
146163
CFLAGS += -D__LIBXENON__ -m32 -D__ppc__ -DMSB_FIRST
147164
STATIC_LINKING = 1
148165
else ifeq ($(platform), ngc)
149-
TARGET := $(TARGET_NAME)_libretro_ngc.a
166+
EXT=a
167+
TARGET := $(TARGET_NAME)_libretro_ngc.$(EXT)
150168
CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT)
151169
AR = $(DEVKITPPC)/bin/powerpc-eabi-ar$(EXE_EXT)
152170
CFLAGS += -DGEKKO -DHW_DOL -mrvl -mcpu=750 -meabi -mhard-float -DMEMORY_LOW -DMSB_FIRST
153171
STATIC_LINKING = 1
154172
else ifeq ($(platform), wii)
155-
TARGET := $(TARGET_NAME)_libretro_wii.a
173+
EXT=a
174+
TARGET := $(TARGET_NAME)_libretro_wii.$(EXT)
156175
CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT)
157176
AR = $(DEVKITPPC)/bin/powerpc-eabi-ar$(EXE_EXT)
158177
CFLAGS += -DGEKKO -DHW_RVL -mrvl -mcpu=750 -meabi -mhard-float -DMSB_FIRST
159178
STATIC_LINKING = 1
160179
else ifneq (,$(findstring armv,$(platform)))
161-
TARGET := $(TARGET_NAME)_libretro.so
180+
EXT?=so
181+
TARGET := $(TARGET_NAME)_libretro.$(EXT)
162182
SHARED := -shared -Wl,--no-undefined
163183
fpic := -fPIC
164184
CC = gcc
@@ -184,12 +204,18 @@ else ifneq (,$(findstring hardfloat,$(platform)))
184204
endif
185205
CFLAGS += -DARM
186206
else
187-
TARGET := $(TARGET_NAME)_libretro.dll
207+
EXT?=dll
208+
TARGET := $(TARGET_NAME)_libretro.$(EXT)
188209
CC = gcc
189210
SHARED := -shared -static-libgcc -static-libstdc++ -s -Wl,--version-script=libretro/link.T
190211
CFLAGS += -D__WIN32__ -D__WIN32_LIBRETRO__ -Wno-missing-field-initializers -DHAVE_STRLWR
191212
endif
192213

214+
ifeq ($(STATIC_LINKING),1)
215+
SHARED=
216+
fpic=
217+
endif
218+
193219
LDFLAGS += $(LIBM)
194220

195221
CFLAGS += -DHAVE_LIBMAD -DMUSIC_SUPPORT

0 commit comments

Comments
 (0)