# Copyright (C) 2022 RozK
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

SOURCES = \
cpp/display/display_glx.cpp \
cpp/events/events_x11.cpp \
cpp/render/render_opengles.cpp \
cpp/math.cpp

OUTPUTFILE = engine.so

CXXFLAGS = -std=c++17 -Wall -Werror -O2 -msse2 -fpic -flto -fno-rtti -fno-exceptions

.PHONY: all
all: clean $(OUTPUTFILE)

.PHONY: clean
clean:
	rm -f $(OUTPUTFILE)
	find . -name "*.o" -type f -delete

$(OUTPUTFILE): $(subst .cpp,.o,$(SOURCES))
	$(CXX) -shared $(CXXFLAGS) -s -o $@ $^ -lGLESv2 -lGLX -lX11
