don't build gdb for dvp-elf
[deliverable/binutils-gdb.git] / configure.in
index f1a165ebe26f5f71fe50c64a0355a346206cae85..60f81a8c0dba5b45ec9875391c51164b306c1dfe 100644 (file)
@@ -41,7 +41,7 @@
 
 # these libraries are used by various programs built for the host environment
 #
-host_libs="mmalloc libiberty opcodes bfd readline gash db tcl tk tclX itcl tix"
+host_libs="mmalloc libiberty opcodes bfd readline gash db tcl tk tclX itcl tix libgui"
 # start-sanitize-ide
 host_libs="${host_libs} libide"
 # end-sanitize-ide
@@ -53,7 +53,7 @@ fi
 # these tools are built for the host environment
 # Note, the powerpc-eabi build depends on sim occurring before gdb in order to
 # know that we are building the simulator.
-host_tools="texinfo byacc flex bison binutils ld gas gcc sim gdb make patch prms send-pr gprof gdbtest tgas etc expect dejagnu bash m4 autoconf automake ispell grep diff rcs cvs fileutils shellutils time textutils wdiff find emacs emacs19 uudecode hello tar gzip indent recode release sed utils guile perl apache inet gawk findutils sn"
+host_tools="texinfo byacc flex bison binutils ld gas gcc sim gdb make patch prms send-pr gprof gdbtest tgas etc expect dejagnu bash m4 autoconf automake ispell grep diff rcs cvssrc fileutils shellutils time textutils wdiff find emacs emacs19 uudecode hello tar gzip indent recode release sed utils guile perl apache inet gawk findutils sn"
 # start-sanitize-ide
 host_tools="${host_tools} ilu vmake jstools"
 # end-sanitize-ide
@@ -85,11 +85,11 @@ target_tools="target-examples target-groff target-gperf"
 #
 # This must be a single line because of the way it is searched by grep in
 # the code below.
-native_only="autoconf automake cvs emacs emacs19 fileutils find gawk grep gzip hello indent ispell m4 rcs recode sed shellutils tar textutils gash uudecode wdiff gprof target-groff guile perl apache inet time bash prms sn gnuserv target-gperf"
+native_only="autoconf automake cvssrc emacs emacs19 fileutils find gawk grep gzip hello indent ispell m4 rcs recode sed shellutils tar textutils gash uudecode wdiff gprof target-groff guile perl apache inet time bash prms sn gnuserv target-gperf"
 
 # directories to be built in a cross environment only
 #
-cross_only="target-libgloss target-newlib"
+cross_only="target-libgloss target-newlib target-cygmon target-opcodes"
 
 ## All tools belong in one of the four categories, and are assigned above
 ## We assign ${configdirs} this way to remove all embedded newlines.  This
@@ -113,42 +113,117 @@ appdirs=""
 # Work in distributions that contain no compiler tools, like Autoconf.
 if [ -d ${srcdir}/config ]; then
 case "${host}" in
