Q := @
endif
+CC = gcc
HOSTCC = gcc
HOSTCXX = g++
HOSTCFLAGS := -I$(srck) -I$(objk)
DESTDIR = /opt
+DOXYGEN := doxygen
+DOXYGEN_OUTPUT_DIR := doxygen
+
ifeq ($(strip $(HAVE_DOTCONFIG)),)
all: config
STACKPROTECT += $(call cc-option, -fno-stack-protector,)
# TODO: Re-add -Os as soon as we find out why it caused problems.
-CFLAGS := -Wall -Werror $(STACKPROTECT) -nostdinc $(INCLUDES)
+CFLAGS := -Wall -Werror $(STACKPROTECT) -nostdinc $(INCLUDES) -ffreestanding
all: lib
lib: prepare $(obj)/lib/libpayload.a copystuff
# Copy libpayload.a and head.o into $(src)/lib where lpgcc et al expect them.
-copystuff:
+copystuff: $(obj)/$(ARCHDIR-y)/head.S.o $(obj)/lib/libpayload.a
$(Q)cp $(obj)/$(ARCHDIR-y)/head.S.o $(src)/lib/$(ARCHDIR-y)/head.o
$(Q)cp $(obj)/lib/libpayload.a $(src)/lib
prepare:
$(Q)mkdir -p $(obj)/util/kconfig/lxdialog
$(Q)mkdir -p $(obj)/crypto $(obj)/curses $(obj)/drivers/video
+ $(Q)mkdir -p $(obj)/drivers/usb
$(Q)mkdir -p $(obj)/i386 $(obj)/lib/$(ARCHDIR-y) $(obj)/libc
$(Q)mkdir -p $(src)/lib/$(ARCHDIR-y)
-clean:
+doxy: doxygen
+doxygen:
+ $(Q)$(DOXYGEN) Doxyfile
+
+doxyclean: doxygen-clean
+doxygen-clean:
+ $(Q)rm -rf $(DOXYGEN_OUTPUT_DIR)
+
+clean: doxygen-clean
$(Q)rm -rf $(obj)/crypto $(obj)/curses $(obj)/drivers
$(Q)rm -rf $(obj)/i386 $(obj)/lib $(obj)/libc
$(Q)rm -rf $(src)/lib/i386 $(src)/lib/libpayload.a
include util/kconfig/Makefile
-.PHONY: $(PHONY) prepare clean distclean
+.PHONY: $(PHONY) prepare clean distclean doxygen doxy