Makefile
author František Kučera <franta-hg@frantovo.cz>
Tue, 08 Oct 2024 22:24:40 +0200
branchv_0
changeset 34 8cf3812a92eb
parent 24 98d033d3ef7c
permissions -rw-r--r--
improved Makefile + small fixes
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
bb715a82a8f1 project skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     1
# ShaderShark
bb715a82a8f1 project skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     2
# Copyright © 2023 František Kučera (Frantovo.cz, GlobalCode.info)
bb715a82a8f1 project skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     3
#
bb715a82a8f1 project skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     4
# This program is free software: you can redistribute it and/or modify
bb715a82a8f1 project skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     5
# it under the terms of the GNU General Public License as published by
bb715a82a8f1 project skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     6
# the Free Software Foundation, version 3 of the License.
bb715a82a8f1 project skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     7
#
bb715a82a8f1 project skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     8
# This program is distributed in the hope that it will be useful,
bb715a82a8f1 project skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
bb715a82a8f1 project skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
bb715a82a8f1 project skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    11
# GNU General Public License for more details.
bb715a82a8f1 project skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    12
#
bb715a82a8f1 project skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    13
# You should have received a copy of the GNU General Public License
bb715a82a8f1 project skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    14
# along with this program. If not, see <http://www.gnu.org/licenses/>.
bb715a82a8f1 project skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    15
34
8cf3812a92eb improved Makefile + small fixes
František Kučera <franta-hg@frantovo.cz>
parents: 24
diff changeset
    16
CXX ?= g++
8cf3812a92eb improved Makefile + small fixes
František Kučera <franta-hg@frantovo.cz>
parents: 24
diff changeset
    17
CXXFLAGS ?= -O2 -g3 -ggdb -Wall -Wno-sign-compare
8cf3812a92eb improved Makefile + small fixes
František Kučera <franta-hg@frantovo.cz>
parents: 24
diff changeset
    18
CXXFLAGS += --std=c++20
8cf3812a92eb improved Makefile + small fixes
František Kučera <franta-hg@frantovo.cz>
parents: 24
diff changeset
    19
# CXXFLAGS += -Wextra
8cf3812a92eb improved Makefile + small fixes
František Kučera <franta-hg@frantovo.cz>
parents: 24
diff changeset
    20
LDFLAGS = $(shell pkg-config --cflags --libs epoxy x11 glu glm Magick++)
8cf3812a92eb improved Makefile + small fixes
František Kučera <franta-hg@frantovo.cz>
parents: 24
diff changeset
    21
8cf3812a92eb improved Makefile + small fixes
František Kučera <franta-hg@frantovo.cz>
parents: 24
diff changeset
    22
ifeq ($(MODE), dev)
8cf3812a92eb improved Makefile + small fixes
František Kučera <franta-hg@frantovo.cz>
parents: 24
diff changeset
    23
CXXFLAGS += -fsanitize=undefined -fsanitize=address
8cf3812a92eb improved Makefile + small fixes
František Kučera <franta-hg@frantovo.cz>
parents: 24
diff changeset
    24
endif
8cf3812a92eb improved Makefile + small fixes
František Kučera <franta-hg@frantovo.cz>
parents: 24
diff changeset
    25
8cf3812a92eb improved Makefile + small fixes
František Kučera <franta-hg@frantovo.cz>
parents: 24
diff changeset
    26
# TODO: provide debug symbols in separate files
8cf3812a92eb improved Makefile + small fixes
František Kučera <franta-hg@frantovo.cz>
parents: 24
diff changeset
    27
0
bb715a82a8f1 project skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    28
all: build/shader-shark
bb715a82a8f1 project skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    29
bb715a82a8f1 project skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    30
.PHONY: all clean run
bb715a82a8f1 project skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    31
bb715a82a8f1 project skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    32
clean:
bb715a82a8f1 project skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    33
	rm -rf build
bb715a82a8f1 project skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    34
11
0aeedc35ebed use default texture and shaders from the $SHADER_SHARK_DATA_DIR directory, if not configured as command line arguments
František Kučera <franta-hg@frantovo.cz>
parents: 7
diff changeset
    35
run: build/shader-shark
0aeedc35ebed use default texture and shaders from the $SHADER_SHARK_DATA_DIR directory, if not configured as command line arguments
František Kučera <franta-hg@frantovo.cz>
parents: 7
diff changeset
    36
	SHADER_SHARK_DATA_DIR=. $(<)
0
bb715a82a8f1 project skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    37
34
8cf3812a92eb improved Makefile + small fixes
František Kučera <franta-hg@frantovo.cz>
parents: 24
diff changeset
    38
SRC =     $(shell find -maxdepth 1 -name '*.cpp')
8cf3812a92eb improved Makefile + small fixes
František Kučera <franta-hg@frantovo.cz>
parents: 24
diff changeset
    39
HEADERS = $(shell find -maxdepth 1 -name '*.h')
0
bb715a82a8f1 project skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    40
34
8cf3812a92eb improved Makefile + small fixes
František Kučera <franta-hg@frantovo.cz>
parents: 24
diff changeset
    41
build/shader-shark: $(SRC) $(HEADERS)
24
98d033d3ef7c xattr: XAttrs class that read/write/list extended attributes
František Kučera <franta-hg@frantovo.cz>
parents: 19
diff changeset
    42
	mkdir -p build
34
8cf3812a92eb improved Makefile + small fixes
František Kučera <franta-hg@frantovo.cz>
parents: 24
diff changeset
    43
	$(CXX) $(CXXFLAGS) -o $(@) $(SRC) $(LDFLAGS)