Files
Comet/Makefile
2026-07-05 17:48:25 +10:00

48 lines
1.3 KiB
Makefile

INSTALL_PREFIX ?= /usr/local/bin
SRC=src
VM_SRC=vm_src
SHARED=shared
CORELIB=corelib
SRC_FILES=$(wildcard $(SRC)/*.c)
VM_SRC_FILES=$(wildcard $(VM_SRC)/*.c)
SHARED_SRC_FILES=$(wildcard $(SHARED)/*.c)
CORELIB_FILES=$(wildcard $(CORELIB)/*.c)
CC=gcc
CXX=g++
CFLAGS=-Wall -Wextra -Wno-trigraphs -O3 -rdynamic
LDFLAGS=
LDLIBS=-lm
DEBUG_CFLAGS=-Wall -Wextra -Wno-trigraphs -ggdb -g -rdynamic -fsanitize=address
COMPILER_TARGET=cometc
VM_TARGET=comet
both: $(COMPILER_TARGET) $(VM_TARGET)
$(COMPILER_TARGET): $(SRC_FILES) $(SHARED_SRC_FILES)
$(CC) $(SRC_FILES) $(SHARED_SRC_FILES) -o $(COMPILER_TARGET) $(CFLAGS) $(LDFLAGS) $(LDLIBS)
$(VM_TARGET): $(VM_SRC_FILES) $(SHARED_SRC_FILES)
$(CC) $(VM_SRC_FILES) $(SHARED_SRC_FILES) -o $(VM_TARGET) $(CFLAGS) $(LDFLAGS) $(LDLIBS)
debug:
$(CC) $(SRC_FILES) $(SHARED_SRC_FILES) -o $(COMPILER_TARGET) $(DEBUG_CFLAGS) $(LDFLAGS) $(LDLIBS)
$(CC) $(VM_SRC_FILES) $(SHARED_SRC_FILES) -o $(VM_TARGET) $(DEBUG_CFLAGS) $(LDFLAGS) $(LDLIBS)
clean:
rm $(VM_TARGET)
rm $(COMPILER_TARGET)
install: both
sudo mkdir -p /usr/local/include/comet/
sudo cp -r include/* /usr/local/include/comet/
# build the core lib
mkdir -p ~/.comet/libs
$(CC) $(CORELIB_FILES) -fPIC -shared -Wl,-undefined,symbol_lookup -o ~/.comet/libs/core.cometlib
sudo cp comet $(INSTALL_PREFIX)
sudo cp cometc $(INSTALL_PREFIX)