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