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')