CXX=g++ CXXFLAGS=-Wall -Wextra -O2 -std=c++14 CXXLIBS=-lGL -lGLU -lglut # In `TARGET`, list the names of the `main_[stuff].cpp` you'd like to compile # into a `[stuff].bin`. TARGETS=glut ball OBJS=Implicit.o \ common_structures.o \ Mesh.o \ spheroid.o \ Ball.o \ PerlinNoise.o \ util/ObjParser.o \ MarchingCubes.o \ _gen/marching_cubes_data.o \ periodic_updates.o \ tests/TestImplicitSphere.o \ render/GlutRender.o all: $(TARGETS:=.bin) %.bin: main_%.o $(OBJS) $(CXX) $(CXXFLAGS) $(CXXLIBS) $(OBJS) $< -o $@ _gen/marching_cubes_data.cpp: tools/gen_marching_cubes_conf.py _gen python3 $< > $@ %.o: %.cpp $(CXX) $(CXXFLAGS) -c $< -o $@ _gen: mkdir -p _gen ############################################################ .PHONY: clean clean: rm -rf $(OBJS) $(TARGETS:=.bin) _gen