-  m68k-hp-hpux*)         host_makefile_frag=config/mh-hp300 ;;
-  m68k-apollo-sysv*)      host_makefile_frag=config/mh-apollo68 ;;
-  m68k-apollo-bsd*)       host_makefile_frag=config/mh-a68bsd ;;
-  m88k-dg-dgux*)         host_makefile_frag=config/mh-dgux ;;
-  m88k-harris-cxux*)     host_makefile_frag=config/mh-cxux ;;
-  m88k-motorola-sysv*)    host_makefile_frag=config/mh-delta88;;
-  mips*-dec-ultrix*)      host_makefile_frag=config/mh-decstation ;;
-  mips*-nec-sysv4*)      host_makefile_frag=config/mh-necv4 ;;
-  mips*-sgi-irix6*)      host_makefile_frag=config/mh-irix6 ;;
-  mips*-sgi-irix5*)      host_makefile_frag=config/mh-irix5 ;;
-  mips*-sgi-irix4*)       host_makefile_frag=config/mh-irix4 ;;
-  mips*-sgi-irix3*)       host_makefile_frag=config/mh-sysv ;;
-  mips*-*-sysv4*)        host_makefile_frag=config/mh-sysv4 ;;
-  mips*-*-sysv*)         host_makefile_frag=config/mh-riscos ;;
-  i[3456]86-*-dgux*)     host_makefile_frag=config/mh-dgux386 ;;
-  i[3456]86-ncr-sysv4.3)  host_makefile_frag=config/mh-ncrsvr43 ;;
-  i[3456]86-ncr-sysv4*)   host_makefile_frag=config/mh-ncr3000 ;;
-  i[3456]86-*-sco3.2v5*)  host_makefile_frag=config/mh-sysv ;;
-  i[3456]86-*-sco*)       host_makefile_frag=config/mh-sco ;;
-  i[3456]86-*-isc*)      host_makefile_frag=config/mh-sysv ;;
-  i[3456]86-*-solaris2*)  host_makefile_frag=config/mh-sysv4 ;;
-  i[3456]86-*-aix*)      host_makefile_frag=config/mh-aix386 ;;
-  i[3456]86-*-go32*)     host_makefile_frag=config/mh-go32 ;;
-  i[3456]86-*-msdosdjgpp*) host_makefile_frag=config/mh-go32 ;;
-  *-cygwin32*)           host_makefile_frag=config/mh-cygwin32 ;;
-  *-windows*)            host_makefile_frag=config/mh-windows ;;
-  vax-*-ultrix2*)         host_makefile_frag=config/mh-vaxult2 ;;
-  *-*-solaris2*)          host_makefile_frag=config/mh-solaris ;;
-  m68k-sun-sunos*)       host_makefile_frag=config/mh-sun3 ;;
-  *-hp-hpux[78]*)         host_makefile_frag=config/mh-hpux8 ;;
-  *-hp-hpux*)             host_makefile_frag=config/mh-hpux ;;
-  *-*-hiux*)              host_makefile_frag=config/mh-hpux ;;
-  rs6000-*-lynxos*)      host_makefile_frag=config/mh-lynxrs6k ;;
-  *-*-lynxos*)           host_makefile_frag=config/mh-lynxos ;;
-  *-*-sysv4*)             host_makefile_frag=config/mh-sysv4 ;;
-  *-*-sysv*)              host_makefile_frag=config/mh-sysv ;;
+  m68k-hp-hpux*)
+    host_makefile_frag="${host_makefile_frag} config/mh-hp300"
+    ;;
+  m68k-apollo-sysv*)
+    host_makefile_frag="${host_makefile_frag} config/mh-apollo68"
+    ;;
+  m68k-apollo-bsd*)
+    host_makefile_frag="${host_makefile_frag} config/mh-a68bsd"
+    ;;
+  m88k-dg-dgux*)
+    host_makefile_frag="${host_makefile_frag} config/mh-dgux"
+    ;;
+  m88k-harris-cxux*)
+    host_makefile_frag="${host_makefile_frag} config/mh-cxux"
+    ;;
+  m88k-motorola-sysv*)
+    host_makefile_frag="${host_makefile_frag} config/mh-delta88"
+    ;;
+  mips*-dec-ultrix*)
+    host_makefile_frag="${host_makefile_frag} config/mh-decstation"
+    ;;
+  mips*-nec-sysv4*)
+    host_makefile_frag="${host_makefile_frag} config/mh-necv4"
+    ;;
+  mips*-sgi-irix6*)
+    host_makefile_frag="${host_makefile_frag} config/mh-irix6"
+    ;;
+  mips*-sgi-irix5*)
+    host_makefile_frag="${host_makefile_frag} config/mh-irix5"
+    ;;
+  mips*-sgi-irix4*)
+    host_makefile_frag="${host_makefile_frag} config/mh-irix4"
+    ;;
+  mips*-sgi-irix3*)
+    host_makefile_frag="${host_makefile_frag} config/mh-sysv"
+    ;;
+  mips*-*-sysv4*)
+    host_makefile_frag="${host_makefile_frag} config/mh-sysv4"
+    ;;
+  mips*-*-sysv*)
+    host_makefile_frag="${host_makefile_frag} config/mh-riscos"
+    ;;
+  i[3456]86-*-dgux*)
+    host_makefile_frag="${host_makefile_frag} config/mh-dgux386"
+    ;;
+  i[3456]86-ncr-sysv4.3*)
+    host_makefile_frag="${host_makefile_frag} config/mh-ncrsvr43"
+    ;;
+  i[3456]86-ncr-sysv4*)
+    host_makefile_frag="${host_makefile_frag} config/mh-ncr3000"
+    ;;
+  i[3456]86-*-sco3.2v5*)
+    host_makefile_frag="${host_makefile_frag} config/mh-sysv"
+    ;;
+  i[3456]86-*-sco*)
+    host_makefile_frag="${host_makefile_frag} config/mh-sco"
+    ;;
+  i[3456]86-*-isc*)
+    host_makefile_frag="${host_makefile_frag} config/mh-sysv"
+    ;;
+  i[3456]86-*-solaris2*)
+    host_makefile_frag="${host_makefile_frag} config/mh-sysv4"
+    ;;
+  i[3456]86-*-aix*)
+    host_makefile_frag="${host_makefile_frag} config/mh-aix386"
+    ;;
+  i[3456]86-*-go32*)
+    host_makefile_frag="${host_makefile_frag} config/mh-go32"
+    ;;
+  i[3456]86-*-msdosdjgpp*)
+    host_makefile_frag="${host_makefile_frag} config/mh-go32"
+    ;;
+  *-cygwin32*)
+    host_makefile_frag="${host_makefile_frag} config/mh-cygwin32"
+    ;;
+  *-mingw32*)
+    host_makefile_frag="${host_makefile_frag} config/mh-mingw32"
+    ;;
+  *-windows*)
+    host_makefile_frag="${host_makefile_frag} config/mh-windows"
+    ;;
+  vax-*-ultrix2*)
+    host_makefile_frag="${host_makefile_frag} config/mh-vaxult2"
+    ;;
+  *-*-solaris2*)
+    host_makefile_frag="${host_makefile_frag} config/mh-solaris"
+    ;;
+  m68k-sun-sunos*)
+    host_makefile_frag="${host_makefile_frag} config/mh-sun3"
+    ;;
+  *-hp-hpux[78]*)
+    host_makefile_frag="${host_makefile_frag} config/mh-hpux8"
+    ;;
+  *-hp-hpux*)
+    host_makefile_frag="${host_makefile_frag} config/mh-hpux"
+    ;;
+  *-*-hiux*)
+    host_makefile_frag="${host_makefile_frag} config/mh-hpux"
+    ;;
+  rs6000-*-lynxos*)
+    host_makefile_frag="${host_makefile_frag} config/mh-lynxrs6k"
+    ;;
+  *-*-lynxos*)
+    host_makefile_frag="${host_makefile_frag} config/mh-lynxos"
+    ;;
+  *-*-sysv4*)
+    host_makefile_frag="${host_makefile_frag} config/mh-sysv4"
+    ;;
+  *-*-sysv*)
+    host_makefile_frag="${host_makefile_frag} config/mh-sysv"
+    ;;
 esac
 fi
 
