LINUX.ORG.RU

История изменений

Исправление ilammy, (текущая версия) :

Я что-то не пойму, где много дублирования? src/* и libc/src* — и всё?

Можно, например, перестать разбрасывать объектники по всему дереву, а наоборот — складывать их в иерархию внутри одной директории сборки. Тогда правила для сборки типов файлов можно будет писать только один раз.

$(BUILD)/obj/%.cpp.o: %.cpp
	@mkdir -p $(@D)
	$(CXX) $(TARGETFLAGS) $(CXXFLAGS) -MF"$(BUILD)/deps/$*.d" -MD -c $< -o $@


STARTUP_SRC += $(wildcard src/*.cpp)
STARTUP_SRC += $(wildcard libc/src/*.cpp)

STARTUP_OBJ = $(patsubst %, $(BUILD)/obj/%.o, $(STARTUP_SRC))

$(BUILD)/Startup: $(STARTUP_OBJ) Startup.ld
	@mkdir -p $(@D)
	$(LD) -T Startup.ld --export-dynamic $(filter %.o, $^) -o $@

clean:
	rm -rf $(BUILD)

Исправление ilammy, :

Я что-то не пойму, где много дублирования? src/* и libc/src* — и всё?

Можно, например, перестать разбрасывать объектники по всему дереву, а наоборот — складывать их в иерархию внутри одной директории сборки. Тогда правила для сборки типов файлов можно будет писать только один раз.

$(BUILD)/obj/%.cpp.o: %.cpp
	$(CXX) $(TARGETFLAGS) $(CXXFLAGS) -MF"$(BUILD)/deps/$*.d" -MD -c $< -o $@


STARTUP_SRC += $(wildcard src/*.cpp)
STARTUP_SRC += $(wildcard libc/src/*.cpp)

STARTUP_OBJ = $(patsubst %, $(BUILD)/obj/%.o, $(STARTUP_SRC))

$(BUILD)/Startup: $(STARTUP_OBJ) Startup.ld
	$(LD) -T Startup.ld --export-dynamic $(filter %.o, $^) -o $@

clean:
	rm -rf $(BUILD)

Исходная версия ilammy, :

Я что-то не пойму, где много дублирования? src/* и libc/src* — и всё?

Можно, например, перестать разбрасывать объектники по всему дереву, а наоборот — складывать их в иерархию внутри одной директории сборки. Тогда правила для сборки типов файлов можно будет писать только один раз.

$(BUILD)/obj/%.cpp.o: %.cpp
	$(CXX) $(TARGETFLAGS) $(CXXFLAGS) -MF"$(BUILD)/deps/$*.d" -MD -c $< -o $@


STARTUP_SRC += $(wildcard src/*.cpp)
STARTUP_SRC += $(wildcard libc/src/*.cpp)

STARTUP_OBJ = $(patsubst %,$(BUILD)/obj/%.o, $(STARTUP_SRC))

$(BUILD)/Startup: $(STARTUP_OBJ) Startup.ld
	$(LD) -T Startup.ld --export-dynamic $(filter %.o, $^) -o Startup

clean:
	rm -rf $(BUILD)