61 lines
1.3 KiB
Makefile
61 lines
1.3 KiB
Makefile
### quick Makefile to build ke in the top-level. It will never be used
|
|
### kge; ke doesn't use any non-system libraries. vim, emacs, and joe
|
|
### all support building from a Makefile in the root directory of the
|
|
### project, so it's useful to quickly test builds when editing remote.
|
|
CC := clang
|
|
CXX := clang++
|
|
CXXFLAGS := -Werror -Wall -Wextra -g -fsanitize=address -std=c++17
|
|
LDFLAGS :=
|
|
|
|
SOURCES := Buffer.cc Buffer.h \
|
|
Cursor.cc Cursor.h \
|
|
Defs.cc Defs.h \
|
|
File.cc File.h \
|
|
main.cc
|
|
OBJS := $(patsubst %.cc,%.o,$(filter %.cc,$(SOURCES)))
|
|
TARGET := ke
|
|
|
|
.PHONY: all
|
|
all: tags trashme $(TARGET)
|
|
./$(TARGET) trashme.txt
|
|
|
|
.PHONY: trashme
|
|
trashme:
|
|
cp Makefile trashme.txt
|
|
|
|
.PHONY: cmake
|
|
cmake: build
|
|
cd build && cmake --config Debug --build ..
|
|
|
|
build:
|
|
mkdir -p build
|
|
|
|
# TODO: run these from ./scripts/install-dependencies.sh
|
|
PHONY: deps
|
|
deps:
|
|
sudo apt-get install doxygen scdoc
|
|
|
|
.PHONY: gui-deps
|
|
gui-deps:
|
|
sudo apt-get install libfreetype-dev libsdl2-dev libopengl-dev libglfw3-dev
|
|
|
|
.PHONY:
|
|
clean:
|
|
rm -f *.o $(TARGET)
|
|
|
|
tags: $(SOURCES)
|
|
ctags -o $@ $(SOURCES)
|
|
|
|
ke: $(OBJS)
|
|
$(CXX) -o $@ $(CXXFLAGS) $(LDFLAGS) $(OBJS)
|
|
|
|
|
|
.PHONY: cclean
|
|
cclean:
|
|
rm -r build cmake-build-*
|
|
|
|
print-%: ; @echo '$(subst ','\'',$*=$($*))'
|
|
|
|
%.o:%.cc
|
|
$(CXX) -c -o $@ $(CXXFLAGS) $<
|