2013-03-17 10:31:00 -07:00
#
2015-01-02 14:43:11 -08:00
# Copyright 2011-2015 Branimir Karadzic. All rights reserved.
2013-03-17 10:31:00 -07:00
# License: http://www.opensource.org/licenses/BSD-2-Clause
#
2014-08-17 17:20:15 -07:00
THISDIR := $( dir $( lastword $( MAKEFILE_LIST) ) )
i n c l u d e $( THISDIR ) / t o o l s . m k
2013-03-17 16:50:33 -07:00
2013-03-17 10:31:00 -07:00
i f n d e f T A R G E T
.PHONY : all
2013-04-12 09:05:24 -07:00
all :
@echo Usage: make TARGET = # [clean, all, rebuild]
2013-03-17 16:50:33 -07:00
@echo " TARGET=0 (hlsl - dx9)"
@echo " TARGET=1 (hlsl - dx11)"
@echo " TARGET=2 (glsl - nacl)"
@echo " TARGET=3 (glsl - android)"
@echo " TARGET=4 (glsl - linux)"
@echo " VERBOSE=1 show build commands."
2013-03-17 10:31:00 -07:00
e l s e
2013-12-20 23:03:12 -08:00
2013-03-17 10:31:00 -07:00
i f e q ( $( TARGET ) , 0 )
VS_FLAGS = --platform windows -p vs_3_0 -O 3
FS_FLAGS = --platform windows -p ps_3_0 -O 3
SHADER_PATH = shaders/dx9
e l s e
i f e q ( $( TARGET ) , 1 )
VS_FLAGS = --platform windows -p vs_4_0 -O 3
FS_FLAGS = --platform windows -p ps_4_0 -O 3
2014-12-19 21:09:58 -08:00
CS_FLAGS = --platform windows -p cs_5_0 -O 1
2013-03-17 10:31:00 -07:00
SHADER_PATH = shaders/dx11
e l s e
i f e q ( $( TARGET ) , 2 )
VS_FLAGS = --platform nacl
FS_FLAGS = --platform nacl
SHADER_PATH = shaders/gles
e l s e
i f e q ( $( TARGET ) , 3 )
VS_FLAGS = --platform android
FS_FLAGS = --platform android
2014-07-20 20:27:13 -07:00
CS_FLAGS = --platform android
2013-03-17 10:31:00 -07:00
SHADER_PATH = shaders/gles
e l s e
i f e q ( $( TARGET ) , 4 )
VS_FLAGS = --platform linux -p 120
FS_FLAGS = --platform linux -p 120
2014-07-20 20:27:13 -07:00
CS_FLAGS = --platform linux -p 430
2013-03-17 10:31:00 -07:00
SHADER_PATH = shaders/glsl
e n d i f
e n d i f
e n d i f
e n d i f
e n d i f
2013-04-01 22:52:06 -07:00
THISDIR := $( dir $( lastword $( MAKEFILE_LIST) ) )
VS_FLAGS += -i $( THISDIR) ../src/
FS_FLAGS += -i $( THISDIR) ../src/
2014-07-20 20:27:13 -07:00
CS_FLAGS += -i $( THISDIR) ../src/
2013-04-01 22:52:06 -07:00
2013-03-17 10:31:00 -07:00
BUILD_OUTPUT_DIR = $( addprefix ./, $( RUNTIME_DIR) /$( SHADER_PATH) )
BUILD_INTERMEDIATE_DIR = $( addprefix $( BUILD_DIR) /, $( SHADER_PATH) )
VS_SOURCES = $( wildcard vs_*.sc)
VS_DEPS = $( addprefix $( BUILD_INTERMEDIATE_DIR) /,$( addsuffix .bin.d, $( basename $( VS_SOURCES) ) ) )
FS_SOURCES = $( wildcard fs_*.sc)
FS_DEPS = $( addprefix $( BUILD_INTERMEDIATE_DIR) /,$( addsuffix .bin.d, $( basename $( FS_SOURCES) ) ) )
2014-07-20 20:27:13 -07:00
CS_SOURCES = $( wildcard cs_*.sc)
CS_DEPS = $( addprefix $( BUILD_INTERMEDIATE_DIR) /,$( addsuffix .bin.d, $( basename $( CS_SOURCES) ) ) )
2013-03-17 10:31:00 -07:00
VS_BIN = $( addprefix $( BUILD_INTERMEDIATE_DIR) /, $( addsuffix .bin, $( basename $( VS_SOURCES) ) ) )
FS_BIN = $( addprefix $( BUILD_INTERMEDIATE_DIR) /, $( addsuffix .bin, $( basename $( FS_SOURCES) ) ) )
2014-07-20 20:27:13 -07:00
CS_BIN = $( addprefix $( BUILD_INTERMEDIATE_DIR) /, $( addsuffix .bin, $( basename $( CS_SOURCES) ) ) )
2013-03-17 10:31:00 -07:00
BIN = $( VS_BIN) $( FS_BIN)
ASM = $( VS_ASM) $( FS_ASM)
2014-07-20 20:27:13 -07:00
i f e q ( $( TARGET ) , 1 )
BIN += $( CS_BIN)
ASM += $( CS_ASM)
e l s e
i f e q ( $( TARGET ) , 3 )
BIN += $( CS_BIN)
ASM += $( CS_ASM)
e l s e
i f e q ( $( TARGET ) , 4 )
BIN += $( CS_BIN)
ASM += $( CS_ASM)
e n d i f
e n d i f
e n d i f
2013-03-17 10:31:00 -07:00
$(BUILD_INTERMEDIATE_DIR)/vs_%.bin : vs_ %.sc
@echo [ $( <) ]
2013-03-17 16:50:33 -07:00
$( SILENT) $( SHADERC) $( VS_FLAGS) --type vertex --depends -o $( @) -f $( <) --disasm
$( SILENT) cp $( @) $( BUILD_OUTPUT_DIR) /$( @F)
2013-03-17 10:31:00 -07:00
$(BUILD_INTERMEDIATE_DIR)/fs_%.bin : fs_ %.sc
@echo [ $( <) ]
2013-03-17 16:50:33 -07:00
$( SILENT) $( SHADERC) $( FS_FLAGS) --type fragment --depends -o $( @) -f $( <) --disasm
$( SILENT) cp $( @) $( BUILD_OUTPUT_DIR) /$( @F)
2013-03-17 10:31:00 -07:00
2014-07-20 20:27:13 -07:00
$(BUILD_INTERMEDIATE_DIR)/cs_%.bin : cs_ %.sc
@echo [ $( <) ]
$( SILENT) $( SHADERC) $( CS_FLAGS) --type compute --depends -o $( @) -f $( <) --disasm
$( SILENT) cp $( @) $( BUILD_OUTPUT_DIR) /$( @F)
2013-03-17 10:31:00 -07:00
.PHONY : all
all : dirs $( BIN )
@echo Target $( SHADER_PATH)
.PHONY : clean
clean :
@echo Cleaning...
@-rm -vf $( BIN)
@-$( call CMD_RMDIR,$( BUILD_INTERMEDIATE_DIR) )
.PHONY : dirs
dirs :
@-$( call CMD_MKDIR,$( BUILD_INTERMEDIATE_DIR) )
@-$( call CMD_MKDIR,$( BUILD_OUTPUT_DIR) )
.PHONY : rebuild
rebuild : clean all
e n d i f # TARGET
- i n c l u d e $( VS_DEPS )
- i n c l u d e $( FS_DEPS )
2014-07-20 20:27:13 -07:00
- i n c l u d e $( CS_DEPS )