PACKAGE = @package@
PROJECT_DIR = @project_dir@
BUILD = @build@
HOST = @host@
TARGET = @target@
ARCH = @arch@
TOOLCHAIN = @toolchain@
SYSROOT = @sysroot@
CROSS_COMPILE = @cross_compile@
SHELL = @shell@
CFLAGS_DEBUG = @cflags_debug@
CFLAGS_COMMON = @cflags_common@
CFLAGS_CMDLINE = @cflags_cmdline@
CFLAGS_CONFIG = @cflags_config@
CFLAGS_SYSROOT = @cflags_sysroot@
CFLAGS_PATH = @cflags_path@
LDFLAGS_DEBUG = @ldflags_debug@
LDFLAGS_COMMON = @ldflags_common@
LDFLAGS_CMDLINE = @ldflags_cmdline@
LDFLAGS_CONFIG = @ldflags_config@
LDFLAGS_SYSROOT = @ldflags_sysroot@
LDFLAGS_PATH = @ldflags_path@
PE_SUBSYSTEM = @pe_subsystem@
PE_IMAGE_BASE = @pe_image_base@
PE_CONFIG_DEFS = @pe_config_defs@
ELF_EH_FRAME = @elf_eh_frame@
ELF_HASH_STYLE = @elf_hash_style@
ELF_CONFIG_DEFS = @elf_config_defs@
PREFIX = @prefix@
BIN_DIR = @bindir@
LIB_DIR = @libdir@
INCLUDE_DIR = @includedir@
SYSLIB_DIR = @syslibdir@
MAN_DIR = @mandir@
DOC_DIR = @docdir@
LIBEXEC_DIR = @libexecdir@
BUILD_CC = @build_cc@
BUILD_OS = @build_os@
BUILD_OS_BITS = @build_os_bits@
BUILD_OS_UNDERSCORE = @build_os_underscore@
all:
install:
shared:
static:
include $(PROJECT_DIR)/sysinfo/toolchain/$(TOOLCHAIN).mk
include $(PROJECT_DIR)/sysinfo/host/$(HOST).mk
include $(PROJECT_DIR)/project/defs.mk
include $(PROJECT_DIR)/project/tree.mk
include $(PROJECT_DIR)/project/depends.mk
include $(PROJECT_DIR)/project/headers.mk
include $(PROJECT_DIR)/project/common.mk
include $(PROJECT_DIR)/project/arch.mk
include $(PROJECT_DIR)/project/extras.mk
include $(PROJECT_DIR)/project/overrides.mk
$(APP_SRCS:%.c=%.o): CFLAGS_STATIC = $(CFLAGS_APP)
src/%.lo: $(PROJECT_DIR)/src/%.c $(ALL_HEADERS) host.tag
$(CC) -c -o $@ $< $(CFLAGS_SHARED)
src/%.o: $(PROJECT_DIR)/src/%.c $(ALL_HEADERS) host.tag
$(CC) -c -o $@ $< $(CFLAGS_STATIC)
$(LIB_DIR)/%$(OS_LIB_SUFFIX):
$(CC) -shared -o $@ $^ $(LDFLAGS_SHARED)
$(LIB_DIR)/%$(OS_ARCHIVE_EXT):
rm -f $@
$(AR) -rcs $@ $^
all: shared static app
install: install-libs install-headers install-app
app: default-app
install-libs: install-shared install-static install-implib
install-headers:shared static
mkdir -p $(DESTDIR)/./$(PREFIX)/./$(INCLUDE_DIR)/$(PACKAGE)
cp $(API_HEADERS) $(DESTDIR)/./$(PREFIX)/./$(INCLUDE_DIR)/$(PACKAGE)
install-shared: shared install-implib
mkdir -p $(DESTDIR)/./$(PREFIX)/./$(LIB_DIR)
cp $(SHARED_LIB) $(DESTDIR)/./$(PREFIX)/./$(LIB_DIR)
install-static: static
mkdir -p $(DESTDIR)/./$(PREFIX)/./$(LIB_DIR)
cp $(STATIC_LIB) $(DESTDIR)/./$(PREFIX)/./$(LIB_DIR)
install-app: app
mkdir -p $(DESTDIR)/./$(PREFIX)/./$(BIN_DIR)
cp $(APP) $(DESTDIR)/./$(PREFIX)/./$(BIN_DIR)
shared: shared-lib shared-implib
static: static-lib
shared-lib: shared-objs $(SHARED_LIB)
static-lib: static-objs $(STATIC_LIB)
shared-implib: shared-lib
default-app: static $(DEFAULT_APP) $(APP)
shared-app: shared $(SHARED_APP)
static-app: static $(STATIC_APP)
shared-objs: dirs $(SHARED_OBJS)
static-objs: dirs $(STATIC_OBJS)
app-objs: dirs $(APP_OBJS)
$(SHARED_LIB): $(SHARED_OBJS)
$(STATIC_LIB): $(STATIC_OBJS)
$(APP): $(DEFAULT_APP)
cp $^ $@
$(DEFAULT_APP): $(STATIC_OBJS) $(APP_OBJS)
$(CC) -o $@ $^ $(LDFLAGS_APP)
$(SHARED_APP): $(SHARED_LIB) $(APP_OBJS)
$(CC) -o $@ $(APP_OBJS) -l$(PACKAGE) $(LDFLAGS_APP)
$(STATIC_APP): $(STATIC_OBJS) $(APP_OBJS)
$(CC) -static -o $@ $^ -l$(PACKAGE) $(LDFLAGS_STATIC)
dirs: dirs.tag tree.tag
dirs.tag:
mkdir -p $(BIN_DIR)
mkdir -p $(LIB_DIR)
touch dirs.tag
host.tag: Makefile
$(PROJECT_DIR)/sysinfo/host/host.sh --compiler="$(CC)" --cflags="$(CFLAGS)"
touch host.tag
distclean: clean
rm -f Makefile
clean:
rm -f tree.tag
rm -f dirs.tag
rm -f host.tag
rm -f $(SHARED_OBJS)
rm -f $(STATIC_OBJS)
rm -f $(APP_OBJS)
rm -f $(SHARED_LIB)
rm -f $(STATIC_LIB)
rm -f $(SHARED_IMPLIB)
rm -f $(APP)
rm -f $(DEFAULT_APP)
rm -f $(SHARED_APP)
rm -f $(STATIC_APP)
.display: .display-env .display-tools .display-flags \
.display-pe .display-elf .display-dirs .display-build
.display-env:
@echo BUILD:' '$(BUILD)
@echo HOST:' '$(HOST)
@echo TARGET:' '$(TARGET)
@echo ARCH:' '$(ARCH)
@echo TOOLCHAIN:' '$(TOOLCHAIN)
@echo SYSROOT:' '$(SYSROOT)
@echo XCOMPILE:' '$(CROSS_COMPILE)
@echo SHELL:' '$(SHELL)
.display-tools:
@echo CC:' '$(CC)
@echo CPP:' '$(CPP)
@echo CXX:' '$(CXX)
@echo
@echo AS:' '$(AS)
@echo AR:' '$(AR)
@echo LD:' '$(LD)
@echo NM:' '$(NM)
@echo OBJDUMP:' '$(OBJDUMP)
@echo RANLIB:' '$(RANLIB)
@echo SIZE:' '$(SIZE)
@echo STRIP:' '$(STRIP)
@echo STRINGS:' '$(STRINGS)
@echo
@echo ADDR2LINE:' '$(ADDR2LINE)
@echo COV:' '$(COV)
@echo CXXFILT' '$(CXXFILT)
@echo ELFEDIT:' '$(ELFEDIT)
@echo OBJCOPY:' '$(OBJCOPY)
@echo READELF:' '$(READELF)
@echo
.display-flags:
@echo CFLAGS_DEBUG:' '$(CFLAGS_DEBUG)
@echo CFLAGS_COMMON:' '$(CFLAGS_COMMON)
@echo CFLAGS_CMDLINE:' '$(CFLAGS_CMDLINE)
@echo CFLAGS_CONFIG:' '$(CFLAGS_CONFIG)
@echo CFLAGS_SYSROOT:' '$(CFLAGS_SYSROOT)
@echo CFLAGS_PATH:' '$(CFLAGS_PATH)
@echo
@echo LDFLAGS_DEBUG:' '$(LDFLAGS_DEBUG)
@echo LDFLAGS_COMMON:' '$(LDFLAGS_COMMON)
@echo LDFLAGS_CMDLINE:' '$(LDFLAGS_CMDLINE)
@echo LDFLAGS_CONFIG:' '$(LDFLAGS_CONFIG)
@echo LDFLAGS_SYSROOT:' '$(LDFLAGS_SYSROOT)
@echo LDFLAGS_PATH:' '$(LDFLAGS_PATH)
@echo
.display-pe:
@echo PE_SUBSYSTEM:' '$(PE_SUBSYSTEM)
@echo PE_IMAGE_BASE:' '$(PE_IMAGE_BASE)
@echo PE_CONFIG_DEFS:' '$(PE_CONFIG_DEFS)
@echo
.display-elf:
@echo ELF_EH_FRAME:' '$(ELF_EH_FRAME)
@echo ELF_HASH_STYLE:' '$(ELF_HASH_STYLE)
@echo ELF_CONFIG_DEFS:' '$(ELF_CONFIG_DEFS)
@echo
.display-dirs:
@echo PREFIX:' '$(PREFIX)
@echo BIN_DIR:' '$(BIN_DIR)
@echo LIB_DIR:' '$(LIB_DIR)
@echo INCLUDE_DIR:' '$(INCLUDE_DIR)
@echo SYSLIB_DIR:' '$(SYSLIB_DIR)
@echo MAN_DIR:' '$(MAN_DIR)
@echo DOC_DIR:' '$(DOC_DIR)
@echo LIBEXEC_DIR:' '$(LIBEXEC_DIR)
@echo
.display-build:
@echo BUILD_CC:' '$(BUILD_CC)
@echo BUILD_OS:' '$(BUILD_OS)
@echo BUILD_OS_BITS:' '$(BUILD_OS_BITS)
@echo BUILD_OS_USCORE:' '$(BUILD_OS_UNDERSCORE)
@echo
.PHONY: all install shared static app .display \
shared-objs shared-lib shared-implib \
static-objs static-lib \
default-app shared-app static-app \
install-shared install-static install-implib \
install-headers install-app \
clean distclean \
.display-env .display-tools .display-flags \
.display-pe .display-elf .display-dirs .display-build