Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
SoOpMissionSimulator/Makefile
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
executable file
283 lines (216 sloc)
9.75 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
########################## Macro Definitions ############################ | |
# Let's try to auto-detect what platform we're on. | |
# If this fails, set PLATFORM manually in the else block. | |
AUTOPLATFORM = Failed | |
ifeq ($(MSYSTEM),MINGW32) | |
AUTOPLATFORM = Succeeded | |
PLATFORM = __MSYS__ | |
endif | |
UNAME_S := $(shell uname -s) | |
ifeq ($(UNAME_S),Linux) | |
AUTOPLATFORM = Succeeded | |
PLATFORM = __linux__ | |
endif | |
ifeq ($(UNAME_S),Darwin) | |
AUTOPLATFORM = Succeeded | |
PLATFORM = __APPLE__ | |
endif | |
ifeq ($(AUTOPLATFORM),Failed) | |
# Autodetect failed. Set platform manually. | |
#PLATFORM = __APPLE__ | |
#PLATFORM = __linux__ | |
PLATFORM = __MSYS__ | |
endif | |
#GUIFLAG = -D _USE_GUI_ | |
GUIFLAG = | |
#SHADERFLAG = -D _USE_SHADERS_ | |
SHADERFLAG = | |
#TIMEFLAG = | |
TIMEFLAG = -D _USE_SYSTEM_TIME_ | |
# Basic directories | |
HOMEDIR = ./ | |
PROJDIR = ./ | |
IN = $(PROJDIR)sim/Demo/ | |
OUT = $(PROJDIR)sim/Demo/out/ | |
INOUT42 = $(PROJDIR)orbit/42input/ | |
OBJ = $(PROJDIR)obj/ | |
INC = $(PROJDIR)inc/ | |
SRC = $(PROJDIR)src/ | |
ORB42DIR = ./orbit/42/ | |
OBJ42 = $(ORB42DIR)Object/ | |
INC42 = $(ORB42DIR)Include/ | |
SRC42 = $(ORB42DIR)Source/ | |
KIT42DIR = $(ORB42DIR)Kit/ | |
KIT42INC = $(KIT42DIR)Include/ | |
KIT42SRC = $(KIT42DIR)Source/ | |
ifeq ($(PLATFORM),__APPLE__) | |
# Mac Macros | |
CINC = -I /usr/include | |
EXTERNDIR = | |
GLINC = -I /System/Library/Frameworks/OpenGL.framework/Headers/ -I /System/Library/Frameworks/GLUT.framework/Headers/ | |
# ARCHFLAG = -arch i386 | |
ARCHFLAG = -arch x86_64 | |
LFLAGS = -bind_at_load | |
LIBS = -framework System -framework Carbon -framework OpenGL -framework GLUT | |
GUIOBJ = $(OBJ42)42GlutGui.o $(OBJ42)glkit.o | |
EXENAME = SoOp | |
CC = mpicc | |
endif | |
ifeq ($(PLATFORM),__linux__) | |
# Linux Macros | |
CINC = | |
EXTERNDIR = | |
ifneq ($(strip $(GUIFLAG)),) | |
GUIOBJ = $(OBJ42)42GlutGui.o $(OBJ42)glkit.o | |
#GLINC = -I /usr/include/ | |
GLINC = -I $(KIT42DIR)/include/GL/ | |
LIBS = -lglut -lGLU -lGL -ldl -lm | |
LFLAGS = -L $(KIT42DIR)/GL/lib/ | |
ARCHFLAG = | |
else | |
GUIOBJ = | |
GLINC = | |
LIBS = -ldl -lm -lnetcdf | |
LFLAGS = | |
ARCHFLAG = | |
endif | |
EXENAME = SoOp | |
CC = mpicc | |
endif | |
ifeq ($(PLATFORM),__MSYS__) | |
CINC = | |
EXTERNDIR = /c/42ExternalSupport/ | |
ifneq ($(strip $(GUIFLAG)),) | |
GLEW = $(EXTERNDIR)GLEW/ | |
GLUT = $(EXTERNDIR)freeglut/ | |
LIBS = -lopengl32 -lglu32 -lfreeglut -lws2_32 -lglew32 | |
LFLAGS = -L $(GLUT)lib/ -L $(GLEW)lib/ | |
GUIOBJ = $(OBJ42)42GlutGui.o $(OBJ42)glkit.o | |
GLINC = -I $(GLEW)include/GL/ -I $(GLUT)include/GL/ | |
ARCHFLAG = -D GLUT_NO_LIB_PRAGMA -D GLUT_NO_WARNING_DISABLE -D GLUT_DISABLE_ATEXIT_HACK | |
else | |
GUIOBJ = | |
GLINC = | |
LIBS = -lws2_32 | |
LFLAGS = | |
ARCHFLAG = | |
endif | |
EXENAME = SoOp.exe | |
CC = mpicc | |
endif | |
# If not using GUI, don't compile GUI-related files | |
ifeq ($(strip $(GUIFLAG)),) | |
GUIOBJ = | |
endif | |
# If not _AC_STANDALONE_, link AcApp.c in with the rest of 42 | |
ifneq ($(strip $(STANDALONEFLAG)),) | |
ACOBJ = | |
else | |
ACOBJ = $(OBJ42)AcApp.o | |
endif | |
SOOPOBJ = $(OBJ)main.o $(OBJ)init.o $(OBJ)obs.o $(OBJ)geometry.o $(OBJ)ground.o $(OBJ)product.o $(OBJ)antenna.o $(OBJ)attitude.o $(OBJ)earthdata.o $(OBJ)interface.o $(OBJ)util.o $(OBJ)retrieval.o | |
BUSOBJ = $(OBJ)comm.o | |
42OBJ = $(OBJ42)42main.o $(OBJ42)42exec.o $(OBJ42)42actuators.o $(OBJ42)42cmd.o \ | |
$(OBJ42)42dynamics.o $(OBJ42)42environs.o $(OBJ42)42ephem.o $(OBJ42)42fsw.o \ | |
$(OBJ42)42init.o $(OBJ42)42perturb.o $(OBJ42)42report.o $(OBJ42)42sensors.o | |
KIT42OBJ = $(OBJ42)dcmkit.o $(OBJ42)envkit.o $(OBJ42)fswkit.o $(OBJ42)geomkit.o \ | |
$(OBJ42)iokit.o $(OBJ42)mathkit.o $(OBJ42)nrlmsise00kit.o $(OBJ42)msis86kit.o \ | |
$(OBJ42)orbkit.o $(OBJ42)radbeltkit.o $(OBJ42)sigkit.o $(OBJ42)sphkit.o $(OBJ42)timekit.o | |
CFLAGS = -Wall -Wshadow -Wno-deprecated -g $(GLINC) $(CINC) -I $(INC) -I $(SRC) -I $(INC42) -I $(KIT42INC) -I $(KIT42SRC) -O0 $(ARCHFLAG) $(GUIFLAG) $(SHADERFLAG) $(TIMEFLAG) #-fno-stack-protector | |
########################## Rules to link SoOp ############################# | |
SoOp : $(SOOPOBJ) $(BUSOBJ) $(42OBJ) $(GUIOBJ) $(KIT42OBJ) $(ACOBJ) | |
$(CC) $(LFLAGS) -o $(EXENAME) $(SOOPOBJ) $(BUSOBJ) $(42OBJ) $(GUIOBJ) $(KIT42OBJ) $(ACOBJ) $(LIBS) | |
#################### Rules to compile objects ########################### | |
$(OBJ)main.o : $(SRC)main.c $(INC)SoOp.h | |
$(CC) $(CFLAGS) -c $(SRC)main.c -o $(OBJ)main.o | |
$(OBJ)init.o : $(SRC)init.c $(INC)SoOp.h $(INC42)42.h | |
$(CC) $(CFLAGS) -c $(SRC)init.c -o $(OBJ)init.o | |
$(OBJ)obs.o : $(SRC)obs.c $(INC)SoOp.h $(INC42)42.h | |
$(CC) $(CFLAGS) -c $(SRC)obs.c -o $(OBJ)obs.o | |
$(OBJ)geometry.o : $(SRC)geometry.c $(INC)SoOp.h $(INC42)42.h | |
$(CC) $(CFLAGS) -c $(SRC)geometry.c -o $(OBJ)geometry.o | |
$(OBJ)ground.o : $(SRC)ground.c $(INC)SoOp.h $(INC42)42.h | |
$(CC) $(CFLAGS) -c $(SRC)ground.c -o $(OBJ)ground.o | |
$(OBJ)product.o : $(SRC)product.c $(INC)SoOp.h $(INC42)42.h | |
$(CC) $(CFLAGS) -c $(SRC)product.c -o $(OBJ)product.o | |
$(OBJ)antenna.o : $(SRC)antenna.c $(INC)SoOp.h $(INC42)42.h | |
$(CC) $(CFLAGS) -c $(SRC)antenna.c -o $(OBJ)antenna.o | |
$(OBJ)attitude.o : $(SRC)attitude.c $(INC)SoOp.h $(INC42)42.h | |
$(CC) $(CFLAGS) -c $(SRC)attitude.c -o $(OBJ)attitude.o | |
$(OBJ)interface.o : $(SRC)interface.c $(INC)SoOp.h $(INC42)42.h | |
$(CC) $(CFLAGS) -c $(SRC)interface.c -o $(OBJ)interface.o | |
$(OBJ)earthdata.o : $(SRC)earthdata.c $(INC)SoOp.h $(INC42)42.h | |
$(CC) $(CFLAGS) -c $(SRC)earthdata.c -o $(OBJ)earthdata.o | |
$(OBJ)util.o : $(SRC)util.c $(INC)util.h $(INC)SoOp.h $(INC42)42.h | |
$(CC) $(CFLAGS) -c $(SRC)util.c -o $(OBJ)util.o | |
$(OBJ)retrieval.o : $(SRC)retrieval.c $(INC)SoOp.h $(INC42)42.h | |
$(CC) $(CFLAGS) -c $(SRC)retrieval.c -o $(OBJ)retrieval.o | |
$(OBJ)comm.o : $(SRC)comm.c $(INC)SoOp.h $(INC42)42.h | |
$(CC) $(CFLAGS) -c $(SRC)comm.c -o $(OBJ)comm.o | |
$(OBJ42)42main.o : $(SRC42)42main.c | |
$(CC) $(CFLAGS) -c $(SRC42)42main.c -o $(OBJ42)42main.o | |
$(OBJ42)42exec.o : $(SRC42)42exec.c $(INC42)42.h | |
$(CC) $(CFLAGS) -c $(SRC42)42exec.c -o $(OBJ42)42exec.o | |
$(OBJ42)42actuators.o : $(SRC42)42actuators.c $(INC42)42.h $(INC42)Ac.h $(INC42)AcTypes.h | |
$(CC) $(CFLAGS) -c $(SRC42)42actuators.c -o $(OBJ42)42actuators.o | |
$(OBJ42)42cmd.o : $(SRC42)42cmd.c $(INC42)42.h $(INC42)Ac.h $(INC42)AcTypes.h | |
$(CC) $(CFLAGS) -c $(SRC42)42cmd.c -o $(OBJ42)42cmd.o | |
$(OBJ42)42dynamics.o : $(SRC42)42dynamics.c $(INC42)42.h | |
$(CC) $(CFLAGS) -c $(SRC42)42dynamics.c -o $(OBJ42)42dynamics.o | |
$(OBJ42)42environs.o : $(SRC42)42environs.c $(INC42)42.h | |
$(CC) $(CFLAGS) -c $(SRC42)42environs.c -o $(OBJ42)42environs.o | |
$(OBJ42)42ephem.o : $(SRC42)42ephem.c $(INC42)42.h | |
$(CC) $(CFLAGS) -c $(SRC42)42ephem.c -o $(OBJ42)42ephem.o | |
$(OBJ42)42fsw.o : $(SRC42)42fsw.c $(INC42)Ac.h $(INC42)AcTypes.h | |
$(CC) $(CFLAGS) -c $(SRC42)42fsw.c -o $(OBJ42)42fsw.o | |
$(OBJ42)42GlutGui.o : $(SRC42)42GlutGui.c $(INC42)42.h $(INC42)42GlutGui.h | |
$(CC) $(CFLAGS) -c $(SRC42)42GlutGui.c -o $(OBJ42)42GlutGui.o | |
$(OBJ42)42init.o : $(SRC42)42init.c $(INC42)42.h | |
$(CC) $(CFLAGS) -c $(SRC42)42init.c -o $(OBJ42)42init.o | |
$(OBJ42)42perturb.o : $(SRC42)42perturb.c $(INC42)42.h | |
$(CC) $(CFLAGS) -c $(SRC42)42perturb.c -o $(OBJ42)42perturb.o | |
$(OBJ42)42report.o : $(SRC42)42report.c $(INC42)42.h | |
$(CC) $(CFLAGS) -c $(SRC42)42report.c -o $(OBJ42)42report.o | |
$(OBJ42)42sensors.o : $(SRC42)42sensors.c $(INC42)42.h $(INC42)Ac.h $(INC42)AcTypes.h | |
$(CC) $(CFLAGS) -c $(SRC42)42sensors.c -o $(OBJ42)42sensors.o | |
$(OBJ42)AcApp.o : $(SRC42)AcApp.c $(INC42)Ac.h $(INC42)AcTypes.h | |
$(CC) $(CFLAGS) -c $(SRC42)AcApp.c -o $(OBJ42)AcApp.o | |
$(OBJ42)dcmkit.o : $(KIT42SRC)dcmkit.c | |
$(CC) $(CFLAGS) -c $(KIT42SRC)dcmkit.c -o $(OBJ42)dcmkit.o | |
$(OBJ42)envkit.o : $(KIT42SRC)envkit.c | |
$(CC) $(CFLAGS) -c $(KIT42SRC)envkit.c -o $(OBJ42)envkit.o | |
$(OBJ42)fswkit.o : $(KIT42SRC)fswkit.c | |
$(CC) $(CFLAGS) -c $(KIT42SRC)fswkit.c -o $(OBJ42)fswkit.o | |
$(OBJ42)glkit.o : $(KIT42SRC)glkit.c $(KIT42INC)glkit.h | |
$(CC) $(CFLAGS) -c $(KIT42SRC)glkit.c -o $(OBJ42)glkit.o | |
$(OBJ42)geomkit.o : $(KIT42SRC)geomkit.c $(KIT42INC)geomkit.h | |
$(CC) $(CFLAGS) -c $(KIT42SRC)geomkit.c -o $(OBJ42)geomkit.o | |
$(OBJ42)gmseckit.o : $(KIT42SRC)gmseckit.c $(KIT42INC)gmseckit.h | |
$(CC) $(CFLAGS) -c $(KIT42SRC)gmseckit.c -o $(OBJ42)gmseckit.o | |
$(OBJ42)iokit.o : $(KIT42SRC)iokit.c | |
$(CC) $(CFLAGS) -c $(KIT42SRC)iokit.c -o $(OBJ42)iokit.o | |
$(OBJ42)mathkit.o : $(KIT42SRC)mathkit.c | |
$(CC) $(CFLAGS) -c $(KIT42SRC)mathkit.c -o $(OBJ42)mathkit.o | |
$(OBJ42)nrlmsise00kit.o : $(KIT42SRC)nrlmsise00kit.c | |
$(CC) $(CFLAGS) -c $(KIT42SRC)nrlmsise00kit.c -o $(OBJ42)nrlmsise00kit.o | |
$(OBJ42)msis86kit.o : $(KIT42SRC)msis86kit.c $(KIT42INC)msis86kit.h | |
$(CC) $(CFLAGS) -c $(KIT42SRC)msis86kit.c -o $(OBJ42)msis86kit.o | |
$(OBJ42)orbkit.o : $(KIT42SRC)orbkit.c | |
$(CC) $(CFLAGS) -c $(KIT42SRC)orbkit.c -o $(OBJ42)orbkit.o | |
$(OBJ42)radbeltkit.o : $(KIT42SRC)radbeltkit.c | |
$(CC) $(CFLAGS) -c $(KIT42SRC)radbeltkit.c -o $(OBJ42)radbeltkit.o | |
$(OBJ42)sigkit.o : $(KIT42SRC)sigkit.c | |
$(CC) $(CFLAGS) -c $(KIT42SRC)sigkit.c -o $(OBJ42)sigkit.o | |
$(OBJ42)sphkit.o : $(KIT42SRC)sphkit.c | |
$(CC) $(CFLAGS) -c $(KIT42SRC)sphkit.c -o $(OBJ42)sphkit.o | |
$(OBJ42)timekit.o : $(KIT42SRC)timekit.c | |
$(CC) $(CFLAGS) -c $(KIT42SRC)timekit.c -o $(OBJ42)timekit.o | |
######################## Miscellaneous Rules ############################ | |
clean : | |
ifeq ($(PLATFORM),_WIN32) | |
del .\obj\*.o .\$(EXENAME) .\orbit\42input\*.42 | |
else ifeq ($(PLATFORM),_WIN64) | |
del .\obj\*.o .\$(EXENAME) .\orbit\42input\*.42 | |
else | |
rm -f $(OBJ)*.o $(OBJ42)*.o ./$(EXENAME) $(OUT)*.out $(INOUT42)*.42 | |
endif | |