Skip to content

Commit 46785fe

Browse files
add ASFLAGS make option
1 parent ab94f33 commit 46785fe

2 files changed

Lines changed: 28 additions & 19 deletions

File tree

docs/static/makefile-options.rst

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,14 +89,22 @@ Compiler Configuration
8989

9090
.. rubric:: CFLAGS / CXXFLAGS
9191

92-
These flags are passed to the compiler.
92+
These flags are additionally passed to the compiler.
9393
:code:`CFLAGS` is used for C source files, :code:`CXXFLAGS` is used for C++ source files.
9494

9595
.. code-block:: makefile
9696
9797
CFLAGS = -Wall -Wextra -Oz
9898
CXXFLAGS = -Wall -Wextra -Oz
9999
100+
.. rubric:: ASFLAGS
101+
102+
These flags are additionally passed to the assembler:
103+
104+
.. code-block:: makefile
105+
106+
ASFLAGS =
107+
100108
.. rubric:: LTO
101109

102110
This option enables link-time optimization.

src/makefile.mk

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ LOAD_ADDR ?= 0xD1A87F
2929
OUTPUT_MAP ?= YES
3030
CFLAGS ?= -Wall -Wextra -Oz
3131
CXXFLAGS ?= -Wall -Wextra -Oz
32+
ASFLAGS ?=
3233
LTOFLAGS ?= $(CFLAGS)
3334
LTO ?= YES
3435
SRCDIR ?= src
@@ -108,8 +109,7 @@ STRIP = $(call NATIVEPATH,$(BINUTILS_BIN)/z80-none-elf-strip$(EXE_SUFFIX))
108109
CEDEV_OBJ = $(call NATIVEPATH,$(BIN)/cedev-obj$(EXE_SUFFIX))
109110

110111
# filepath operations
111-
QUOTE_NATIVE = $(call QUOTE_ARG,$(call NATIVEPATH,$1))
112-
MKDIR = $(call NATIVEMKDR,$(call QUOTE_NATIVE,$1))
112+
MKDIR = $(call NATIVEMKDR,$(call QUOTE_ARG,$(call NATIVEPATH,$1)))
113113
UPDIR_ADD = $(subst ../,_../,$(subst \,/,$1))
114114
UPDIR_RM = $(subst _../,../,$(subst \,/,$1))
115115

@@ -202,15 +202,15 @@ endif
202202
ifneq ($(ICON_IMG),)
203203
ICON_SRC = $(call NATIVEPATH,$(OBJDIR)/icon.s)
204204
ifneq ($(DESCRIPTION),)
205-
ICON_CONV ?= $(CONVIMG) --icon $(call QUOTE_NATIVE,$(ICON_IMG)) --icon-output $(call QUOTE_NATIVE,$(ICON_SRC)) --icon-format gas --icon-description $(DESCRIPTION)
205+
ICON_CONV ?= $(CONVIMG) --icon $(call QUOTE_ARG,$(ICON_IMG)) --icon-output $(call QUOTE_ARG,$(ICON_SRC)) --icon-format gas --icon-description $(DESCRIPTION)
206206
else
207-
ICON_CONV ?= $(CONVIMG) --icon $(call QUOTE_NATIVE,$(ICON_IMG)) --icon-output $(call QUOTE_NATIVE,$(ICON_SRC)) --icon-format gas
207+
ICON_CONV ?= $(CONVIMG) --icon $(call QUOTE_ARG,$(ICON_IMG)) --icon-output $(call QUOTE_ARG,$(ICON_SRC)) --icon-format gas
208208
endif
209209
ICON_OBJ = $(call NATIVEPATH,$(OBJDIR)/icon.obj)
210210
else
211211
ifneq ($(DESCRIPTION),)
212212
ICON_SRC ?= $(call NATIVEPATH,$(OBJDIR)/icon.s)
213-
ICON_CONV ?= $(CONVIMG) --icon-output $(call QUOTE_NATIVE,$(ICON_SRC)) --icon-format gas --icon-description $(DESCRIPTION)
213+
ICON_CONV ?= $(CONVIMG) --icon-output $(call QUOTE_ARG,$(ICON_SRC)) --icon-format gas --icon-description $(DESCRIPTION)
214214
ICON_OBJ = $(call NATIVEPATH,$(OBJDIR)/icon.obj)
215215
endif
216216
endif
@@ -291,12 +291,13 @@ else
291291
MATH_ERRNO = -fno-math-errno
292292
endif
293293

