|
|
@ -61,6 +61,9 @@ RAYLIB_BUILD_MODE ?= RELEASE |
|
|
|
# Build architecture (x86: 32bit or x64: 64bit)
|
|
|
|
RAYLIB_BUILD_ARCH ?= x86 |
|
|
|
|
|
|
|
# Build output name for the library
|
|
|
|
RAYLIB_LIB_NAME ?= raylib |
|
|
|
|
|
|
|
# Define raylib platform
|
|
|
|
# Options: PLATFORM_DESKTOP, PLATFORM_RPI, PLATFORM_ANDROID, PLATFORM_WEB
|
|
|
|
PLATFORM ?= PLATFORM_DESKTOP |
|
|
@ -475,61 +478,61 @@ all: raylib |
|
|
|
raylib: $(OBJS) |
|
|
|
ifeq ($(PLATFORM),PLATFORM_WEB) |
|
|
|
# Compile raylib for web. |
|
|
|
$(CC) -O1 $(OBJS) -o $(RAYLIB_RELEASE_PATH)/libraylib.bc |
|
|
|
@echo "raylib library generated (libraylib.bc)!" |
|
|
|
$(CC) -O1 $(OBJS) -o $(RAYLIB_RELEASE_PATH)/lib$(RAYLIB_LIB_NAME).bc |
|
|
|
@echo "raylib library generated (lib$(RAYLIB_LIB_NAME).bc)!" |
|
|
|
else |
|
|
|
ifeq ($(RAYLIB_LIBTYPE),SHARED) |
|
|
|
ifeq ($(PLATFORM),PLATFORM_DESKTOP) |
|
|
|
ifeq ($(PLATFORM_OS),WINDOWS) |
|
|
|
# TODO: Compile resource file raylib.dll.rc for linkage on raylib.dll generation |
|
|
|
$(CC) -shared -o $(RAYLIB_RELEASE_PATH)/raylib.dll $(OBJS) $(RAYLIB_SRC_PATH)/raylib.dll.rc.data $(LDFLAGS) -static-libgcc -lopengl32 -lgdi32 -lwinmm -Wl,--out-implib,$(RAYLIB_RELEASE_PATH)/libraylibdll.a |
|
|
|
@echo "raylib dynamic library (raylib.dll) and import library (libraylibdll.a) generated!" |
|
|
|
$(CC) -shared -o $(RAYLIB_RELEASE_PATH)/$(RAYLIB_LIB_NAME).dll $(OBJS) $(LDFLAGS) -static-libgcc -lopengl32 -lgdi32 -lwinmm -Wl,--out-implib,$(RAYLIB_RELEASE_PATH)/lib$(RAYLIB_LIB_NAME)dll.a |
|
|
|
@echo "raylib dynamic library ($(RAYLIB_LIB_NAME).dll) and import library (lib$(RAYLIB_LIB_NAME)dll.a) generated!" |
|
|
|
endif |
|
|
|
ifeq ($(PLATFORM_OS),LINUX) |
|
|
|
# Compile raylib shared library version $(RAYLIB_VERSION). |
|
|
|
# WARNING: you should type "make clean" before doing this target |
|
|
|
$(CC) -shared -o $(RAYLIB_RELEASE_PATH)/libraylib.so.$(RAYLIB_VERSION) $(OBJS) $(LDFLAGS) -Wl,-soname,libraylib.so.$(RAYLIB_API_VERSION) -lGL -lc -lm -lpthread -ldl -lrt $(LDLIBS) |
|
|
|
@echo "raylib shared library generated (libraylib.so.$(RAYLIB_VERSION)) in $(RAYLIB_RELEASE_PATH)!" |
|
|
|
cd $(RAYLIB_RELEASE_PATH) && ln -fsv libraylib.so.$(RAYLIB_VERSION) libraylib.so.$(RAYLIB_API_VERSION) |
|
|
|
cd $(RAYLIB_RELEASE_PATH) && ln -fsv libraylib.so.$(RAYLIB_API_VERSION) libraylib.so |
|
|
|
$(CC) -shared -o $(RAYLIB_RELEASE_PATH)/lib$(RAYLIB_LIB_NAME).so.$(RAYLIB_VERSION) $(OBJS) $(LDFLAGS) -Wl,-soname,lib$(RAYLIB_LIB_NAME).so.$(RAYLIB_API_VERSION) -lGL -lc -lm -lpthread -ldl -lrt $(LDLIBS) |
|
|
|
@echo "raylib shared library generated (lib$(RAYLIB_LIB_NAME).so.$(RAYLIB_VERSION)) in $(RAYLIB_RELEASE_PATH)!" |
|
|
|
cd $(RAYLIB_RELEASE_PATH) && ln -fsv lib$(RAYLIB_LIB_NAME).so.$(RAYLIB_VERSION) lib$(RAYLIB_LIB_NAME).so.$(RAYLIB_API_VERSION) |
|
|
|
cd $(RAYLIB_RELEASE_PATH) && ln -fsv lib$(RAYLIB_LIB_NAME).so.$(RAYLIB_API_VERSION) lib$(RAYLIB_LIB_NAME).so |
|
|
|
endif |
|
|
|
ifeq ($(PLATFORM_OS),OSX) |
|
|
|
$(CC) -dynamiclib -o $(RAYLIB_RELEASE_PATH)/libraylib.$(RAYLIB_VERSION).dylib $(OBJS) $(LDFLAGS) -compatibility_version $(RAYLIB_API_VERSION) -current_version $(RAYLIB_VERSION) -framework OpenGL -framework Cocoa -framework IOKit -framework CoreAudio -framework CoreVideo |
|
|
|
install_name_tool -id "libraylib.$(VERSION).dylib" $(RAYLIB_RELEASE_PATH)/libraylib.$(RAYLIB_VERSION).dylib |
|
|
|
@echo "raylib shared library generated (libraylib.$(RAYLIB_VERSION).dylib)!" |
|
|
|
cd $(RAYLIB_RELEASE_PATH) && ln -fs libraylib.$(RAYLIB_VERSION).dylib libraylib.$(RAYLIB_API_VERSION).dylib |
|
|
|
cd $(RAYLIB_RELEASE_PATH) && ln -fs libraylib.$(RAYLIB_VERSION).dylib libraylib.dylib |
|
|
|
$(CC) -dynamiclib -o $(RAYLIB_RELEASE_PATH)/lib$(RAYLIB_LIB_NAME).$(RAYLIB_VERSION).dylib $(OBJS) $(LDFLAGS) -compatibility_version $(RAYLIB_API_VERSION) -current_version $(RAYLIB_VERSION) -framework OpenGL -framework Cocoa -framework IOKit -framework CoreAudio -framework CoreVideo |
|
|
|
install_name_tool -id "lib$(RAYLIB_LIB_NAME).$(VERSION).dylib" $(RAYLIB_RELEASE_PATH)/lib$(RAYLIB_LIB_NAME).$(RAYLIB_VERSION).dylib |
|
|
|
@echo "raylib shared library generated (lib$(RAYLIB_LIB_NAME).$(RAYLIB_VERSION).dylib)!" |
|
|
|
cd $(RAYLIB_RELEASE_PATH) && ln -fs lib$(RAYLIB_LIB_NAME).$(RAYLIB_VERSION).dylib lib$(RAYLIB_LIB_NAME).$(RAYLIB_API_VERSION).dylib |
|
|
|
cd $(RAYLIB_RELEASE_PATH) && ln -fs lib$(RAYLIB_LIB_NAME).$(RAYLIB_VERSION).dylib lib$(RAYLIB_LIB_NAME).dylib |
|
|
|
endif |
|
|
|
ifeq ($(PLATFORM_OS),BSD) |
|
|
|
# WARNING: you should type "gmake clean" before doing this target |
|
|
|
$(CC) -shared -o $(RAYLIB_RELEASE_PATH)/libraylib.$(RAYLIB_VERSION).so $(OBJS) $(LDFLAGS) -Wl,-soname,libraylib.$(RAYLIB_API_VERSION).so -lGL -lpthread |
|
|
|
@echo "raylib shared library generated (libraylib.$(RAYLIB_VERSION).so)!" |
|
|
|
cd $(RAYLIB_RELEASE_PATH) && ln -fs libraylib.$(RAYLIB_VERSION).so libraylib.$(RAYLIB_API_VERSION).so |
|
|
|
cd $(RAYLIB_RELEASE_PATH) && ln -fs libraylib.$(RAYLIB_VERSION).so libraylib.so |
|
|
|
$(CC) -shared -o $(RAYLIB_RELEASE_PATH)/lib$(RAYLIB_LIB_NAME).$(RAYLIB_VERSION).so $(OBJS) $(LDFLAGS) -Wl,-soname,lib$(RAYLIB_LIB_NAME).$(RAYLIB_API_VERSION).so -lGL -lpthread |
|
|
|
@echo "raylib shared library generated (lib$(RAYLIB_LIB_NAME).$(RAYLIB_VERSION).so)!" |
|
|
|
cd $(RAYLIB_RELEASE_PATH) && ln -fs lib$(RAYLIB_LIB_NAME).$(RAYLIB_VERSION).so lib$(RAYLIB_LIB_NAME).$(RAYLIB_API_VERSION).so |
|
|
|
cd $(RAYLIB_RELEASE_PATH) && ln -fs lib$(RAYLIB_LIB_NAME).$(RAYLIB_VERSION).so lib$(RAYLIB_LIB_NAME).so |
|
|
|
endif |
|
|
|
endif |
|
|
|
ifeq ($(PLATFORM),PLATFORM_RPI) |
|
|
|
# Compile raylib shared library version $(RAYLIB_VERSION). |
|
|
|
# WARNING: you should type "make clean" before doing this target |
|
|
|
$(CC) -shared -o $(RAYLIB_RELEASE_PATH)/libraylib.so.$(RAYLIB_VERSION) $(OBJS) $(LDFLAGS) -Wl,-soname,libraylib.so.$(RAYLIB_API_VERSION) -L/opt/vc/lib -lbrcmGLESv2 -lbrcmEGL -lpthread -lrt -lm -lbcm_host -ldl |
|
|
|
@echo "raylib shared library generated (libraylib.so.$(RAYLIB_VERSION)) in $(RAYLIB_RELEASE_PATH)!" |
|
|
|
cd $(RAYLIB_RELEASE_PATH) && ln -fsv libraylib.so.$(RAYLIB_VERSION) libraylib.so.$(RAYLIB_API_VERSION) |
|
|
|
cd $(RAYLIB_RELEASE_PATH) && ln -fsv libraylib.so.$(RAYLIB_API_VERSION) libraylib.so |
|
|
|
$(CC) -shared -o $(RAYLIB_RELEASE_PATH)/lib$(RAYLIB_LIB_NAME).so.$(RAYLIB_VERSION) $(OBJS) $(LDFLAGS) -Wl,-soname,lib$(RAYLIB_LIB_NAME).so.$(RAYLIB_API_VERSION) -L/opt/vc/lib -lbrcmGLESv2 -lbrcmEGL -lpthread -lrt -lm -lbcm_host -ldl |
|
|
|
@echo "raylib shared library generated (lib$(RAYLIB_LIB_NAME).so.$(RAYLIB_VERSION)) in $(RAYLIB_RELEASE_PATH)!" |
|
|
|
cd $(RAYLIB_RELEASE_PATH) && ln -fsv lib$(RAYLIB_LIB_NAME).so.$(RAYLIB_VERSION) lib$(RAYLIB_LIB_NAME).so.$(RAYLIB_API_VERSION) |
|
|
|
cd $(RAYLIB_RELEASE_PATH) && ln -fsv lib$(RAYLIB_LIB_NAME).so.$(RAYLIB_API_VERSION) lib$(RAYLIB_LIB_NAME).so |
|
|
|
endif |
|
|
|
ifeq ($(PLATFORM),PLATFORM_ANDROID) |
|
|
|
$(CC) -shared -o $(RAYLIB_RELEASE_PATH)/libraylib.$(RAYLIB_VERSION).so $(OBJS) $(LDFLAGS) $(LDLIBS) |
|
|
|
@echo "raylib shared library generated (libraylib.$(RAYLIB_VERSION).so)!" |
|
|
|
$(CC) -shared -o $(RAYLIB_RELEASE_PATH)/lib$(RAYLIB_LIB_NAME).$(RAYLIB_VERSION).so $(OBJS) $(LDFLAGS) $(LDLIBS) |
|
|
|
@echo "raylib shared library generated (lib$(RAYLIB_LIB_NAME).$(RAYLIB_VERSION).so)!" |
|
|
|
# WARNING: symbolic links creation on Windows should be done using mklink command, no ln available |
|
|
|
ifeq ($(HOST_PLATFORM_OS),LINUX) |
|
|
|
cd $(RAYLIB_RELEASE_PATH) && ln -fs libraylib.$(RAYLIB_VERSION).so libraylib.$(RAYLIB_API_VERSION).so |
|
|
|
cd $(RAYLIB_RELEASE_PATH) && ln -fs libraylib.$(RAYLIB_VERSION).so libraylib.so |
|
|
|
cd $(RAYLIB_RELEASE_PATH) && ln -fs lib$(RAYLIB_LIB_NAME).$(RAYLIB_VERSION).so lib$(RAYLIB_LIB_NAME).$(RAYLIB_API_VERSION).so |
|
|
|
cd $(RAYLIB_RELEASE_PATH) && ln -fs lib$(RAYLIB_LIB_NAME).$(RAYLIB_VERSION).so lib$(RAYLIB_LIB_NAME).so |
|
|
|
endif |
|
|
|
endif |
|
|
|
else |
|
|
|
# Compile raylib static library version $(RAYLIB_VERSION) |
|
|
|
# WARNING: You should type "make clean" before doing this target. |
|
|
|
$(AR) rcs $(RAYLIB_RELEASE_PATH)/libraylib.a $(OBJS) |
|
|
|
@echo "raylib static library generated (libraylib.a) in $(RAYLIB_RELEASE_PATH)!" |
|
|
|
$(AR) rcs $(RAYLIB_RELEASE_PATH)/lib$(RAYLIB_LIB_NAME).a $(OBJS) |
|
|
|
@echo "raylib static library generated (lib$(RAYLIB_LIB_NAME).a) in $(RAYLIB_RELEASE_PATH)!" |
|
|
|
endif |
|
|
|
endif |
|
|
|
|
|
|
@ -615,15 +618,15 @@ ifeq ($(ROOT),root) |
|
|
|
mkdir --parents --verbose $(RAYLIB_H_INSTALL_PATH) |
|
|
|
ifeq ($(RAYLIB_LIBTYPE),SHARED) |
|
|
|
# Installing raylib to $(RAYLIB_INSTALL_PATH). |
|
|
|
cp --update --verbose $(RAYLIB_RELEASE_PATH)/libraylib.so.$(RAYLIB_VERSION) $(RAYLIB_INSTALL_PATH)/libraylib.so.$(RAYLIB_VERSION) |
|
|
|
cd $(RAYLIB_INSTALL_PATH); ln -fsv libraylib.so.$(RAYLIB_VERSION) libraylib.so.$(RAYLIB_API_VERSION) |
|
|
|
cd $(RAYLIB_INSTALL_PATH); ln -fsv libraylib.so.$(RAYLIB_API_VERSION) libraylib.so |
|
|
|
cp --update --verbose $(RAYLIB_RELEASE_PATH)/libraylib.so.$(RAYLIB_VERSION) $(RAYLIB_INSTALL_PATH)/lib$(RAYLIB_LIB_NAME).so.$(RAYLIB_VERSION) |
|
|
|
cd $(RAYLIB_INSTALL_PATH); ln -fsv lib$(RAYLIB_LIB_NAME).so.$(RAYLIB_VERSION) lib$(RAYLIB_LIB_NAME).so.$(RAYLIB_API_VERSION) |
|
|
|
cd $(RAYLIB_INSTALL_PATH); ln -fsv lib$(RAYLIB_LIB_NAME).so.$(RAYLIB_API_VERSION) lib$(RAYLIB_LIB_NAME).so |
|
|
|
# Uncomment to update the runtime linker cache with RAYLIB_INSTALL_PATH. |
|
|
|
# Not necessary if later embedding RPATH in your executable. See examples/Makefile. |
|
|
|
ldconfig $(RAYLIB_INSTALL_PATH) |
|
|
|
else |
|
|
|
# Installing raylib to $(RAYLIB_INSTALL_PATH). |
|
|
|
cp --update --verbose $(RAYLIB_RELEASE_PATH)/libraylib.a $(RAYLIB_INSTALL_PATH)/libraylib.a |
|
|
|
cp --update --verbose $(RAYLIB_RELEASE_PATH)/lib$(RAYLIB_LIB_NAME).a $(RAYLIB_INSTALL_PATH)/lib$(RAYLIB_LIB_NAME).a |
|
|
|
endif |
|
|
|
# Copying raylib development files to $(RAYLIB_H_INSTALL_PATH). |
|
|
|
cp --update raylib.h $(RAYLIB_H_INSTALL_PATH)/raylib.h |
|
|
@ -671,11 +674,11 @@ clean: |
|
|
|
ifeq ($(PLATFORM_OS),WINDOWS) |
|
|
|
del *.o /s |
|
|
|
cd $(RAYLIB_RELEASE_PATH) |
|
|
|
del libraylib.a /s |
|
|
|
del libraylibdll.a /s |
|
|
|
del raylib.dll /s |
|
|
|
del lib$(RAYLIB_LIB_NAME).a /s |
|
|
|
del lib$(RAYLIB_LIB_NAME)dll.a /s |
|
|
|
del $(RAYLIB_LIB_NAME).dll /s |
|
|
|
else |
|
|
|
rm -fv *.o $(RAYLIB_RELEASE_PATH)/libraylib.a $(RAYLIB_RELEASE_PATH)/libraylib.bc $(RAYLIB_RELEASE_PATH)/libraylib.so* |
|
|
|
rm -fv *.o $(RAYLIB_RELEASE_PATH)/lib$(RAYLIB_LIB_NAME).a $(RAYLIB_RELEASE_PATH)/lib$(RAYLIB_LIB_NAME).bc $(RAYLIB_RELEASE_PATH)/lib$(RAYLIB_LIB_NAME).so* |
|
|
|
endif |
|
|
|
ifeq ($(PLATFORM),PLATFORM_ANDROID) |
|
|
|
rm -rf $(ANDROID_TOOLCHAIN) $(NATIVE_APP_GLUE)/android_native_app_glue.o |
|
|
|