templates/c/make/nixpkgs/Makefile
2026-01-19 14:14:24 -05:00

37 lines
606 B
Makefile

##
# Example GCC Nix Project
#
# @file
# @version 0.1
SRC_DIR := ./src
BUILD_DIR := ./build
EXEC ?= hello
INSTALL ?= $(PREFIX)/bin/
# Find all the C files we want to compile
SRCS := $(shell find $(SRC_DIR) -name '*.c')
OBJS := $(SRCS:$(SRC_DIR)/%.c=$(BUILD_DIR)/%.o)
.PHONY: build install clean
build: $(BUILD_DIR)/$(EXEC)
install: build
mkdir -p $(INSTALL)
cp $(BUILD_DIR)/$(EXEC) $(INSTALL)
# Link
$(BUILD_DIR)/$(EXEC): $(OBJS)
$(CC) $^ -o $@ $(LDFLAGS)
# Compile
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.c
mkdir -p $(dir $@)
$(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
clean:
rm -r $(BUILD_DIR)
# end