Initial version of waf build system for JACK1

This commit is contained in:
Nedko Arnaudov 2023-07-28 20:15:42 +03:00
parent 6dc08cbca2
commit 8abbbe49e1
6 changed files with 243 additions and 87 deletions

90
.gitignore vendored
View File

@ -1,87 +1,3 @@
/*.desc
/*.pc
/*.tar.gz
/*diff
/*diffs
/.deps
/Makefile
/Makefile.in
/aclocal.m4
/autom4te.cache
/config.cache
/config.h
/config.h.in
/config.log
/config.status
/configure
/jack-audio-connection-kit-*
/jack.spec
/libtool
/stamp-h
/stamp-h.in
/stamp-h1
/TAGS
*.o
*.lo
Makefile
Makefile.in
.libs
.deps
*.la
config/compile
config/config.guess
config/config.sub
config/depcomp
config/install-sh
config/ltmain.sh
config/missing
doc/doxygen-build.stamp
doc/reference.doxygen
doc/reference/
example-clients/jack_impulse_grabber
example-clients/jack_metro
example-clients/jack_midiseq
example-clients/jack_midisine
example-clients/jack_showtime
example-clients/jack_simple_client
example-clients/jack_transport_client
example-clients/jack_rec
example-clients/jack_latent_client
jack/version.h
jackd/jack_md5.h
jackd/jackdbus
jackd/org.jackaudio.service
jackd/jackd
jackd/jackd.1
tags
tools/alsa_in
tools/alsa_out
tools/jack_alias
tools/jack_connect
tools/jack_disconnect
tools/jack_evmon
tools/jack_freewheel
tools/jack_load
tools/jack_lsp
tools/jack_monitor_client
tools/jack_netsource
tools/jack_thread_wait
tools/jack_transport
tools/jack_unload
tools/jack_iodelay
tools/jackrec
man/jack_netsource.1
man/jack_samplerate.1
man/jack_wait.1
man/jack_iodelay.1
tools/jack_bufsize
tools/jack_samplerate
tools/jack_wait
example-clients/jack_simple_session_client
tools/jack_midi_dump
tools/jack_session_notify
example-clients/jack_server_control
man/jack_load_test.1
tools/jack_load_test
*.pyc
/man/*.1
/.waf*
/.lock-waf_*
/build/

6
.gitmodules vendored
View File

@ -1,3 +1,9 @@
[submodule "jack_control"]
path = jack_control
url = ../jack_control
[submodule "waf-toolchain-flags"]
path = waf_toolchain_flags
url = ../waf-toolchain-flags
[submodule "waf-autooptions"]
path = waf_autooptions
url = ../waf-autooptions

173
waf vendored Executable file

File diff suppressed because one or more lines are too long

1
waf_autooptions Submodule

@ -0,0 +1 @@
Subproject commit 87a720d8ad158153c72681b7b900ad90f09c2a1c

1
waf_toolchain_flags Submodule

@ -0,0 +1 @@
Subproject commit e6add7a50da3274ecbfc68bdcd3e4a71130fa65c

59
wscript Normal file
View File

@ -0,0 +1,59 @@
#!/usr/bin/env python
# encoding: utf-8
#
# SPDX-FileCopyrightText: Copyright © 2023 Nedko Arnaudov
# SPDX-License-Identifier: GPL-3.0-or-later
import os
from waflib import Context
from waflib import Logs, Options, TaskGen
from waflib.Build import BuildContext, CleanContext, InstallContext, UninstallContext
from waf_toolchain_flags import WafToolchainFlags
VERSION = '1.121.4'
APPNAME = 'LADI JACK'
JACK_API_VERSION = VERSION
# these variables are mandatory ('/' are converted automatically)
top = '.'
out = 'build'
def options(opt):
opt.load('waf_autooptions')
return
def configure(conf):
conf.load('waf_autooptions')
return
def git_ver(self):
bld = self.generator.bld
header = self.outputs[0].abspath()
if os.access('./version.h', os.R_OK):
header = os.path.join(os.getcwd(), out, "version.h")
shutil.copy('./version.h', header)
data = open(header).read()
m = re.match(r'^#define GIT_VERSION "([^"]*)"$', data)
if m != None:
self.ver = m.group(1)
Logs.pprint('BLUE', "tarball from git revision " + self.ver)
else:
self.ver = "tarball"
return
if bld.srcnode.find_node('.git'):
self.ver = bld.cmd_and_log("LANG= git rev-parse HEAD", quiet=Context.BOTH).splitlines()[0]
if bld.cmd_and_log("LANG= git diff-index --name-only HEAD", quiet=Context.BOTH).splitlines():
self.ver += "-dirty"
Logs.pprint('BLUE', "git revision " + self.ver)
else:
self.ver = "unknown"
fi = open(header, 'w')
fi.write('#define GIT_VERSION "%s"\n' % self.ver)
fi.close()
def build(bld):
bld(rule=git_ver, target='version.h', update_outputs=True, always=True, ext_out=['.h'])