opkg

statically linked package installer
git clone anongit@rnpnr.xyz:opkg.git
Log | Files | Refs | Feed | Submodules | README | LICENSE

gen.lua (9153B)


      1 cflags({
      2 	'-include $dir/config.h',
      3 	'-I $srcdir',
      4 	'-I $srcdir/compat/regex',
      5 	'-I $outdir',
      6 	'-isystem $builddir/pkg/net/curl/include',
      7 	'-isystem $builddir/pkg/libs/zlib/include',
      8 })
      9 
     10 pkg.deps = {
     11 	'$outdir/command-list.h',
     12 	'$outdir/config-list.h',
     13 	'$outdir/hook-list.h',
     14 	'pkg/net/curl/headers',
     15 	'pkg/libs/zlib/headers',
     16 }
     17 
     18 rule('cmdlist', 'cd $srcdir && ./generate-cmdlist.sh $$OLDPWD/$in >$$OLDPWD/$out')
     19 build('cmdlist', '$outdir/command-list.h', {
     20 	'$srcdir/command-list.txt',
     21 	'|', '$srcdir/generate-cmdlist.sh', expand({'$srcdir/Documentation/', lines('commands.txt')}),
     22 })
     23 
     24 rule('configlist', 'cd $srcdir && ./generate-configlist.sh >$$OLDPWD/$out')
     25 build('configlist', '$outdir/config-list.h', {
     26 	'|', '$srcdir/generate-configlist.sh', expand({'$srcdir/Documentation/', lines('configs.txt')}),
     27 })
     28 
     29 rule('hooklist', 'cd $srcdir && ./generate-hooklist.sh >$$OLDPWD/$out')
     30 build('hooklist', '$outdir/hook-list.h', {
     31 	'|', '$srcdir/generate-hooklist.sh', '$srcdir/Documentation/githooks.txt'
     32 })
     33 
     34 cc('exec-cmd.c', nil, {cflags=string.format([[$cflags '-DFALLBACK_RUNTIME_PREFIX="%s"']], config.prefix)})
     35 cc('common-main.c')
     36 cc('http.c')
     37 cc('compat/regex/regex.c', nil, {cflags='$cflags -DGAWK -DNO_MBSUPPORT'})
     38 
     39 -- src/Makefile:/^REFTABLE_OBJS.\+=
     40 lib('libreftable.a', [[
     41 	reftable/(
     42 		basics.c
     43 		error.c
     44 		block.c
     45 		blocksource.c
     46 		iter.c
     47 		publicbasics.c
     48 		merged.c
     49 		pq.c
     50 		reader.c
     51 		record.c
     52 		refname.c
     53 		generic.c
     54 		stack.c
     55 		tree.c
     56 		writer.c
     57 	)
     58 ]])
     59 
     60 -- src/Makefile:/^LIB_OBJS.\+=
     61 lib('libgit.a', [[
     62 	abspath.c
     63 	add-interactive.c
     64 	add-patch.c
     65 	advice.c
     66 	alias.c
     67 	alloc.c
     68 	apply.c
     69 	archive-tar.c
     70 	archive-zip.c
     71 	archive.c
     72 	attr.c
     73 	base85.c
     74 	bisect.c
     75 	blame.c
     76 	blob.c
     77 	bloom.c
     78 	branch.c
     79 	bulk-checkin.c
     80 	bundle-uri.c
     81 	bundle.c
     82 	cache-tree.c
     83 	cbtree.c
     84 	chdir-notify.c
     85 	checkout.c
     86 	chunk-format.c
     87 	color.c
     88 	column.c
     89 	combine-diff.c
     90 	commit-graph.c
     91 	commit-reach.c
     92 	commit.c
     93 	compat/nonblock.c
     94 	compat/obstack.c
     95 	compat/qsort_s.c
     96 	compat/regex/regex.c.o
     97 	compat/terminal.c
     98 	compat/zlib-uncompress2.c
     99 	config.c
    100 	connect.c
    101 	connected.c
    102 	convert.c
    103 	copy.c
    104 	credential.c
    105 	csum-file.c
    106 	ctype.c
    107 	date.c
    108 	decorate.c
    109 	delta-islands.c
    110 	diagnose.c
    111 	diff-delta.c
    112 	diff-merges.c
    113 	diff-lib.c
    114 	diff-no-index.c
    115 	diff.c
    116 	diffcore-break.c
    117 	diffcore-delta.c
    118 	diffcore-order.c
    119 	diffcore-pickaxe.c
    120 	diffcore-rename.c
    121 	diffcore-rotate.c
    122 	dir-iterator.c
    123 	dir.c
    124 	editor.c
    125 	entry.c
    126 	environment.c
    127 	ewah/bitmap.c
    128 	ewah/ewah_bitmap.c
    129 	ewah/ewah_io.c
    130 	ewah/ewah_rlw.c
    131 	exec-cmd.c.o
    132 	fetch-negotiator.c
    133 	fetch-pack.c
    134 	fmt-merge-msg.c
    135 	fsck.c
    136 	fsmonitor.c
    137 	fsmonitor-ipc.c
    138 	fsmonitor-settings.c
    139 	gettext.c
    140 	git-zlib.c
    141 	gpg-interface.c
    142 	graph.c
    143 	grep.c
    144 	hash-lookup.c
    145 	hashmap.c
    146 	help.c
    147 	hex-ll.c
    148 	hex.c
    149 	hook.c
    150 	ident.c
    151 	json-writer.c
    152 	kwset.c
    153 	levenshtein.c
    154 	line-log.c
    155 	line-range.c
    156 	linear-assignment.c
    157 	list-objects-filter-options.c
    158 	list-objects-filter.c
    159 	list-objects.c
    160 	lockfile.c
    161 	log-tree.c
    162 	loose.c
    163 	ls-refs.c
    164 	mailinfo.c
    165 	mailmap.c
    166 	match-trees.c
    167 	mem-pool.c
    168 	merge-blobs.c
    169 	merge-ll.c
    170 	merge-ort.c
    171 	merge-ort-wrappers.c
    172 	merge-recursive.c
    173 	merge.c
    174 	midx.c
    175 	midx-write.c
    176 	name-hash.c
    177 	negotiator/default.c
    178 	negotiator/noop.c
    179 	negotiator/skipping.c
    180 	notes-cache.c
    181 	notes-merge.c
    182 	notes-utils.c
    183 	notes.c
    184 	object-file-convert.c
    185 	object-file.c
    186 	object-name.c
    187 	object.c
    188 	oid-array.c
    189 	oidmap.c
    190 	oidset.c
    191 	oidtree.c
    192 	pack-bitmap-write.c
    193 	pack-bitmap.c
    194 	pack-check.c
    195 	pack-mtimes.c
    196 	pack-objects.c
    197 	pack-revindex.c
    198 	pack-write.c
    199 	packfile.c
    200 	pager.c
    201 	parallel-checkout.c
    202 	parse-options-cb.c
    203 	parse-options.c
    204 	parse.c
    205 	patch-delta.c
    206 	patch-ids.c
    207 	path.c
    208 	pathspec.c
    209 	pkt-line.c
    210 	preload-index.c
    211 	pretty.c
    212 	prio-queue.c
    213 	progress.c
    214 	promisor-remote.c
    215 	prompt.c
    216 	protocol.c
    217 	protocol-caps.c
    218 	prune-packed.c
    219 	quote.c
    220 	range-diff.c
    221 	reachable.c
    222 	read-cache.c
    223 	rebase-interactive.c
    224 	rebase.c
    225 	ref-filter.c
    226 	reflog-walk.c
    227 	reflog.c
    228 	refs.c
    229 	refs/debug.c
    230 	refs/files-backend.c
    231 	refs/reftable-backend.c
    232 	refs/iterator.c
    233 	refs/packed-backend.c
    234 	refs/ref-cache.c
    235 	refspec.c
    236 	remote.c
    237 	replace-object.c
    238 	repo-settings.c
    239 	repository.c
    240 	rerere.c
    241 	reset.c
    242 	resolve-undo.c
    243 	revision.c
    244 	run-command.c
    245 	send-pack.c
    246 	sequencer.c
    247 	serve.c
    248 	server-info.c
    249 	setup.c
    250 	shallow.c
    251 	sideband.c
    252 	sigchain.c
    253 	sparse-index.c
    254 	split-index.c
    255 	stable-qsort.c
    256 	statinfo.c
    257 	strbuf.c
    258 	streaming.c
    259 	string-list.c
    260 	strmap.c
    261 	strvec.c
    262 	sub-process.c
    263 	submodule-config.c
    264 	submodule.c
    265 	symlinks.c
    266 	tag.c
    267 	tempfile.c
    268 	thread-utils.c
    269 	tmp-objdir.c
    270 	trace.c
    271 	trace2.c
    272 	trace2/(
    273 		tr2_cfg.c
    274 		tr2_cmd_name.c
    275 		tr2_ctr.c
    276 		tr2_dst.c
    277 		tr2_sid.c
    278 		tr2_sysenv.c
    279 		tr2_tbuf.c
    280 		tr2_tgt_event.c
    281 		tr2_tgt_normal.c
    282 		tr2_tgt_perf.c
    283 		tr2_tls.c
    284 		tr2_tmr.c
    285 	)
    286 	trailer.c
    287 	transport-helper.c
    288 	transport.c
    289 	tree-diff.c
    290 	tree-walk.c
    291 	tree.c
    292 	unpack-trees.c
    293 	upload-pack.c
    294 	url.c
    295 	urlmatch.c
    296 	usage.c
    297 	userdiff.c
    298 	utf8.c
    299 	varint.c
    300 	version.c
    301 	versioncmp.c
    302 	walker.c
    303 	wildmatch.c
    304 	worktree.c
    305 	wrapper.c
    306 	write-or-die.c
    307 	ws.c
    308 	wt-status.c
    309 	xdiff-interface.c
    310 
    311 	unix-socket.c
    312 	unix-stream-server.c
    313 
    314 	compat/simple-ipc/(ipc-shared.c ipc-unix-socket.c)
    315 
    316 	sha1dc_git.c
    317 	sha1dc/sha1.c
    318 	sha1dc/ubc_check.c
    319 
    320 	sha256/block/sha256.c
    321 
    322 	compat/linux/procinfo.c
    323 
    324 	libxdiff.a
    325 	libreftable.a
    326 	$builddir/pkg/libs/zlib/libz.a
    327 ]])
    328 
    329 -- src/Makefile:/^XDIFF_OBJS.\+=
    330 lib('libxdiff.a', [[xdiff/(
    331 	xdiffi.c
    332 	xemit.c
    333 	xhistogram.c
    334 	xmerge.c
    335 	xpatience.c
    336 	xprepare.c
    337 	xutils.c
    338 )]])
    339 
    340 -- src/Makefile:/^BUILTIN_OBJS.\+=
    341 local builtins = {
    342 	'add',
    343 	'am',
    344 	'annotate',
    345 	'apply',
    346 	'archive',
    347 	'bisect',
    348 	'blame',
    349 	'branch',
    350 	'bugreport',
    351 	'bundle',
    352 	'cat-file',
    353 	'check-attr',
    354 	'check-ignore',
    355 	'check-mailmap',
    356 	'check-ref-format',
    357 	'checkout--worker',
    358 	'checkout-index',
    359 	'checkout',
    360 	'clean',
    361 	'clone',
    362 	'column',
    363 	'commit-graph',
    364 	'commit-tree',
    365 	'commit',
    366 	'config',
    367 	'count-objects',
    368 	'credential-cache--daemon',
    369 	'credential-cache',
    370 	'credential-store',
    371 	'credential',
    372 	'describe',
    373 	'diagnose',
    374 	'diff-files',
    375 	'diff-index',
    376 	'diff-tree',
    377 	'diff',
    378 	'difftool',
    379 	'fast-export',
    380 	'fast-import',
    381 	'fetch-pack',
    382 	'fetch',
    383 	'fmt-merge-msg',
    384 	'for-each-ref',
    385 	'for-each-repo',
    386 	'fsck',
    387 	'fsmonitor--daemon',
    388 	'gc',
    389 	'get-tar-commit-id',
    390 	'grep',
    391 	'hash-object',
    392 	'help',
    393 	'hook',
    394 	'index-pack',
    395 	'init-db',
    396 	'interpret-trailers',
    397 	'log',
    398 	'ls-files',
    399 	'ls-remote',
    400 	'ls-tree',
    401 	'mailinfo',
    402 	'mailsplit',
    403 	'merge-base',
    404 	'merge-file',
    405 	'merge-index',
    406 	'merge-ours',
    407 	'merge-recursive',
    408 	'merge-tree',
    409 	'merge',
    410 	'mktag',
    411 	'mktree',
    412 	'multi-pack-index',
    413 	'mv',
    414 	'name-rev',
    415 	'notes',
    416 	'pack-objects',
    417 	'pack-redundant',
    418 	'pack-refs',
    419 	'patch-id',
    420 	'prune-packed',
    421 	'prune',
    422 	'pull',
    423 	'push',
    424 	'range-diff',
    425 	'read-tree',
    426 	'rebase',
    427 	'receive-pack',
    428 	'reflog',
    429 	'remote-ext',
    430 	'remote-fd',
    431 	'remote',
    432 	'repack',
    433 	'replace',
    434 	'replay',
    435 	'rerere',
    436 	'reset',
    437 	'rev-list',
    438 	'rev-parse',
    439 	'revert',
    440 	'rm',
    441 	'send-pack',
    442 	'shortlog',
    443 	'show-branch',
    444 	'show-index',
    445 	'show-ref',
    446 	'sparse-checkout',
    447 	'stash',
    448 	'stripspace',
    449 	'submodule--helper',
    450 	'symbolic-ref',
    451 	'tag',
    452 	'unpack-file',
    453 	'unpack-objects',
    454 	'update-index',
    455 	'update-ref',
    456 	'update-server-info',
    457 	'upload-archive',
    458 	'upload-pack',
    459 	'var',
    460 	'verify-commit',
    461 	'verify-pack',
    462 	'verify-tag',
    463 	'worktree',
    464 	'write-tree',
    465 }
    466 
    467 exe('git', {'git.c', 'common-main.c.o', expand({'builtin/', builtins, '.c'}), 'libgit.a.d'})
    468 file('bin/git', '755', '$outdir/git')
    469 
    470 local programs = {
    471 	-- src/Makefile:/^PROGRAM_OBJS./+=
    472 	{'daemon'},
    473 	{'http-backend'},
    474 	{'imap-send', {'imap-send.c', 'http.c.o', '$builddir/pkg/net/curl/libcurl.a.d'}},
    475 	{'sh-i18n--envsubst'},
    476 	{'shell'},
    477 
    478 	{'remote-http', {'remote-curl.c', 'http.c.o', 'http-walker.c', '$builddir/pkg/net/curl/libcurl.a.d'}},
    479 }
    480 
    481 for _, prog in ipairs(programs) do
    482 	local name, srcs = prog[1], prog[2]
    483 	exe('git-'..name, {srcs or name..'.c', 'common-main.c.o', 'libgit.a.d'})
    484 	file('libexec/git-core/git-'..name, '755', '$outdir/git-'..name)
    485 end
    486 
    487 for _, remote in ipairs({'https', 'ftp', 'ftps'}) do
    488 	sym('libexec/git-core/git-remote-'..remote, 'git-remote-http')
    489 end
    490 
    491 local scripts = {
    492 	-- src/Makefile:/^SCRIPT_SH.\+=
    493 	{'difftool--helper', '755'},
    494 	{'filter-branch', '755'},
    495 	{'merge-octopus', '755'},
    496 	{'merge-one-file', '755'},
    497 	{'merge-resolve', '755'},
    498 	{'mergetool', '755'},
    499 	{'quiltimport', '755'},
    500 	{'request-pull', '755'},
    501 	{'submodule', '755'},
    502 	{'web--browse', '755'},
    503 
    504 	-- src/Makefile:/^SCRIPT_LIB.\+=
    505 	{'mergetool--lib', '644'},
    506 	{'sh-i18n', '644'},
    507 	{'sh-setup', '644'},
    508 }
    509 
    510 rule('sh_gen', 'sed -f $dir/sh_gen.sed $in >$out')
    511 for _, script in ipairs(scripts) do
    512 	local name, mode = script[1], script[2]
    513 	build('sh_gen', '$outdir/git-'..name, {'$srcdir/git-'..name..'.sh', '|', '$dir/sh_gen.sed'})
    514 	file('libexec/git-core/git-'..name, mode, '$outdir/git-'..name)
    515 end
    516 
    517 sym('bin/git-shell', '../libexec/git-core/git-shell')
    518 for _, name in ipairs({'git-receive-pack', 'git-upload-archive', 'git-upload-pack'}) do
    519 	sym('bin/'..name, 'git')
    520 end
    521 
    522 -- templates
    523 dir('share/git-core/templates/branches', '755')
    524 file('share/git-core/templates/description', '644', '$srcdir/templates/this--description')
    525 file('share/git-core/templates/info/exclude', '644', '$srcdir/templates/info--exclude')
    526 -- Skip the sample hooks and install an empty directory instead.
    527 dir('share/git-core/templates/hooks', '755')
    528 
    529 man(expand({'man/', lines('man.txt')}))
    530 
    531 fetch('local')