ROOTPATH=../

ARCHIVENAME=ffmpeg-4.4.6.tar.xz
ARCHIVEDIR=ffmpeg-4.4.6

OPTFLAGS=-O2 -fomit-frame-pointer -finline-functions -ffast-math -funswitch-loops -fpredictive-commoning -fgcse-after-reload -fgcse-sm -fgcse-las

DEMUXERS=--enable-demuxer=aac --enable-demuxer=ac3 --enable-demuxer=aiff --enable-demuxer=amr --enable-demuxer=apc --enable-demuxer=ape --enable-demuxer=asf --enable-demuxer=ass --enable-demuxer=au --enable-demuxer=avi --enable-demuxer=avs --enable-demuxer=bethsoftvid --enable-demuxer=bfi --enable-demuxer=c93 --enable-demuxer=cavsvideo --enable-demuxer=daud --enable-demuxer=dirac --enable-demuxer=dnxhd --enable-demuxer=dsicin --enable-demuxer=dts --enable-demuxer=dv --enable-demuxer=dxa --enable-demuxer=ea --enable-demuxer=ea_cdata --enable-demuxer=eac3 --enable-demuxer=ffm --enable-demuxer=flac --enable-demuxer=flic --enable-demuxer=flv --enable-demuxer=fourxm --enable-demuxer=gsm --enable-demuxer=gxf --enable-demuxer=h261 --enable-demuxer=h263 --enable-demuxer=h264 --enable-demuxer=hevc --enable-demuxer=idcin --enable-demuxer=iff --enable-demuxer=image2 --enable-demuxer=image2pipe --enable-demuxer=ingenient --enable-demuxer=ipmovie --enable-demuxer=iss --enable-demuxer=lmlm4 --enable-demuxer=m4v --enable-demuxer=matroska --enable-demuxer=mjpeg --enable-demuxer=mlp --enable-demuxer=mm --enable-demuxer=mmf --enable-demuxer=mov --enable-demuxer=mp3 --enable-demuxer=mpc --enable-demuxer=mpc8 --enable-demuxer=mpegps --enable-demuxer=mpegts --enable-demuxer=mpegtsraw --enable-demuxer=mpegvideo --enable-demuxer=msnwc_tcp --enable-demuxer=mtv --enable-demuxer=mvi --enable-demuxer=mxf --enable-demuxer=nc --enable-demuxer=nsv --enable-demuxer=nut --enable-demuxer=nuv --enable-demuxer=ogg --enable-demuxer=oma --enable-demuxer=pcm_alaw --enable-demuxer=pcm_mulaw --enable-demuxer=pcm_f64be --enable-demuxer=pcm_f64le --enable-demuxer=pcm_f32be --enable-demuxer=pcm_f32le --enable-demuxer=pcm_s32be --enable-demuxer=pcm_s32le --enable-demuxer=pcm_s24be --enable-demuxer=pcm_s24le --enable-demuxer=pcm_s16be --enable-demuxer=pcm_s16le --enable-demuxer=pcm_s8 --enable-demuxer=pcm_u32be --enable-demuxer=pcm_u32le --enable-demuxer=pcm_u24be --enable-demuxer=pcm_u24le --enable-demuxer=pcm_u16be --enable-demuxer=pcm_u16le --enable-demuxer=pcm_u8 --enable-demuxer=pva --enable-demuxer=r3d --enable-demuxer=rawvideo --enable-demuxer=rl2 --enable-demuxer=rm --enable-demuxer=roq --enable-demuxer=rpl --enable-demuxer=segafilm --enable-demuxer=shorten --enable-demuxer=siff --enable-demuxer=smacker --enable-demuxer=sol --enable-demuxer=str --enable-demuxer=swf --enable-demuxer=thp --enable-demuxer=tiertexseq --enable-demuxer=tta --enable-demuxer=txd --enable-demuxer=vc1 --enable-demuxer=vc1t --enable-demuxer=vmd --enable-demuxer=voc --enable-demuxer=vqf --enable-demuxer=wav --enable-demuxer=wc3 --enable-demuxer=wsaud --enable-demuxer=wsvqa --enable-demuxer=wv --enable-demuxer=xa --enable-demuxer=yuv4mpegpipe --enable-demuxer=webm
DECODERS=--enable-decoder=aasc --enable-decoder=amv --enable-decoder=asv1 --enable-decoder=asv2 --enable-decoder=avs --enable-decoder=bethsoftvid --enable-decoder=bfi --enable-decoder=bmp --enable-decoder=c93 --enable-decoder=cavs --enable-decoder=cinepak --enable-decoder=cljr --enable-decoder=cscd --enable-decoder=cyuv --enable-decoder=dnxhd --enable-decoder=dsicinvideo --enable-decoder=dvvideo --enable-decoder=dxa --enable-decoder=eacmv --enable-decoder=eatgq --enable-decoder=eatgv --enable-decoder=eatqi --enable-decoder=eightbps --enable-decoder=escape124 --enable-decoder=ffv1 --enable-decoder=ffvhuff --enable-decoder=flashsv --enable-decoder=flic --enable-decoder=flv --enable-decoder=fourxm --enable-decoder=fraps --enable-decoder=gif --enable-decoder=h261 --enable-decoder=h263 --enable-decoder=h263i --enable-decoder=h264 --enable-decoder=hevc --enable-decoder=huffyuv --enable-decoder=idcin --enable-decoder=indeo2 --enable-decoder=indeo3 --enable-decoder=interplay_video --enable-decoder=jpegls --enable-decoder=kmvc --enable-decoder=loco --enable-decoder=mdec --enable-decoder=mimic --enable-decoder=mjpeg --enable-decoder=mjpegb --enable-decoder=mmvideo --enable-decoder=motionpixels --enable-decoder=mpeg1video --enable-decoder=mpeg2video --enable-decoder=mpeg4 --enable-decoder=mpegvideo --enable-decoder=msmpeg4v1 --enable-decoder=msmpeg4v2 --enable-decoder=msmpeg4v3 --enable-decoder=msrle --enable-decoder=msvideo1 --enable-decoder=mszh --enable-decoder=nuv --enable-decoder=pcx --enable-decoder=png --enable-decoder=ptx --enable-decoder=qdraw --enable-decoder=qpeg --enable-decoder=qtrle --enable-decoder=rawvideo --enable-decoder=rl2 --enable-decoder=roq --enable-decoder=rpza --enable-decoder=rv10 --enable-decoder=rv20 --enable-decoder=rv30 --enable-decoder=rv40 --enable-decoder=sgi --enable-decoder=smacker --enable-decoder=smc --enable-decoder=snow --enable-decoder=sp5x --enable-decoder=sunrast --enable-decoder=svq1 --enable-decoder=svq3 --enable-decoder=targa --enable-decoder=theora --enable-decoder=thp --enable-decoder=tiertexseqvideo --enable-decoder=tiff --enable-decoder=truemotion1 --enable-decoder=truemotion2 --enable-decoder=tscc --enable-decoder=txd --enable-decoder=ulti --enable-decoder=vb --enable-decoder=vc1 --enable-decoder=vcr1 --enable-decoder=vmdvideo --enable-decoder=vmnc --enable-decoder=vp3 --enable-decoder=vp5 --enable-decoder=vp6 --enable-decoder=vp6a --enable-decoder=vp6f --enable-decoder=vqa --enable-decoder=wmv1 --enable-decoder=wmv2 --enable-decoder=wmv3 --enable-decoder=wnv1 --enable-decoder=xan_wc3 --enable-decoder=xl --enable-decoder=zlib --enable-decoder=zmbv --enable-decoder=dvbsub --enable-decoder=dvdsub --enable-decoder=xsub --enable-decoder=vp7 --enable-decoder=vp8 --enable-decoder=vp9
PROTOCOLS=--enable-protocol=file
DISABLES=--disable-iconv --disable-altivec --disable-debug --disable-runtime-cpudetect --disable-programs --disable-doc --disable-pthreads --disable-network --disable-hwaccels --disable-parsers --disable-bsfs --disable-indevs --disable-outdevs --disable-devices --disable-filters

