Files
bbs/Makefile

47 lines
951 B
Makefile

# SPDX-License-Identifier: MIT
# Makefile for Amber's BBS Interface
# Buildsys by Gale Faraday
# `generate` must be called before `all` to build version information and other
# machine generated files.
.PHONY: all clean run generate
.SUFFIXES:
.DEFAULT_GOAL := all
TARGET := $(shell basename $(CURDIR))
SOURCES := src/
BUILD := build/
GENABLES := $(SOURCES)version.c
OBJS := $(patsubst $(SOURCES)%.c,$(BUILD)%.o,$(wildcard $(SOURCES)*.c))
EXECUTABLE := $(TARGET)
CC := gcc
LD := gcc
CFLAGS := -std=c99 -pedantic -Wall -Wextra -Wno-unused-parameter -O2 -ggdb
LDFLAGS := $(CFLAGS) -lncurses
all: $(EXECUTABLE)
run: $(EXECUTABLE)
./$(EXECUTABLE)
.IGNORE: clean
clean:
@rm -rvf $(BUILD) $(EXECUTABLE) $(GENABLES)
generate: $(GENABLES)
$(GENABLES): genver.sh
./genver.sh
$(EXECUTABLE): $(OBJS)
$(LD) $(LDFLAGS) -o $@ $^
$(OBJS): $(BUILD)%.o : $(SOURCES)%.c
-@mkdir -p $(BUILD)
$(CC) $(CFLAGS) -o $@ -c $<