Changeset e9dba436 in mainline for uspace/Makefile.common


Ignore:
Timestamp:
2018-01-26T23:50:30Z (6 years ago)
Author:
Jiří Zárevúcky <zarevucky.jiri@…>
Children:
663b26ec
Parents:
03cfe2ec
Message:

Generate files that a third party can use to build software for HelenOS
without necessarily knowing anything about the build system.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/Makefile.common

    r03cfe2ec re9dba436  
    174174endif
    175175
    176 COMMON_CFLAGS = $(INCLUDES_FLAGS) -O$(OPTIMIZATION) -imacros $(CONFIG_HEADER) \
    177         -ffreestanding -nostdlib -nostdinc -fexec-charset=UTF-8 \
    178         -finput-charset=UTF-8 -D__$(ENDIANESS)__ -D_HELENOS_SOURCE -fno-common \
     176# Flags that are not necessary, and can be overriden, but are used by default.
     177DEFAULT_CFLAGS = \
     178        -O$(OPTIMIZATION) \
     179        -ffunction-sections \
     180        -pipe \
     181        -Wall \
     182        -Wextra \
     183        -Wno-unused-parameter \
     184        -Wmissing-prototypes \
     185        -Wwrite-strings \
     186        -Werror-implicit-function-declaration
     187
     188ifeq ($(CONFIG_DEBUG),y)
     189        DEFAULT_CFLAGS += -Werror
     190endif
     191
     192ifeq ($(COMPILER),clang)
     193        DEFAULT_CFLAGS += \
     194                -Wno-missing-field-initializers \
     195                -Wno-typedef-redefinition \
     196                -Wno-unused-command-line-argument
     197else
     198        DEFAULT_CFLAGS += \
     199                -Wno-clobbered
     200endif
     201
     202ifeq ($(CONFIG_LINE_DEBUG),y)
     203        DEFAULT_CFLAGS += -ggdb
     204endif
     205
     206# Flags that should always be used, even for third-party software.
     207COMMON_CFLAGS = \
     208        -ffreestanding \
     209        -nostdlib \
     210        -nostdinc \
     211        -D__$(ENDIANESS)__
     212
     213# Flags that are always used for HelenOS code, but not for third-party.
     214HELENOS_CFLAGS = \
     215        -std=gnu99 \
     216        $(INCLUDES_FLAGS) \
     217        -imacros $(CONFIG_HEADER) \
     218        -D_HELENOS_SOURCE \
     219        -fexec-charset=UTF-8 \
     220        -finput-charset=UTF-8 \
     221        -fno-common \
    179222        -fdebug-prefix-map=$(realpath $(ROOT_PATH))=.
    180223
    181 GCC_CFLAGS = -ffunction-sections -Wall -Wextra -Wno-clobbered \
    182         -Wno-unused-parameter -Wmissing-prototypes -std=gnu99 \
    183         -Werror-implicit-function-declaration \
    184         -Wwrite-strings -pipe
    185 
    186 # -Wno-missing-prototypes is there because it warns about main().
    187 # This should be fixed elsewhere.
    188 CLANG_CFLAGS = -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wno-typedef-redefinition \
    189         -Wno-missing-prototypes -Wno-unused-command-line-argument \
    190         -std=gnu99 -Werror-implicit-function-declaration -Wwrite-strings \
    191         -pipe -fno-stack-protector -fno-PIC
    192 
    193 ifeq ($(CONFIG_DEBUG),y)
    194         COMMON_CFLAGS += -Werror
    195 endif
    196 
    197 ifeq ($(CONFIG_LINE_DEBUG),y)
    198         GCC_CFLAGS += -ggdb
    199         CLANG_CFLAGS += -g
    200 endif
     224# TODO: Use a different name.
     225# CFLAGS variable is traditionally used for overridable flags.
     226CFLAGS = $(COMMON_CFLAGS) $(HELENOS_CFLAGS) $(DEFAULT_CFLAGS)
    201227
    202228## Setup platform configuration
     
    216242endif
    217243
    218 ifeq ($(COMPILER),clang)
    219         CFLAGS += $(COMMON_CFLAGS) $(CLANG_CFLAGS)
    220 else
    221         CFLAGS += $(COMMON_CFLAGS) $(GCC_CFLAGS)
    222 endif
    223 
    224244ifeq ($(CONFIG_STRIP_BINARIES),y)
    225245        LFLAGS += --strip-all
     
    246266all-test: $(TEST_OUTPUTS)
    247267
    248 clean:
    249         rm -f $(JOB) $(OUTPUTS) $(EXTRA_CLEAN) tag deps.mk
     268clean: fasterclean
    250269        find . -name '*.o' -follow -exec rm \{\} \;
    251270        find . -name '*.lo' -follow -exec rm \{\} \;
     
    253272
    254273fasterclean:
    255         rm -f $(JOB) $(OUTPUTS) $(EXTRA_CLEAN) tag deps.mk
     274        rm -rf $(JOB) $(OUTPUTS) $(EXTRA_CLEAN) tag deps.mk
    256275
    257276depend: $(PRE_DEPEND)
Note: See TracChangeset for help on using the changeset viewer.