colourpicker

Simple Colour Picker written in C
git clone anongit@rnpnr.xyz:colourpicker.git
Log | Files | Refs | Feed | Submodules | README | LICENSE

build.sh (2708B)


      1 #!/bin/sh
      2 
      3 version=1.0
      4 
      5 cflags=${CFLAGS:-"-march=native -O3"}
      6 cflags="${cflags} -std=c11 "
      7 ldflags=${LDFLAGS}
      8 # TODO(rnp): embed shader without lto stripping it */
      9 ldflags="${ldflags} -fno-lto -lm"
     10 
     11 output="colourpicker"
     12 
     13 cc=${CC:-cc}
     14 
     15 for arg; do
     16 	case ${arg} in
     17 	debug) debug=1
     18 	esac
     19 done
     20 
     21 machine=$(uname -m)
     22 
     23 case $(uname -s) in
     24 MINGW64*)
     25 	w32=1
     26 	output="Colour Picker"
     27 	windres assets/colourpicker.rc out/colourpicker.rc.o
     28 	ldflags="out/colourpicker.rc.o ${ldflags} -mwindows -lgdi32 -lwinmm"
     29 	case ${machine} in
     30 	x86_64) binary_format="pe-x86-64"     ;;
     31 	*)      binary_format="pe-${machine}" ;;
     32 	esac
     33 	;;
     34 *)
     35 	case ${machine} in
     36 	aarch64) binary_format="elf64-littleaarch64" ;;
     37 	x86_64)  binary_format="elf64-x86-64"  ;;
     38 	esac
     39 	;;
     40 esac
     41 
     42 build_raylib()
     43 {
     44 	cp external/raylib/src/raylib.h external/raylib/src/rlgl.h out/
     45 	src=external/raylib/src
     46 	srcs="rcore rglfw rshapes rtext rtextures utils"
     47 
     48 	raylib_cmd="${cflags} -I./external/raylib/src -DPLATFORM_DESKTOP_GLFW"
     49 	raylib_cmd="${raylib_cmd} -Wno-unused-but-set-variable -Wno-unused-parameter"
     50 	[ ! ${w32} ] && raylib_cmd="${raylib_cmd} -D_GLFW_X11"
     51 
     52 	if [ ${debug} ]; then
     53 		files=""
     54 		for n in ${srcs}; do
     55 			files="${files} ${src}/${n}.c"
     56 		done
     57 		raylib_cmd="${raylib_cmd} -DBUILD_LIBTYPE_SHARED -D_GLFW_BUILD_DLL"
     58 		raylib_cmd="${raylib_cmd} -fPIC -shared"
     59 		raylib_cmd="${raylib_cmd} ${files} -o ${raylib}"
     60 		[ ${w32} ] && raylib_cmd="${raylib_command} -L. -lgdi32 -lwinmm"
     61 		${cc} ${raylib_cmd}
     62 	else
     63 		outs=""
     64 		for n in ${srcs}; do
     65 			${cc} ${raylib_cmd} -c "${src}/${n}.c" -o "out/${n}.o"
     66 			outs="${outs} out/${n}.o"
     67 		done
     68 
     69 		ar rc "${raylib}" ${outs}
     70 	fi
     71 }
     72 
     73 if [ $(git diff-index --quiet HEAD -- external/raylib) ]; then
     74 	git submodule update --init --checkout --depth=1 external/raylib
     75 fi
     76 
     77 [ ! -s "config.h" ] && cp config.def.h config.h
     78 
     79 mkdir -p out
     80 raylib=out/libraylib.a
     81 [ ${debug} ] && raylib="libraylib.so"
     82 [ "./build.sh" -nt ${raylib} ] || [ ! -f ${raylib} ] && build_raylib
     83 
     84 cflags="${cflags} -Wall -Wextra -Iout"
     85 
     86 if [ ! -s "out/lora_sb_0_inc.h" ] || [ "gen_incs.c" -nt "out/lora_sb_0_inc.h" ]; then
     87 	${cc} ${cflags} -o gen_incs gen_incs.c ${ldflags} ${raylib} && ./gen_incs
     88 fi
     89 
     90 if [ "$debug" ]; then
     91 	# Hot Reloading/Debugging
     92 	cflags="${cflags} -O0 -ggdb -D_DEBUG -Wno-unused-function"
     93 
     94 	${cc} ${cflags} -fPIC -shared colourpicker.c -o colourpicker.so
     95 	ldflags="${ldflags} -Wl,-rpath,. ${raylib}"
     96 else
     97 	if [ ! -s "out/slider_lerp.o" ] || [ "slider_lerp.glsl" -nt "out/slider_lerp.o" ]; then
     98 		objcopy --input-target=binary slider_lerp.glsl --output-target=${binary_format} out/slider_lerp.o
     99 	fi
    100 	ldflags="${raylib} out/slider_lerp.o ${ldflags}"
    101 fi
    102 
    103 ${cc} ${cflags} -DVERSION="\"${version}\"" main.c -o "${output}" ${ldflags}