294-
# define the c/c++ flags used by clang
294+
# define the compiler/assembler flags
295295
EZLLVMFLAGS = -mllvm -profile-guided-section-prefix=false -mllvm -z80-gas-style -ffunction-sections -fdata-sections -fno-addrsig -fno-autolink -fno-threadsafe-statics $(MATH_ERRNO)
296-
EZCOMMONFLAGS = -nostdinc -isystem $(call QUOTE_NATIVE,$(CEDEV_TOOLCHAIN)/include) -I$(SRCDIR) -Xclang -fforce-mangle-main-argc-argv $(EZLLVMFLAGS) -D__TICE__=1 $(CC_DEBUG) $(DEFCUSTOMFILE)
296+
EZCOMMONFLAGS = -nostdinc -isystem $(call QUOTE_ARG,$(CEDEV_TOOLCHAIN)/include) -I$(SRCDIR) -Xclang -fforce-mangle-main-argc-argv $(EZLLVMFLAGS) -D__TICE__=1 $(CC_DEBUG) $(DEFCUSTOMFILE)
297297
EZCFLAGS = $(EZCOMMONFLAGS) $(CFLAGS)
298-
EZCXXFLAGS = $(EZCOMMONFLAGS) -isystem $(call QUOTE_NATIVE,$(CEDEV_TOOLCHAIN)/include/c++) -fno-exceptions -fno-use-cxa-atexit $(CXXFLAGS)
298+
EZCXXFLAGS = $(EZCOMMONFLAGS) -isystem $(call QUOTE_ARG,$(CEDEV_TOOLCHAIN)/include/c++) -fno-exceptions -fno-use-cxa-atexit $(CXXFLAGS)
299299
EZLTOFLAGS = $(EZLLVMFLAGS) $(LTOFLAGS)
300+
EZASFLAGS = -march=ez80+full $(ASFLAGS)
300301

301302
.PHONY: all clean version gfx debug
302303

@@ -310,16 +311,16 @@ debug: $(BINDIR)/$(TARGET8XP)
310311

311312
$(BINDIR)/$(TARGET8XP): $(BINDIR)/$(TARGETBIN) $(MAKEFILE_LIST) $(DEPS)
312313
$(Q)$(call MKDIR,$(@D))
313-
$(Q)$(CONVBIN) $(CONVBINFLAGS) -i $(call QUOTE_NATIVE,$<) -o $(call QUOTE_NATIVE,$@)
314+
$(Q)$(CONVBIN) $(CONVBINFLAGS) -i $(call QUOTE_ARG,$<) -o $(call QUOTE_ARG,$@)
314315

315316
$(BINDIR)/$(TARGETBIN): $(BINDIR)/$(TARGETOBJ)
316317
$(Q)$(call MKDIR,$(@D))
317-
$(Q)echo [objcopy] $(call NATIVEPATH,$@)
318+
$(Q)echo [objcopy] $@
318319
$(Q)$(OBJCOPY) -O binary $(call QUOTE_ARG,$<) $(call QUOTE_ARG,$@)
319320

320321
$(BINDIR)/$(TARGETOBJ): $(CRT0_OBJ) $(OBJDIR)/$(TARGETTMP) $(MAKEFILE_LIST) $(DEPS)
321322
$(Q)$(call MKDIR,$(@D))
322-
$(Q)echo [linking] $(call NATIVEPATH,$@)
323+
$(Q)echo [linking] $@
323324
$(Q)$(LD) \
324325
-static \
325326
--entry=__start \
@@ -363,7 +364,7 @@ gfx:
363364
$(Q)$(MAKE_GFX)
364365

365366
test:
366-
$(Q)$(CEMUTEST) $(call QUOTE_NATIVE,$(CURDIR)/autotest.json)
367+
$(Q)$(CEMUTEST) $(call QUOTE_ARG,$(CURDIR)/autotest.json)
367368

