DEF_CFLAGS += $(flags-y)
+# Symlinks and headers that must be created before building the C files
+GENERATED_HEADERS := include/list.h $(ARCH_LINKS) include/mini-os include/xen include/$(TARGET_ARCH_FAM)/mini-os
+
+EXTRA_DEPS += $(GENERATED_HEADERS)
+
# Include common mini-os makerules.
include minios.mk
perl $^ --prefix=minios >$@.new
$(call move-if-changed,$@.new,$@)
+# Used by stubdom's Makefile
.PHONY: links
-links: include/list.h $(ARCH_LINKS)
- [ -e include/xen ] || ln -sf ../../../xen/include/public include/xen
- [ -e include/mini-os ] || ln -sf . include/mini-os
- [ -e include/$(TARGET_ARCH_FAM)/mini-os ] || ln -sf . include/$(TARGET_ARCH_FAM)/mini-os
+links: $(GENERATED_HEADERS)
+
+include/xen:
+ ln -sf ../../../xen/include/public $@
+
+include/mini-os:
+ ln -sf . $@
+
+include/$(TARGET_ARCH_FAM)/mini-os:
+ ln -sf . $@
.PHONY: arch_lib
arch_lib:
APP_O=$(OBJ_DIR)/$(TARGET)_app.o
endif
-$(OBJ_DIR)/$(TARGET): links include/list.h $(OBJS) $(APP_O) arch_lib
+$(OBJ_DIR)/$(TARGET): $(OBJS) $(APP_O) arch_lib
$(LD) -r $(LDFLAGS) $(HEAD_OBJ) $(APP_O) $(OBJS) $(LDARCHLIB) $(LDLIBS) -o $@.o
$(OBJCOPY) -w -G $(GLOBAL_PREFIX)* -G _start $@.o $@.o
$(LD) $(LDFLAGS) $(LDFLAGS_FINAL) $@.o $(EXTRA_OBJS) -o $@
.PHONY: TAGS
TAGS:
$(all_sources) | xargs etags
-