@@ -192,35 +267,59 @@ case "${enable_shared}" in
 esac
 
 if [ x${shared} = xyes ]; then
-  waugh=
   case "${host}" in
-    hppa*)             waugh=config/mh-papic ;;
-    i[3456]86-*)       waugh=config/mh-x86pic ;;
-    sparc64-*)         waugh=config/mh-sparcpic ;;
-    powerpc*-*)                waugh=config/mh-ppcpic ;;
-    *)                 waugh=config/mh-${host_cpu}pic ;;
+    hppa*)
+      host_makefile_frag="${host_makefile_frag} config/mh-papic"
+      ;;
+    i[3456]86-*)
+      host_makefile_frag="${host_makefile_frag} config/mh-x86pic"
+      ;;
+    sparc64-*)
+      host_makefile_frag="${host_makefile_frag} config/mh-sparcpic"
+      ;;
+    powerpc*-*)
+      host_makefile_frag="${host_makefile_frag} config/mh-ppcpic"
+      ;;
+    alpha-*-linux*)
+      host_makefile_frag="${host_makefile_frag} config/mh-elfalphapic"
+      ;;
+    *)
+      if test -f ${srcdir}/config/mh-${host_cpu}pic; then
+        host_makefile_frag="${host_makefile_frag} config/mh-${host_cpu}pic"
+      fi
+      ;;
   esac
