Skip to content
Permalink
master
Switch branches/tags

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?
Go to file
 
 
Cannot retrieve contributors at this time
executable file 283 lines (216 sloc) 9.75 KB
########################## 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