aisl/tool/Makefile

89 lines
1.4 KiB
Makefile

#
# Makefile
# Ilja Kartašov, 2019-07-13 14:51
#
.POSIX:
CC ?= gcc
PKG_CONFIG ?= pkg-config
PREFIX ?= /usr/local
DESTDIR ?=
BIN_DIR ?= bin
TARGET_NAME = aisl
OUT_DIR ?= ../build
SRC_DIR ?= .
SDK_DIR ?= ../sdk
CSTUFF_DIR ?= ../cStuff
# Version
VERSION_MAJOR = 0
VERSION_MINOR = 1
VERSION_TWEAK = 0
VERSION_LABEL = 0
# Source files
SOURCE_FILES := \
$(SRC_DIR)/main.c \
$(SRC_DIR)/option.c \
$(SRC_DIR)/compose.c \
\
$(SDK_DIR)/components/html.c \
\
$(CSTUFF_DIR)/list.c \
$(CSTUFF_DIR)/string.c \
# compilation macro options:
CFLAGS := \
-std=c99 \
-pedantic \
-Wall \
-Wmissing-prototypes \
-Wstrict-prototypes \
-Wold-style-definition \
-O2 \
-s \
\
-I../ \
-I$(SDK_DIR) \
\
-D_POSIX_C_SOURCE=200809L \
-DEXECUTABLE="$(TARGET_NAME)" \
-DVERSION_MAJOR=$(VERSION_MAJOR) \
-DVERSION_MINOR=$(VERSION_MINOR) \
-DVERSION_TWEAK=$(VERSION_TWEAK) \
-DVERSION_LABEL=$(VERSION_LABEL) \
\
$(CFLAGS) \
LDFLAGS :=
# flags
SOURCE_LIST := $(wildcard $(SOURCE_FILES))
OBJECT_LIST := $(addsuffix .o, $(addprefix $(OUT_DIR)/tool/, ${SOURCE_LIST}))
all: $(TARGET_NAME)
$(TARGET_NAME): $(OBJECT_LIST)
$(info building target: $@)
@$(CC) -o $(OUT_DIR)/$@ $(OBJECT_LIST) $(LDFLAGS)
$(info done: $@)
$(OUT_DIR)/tool/%.o: %
$(info compiling file: $<)
@mkdir -p $(dir $@)
@$(CC) $(CFLAGS) -c $< -o $@
install: $(TARGET_NAME)
$(info installing files)
@cp $(OUT_DIR)/$< $(DESTDIR)$(PREFIX)/$(BIN_DIR)
# vim:ft=make
#