From d2b654b37da8fd7dcc29f01c4d654b008ff724f7 Mon Sep 17 00:00:00 2001 From: SanJacobs Date: Thu, 18 May 2023 00:42:06 +0200 Subject: Comfy building on Linux --- makefile_old | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 makefile_old (limited to 'makefile_old') diff --git a/makefile_old b/makefile_old new file mode 100644 index 0000000..4fbd423 --- /dev/null +++ b/makefile_old @@ -0,0 +1,70 @@ +# INCLUDE is where you find the header files for the libs you're using. They are used during compilation. +# Example: -I /usr/include/boost/ +INCLUDE= + +# Compiler. Pretty self-explanatory. +CXX = g++ + +# Enabling C++17 mode so I can have more stuff +CVERSION=-std=c++17 + +# Native compilation flags and crosscompilation flags for Windows +CFLAGS=-g +WINFLAGS=-g -gcodeview + +# Executable name stuff +V=v0.2.0-alpha +NAME=satscalc + +# LIBDIR is where you can find the linkable objects or whatever. They are used for the linking stage. +# -L /usr/lib/x86_64-linux-gnu/ +LIBDIR= + +# LIBS are the libs you are using written with a -l and then ignoring the lib-part at the beginning of the file's name. +# So "libboost_date_time.a" will be just "-lboost_date_time" +LIBS= + +# Sources are the source code files. Only the .cpp files, becuase the .h files are included into them during pre-processing. +SOURCES=$(wildcard src/*.cpp) +OBJDIR=obj/ +OBJECTS=$(patsubst src/%.cpp, $(OBJDIR)%.o, $(SOURCES)) +# This last line creates an identical list of objects based on the list of .cpp files. + +a.out: $(OBJECTS) + $(CXX) $(LIBDIR) $(CVERSION) $(LIBS) $(OBJECTS) -o $(NAME) + +$(OBJECTS): obj/%.o : src/%.cpp + mkdir -p $(OBJDIR) + $(CXX) $(CFLAGS) $(INCLUDE) $(CVERSION) $(CFLAGS) -c $< -o $@ + +windows: + zig c++ -target x86_64-windows-gnu src/*.cpp $(CVERSION) $(WINFLAGS) -o $(NAME).exe + +windows32: + zig c++ -target i386-windows-gnu src/*.cpp $(CVERSION) $(WINFLAGS) -o $(NAME).exe + +mac: + zig c++ -target x86_64-macos-gnu src/*.cpp $(CVERSION) $(CFLAGS) -o $(NAME) + +release: + mkdir -p bin + make CFLAGS=-O2 NAME=bin/$(NAME)-$(V)-linux + make mac CFLAGS=-O2 NAME=bin/$(NAME)-$(V)-macOS + make windows WINFLAGS="-O2 --static" NAME=bin/$(NAME)-$(V)-win64 + make windows32 WINFLAGS="-O2 --static" NAME=bin/$(NAME)-$(V)-win32 + chmod +x bin/* + +clean: + rm -f obj/*.o + +cleanall: + rm -rf obj/*.o bin/ $(NAME) + +install: a.out + cp satscalc /usr/local/bin/satscalc + +test: a.out + ./test.sh + +odin: + odin run src/ -out:main.out -- cgit v1.2.1