-  if [ -f ${srcdir}/${waugh} ]; then
-    if [ -n "${host_makefile_frag}" ] ; then
-      cat ${srcdir}/${host_makefile_frag} > mh-frag
-      cat ${srcdir}/${waugh} >> mh-frag
-      host_makefile_frag=mh-frag
-    else
-      host_makefile_frag=${waugh}
-    fi
-  fi
+fi
+
+rm -f mh-frag
+if [ -n "${host_makefile_frag}" ] ; then
+  for f in ${host_makefile_frag}
+  do
+    cat ${srcdir}/$f >> mh-frag
+  done
+  host_makefile_frag=mh-frag
 fi
 
 # per-target:
 
 case "${target}" in
-  v810*)               target_makefile_frag=config/mt-v810 ;;
-  i[3456]86-*-netware*) target_makefile_frag=config/mt-netware ;;
+  v810*)
+    target_makefile_frag="${target_makefile_frag} config/mt-v810"
+    ;;
+  i[3456]86-*-netware*)
+    target_makefile_frag="${target_makefile_frag} config/mt-netware"
+    ;;
+  powerpc-*-netware*)
+    target_makefile_frag="${target_makefile_frag} config/mt-netware"
+    ;;
 # start-sanitize-r5900
-  mips64vr5900*-*-*)    target_makefile_frag=config/mt-r5900 ;;
+  mips64r59*)
+    target_makefile_frag="${target_makefile_frag} config/mt-r5900"
+    ;;
 # end-sanitize-r5900
-  powerpc-*-netware*)   target_makefile_frag=config/mt-netware ;;
-  *-*-linux-gnu)        target_makefile_frag=config/mt-linux ;;
+  *-*-linux-gnu)
+    target_makefile_frag="${target_makefile_frag} config/mt-linux"
+    ;;
 esac
 
 skipdirs=
@@ -235,7 +334,7 @@ case ${with_x} in
   yes | "")  # the default value for this tree is that X11 is available
        ;;
   no)
-       skipdirs="${skipdirs} tk gash"
+       skipdirs="${skipdirs} tk libgui gash"
 # start-sanitize-ide
        skipdirs="${skipdirs} libide vmake jstools"
 # end-sanitize-ide
@@ -376,6 +475,8 @@ done
 case "${host}" in
        i[3456]86-*-go32*)
          configdirs="$configdirs dosrel" ;;
+       i[3456]86-*-mingw32*)
+         configdirs="$configdirs dosrel" ;;
        *-cygwin32*)
          configdirs="$configdirs dosrel" ;;
 esac
@@ -399,8 +500,12 @@ case "${host}" in
     noconfigdirs="$noconfigdirs libide vmake jstools"
 # end-sanitize-ide
        ;;
-  *-*-cygwin32)
+  i[3456]86-*-mingw32*)
+    # noconfigdirs="tcl tk expect dejagnu make texinfo bison patch flex byacc send-pr uudecode dejagnu diff guile perl apache inet itcl tix db sn gnuserv"
      noconfigdirs="expect dejagnu cvs autoconf automake send-pr gprof rcs guile perl texinfo apache inet"
+       ;;
+  *-*-cygwin32)
+     noconfigdirs="autoconf automake send-pr gprof rcs guile perl texinfo apache inet"
     ;;
   *-*-windows*)
 # This is only used to build WinGDB...
@@ -408,8 +513,11 @@ case "${host}" in
      configdirs="bfd libiberty opcodes readline sim gdb"
      target_configdirs=
     ;;
+  *-*-netbsd*)
+    noconfigdirs="rcs"
+    ;;
   ppc*-*-pe)
-     noconfigdirs="patch diff make tk tcl expect dejagnu cvs autoconf automake texinfo bison send-pr gprof rcs guile perl apache inet itcl tix db sn gnuserv"
+     noconfigdirs="patch diff make tk tcl expect dejagnu cvssrc autoconf automake texinfo bison send-pr gprof rcs guile perl apache inet itcl tix db sn gnuserv"
 # start-sanitize-ide
      noconfigdirs="$noconfigdirs libide vmake jstools"
 # end-sanitize-ide
@@ -436,6 +544,12 @@ case "${target}" in
   alpha*-*-*vms*)
     noconfigdirs="$noconfigdirs gdb ld target-newlib target-libgloss"
     ;;
