opkg

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

gen.lua (9310B)


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