|
| 1 | +include version.all |
| 2 | + |
| 3 | +#--------------------------------------------------------------------------------- |
| 4 | +.SUFFIXES: |
| 5 | +#--------------------------------------------------------------------------------- |
| 6 | + |
| 7 | +TOPDIR ?= $(CURDIR) |
| 8 | + |
| 9 | + |
| 10 | +DEBUG ?= 0 |
| 11 | +WHOLE_ARCHIVE_LINK = 0 |
| 12 | +HAVE_STATIC_DUMMY ?= 0 |
| 13 | +GRIFFIN_BUILD = 0 |
| 14 | + |
| 15 | +OBJ := |
| 16 | + |
| 17 | +DEFINES := -DHAVE_DJGPP=1 -U__linux__ -U__linux -DRARCH_INTERNAL -DHAVE_STB_VORBIS -DIS_SALAMANDER |
| 18 | +CC := i586-pc-msdosdjgpp-gcc |
| 19 | +CXX := i586-pc-msdosdjgpp-g++ |
| 20 | +TARGET := retrodos.exe |
| 21 | + |
| 22 | +RARCH_CONSOLE = 0 |
| 23 | +HAVE_SHADERPIPELINE = 0 |
| 24 | +HAVE_SPIRV_CROSS = 0 |
| 25 | +HAVE_PATCH = 1 |
| 26 | +HAVE_LUA = 0 |
| 27 | +HAVE_CONFIGFILE = 1 |
| 28 | +HAVE_GFX_WIDGETS = 0 |
| 29 | +HAVE_LANGEXTRA = 1 |
| 30 | +HAVE_DR_MP3 = 1 |
| 31 | +HAVE_TRANSLATE = 0 |
| 32 | +HAVE_SCREENSHOTS = 1 |
| 33 | +HAVE_REWIND = 1 |
| 34 | +HAVE_AUDIOMIXER = 1 |
| 35 | +HAVE_CC_RESAMPLER = 1 |
| 36 | +HAVE_MENU_COMMON = 1 |
| 37 | +HAVE_RTGA = 1 |
| 38 | +HAVE_RPNG = 1 |
| 39 | +HAVE_RJPEG = 1 |
| 40 | +HAVE_RBMP = 1 |
| 41 | +HAVE_7ZIP = 1 |
| 42 | +HAVE_ZLIB = 1 |
| 43 | +HAVE_IMAGEVIEWER = 1 |
| 44 | +HAVE_BUILTINZLIB = 1 |
| 45 | +HAVE_LIBRETRODB = 0 |
| 46 | +HAVE_DSP_FILTER = 1 |
| 47 | +HAVE_VIDEO_FILTER = 1 |
| 48 | +HAVE_STATIC_VIDEO_FILTERS = 1 |
| 49 | +HAVE_STATIC_AUDIO_FILTERS = 1 |
| 50 | +HAVE_STATIC_CORES = 1 |
| 51 | +HAVE_FILTERS_BUILTIN = 1 |
| 52 | +HAVE_MENU = 1 |
| 53 | +HAVE_CONFIGFILE = 1 |
| 54 | +HAVE_PATCH = 1 |
| 55 | +HAVE_CHEATS = 1 |
| 56 | +HAVE_RUNAHEAD = 1 |
| 57 | +HAVE_NETWORKING = 0 |
| 58 | +HAVE_IFINFO = 0 |
| 59 | +HAVE_NETPLAYDISCOVERY = 0 |
| 60 | +HAVE_OVERLAY := 1 |
| 61 | +HAVE_STB_FONT = 1 |
| 62 | +HAVE_COMMAND := 1 |
| 63 | +HAVE_STDIN_CMD := 1 |
| 64 | +HAVE_CMD := 1 |
| 65 | +HAVE_CHEEVOS = 0 |
| 66 | +HAVE_CHD = 1 |
| 67 | +HAVE_STB_VORBIS = 1 |
| 68 | +HAVE_IBXM = 1 |
| 69 | +HAVE_CORE_INFO_CACHE = 1 |
| 70 | +HAVE_XDELTA = 0 # disabled because <lzma.h> isn't available (or we haven't figured out how to install it) |
| 71 | + |
| 72 | +HAVE_RGUI = 1 |
| 73 | +HAVE_MATERIALUI = 0 |
| 74 | +HAVE_XMB = 0 |
| 75 | +HAVE_OZONE = 0 |
| 76 | + |
| 77 | + |
| 78 | +OBJ := frontend/frontend_salamander.o \ |
| 79 | + frontend/frontend_driver.o \ |
| 80 | + frontend/drivers/platform_dos.o \ |
| 81 | + libretro-common/file/file_path.o \ |
| 82 | + libretro-common/file/file_path_io.o \ |
| 83 | + libretro-common/string/stdstring.o \ |
| 84 | + libretro-common/lists/string_list.o \ |
| 85 | + libretro-common/lists/dir_list.o \ |
| 86 | + libretro-common/file/retro_dirent.o \ |
| 87 | + libretro-common/encodings/encoding_utf.o \ |
| 88 | + libretro-common/compat/fopen_utf8.o \ |
| 89 | + libretro-common/compat/compat_strl.o \ |
| 90 | + libretro-common/compat/compat_strldup.o \ |
| 91 | + libretro-common/compat/compat_strcasestr.o \ |
| 92 | + libretro-common/file/config_file.o \ |
| 93 | + libretro-common/streams/file_stream.o \ |
| 94 | + libretro-common/vfs/vfs_implementation.o \ |
| 95 | + libretro-common/hash/lrc_hash.o \ |
| 96 | + libretro-common/time/rtime.o \ |
| 97 | + verbosity.o |
| 98 | + |
| 99 | +INCLUDE_DIRS = -Ilibretro-common/include |
| 100 | + |
| 101 | +#--------------------------------------------------------------------------------- |
| 102 | +# TARGET is the name of the output |
| 103 | +# BUILD is the directory where object files & intermediate files will be placed |
| 104 | +# SOURCES is a list of directories containing source code |
| 105 | +# DATA is a list of directories containing data files |
| 106 | +# INCLUDES is a list of directories containing header files |
| 107 | +# EXEFS_SRC is the optional input directory containing data copied into exefs, if anything this normally should only contain "main.npdm". |
| 108 | +# ROMFS is the directory containing data to be added to RomFS, relative to the Makefile (Optional) |
| 109 | +# |
| 110 | +# NO_ICON: if set to anything, do not use icon. |
| 111 | +# NO_NACP: if set to anything, no .nacp file is generated. |
| 112 | +# APP_TITLE is the name of the app stored in the .nacp file (Optional) |
| 113 | +# APP_AUTHOR is the author of the app stored in the .nacp file (Optional) |
| 114 | +# APP_VERSION is the version of the app stored in the .nacp file (Optional) |
| 115 | +# APP_TITLEID is the titleID of the app stored in the .nacp file (Optional) |
| 116 | +# ICON is the filename of the icon (.jpg), relative to the project folder. |
| 117 | +# If not set, it attempts to use one of the following (in this order): |
| 118 | +# - <Project name>.jpg |
| 119 | +# - icon.jpg |
| 120 | +# - <libnx folder>/default_icon.jpg |
| 121 | +#--------------------------------------------------------------------------------- |
| 122 | +BUILD := build |
| 123 | +SOURCES := $(CURDIR)/source |
| 124 | +DATA := data |
| 125 | +INCLUDES := include |
| 126 | +EXEFS_SRC := exefs_src |
| 127 | + |
| 128 | +APP_TITLE := RetroArch |
| 129 | +APP_VERSION := $(RARCH_VERSION) |
| 130 | +APP_AUTHOR := libretro Team |
| 131 | +APP_ICON := pkg/libnx/retroarch.jpg |
| 132 | + |
| 133 | +#--------------------------------------------------------------------------------- |
| 134 | +# options for code generation |
| 135 | +#--------------------------------------------------------------------------------- |
| 136 | +ARCH := |
| 137 | + |
| 138 | +CFLAGS := -g -Wall -O3 -fcommon -ffunction-sections \ |
| 139 | + $(ARCH) $(DEFINES) $(INCLUDE_DIRS) |
| 140 | + |
| 141 | +CFLAGS += $(INCLUDE) |
| 142 | + |
| 143 | +ifeq ($(HAVE_FILTERS_BUILTIN), 1) |
| 144 | + CFLAGS += -DHAVE_FILTERS_BUILTIN |
| 145 | +endif |
| 146 | + |
| 147 | +ifeq ($(strip $(HAVE_STATIC_DUMMY)),1) |
| 148 | + CFLAGS += -DHAVE_STATIC_DUMMY=1 |
| 149 | +endif |
| 150 | + |
| 151 | +CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -std=gnu++11 |
| 152 | + |
| 153 | +ASFLAGS := -g $(ARCH) |
| 154 | +LDFLAGS = $(ARCH) -Wl,--allow-multiple-definition -Wl,-Map,$(notdir $*.map) |
| 155 | + |
| 156 | +# add things from Makefile.common |
| 157 | +CFLAGS += $(DEF_FLAGS) |
| 158 | + |
| 159 | +LIBS := -lstdc++ -lm |
| 160 | + |
| 161 | +#--------------------------------------------------------------------------------- |
| 162 | +# no real need to edit anything past this point unless you need to add additional |
| 163 | +# rules for different file extensions |
| 164 | +#--------------------------------------------------------------------------------- |
| 165 | +ifneq ($(BUILD),$(notdir $(CURDIR))) |
| 166 | +#--------------------------------------------------------------------------------- |
| 167 | + |
| 168 | +export OUTPUT := $(TARGET) |
| 169 | +export TOPDIR := $(CURDIR) |
| 170 | + |
| 171 | +export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \ |
| 172 | + $(foreach dir,$(DATA),$(CURDIR)/$(dir)) |
| 173 | + |
| 174 | +export DEPSDIR := $(CURDIR)/ |
| 175 | + |
| 176 | +CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c))) |
| 177 | +CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp))) |
| 178 | +SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s))) |
| 179 | +BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*))) |
| 180 | + |
| 181 | +export OFILES := $(OBJ) |
| 182 | + |
| 183 | +ifeq ($(strip $(HAVE_STATIC_DUMMY)),) |
| 184 | + OFILES += libretro_libnx.a |
| 185 | +endif |
| 186 | + |
| 187 | +export HFILES_BIN := $(addsuffix .h,$(subst .,_,$(BINFILES))) |
| 188 | + |
| 189 | +export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \ |
| 190 | + $(foreach dir,$(LIBDIRS),-I$(dir)/include) \ |
| 191 | + -I$(CURDIR)/$(BUILD) |
| 192 | + |
| 193 | +export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) |
| 194 | + |
| 195 | +export BUILD_EXEFS_SRC := $(TOPDIR)/$(EXEFS_SRC) |
| 196 | + |
| 197 | +ifneq ($(APP_TITLEID),) |
| 198 | + export NACPFLAGS += --titleid=$(APP_TITLEID) |
| 199 | +endif |
| 200 | + |
| 201 | +ifneq ($(ROMFS),) |
| 202 | + export NROFLAGS += --romfsdir=$(CURDIR)/$(ROMFS) |
| 203 | +endif |
| 204 | + |
| 205 | +LIB_CORE := |
| 206 | + |
| 207 | +ifeq ($(HAVE_STATIC_DUMMY),1) |
| 208 | + DEFINES += -DHAVE_STATIC_DUMMY |
| 209 | +else |
| 210 | + LIB_CORE += -lretro_dos |
| 211 | +endif |
| 212 | + |
| 213 | +ifneq ($(V),1) |
| 214 | + Q := @ |
| 215 | +endif |
| 216 | + |
| 217 | +DEPENDS_TMP := $(OFILES:.o=.d) |
| 218 | +DEPENDS := $(filter-out libretro_libnx.a,$(DEPENDS_TMP)) |
| 219 | + |
| 220 | +.PHONY: clean all |
| 221 | + |
| 222 | +#--------------------------------------------------------------------------------- |
| 223 | +# main targets |
| 224 | +#--------------------------------------------------------------------------------- |
| 225 | +all: $(OUTPUT) |
| 226 | + |
| 227 | +define INFO |
| 228 | +CC: $(CC) |
| 229 | +CFLAGS: $(CFLAGS) |
| 230 | +CXX: $(CXX) |
| 231 | +DEPENDS: $(DEPENDS) |
| 232 | +LDFLAGS: $(LDFLAGS) |
| 233 | +LIBDIRS: $(LIBDIRS) |
| 234 | +LIBS: $(LIBS) |
| 235 | +LIB_CORE: $(LIB_CORE) |
| 236 | +OBJ: $(OBJ) |
| 237 | +OUTPUT: $(OUTPUT) |
| 238 | +PLATEXTRA: $(PLATEXTRA) |
| 239 | +endef |
| 240 | +export INFO |
| 241 | + |
| 242 | +info: |
| 243 | +ifneq ($(V),1) |
| 244 | + @echo "$$INFO" |
| 245 | +endif |
| 246 | + |
| 247 | +$(OUTPUT): $(OBJ) |
| 248 | + @$(if $(Q), $(shell echo echo CXX $<),) |
| 249 | + $(Q)$(CXX) -o $@ $(LDFLAGS) $(LIBDIRS) $(OBJ) $(PLATEXTRA) -L. $(LIB_CORE) $(LIBS) |
| 250 | + |
| 251 | +%.o: %.c |
| 252 | + @$(if $(Q), $(shell echo echo CC $<),) |
| 253 | + $(Q)$(CC) -c -o $@ $(CFLAGS) $< |
| 254 | + |
| 255 | +%.o: %.cpp |
| 256 | + @$(if $(Q), $(shell echo echo CXX $<),) |
| 257 | + $(Q)$(CXX) -c -o $@ $(CFLAGS) $< |
| 258 | + |
| 259 | +clean: |
| 260 | + @$(if $(Q), $(shell echo echo RM),) |
| 261 | + $(Q)rm -f $(DEPENDS) $(OBJ) $(OUTPUT) |
| 262 | + |
| 263 | +#--------------------------------------------------------------------------------- |
| 264 | +# you need a rule like this for each extension you use as binary data |
| 265 | +#--------------------------------------------------------------------------------- |
| 266 | +%.bin.o %_bin.h : %.bin |
| 267 | +#--------------------------------------------------------------------------------- |
| 268 | + @echo $(notdir $<) |
| 269 | + @$(bin2o) |
| 270 | + |
| 271 | +#--------------------------------------------------------------------------------------- |
| 272 | +endif |
| 273 | +#--------------------------------------------------------------------------------------- |
0 commit comments