368369
version:
369370
$(Q)echo CE C/C++ Toolchain $(shell cedev-config --version)
@@ -384,16 +385,16 @@ $(OBJDIR)/%.$(CPP_EXTENSION).s: $$(call UPDIR_RM,$$*).$(CPP_EXTENSION) $(EXTRA_H
384385

385386
$(OBJDIR)/%.$(C_EXTENSION).o: $(OBJDIR)/%.$(C_EXTENSION).s
386387
$(Q)$(call MKDIR,$(@D))
387-
$(Q)$(AS) -march=ez80+full $(call QUOTE_ARG,$(addprefix $(CURDIR)/,$<)) -o $(call QUOTE_ARG,$(addprefix $(CURDIR)/,$@))
388+
$(Q)$(AS) $(EZASFLAGS) $(call QUOTE_ARG,$(addprefix $(CURDIR)/,$<)) -o $(call QUOTE_ARG,$(addprefix $(CURDIR)/,$@))
388389

389390
$(OBJDIR)/%.$(CPP_EXTENSION).o: $(OBJDIR)/%.$(CPP_EXTENSION).s
390391
$(Q)$(call MKDIR,$(@D))
391-
$(Q)$(AS) -march=ez80+full $(call QUOTE_ARG,$(addprefix $(CURDIR)/,$<)) -o $(call QUOTE_ARG,$(addprefix $(CURDIR)/,$@))
392+
$(Q)$(AS) $(EZASFLAGS) $(call QUOTE_ARG,$(addprefix $(CURDIR)/,$<)) -o $(call QUOTE_ARG,$(addprefix $(CURDIR)/,$@))
392393

393394
$(OBJDIR)/%.s.o: $$(call UPDIR_RM,$$*).s
394395
$(Q)$(call MKDIR,$(@D))
395396
$(Q)echo [as] $<
396-
$(Q)$(AS) -march=ez80+full $(call QUOTE_ARG,$(addprefix $(CURDIR)/,$<)) -o $(call QUOTE_ARG,$(addprefix $(CURDIR)/,$@))
397+
$(Q)$(AS) $(EZASFLAGS) $(call QUOTE_ARG,$(addprefix $(CURDIR)/,$<)) -o $(call QUOTE_ARG,$(addprefix $(CURDIR)/,$@))
397398

398399
$(OBJDIR)/%.s: $$(call UPDIR_RM,$$*).S
399400
$(Q)$(call MKDIR,$(@D))
@@ -402,17 +403,17 @@ $(OBJDIR)/%.s: $$(call UPDIR_RM,$$*).S
402403

403404
$(OBJDIR)/%.S.o: $(OBJDIR)/%.s
404405
$(Q)$(call MKDIR,$(@D))
405-
$(Q)$(AS) -march=ez80+full $(call QUOTE_ARG,$(addprefix $(CURDIR)/,$<)) -o $(call QUOTE_ARG,$(addprefix $(CURDIR)/,$@))
406+
$(Q)$(AS) $(EZASFLAGS) $(call QUOTE_ARG,$(addprefix $(CURDIR)/,$<)) -o $(call QUOTE_ARG,$(addprefix $(CURDIR)/,$@))
406407

407408
# lto
408409
$(LTO_OBJ): $(LTO_SRC)
409-
$(Q)$(AS) -march=ez80+full $(call QUOTE_ARG,$(addprefix $(CURDIR)/,$<)) -o $(call QUOTE_ARG,$(addprefix $(CURDIR)/,$@))
410+
$(Q)$(AS) $(EZASFLAGS) $(call QUOTE_ARG,$(addprefix $(CURDIR)/,$<)) -o $(call QUOTE_ARG,$(addprefix $(CURDIR)/,$@))
410411

411412
$(LTO_SRC): $(LTO_BC)
412413
$(Q)$(CC) -S $(EZLTOFLAGS) $(call QUOTE_ARG,$(addprefix $(CURDIR)/,$<)) -o $(call QUOTE_ARG,$(addprefix $(CURDIR)/,$@))
413414

414415
$(LTO_BC): $(LTO_FILES)
415-
$(Q)echo [lto] $(call NATIVEPATH,$@)
416+
$(Q)echo [lto] $@
416417
$(Q)$(LINK) $(foreach d,$^,$(call QUOTE_ARG,$(addprefix $(CURDIR)/,$d))) -o $(call QUOTE_ARG,$(addprefix $(CURDIR)/,$@))
417418

418419
$(OBJDIR)/%.$(C_EXTENSION).bc: $$(call UPDIR_RM,$$*).$(C_EXTENSION) $(EXTRA_HEADERS) $(MAKEFILE_LIST) $(DEPS)

0 commit comments

Comments
 (0)