diff --git a/Makefile b/Makefile index d80ff742eb84934cd4abed3d188e8b22b84af394..bd20f733ea9a77f8bb7e96cd8e0c643e97d0e00b 100644 --- a/Makefile +++ b/Makefile @@ -5,6 +5,7 @@ COMMON_FLAGS = -g -Os -Wall -Wextra -fno-rtti -fno-threadsafe-statics CFLAGS = -std=c99 CXXFLAGS = -std=c++14 +C_TARGETS = CXX_TARGETS = src/app/${app}/main.cc src/os/object/cpp_helpers.cc src/os/object/outputstream.cc QUIET = @ diff --git a/src/arch/arduino-nano-168/Makefile.inc b/src/arch/arduino-nano-168/Makefile.inc index e1e1028bf0c9b91151f14bc3ee8e24e1823e5ef0..2f501f601c6a2888a467d5ffb883f2be5365d144 100644 --- a/src/arch/arduino-nano-168/Makefile.inc +++ b/src/arch/arduino-nano-168/Makefile.inc @@ -64,11 +64,14 @@ endif COMMON_FLAGS += -DBAUD=${uart_baud}UL -OBJECTS = ${CXX_TARGETS:.cc=.o} +OBJECTS = ${CXX_TARGETS:.cc=.o} ${C_TARGETS:.c=.o} .cc.o: ${QUIET}${CXX} ${INCLUDES} ${COMMON_FLAGS} ${CXXFLAGS} -c -o $@ ${@:.o=.cc} +.c.o: + ${QUIET}${CC} ${INCLUDES} ${COMMON_FLAGS} ${CFLAGS} -c -o $@ ${@:.o=.c} + build/system.elf: ${OBJECTS} ${QUIET}${CXX} ${COMMON_FLAGS} ${CXXFLAGS} -Wl,--gc-sections -o $@ ${OBJECTS} ${QUIET}avr-size --format=avr --mcu=${MCU} $@ diff --git a/src/arch/arduino-nano/Makefile.inc b/src/arch/arduino-nano/Makefile.inc index dd8eb30e94ea409a28b56116780e56630a1df633..9a3c1e3edaa872b4b0711c2292e67a78a0ee8f70 100644 --- a/src/arch/arduino-nano/Makefile.inc +++ b/src/arch/arduino-nano/Makefile.inc @@ -45,11 +45,14 @@ else COMMON_FLAGS += -DF_CPU=16000000UL endif -OBJECTS = ${CXX_TARGETS:.cc=.o} +OBJECTS = ${CXX_TARGETS:.cc=.o} ${C_TARGETS:.c=.o} .cc.o: ${QUIET}${CXX} ${INCLUDES} ${COMMON_FLAGS} ${CXXFLAGS} -c -o $@ ${@:.o=.cc} +.c.o: + ${QUIET}${CC} ${INCLUDES} ${COMMON_FLAGS} ${CFLAGS} -c -o $@ ${@:.o=.c} + build/system.elf: ${OBJECTS} ${QUIET}${CXX} ${COMMON_FLAGS} ${CXXFLAGS} -Wl,--gc-sections -o $@ ${OBJECTS} ${QUIET}avr-size --format=avr --mcu=${MCU} $@ diff --git a/src/arch/blinkenrocket/Makefile.inc b/src/arch/blinkenrocket/Makefile.inc index c3ae7eafd02148a41425660685b8760a8a7392d7..277ab33a57da06a0d1e42d37956f9fbee94650b9 100644 --- a/src/arch/blinkenrocket/Makefile.inc +++ b/src/arch/blinkenrocket/Makefile.inc @@ -27,10 +27,13 @@ else ifneq ($(findstring i2c,${arch_drivers}), ) CXX_TARGETS += src/arch/blinkenrocket/driver/i2c.cc endif -OBJECTS = ${CXX_TARGETS:.cc=.o} +OBJECTS = ${CXX_TARGETS:.cc=.o} ${C_TARGETS:.c=.o} .cc.o: - ${CXX} ${INCLUDES} ${COMMON_FLAGS} ${CXXFLAGS} -c -o $@ ${@:.o=.cc} + ${QUIET}${CXX} ${INCLUDES} ${COMMON_FLAGS} ${CXXFLAGS} -c -o $@ ${@:.o=.cc} + +.cc.o: + ${QUIET}${CC} ${INCLUDES} ${COMMON_FLAGS} ${CFLAGS} -c -o $@ ${@:.o=.c} build/system.elf: ${OBJECTS} ${CXX} ${COMMON_FLAGS} ${CXXFLAGS} -Wl,--gc-sections -o $@ ${OBJECTS} diff --git a/src/arch/esp8266/Makefile.inc b/src/arch/esp8266/Makefile.inc index fdd56363ba9e1494ee16371f274d4144174cff5f..ed9f05affe715aee8cc046efbf236862cbbc06ad 100644 --- a/src/arch/esp8266/Makefile.inc +++ b/src/arch/esp8266/Makefile.inc @@ -23,7 +23,7 @@ LDFLAGS += -nostdlib -Wl,--no-check-sections -u call_user_start -Wl,-static CXX_TARGETS += src/arch/esp8266/arch.cc src/arch/esp8266/driver/gpio.cc CXX_TARGETS += src/arch/esp8266/driver/stdout.cc src/arch/esp8266/driver/uptime.cc -OBJECTS = ${CXX_TARGETS:.cc=.o} +OBJECTS = ${CXX_TARGETS:.cc=.o} ${C_TARGETS:.c=.o} ifeq (${esp8266_led2}, 1) COMMON_FLAGS += -DLED_ON_GPIO16 @@ -34,8 +34,12 @@ ifneq ($(findstring stdin,${arch_drivers}), ) endif .cc.o: - ${CXX} ${INCLUDES} ${COMMON_FLAGS} ${CXXFLAGS} -c -o $@ ${@:.o=.cc} - ${OBJCOPY} --rename-section .text=.irom0.text --rename-section .literal=.irom0.literal $@ + ${QUIET}${CXX} ${INCLUDES} ${COMMON_FLAGS} ${CXXFLAGS} -c -o $@ ${@:.o=.cc} + ${QUIET}${OBJCOPY} --rename-section .text=.irom0.text --rename-section .literal=.irom0.literal $@ + +.c.o: + ${QUIET}${CC} ${INCLUDES} ${COMMON_FLAGS} ${CFLAGS} -c -o $@ ${@:.o=.c} + ${QUIET}${OBJCOPY} --rename-section .text=.irom0.text --rename-section .literal=.irom0.literal $@ build/system.ar: ${OBJECTS} ${AR} cru $@ ${OBJECTS} diff --git a/src/arch/msp430fr5969lp/Makefile.inc b/src/arch/msp430fr5969lp/Makefile.inc index 4d7fe35cb5d30778d83749a686668f6b5f825c20..49e072549c15e9cfd98ce0ea9d4f58f9c39d2b29 100644 --- a/src/arch/msp430fr5969lp/Makefile.inc +++ b/src/arch/msp430fr5969lp/Makefile.inc @@ -56,11 +56,14 @@ else endif -OBJECTS = ${CXX_TARGETS:.cc=.o} +OBJECTS = ${CXX_TARGETS:.cc=.o} ${C_TARGETS:.c=.o} .cc.o: ${QUIET}${CXX} ${INCLUDES} ${COMMON_FLAGS} ${CXXFLAGS} -c -o $@ ${@:.o=.cc} +.c.o: + ${QUIET}${CC} ${INCLUDES} ${COMMON_FLAGS} ${CFLAGS} -c -o $@ ${@:.o=.c} + build/system.elf: ${OBJECTS} ${QUIET}${CXX} ${INCLUDES} ${COMMON_FLAGS} ${CXXFLAGS} \ -Wl,--library-path=/opt/msp430/ti/gcc/include/ \ diff --git a/src/arch/posix/Makefile.inc b/src/arch/posix/Makefile.inc index 5162abd806ad59090876c50a92a3834119e5b005..bbca35d8c321682b72a38adf02fa8f1e27f63c1b 100644 --- a/src/arch/posix/Makefile.inc +++ b/src/arch/posix/Makefile.inc @@ -12,7 +12,7 @@ endif CXX_TARGETS += src/arch/posix/arch.cc src/arch/posix/driver/gpio.cc CXX_TARGETS += src/arch/posix/driver/stdout.cc src/arch/posix/driver/uptime.cc -OBJECTS = ${CXX_TARGETS:.cc=.o} +OBJECTS = ${CXX_TARGETS:.cc=.o} ${C_TARGETS:.c=.o} ifneq (${gpio_trace}, ) COMMON_FLAGS += -DGPIO_TRACE @@ -21,6 +21,9 @@ endif .cc.o: ${CXX} ${INCLUDES} ${COMMON_FLAGS} ${CXXFLAGS} -c -o $@ ${@:.o=.cc} +.c.o: + ${CC} ${INCLUDES} ${COMMON_FLAGS} ${CFLAGS} -c -o $@ ${@:.o=.c} + build/system.elf: ${OBJECTS} ${CXX} ${INCLUDES} ${COMMON_FLAGS} ${CXXFLAGS} \ -o $@ ${OBJECTS} @@ -30,7 +33,7 @@ run: build/system.elf monitor: run -program: run +program: arch_clean: rm -f ${OBJECTS}