+  alpha-*-linux*)
+    # newlib is not 64 bit ready
+    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+    # linux has rx in libc
+    skipdirs="$skipdirs target-librx"
+    ;;
   alpha*-*-*)
     # newlib is not 64 bit ready
     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
@@ -449,6 +563,9 @@ case "${target}" in
   arm-*-coff*)
     noconfigdirs="$noconfigdirs target-libgloss"
     ;;
+  thumb-*-coff) # CYGNUS LOCAL nickc/thumb
+    noconfigdirs="$noconfigdirs target-libgloss"
+    ;;
   arm-*-riscix*)
     noconfigdirs="$noconfigdirs ld target-libgloss"
     ;;
@@ -457,10 +574,6 @@ case "${target}" in
     ;;
 # start-sanitize-d30v
   d30v-*-*)
-    noconfigdirs="$noconfigdirs tcl tk expect gcc gdb newlib target-librx target-libg++ target-libstdc++ target-libio target-libgloss itcl tix db sn gnuserv target-libiberty target-newlib target-examples"
-# start-sanitize-ide
-    noconfigdirs="$noconfigdirs libide vmake jstools"
-# end-sanitize-ide
     ;;
 # end-sanitize-d30v
   h8300*-*-* | \
@@ -485,6 +598,17 @@ case "${target}" in
     # but don't build gdb
     noconfigdirs="$noconfigdirs gdb target-libg++ target-libstdc++ target-libio target-librx"
     ;;
+  i[3456]86-*-mingw32*)
+    target_configdirs="$target_configdirs target-mingw"
+    noconfigdirs="$noconfigdirs expect target-libgloss"
+
+    # Can't build gdb for cygwin32 if not native.
+    case "${host}" in
+      i[3456]86-*-mingw32) ;; # keep gdb tcl tk expect etc.
+      *) noconfigdirs="$noconfigdirs gdb tcl tk expect itcl tix db sn gnuserv"
+         ;;
+    esac
+    ;;    
   *-*-cygwin32)
     target_configdirs="$target_configdirs target-winsup"
     noconfigdirs="$noconfigdirs expect target-libgloss"
@@ -535,7 +659,7 @@ case "${target}" in
     ;;
   powerpc-*-aix*)
     # copied from rs6000-*-* entry
-    noconfigdirs="$noconfigdirs gprof cvs target-libgloss"
+    noconfigdirs="$noconfigdirs gprof cvssrc target-libgloss"
     # This is needed until gcc and ld are fixed to work together.
     use_gnu_ld=no
     ;;
@@ -558,7 +682,7 @@ case "${target}" in
   rs6000-*-lynxos*)
     # The CVS server code doesn't work on the RS/6000
     # Newlib makes problems for libg++ in crosses.
-    noconfigdirs="$noconfigdirs target-newlib gprof cvs"
+    noconfigdirs="$noconfigdirs target-newlib gprof cvssrc"
     ;;
   rs6000-*-aix*)
     noconfigdirs="$noconfigdirs gprof"
@@ -602,6 +726,21 @@ case "${target}" in
     esac
     noconfigdirs="$noconfigdirs target-libgloss"
     ;;
+  sparc-*-elf*)
+    if [ x${is_cross_compiler} != xno ] ; then
+          target_configdirs="${target_configdirs} target-cygmon"
+    fi
+    ;;
+  sparc64-*-elf*)
+    if [ x${is_cross_compiler} != xno ] ; then
+          target_configdirs="${target_configdirs} target-cygmon"
+    fi
+    ;;
+  sparclite-*-aout*)
+    if [ x${is_cross_compiler} != xno ] ; then
+          target_configdirs="${target_configdirs} target-cygmon"
+    fi
+    ;;
   sparc-*-sunos4*)
     if [ x${is_cross_compiler} != xno ] ; then
            noconfigdirs="$noconfigdirs gdb gdbtest target-newlib target-libgloss"
@@ -609,6 +748,18 @@ case "${target}" in
            use_gnu_ld=no
     fi
     ;;
