|
|
@ -0,0 +1,118 @@ |
|
|
|
EXTENSION?=txt |
|
|
|
FORMAT?=DEFAULT |
|
|
|
.PHONY: all parse clean raylib_api |
|
|
|
|
|
|
|
# Determine PLATFORM_OS
|
|
|
|
# No uname.exe on MinGW!, but OS=Windows_NT on Windows!
|
|
|
|
# ifeq ($(UNAME),Msys) -> Windows
|
|
|
|
ifeq ($(OS),Windows_NT) |
|
|
|
PLATFORM_OS = WINDOWS |
|
|
|
else |
|
|
|
UNAMEOS = $(shell uname) |
|
|
|
ifeq ($(UNAMEOS),Linux) |
|
|
|
PLATFORM_OS = LINUX |
|
|
|
endif |
|
|
|
ifeq ($(UNAMEOS),FreeBSD) |
|
|
|
PLATFORM_OS = BSD |
|
|
|
endif |
|
|
|
ifeq ($(UNAMEOS),OpenBSD) |
|
|
|
PLATFORM_OS = BSD |
|
|
|
endif |
|
|
|
ifeq ($(UNAMEOS),NetBSD) |
|
|
|
PLATFORM_OS = BSD |
|
|
|
endif |
|
|
|
ifeq ($(UNAMEOS),DragonFly) |
|
|
|
PLATFORM_OS = BSD |
|
|
|
endif |
|
|
|
ifeq ($(UNAMEOS),Darwin) |
|
|
|
PLATFORM_OS = OSX |
|
|
|
endif |
|
|
|
endif |
|
|
|
|
|
|
|
# Define default C compiler: CC
|
|
|
|
#------------------------------------------------------------------------------------------------
|
|
|
|
CC = gcc |
|
|
|
ifeq ($(PLATFORM_OS),OSX) |
|
|
|
# OSX default compiler |
|
|
|
CC = clang |
|
|
|
endif |
|
|
|
ifeq ($(PLATFORM_OS),BSD) |
|
|
|
# FreeBSD, OpenBSD, NetBSD, DragonFly default compiler |
|
|
|
CC = clang |
|
|
|
endif |
|
|
|
|
|
|
|
# Define default make program: MAKE
|
|
|
|
#------------------------------------------------------------------------------------------------
|
|
|
|
MAKE ?= make |
|
|
|
ifeq ($(PLATFORM_OS),WINDOWS) |
|
|
|
MAKE = mingw32-make |
|
|
|
endif |
|
|
|
|
|
|
|
# Define compiler flags: CFLAGS
|
|
|
|
#------------------------------------------------------------------------------------------------
|
|
|
|
CFLAGS = -Wall -std=c99 |
|
|
|
#CFLAGS += -Wextra -Wmissing-prototypes -Wstrict-prototypes
|
|
|
|
|
|
|
|
ifeq ($(BUILD_MODE),DEBUG) |
|
|
|
CFLAGS += -g -D_DEBUG |
|
|
|
else |
|
|
|
ifeq ($(PLATFORM_OS),OSX) |
|
|
|
CFLAGS += -O2 |
|
|
|
else |
|
|
|
CFLAGS += -s -O2 |
|
|
|
endif |
|
|
|
endif |
|
|
|
ifeq ($(PLATFORM_OS),WINDOWS) |
|
|
|
# NOTE: The resource .rc file contains windows executable icon and properties |
|
|
|
CFLAGS += rlparser.rc.data |
|
|
|
endif |
|
|
|
|
|
|
|
# Define processes to execute
|
|
|
|
#------------------------------------------------------------------------------------------------
|
|
|
|
# rlparser compilation
|
|
|
|
rlparser: rlparser.c |
|
|
|
$(CC) rlparser.c -o rlparser $(CFLAGS) |
|
|
|
|
|
|
|
# rlparser execution: [raylib.h] parse, generating some output files
|
|
|
|
raylib_api: ../../src/raylib.h rlparser |
|
|
|
FORMAT=DEFAULT EXTENSION=txt $(MAKE) raylib_api.txt |
|
|
|
FORMAT=JSON EXTENSION=json $(MAKE) raylib_api.json |
|
|
|
FORMAT=XML EXTENSION=xml $(MAKE) raylib_api.xml |
|
|
|
FORMAT=LUA EXTENSION=lua $(MAKE) raylib_api.lua |
|
|
|
|
|
|
|
# rlparser execution: [raylib.h] parse, generating some output files
|
|
|
|
raylib_api.$(EXTENSION): ../../src/raylib.h rlparser |
|
|
|
./rlparser -i ../../src/raylib.h -o raylib_api.$(EXTENSION) -f $(FORMAT) -d RLAPI |
|
|
|
|
|
|
|
# rlparser execution: [rlgl.h] parse, generating some output files
|
|
|
|
rlgl_api.$(EXTENSION): ../../src/rlgl.h rlparser |
|
|
|
./rlparser -i ../../src/rlgl.h -o rlgl_api.$(EXTENSION) -f $(FORMAT) -d RLAPI -t "RLGL IMPLEMENTATION" |
|
|
|
|
|
|
|
# rlparser execution: [raymath.h] parse, generating some output files
|
|
|
|
raymath_api.$(EXTENSION): ../../src/raymath.h rlparser |
|
|
|
./rlparser -i ../../src/raymath.h -o raymath_api.$(EXTENSION) -f $(FORMAT) -d RMAPI |
|
|
|
|
|
|
|
# rlparser execution: [reasings.h] parse, generating some output files
|
|
|
|
reasings_api.$(EXTENSION): ../../examples/others/reasings.h rlparser |
|
|
|
./rlparser -i ../../examples/others/reasings.h -o reasings_api.$(EXTENSION) -f $(FORMAT) -d EASEDEF |
|
|
|
|
|
|
|
# rlparser execution: [raygui.h] parse, generating some output files
|
|
|
|
raygui_api.$(EXTENSION): ../raygui.h rlparser |
|
|
|
./rlparser -i ../raygui.h -o raygui_api.$(EXTENSION) -f $(FORMAT) -d RAYGUIAPI -t "RAYGUI IMPLEMENTATION" |
|
|
|
|
|
|
|
# Target to generate required APIs output files
|
|
|
|
parse: raylib_api.$(EXTENSION) raymath_api.$(EXTENSION) rlgl_api.$(EXTENSION) raygui_api.$(EXTENSION) |
|
|
|
|
|
|
|
# "make parse" (and therefore "make all") requires
|
|
|
|
# raygui.h and reasings_api.h to exist in the correct directory
|
|
|
|
# API files for individual headers can be created likeso, provided the relevant header exists:
|
|
|
|
# FORMAT=JSON EXTENSION=json make raygui_api.json
|
|
|
|
all: rlparser |
|
|
|
FORMAT=DEFAULT EXTENSION=txt $(MAKE) parse |
|
|
|
FORMAT=JSON EXTENSION=json $(MAKE) parse |
|
|
|
FORMAT=XML EXTENSION=xml $(MAKE) parse |
|
|
|
FORMAT=LUA EXTENSION=lua $(MAKE) parse |
|
|
|
|
|
|
|
# Clean rlparser and generated output files
|
|
|
|
clean: |
|
|
|
rm -f rlparser *.json *.txt *.xml *.lua |