48 lines
1.3 KiB
Makefile
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)
|