+# start-sanitize-sky
+  txvu-*-elf*)
+    noconfigdirs="$noconfigdirs gcc"
+    noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty"
+    noconfigdirs="$noconfigdirs target-librx target-libg++ target-libstdc++ target-libio"
+    ;;
+  dvp-*-elf*)
+    noconfigdirs="$noconfigdirs gcc gdb sim"
+    noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty"
+    noconfigdirs="$noconfigdirs target-librx target-libg++ target-libstdc++ target-libio"
+    ;;
+# end-sanitize-sky
   v810-*-*)
     noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld target-libio target-libg++ target-libstdc++ opcodes target-libgloss"
     ;;
@@ -619,12 +770,10 @@ case "${target}" in
   v850e-*-*)
     noconfigdirs="$noconfigdirs target-libgloss"
     ;;
-# end-sanitize-v850e
-# start-sanitize-v850eq
-  v850eq-*-*)
+  v850ea-*-*)
     noconfigdirs="$noconfigdirs target-libgloss"
     ;;
-# end-sanitize-v850eq
+# end-sanitize-v850e
   vax-*-vms)
     noconfigdirs="$noconfigdirs bfd binutils gdb ld target-newlib opcodes target-libgloss"
     ;;
@@ -642,13 +791,6 @@ case "${target}" in
     ;;    
 esac
 
-# targets that need a second pass
-case "${target}" in
-  *-gm-magic*)
-    noconfigdirs="$noconfigdirs target-libgloss"
-    ;;
-esac
-
 # If we aren't building newlib, then don't build libgloss, since libgloss
 # depends upon some newlib header files.
 case "${noconfigdirs}" in
@@ -808,13 +950,35 @@ fi
 
 if [ x${shared} = xyes ]; then
   case "${target}" in
-    hppa*)             target_makefile_frag=config/mt-papic ;;
-    i[3456]86-*)       target_makefile_frag=config/mt-x86pic ;;
-    powerpc*-*)                target_makefile_frag=config/mt-ppcpic ;;
-    *)                 target_makefile_frag=config/mt-${target_cpu}pic ;;
+    hppa*)
+      target_makefile_frag="${target_makefile_frag} config/mt-papic"
+      ;;
+    i[3456]86-*)
+      target_makefile_frag="${target_makefile_frag} config/mt-x86pic"
+      ;;
+    powerpc*-*)
+      target_makefile_frag="${target_makefile_frag} config/mt-ppcpic"
+      ;;
+    alpha-*-linux*)
+      target_makefile_frag="${target_makefile_frag} config/mt-elfalphapic"
+      ;;
+    *)
+      if test -f ${srcdir}/config/mt-${target_cpu}pic; then
+        target_makefile_frag="${target_makefile_frag} config/mt-${target_cpu}pic"
+      fi
+      ;;
   esac
 fi
 
+rm -f mt-frag
+if [ -n "${target_makefile_frag}" ] ; then
+  for f in ${target_makefile_frag}
+  do
+    cat ${srcdir}/$f >> mt-frag
+  done
+  target_makefile_frag=mt-frag
+fi
+
 # post-target:
 
 # Make sure that the compiler is able to generate an executable.  If it
@@ -871,7 +1035,7 @@ if [ "${shared}" = "yes" ]; then
 
   case "${host}" in
   *-*-hpux*)
-    sed -e 's/RPATH_ENVVAR[    ]*=.*$/RPATH_ENVVAR = SHLIB_PATH/' \
+    sed -e 's/^RPATH_ENVVAR[   ]*=.*$/RPATH_ENVVAR = SHLIB_PATH/' \
        Makefile > Makefile.tem
     rm -f Makefile
     mv -f Makefile.tem Makefile
@@ -879,10 +1043,10 @@ if [ "${shared}" = "yes" ]; then
   esac
 fi
 
-# If we are building for a cygwin32 host, then set INSTALL_PROGRAM_ARGS to
+# If we are building for a win32 host, then set INSTALL_PROGRAM_ARGS to
 # -x.  This will cause programs to be installed with .exe extensions.
 case "${host}" in
-*-*-cygwin32*)
+*-*-cygwin32* | i[3456]86-*-mingw32)
     sed -e 's/^INSTALL_PROGRAM_ARGS[   ]*=.*$/INSTALL_PROGRAM_ARGS = -x/' \
        Makefile > Makefile.tem
     rm -f Makefile
This page took 0.029043 seconds and 4 git commands to generate.