boinc/samples/example_app/Makefile

128 lines
3.6 KiB
Makefile
Raw Normal View History

# This should work on Linux. Modify as needed for other platforms.
BOINC_DIR = ../..
2021-03-21 22:30:46 +00:00
BOINC_SOURCE_API_DIR = $(BOINC_DIR)/api
BOINC_SOURCE_LIB_DIR = $(BOINC_DIR)/lib
BOINC_SOURCE_ZIP_DIR = $(BOINC_DIR)/zip
FREETYPE_DIR = /usr/include/freetype2
2021-04-10 08:02:39 +00:00
ifdef ANDROID
2021-03-21 22:30:46 +00:00
BOINC_API_DIR = $(TCINCLUDES)/lib
BOINC_LIB_DIR = $(TCINCLUDES)/lib
BOINC_ZIP_DIR = $(TCINCLUDES)/lib
2021-04-10 08:02:39 +00:00
MAKEFILE_LDFLAGS =
MAKEFILE_STDLIB =
else
BOINC_API_DIR = $(BOINC_SOURCE_API_DIR)
BOINC_LIB_DIR = $(BOINC_SOURCE_LIB_DIR)
BOINC_ZIP_DIR = $(BOINC_SOURCE_ZIP_DIR)
MAKEFILE_LDFLAGS = -lpthread libstdc++.a
MAKEFILE_STDLIB = libstdc++.a
2021-03-21 22:30:46 +00:00
endif
CXXFLAGS += -g \
-Wall -W -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -fno-common \
-DAPP_GRAPHICS \
-I$(BOINC_DIR) \
2021-03-21 22:30:46 +00:00
-I$(BOINC_SOURCE_API_DIR) \
-I$(BOINC_SOURCE_LIB_DIR) \
-I$(BOINC_SOURCE_ZIP_DIR) \
-I$(FREETYPE_DIR) \
2021-03-21 22:30:46 +00:00
-L$(BOINC_API_DIR) \
-L$(BOINC_LIB_DIR) \
-L/usr/X11R6/lib \
-L.
# to get the graphics app to compile you may need to install some packages
# e.g. ftgl-devel.x86_64
#
# You may have to change the paths for your system.
2008-10-06 21:46:46 +00:00
2021-08-16 13:55:54 +00:00
LIBGLUT = -lglut
LIBGLU = -lGLU
2021-08-16 08:04:27 +00:00
LIBGL= -lGL
LIBUI = -lX11 -lXmu
LIBFTGL = -lftgl
2021-08-16 13:55:54 +00:00
LIBJPEG = -ljpeg
2022-04-23 09:40:15 +00:00
ifdef BUILD_WITH_VCPKG
BUILD_DIR = $(BOINC_DIR)/3rdParty/linux
VCPKG_DIR ?= $(BUILD_DIR)/vcpkg/installed/x64-linux
CXXFLAGS += \
-I$(VCPKG_DIR)/include \
-L$(VCPKG_DIR)/lib
LIBUI = -lX11 -lXmu -lXrandr -lXxf86vm -lXi
LIBFTGL = -lftgl -lfreetype -lpng -lbz2 -lbrotlidec-static -lbrotlienc-static -lbrotlicommon-static -lz
endif
2021-08-16 08:04:27 +00:00
ifdef BUILD_WITH_MINGW
LIBGLUT = -lfreeglut_static
LIBGLU = -lglu32
LIBGL= -lopengl32
LIBUI = -lgdi32 -lwinmm
LIBFTGL = -lftgl -lfreetype -lpng -lbz2 -lbrotlidec-static -lbrotlienc-static -lbrotlicommon-static -lz
endif
2021-03-21 22:30:46 +00:00
PROGS = uc2 ucn
# make this optional so compile doesn't break on systems without OpenGL
2021-08-16 13:55:54 +00:00
GUI_PROGS = uc2_graphics slide_show
2021-08-15 19:40:57 +00:00
ifdef BUILD_WITH_GUI
$(info building gui apps)
PROGS += $(GUI_PROGS)
endif
$(info All PROGS=$(PROGS))
all: $(PROGS)
2021-08-16 13:55:54 +00:00
gui: $(GUI_PROGS)
libstdc++.a:
2021-03-21 22:30:46 +00:00
ln -s `$(CXX) -print-file-name=libstdc++.a`
ttfont.cpp:
ln -s ../../api/ttfont.cpp .
clean: distclean
distclean:
2021-08-16 13:55:54 +00:00
/bin/rm -f $(PROGS) $(GUI_PROGS) $(addsuffix .exe, $(PROGS)) $(addsuffix .exe, $(GUI_PROGS)) *.o libstdc++.a ttfont.cpp
install: uc2
# specify library paths explicitly (rather than -l)
# because otherwise you might get a version in /usr/lib etc.
2021-04-10 08:02:39 +00:00
uc2: uc2.o $(MAKEFILE_STDLIB) $(BOINC_API_DIR)/libboinc_api.a $(BOINC_LIB_DIR)/libboinc.a
2021-03-21 22:30:46 +00:00
$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) -o uc2 uc2.o \
2021-04-10 08:02:39 +00:00
-lboinc_api -lboinc $(MAKEFILE_LDFLAGS) \
2021-03-21 22:30:46 +00:00
$(STDCPPTC)
2021-04-10 08:02:39 +00:00
ucn: ucn.o $(MAKEFILE_STDLIB) $(BOINC_API_DIR)/libboinc_api.a $(BOINC_LIB_DIR)/libboinc.a
2021-03-21 22:30:46 +00:00
$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) -o ucn ucn.o \
2021-04-10 08:02:39 +00:00
-lboinc_api -lboinc $(MAKEFILE_LDFLAGS) \
2021-03-21 22:30:46 +00:00
$(STDCPPTC)
uc2_graphics: uc2_graphics.o ttfont.o libstdc++.a $(BOINC_LIB_DIR)/libboinc.a $(BOINC_API_DIR)/libboinc_graphics2.a
$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) -o uc2_graphics uc2_graphics.o ttfont.o libstdc++.a -pthread \
$(BOINC_API_DIR)/libboinc_graphics2.a \
$(BOINC_API_DIR)/libboinc_api.a \
$(BOINC_LIB_DIR)/libboinc.a \
$(LIBGLUT) $(LIBGLU) $(LIBJPEG) \
2021-08-16 08:04:27 +00:00
$(LIBFTGL) $(LIBGL) $(LIBUI) -lm
slide_show: slide_show.o libstdc++.a $(BOINC_LIB_DIR)/libboinc.a $(BOINC_API_DIR)/libboinc_graphics2.a
$(CXX) $(CXXFLAGS) -o slide_show slide_show.o libstdc++.a -pthread \
2021-08-16 08:04:27 +00:00
$(MINGW_ZIP_FIX) \
$(BOINC_API_DIR)/libboinc_graphics2.a \
$(BOINC_API_DIR)/libboinc_api.a \
$(BOINC_LIB_DIR)/libboinc.a \
$(BOINC_ZIP_DIR)/libboinc_zip.a \
$(LIBGLUT) $(LIBGLU) $(LIBJPEG) \
2021-08-16 08:04:27 +00:00
$(LIBGL) $(LIBUI) -lm