src/.unpack-timestamp: $(ARCHIVENAME)
	rm -rf src objects
	mkdir -p src
	(cd src && tar -xf ../$(ARCHIVENAME))
	touch $@

src/.configure-stamp: src/.unpack-timestamp
	(cd src; $(ARCHIVEDIR)/configure --cc="ppc-morphos-gcc-9 -noixemul" --optflags="$(OPTFLAGS)" --extra-cflags="-DNDEBUG -D_LARGEFILE64_SOURCE -Dfcntl=__no_fcntl -Daccess=__no_access -Dlstat=__no_lstat" --cxx="ppc-morphos-g++-9 -noixemul" --target-os=none --arch=ppc --enable-cross-compile --cross-prefix=ppc-morphos- --prefix=/ $(DISABLES) --disable-muxers --disable-demuxers $(DEMUXERS) --disable-encoders --disable-decoders $(DECODERS) --disable-protocols $(PROTOCOLS))	
	touch $@

objects/.build-stamp: src/.configure-stamp
	mkdir -p objects
	(cd objects; mkdir -p libavcodec/ppc libswscale/ppc libavutil/ppc; $(MAKE) -C .. VPATH=../src/)
	touch $@

objects/.install-stamp: objects/.build-stamp
	$(MAKE) -C src install DESTDIR=../objects/installdir
	touch $@

build: objects/.install-stamp

clean:
	rm -rf src objects

.PHONY: all build clean
