Corrected the dependency list in the Makefile for "modules", which

should depend on database/database.h;  otherwise running distributed
make can start compiling modules before the database.h file is
created.
This commit is contained in:
Tim Edwards 2019-07-14 12:07:38 -04:00
parent d95d8ba2ef
commit c31b305848
12 changed files with 79 additions and 47 deletions

View File

@ -47,7 +47,7 @@ database/database.h: database/database.h.in
@echo --- making header file database/database.h @echo --- making header file database/database.h
${SCRIPTS}/makedbh database/database.h.in database/database.h ${SCRIPTS}/makedbh database/database.h.in database/database.h
modules: modules: database/database.h depend
@echo --- making modules @echo --- making modules
for dir in ${MODULES} ${PROGRAMS}; do \ for dir in ${MODULES} ${PROGRAMS}; do \
(cd $$dir && ${MAKE} module); done (cd $$dir && ${MAKE} module); done

View File

@ -12,8 +12,9 @@ CIFmain.o: CIFmain.c ../tcltk/tclmagic.h ../utils/magic.h \
../windows/windows.h ../dbwind/dbwind.h ../utils/styles.h ../windows/windows.h ../dbwind/dbwind.h ../utils/styles.h
CIFrdcl.o: CIFrdcl.c ../utils/magic.h ../utils/malloc.h \ CIFrdcl.o: CIFrdcl.c ../utils/magic.h ../utils/malloc.h \
../utils/geometry.h ../tiles/tile.h ../utils/hash.h ../utils/undo.h \ ../utils/geometry.h ../tiles/tile.h ../utils/hash.h ../utils/undo.h \
../database/database.h ../cif/CIFint.h ../cif/CIFread.h ../utils/utils.h \ ../database/database.h ../cif/CIFint.h ../cif/CIFread.h ../cif/cif.h \
../windows/windows.h ../dbwind/dbwind.h ../utils/main.h ../drc/drc.h ../calma/calma.h ../utils/utils.h ../windows/windows.h \
../dbwind/dbwind.h ../utils/main.h ../drc/drc.h
CIFrdpt.o: CIFrdpt.c ../utils/magic.h ../utils/geometry.h ../tiles/tile.h \ CIFrdpt.o: CIFrdpt.c ../utils/magic.h ../utils/geometry.h ../tiles/tile.h \
../utils/hash.h ../utils/malloc.h ../database/database.h \ ../utils/hash.h ../utils/malloc.h ../database/database.h \
../windows/windows.h ../utils/main.h ../cif/CIFint.h ../cif/CIFread.h ../windows/windows.h ../utils/main.h ../cif/CIFint.h ../cif/CIFread.h

View File

@ -40,11 +40,12 @@ CmdLQ.o: CmdLQ.c ../tcltk/tclmagic.h ../utils/magic.h ../utils/malloc.h \
../netmenu/netmenu.h ../netmenu/netmenu.h
CmdRS.o: CmdRS.c ../tcltk/tclmagic.h ../utils/magic.h ../utils/stack.h \ CmdRS.o: CmdRS.c ../tcltk/tclmagic.h ../utils/magic.h ../utils/stack.h \
../utils/geometry.h ../utils/utils.h ../tiles/tile.h ../utils/hash.h \ ../utils/geometry.h ../utils/utils.h ../tiles/tile.h ../utils/hash.h \
../database/database.h ../database/fonts.h ../windows/windows.h \ ../utils/styles.h ../database/database.h ../database/fonts.h \
../dbwind/dbwind.h ../utils/main.h ../commands/commands.h \ ../windows/windows.h ../dbwind/dbwind.h ../utils/main.h \
../textio/textio.h ../graphics/graphics.h ../utils/tech.h ../drc/drc.h \ ../commands/commands.h ../textio/textio.h ../graphics/graphics.h \
../textio/txcommands.h ../utils/malloc.h ../utils/netlist.h \ ../utils/tech.h ../drc/drc.h ../textio/txcommands.h ../utils/malloc.h \
../netmenu/netmenu.h ../select/select.h ../utils/signals.h ../sim/sim.h ../utils/netlist.h ../netmenu/netmenu.h ../select/select.h \
../utils/signals.h ../sim/sim.h
CmdTZ.o: CmdTZ.c ../tcltk/tclmagic.h ../utils/magic.h ../utils/malloc.h \ CmdTZ.o: CmdTZ.c ../tcltk/tclmagic.h ../utils/magic.h ../utils/malloc.h \
../utils/geometry.h ../utils/utils.h ../tiles/tile.h ../utils/hash.h \ ../utils/geometry.h ../utils/utils.h ../tiles/tile.h ../utils/hash.h \
../database/database.h ../windows/windows.h ../dbwind/dbwind.h \ ../database/database.h ../windows/windows.h ../dbwind/dbwind.h \

View File

@ -15,10 +15,10 @@ DRCcontin.o: DRCcontin.c ../tcltk/tclmagic.h ../utils/magic.h \
../dbwind/dbwtech.h ../utils/main.h ../commands/commands.h ../drc/drc.h \ ../dbwind/dbwtech.h ../utils/main.h ../commands/commands.h ../drc/drc.h \
../utils/signals.h ../graphics/graphics.h ../utils/undo.h \ ../utils/signals.h ../graphics/graphics.h ../utils/undo.h \
../utils/malloc.h ../utils/malloc.h
DRCmain.o: DRCmain.c ../utils/magic.h ../utils/malloc.h \ DRCmain.o: DRCmain.c ../tcltk/tclmagic.h ../utils/magic.h \
../textio/textio.h ../utils/geometry.h ../tiles/tile.h ../utils/hash.h \ ../utils/malloc.h ../textio/textio.h ../utils/geometry.h ../tiles/tile.h \
../database/database.h ../windows/windows.h ../dbwind/dbwind.h \ ../utils/hash.h ../database/database.h ../windows/windows.h \
../drc/drc.h ../utils/undo.h ../dbwind/dbwind.h ../drc/drc.h ../utils/undo.h
DRCsubcell.o: DRCsubcell.c ../utils/magic.h ../textio/textio.h \ DRCsubcell.o: DRCsubcell.c ../utils/magic.h ../textio/textio.h \
../utils/geometry.h ../tiles/tile.h ../utils/hash.h \ ../utils/geometry.h ../tiles/tile.h ../utils/hash.h \
../database/database.h ../drc/drc.h ../windows/windows.h \ ../database/database.h ../drc/drc.h ../windows/windows.h \

View File

@ -1,3 +0,0 @@
extcheck.o: extcheck.c ../utils/magic.h ../utils/paths.h \
../utils/geometry.h ../utils/hash.h ../utils/utils.h \
../utils/pathvisit.h ../extflat/extflat.h ../utils/runstats.h

View File

@ -9,7 +9,7 @@ ExtBasic.o: ExtBasic.c ../tcltk/tclmagic.h ../utils/magic.h \
../database/database.h ../utils/malloc.h ../textio/textio.h \ ../database/database.h ../utils/malloc.h ../textio/textio.h \
../debug/debug.h ../extract/extract.h ../extract/extractInt.h \ ../debug/debug.h ../extract/extract.h ../extract/extractInt.h \
../extract/extDebugInt.h ../utils/signals.h ../windows/windows.h \ ../extract/extDebugInt.h ../utils/signals.h ../windows/windows.h \
../dbwind/dbwind.h ../utils/styles.h ../utils/stack.h ../dbwind/dbwind.h ../utils/styles.h ../utils/stack.h ../utils/utils.h
ExtCell.o: ExtCell.c ../utils/magic.h ../utils/geometry.h \ ExtCell.o: ExtCell.c ../utils/magic.h ../utils/geometry.h \
../utils/styles.h ../tiles/tile.h ../utils/hash.h ../database/database.h \ ../utils/styles.h ../tiles/tile.h ../utils/hash.h ../database/database.h \
../utils/malloc.h ../textio/textio.h ../debug/debug.h \ ../utils/malloc.h ../textio/textio.h ../debug/debug.h \
@ -57,8 +57,8 @@ ExtRegion.o: ExtRegion.c ../utils/magic.h ../utils/geometry.h \
../tiles/tile.h ../utils/hash.h ../database/database.h ../utils/malloc.h \ ../tiles/tile.h ../utils/hash.h ../database/database.h ../utils/malloc.h \
../textio/textio.h ../debug/debug.h ../extract/extract.h \ ../textio/textio.h ../debug/debug.h ../extract/extract.h \
../extract/extractInt.h ../extract/extDebugInt.h ../utils/signals.h ../extract/extractInt.h ../extract/extDebugInt.h ../utils/signals.h
ExtSubtree.o: ExtSubtree.c ../utils/magic.h ../utils/geometry.h \ ExtSubtree.o: ExtSubtree.c ../tcltk/tclmagic.h ../utils/magic.h \
../utils/geofast.h ../tiles/tile.h ../utils/hash.h \ ../utils/geometry.h ../utils/geofast.h ../tiles/tile.h ../utils/hash.h \
../database/database.h ../utils/malloc.h ../textio/textio.h \ ../database/database.h ../utils/malloc.h ../textio/textio.h \
../debug/debug.h ../extract/extract.h ../extract/extractInt.h \ ../debug/debug.h ../extract/extract.h ../extract/extractInt.h \
../extract/extDebugInt.h ../utils/signals.h ../windows/windows.h \ ../extract/extDebugInt.h ../utils/signals.h ../windows/windows.h \
@ -67,7 +67,8 @@ ExtTech.o: ExtTech.c ../tcltk/tclmagic.h ../utils/magic.h \
../utils/utils.h ../utils/geometry.h ../tiles/tile.h ../utils/hash.h \ ../utils/utils.h ../utils/geometry.h ../tiles/tile.h ../utils/hash.h \
../database/database.h ../database/databaseInt.h ../utils/malloc.h \ ../database/database.h ../database/databaseInt.h ../utils/malloc.h \
../textio/textio.h ../utils/tech.h ../debug/debug.h ../extract/extract.h \ ../textio/textio.h ../utils/tech.h ../debug/debug.h ../extract/extract.h \
../extract/extractInt.h ../extract/extDebugInt.h ../cif/CIFint.h ../extract/extractInt.h ../extract/extDebugInt.h ../cif/CIFint.h \
../cif/cif.h
ExtTest.o: ExtTest.c ../utils/magic.h ../utils/utils.h \ ExtTest.o: ExtTest.c ../utils/magic.h ../utils/utils.h \
../utils/geometry.h ../utils/styles.h ../tiles/tile.h ../utils/hash.h \ ../utils/geometry.h ../utils/styles.h ../tiles/tile.h ../utils/hash.h \
../database/database.h ../utils/malloc.h ../windows/windows.h \ ../database/database.h ../utils/malloc.h ../windows/windows.h \

View File

@ -93,10 +93,10 @@ grTOGL2.o: grTOGL2.c ../tcltk/tclmagic.h ../utils/magic.h \
grTOGLInt.h grTOGLInt.h
grTOGL3.o: grTOGL3.c ../tcltk/tclmagic.h ../utils/magic.h \ grTOGL3.o: grTOGL3.c ../tcltk/tclmagic.h ../utils/magic.h \
../utils/geometry.h ../utils/malloc.h ../windows/windows.h \ ../utils/geometry.h ../utils/malloc.h ../windows/windows.h \
../graphics/graphics.h ../graphics/graphicsInt.h ../textio/textio.h \ ../graphics/graphics.h ../graphics/graphicsInt.h ../dbwind/dbwind.h \
../utils/signals.h ../utils/utils.h ../utils/hash.h \ ../database/database.h ../tiles/tile.h ../utils/hash.h \
../graphics/grTOGLInt.h ../graphics/grTkCommon.h ../database/fonts.h \ ../textio/textio.h ../utils/signals.h ../utils/utils.h \
../tiles/tile.h ../graphics/grTOGLInt.h ../graphics/grTkCommon.h ../database/fonts.h
grTOGL4.o: grTOGL4.c ../tcltk/tclmagic.h ../utils/magic.h \ grTOGL4.o: grTOGL4.c ../tcltk/tclmagic.h ../utils/magic.h \
../utils/magsgtty.h ../textio/textio.h ../utils/geometry.h \ ../utils/magsgtty.h ../textio/textio.h ../utils/geometry.h \
../windows/windows.h ../graphics/graphics.h ../graphics/graphicsInt.h \ ../windows/windows.h ../graphics/graphics.h ../graphics/graphicsInt.h \
@ -136,3 +136,28 @@ X11Helper.o: X11Helper.c
grX11thread.o: grX11thread.c ../utils/magic.h ../utils/geometry.h \ grX11thread.o: grX11thread.c ../utils/magic.h ../utils/geometry.h \
../graphics/graphics.h ../windows/windows.h ../graphics/graphicsInt.h \ ../graphics/graphics.h ../windows/windows.h ../graphics/graphicsInt.h \
grX11Int.h grX11Int.h
grTCairo1.o: grTCairo1.c ../tcltk/tclmagic.h ../utils/main.h \
../windows/windows.h ../utils/magic.h ../utils/geometry.h \
../database/database.h ../tiles/tile.h ../utils/hash.h ../utils/malloc.h \
../utils/magsgtty.h ../graphics/graphics.h ../graphics/graphicsInt.h \
../textio/textio.h ../textio/txcommands.h ../utils/signals.h \
../utils/utils.h ../drc/drc.h ../utils/macros.h \
../graphics/grTCairoInt.h ../utils/paths.h ../graphics/grTkCommon.h
grTCairo2.o: grTCairo2.c ../tcltk/tclmagic.h ../utils/magic.h \
../textio/textio.h ../utils/geometry.h ../graphics/glyphs.h \
../windows/windows.h ../graphics/graphics.h ../graphics/graphicsInt.h \
grTCairoInt.h ../textio/txcommands.h
grTCairo3.o: grTCairo3.c ../tcltk/tclmagic.h ../utils/magic.h \
../utils/geometry.h ../utils/malloc.h ../windows/windows.h \
../graphics/graphics.h ../graphics/graphicsInt.h ../dbwind/dbwind.h \
../database/database.h ../tiles/tile.h ../utils/hash.h \
../textio/textio.h ../utils/signals.h ../utils/utils.h \
../graphics/grTCairoInt.h ../graphics/grTkCommon.h ../database/fonts.h
grTCairo4.o: grTCairo4.c ../tcltk/tclmagic.h ../utils/magic.h \
../utils/magsgtty.h ../textio/textio.h ../utils/geometry.h \
../windows/windows.h ../graphics/graphics.h ../graphics/graphicsInt.h \
../graphics/grTkCommon.h ../textio/txcommands.h grTCairoInt.h
grTCairo5.o: grTCairo5.c ../tcltk/tclmagic.h ../utils/magic.h \
../utils/styles.h ../utils/hash.h ../textio/textio.h ../utils/geometry.h \
../graphics/glyphs.h ../windows/windows.h ../graphics/graphics.h \
../graphics/graphicsInt.h grTkCommon.h grTCairoInt.h

View File

@ -19,7 +19,7 @@ lefRead.o: lefRead.c ../tcltk/tclmagic.h ../utils/magic.h \
../utils/geometry.h ../tiles/tile.h ../utils/hash.h ../utils/undo.h \ ../utils/geometry.h ../tiles/tile.h ../utils/hash.h ../utils/undo.h \
../database/database.h ../windows/windows.h ../graphics/graphics.h \ ../database/database.h ../windows/windows.h ../graphics/graphics.h \
../dbwind/dbwind.h ../utils/malloc.h ../textio/textio.h ../cif/cif.h \ ../dbwind/dbwind.h ../utils/malloc.h ../textio/textio.h ../cif/cif.h \
../cif/CIFint.h ../lef/lefInt.h ../cif/CIFint.h ../cif/CIFread.h ../lef/lefInt.h
defRead.o: defRead.c ../tcltk/tclmagic.h ../utils/magic.h \ defRead.o: defRead.c ../tcltk/tclmagic.h ../utils/magic.h \
../utils/geometry.h ../tiles/tile.h ../utils/hash.h ../utils/undo.h \ ../utils/geometry.h ../tiles/tile.h ../utils/hash.h ../utils/undo.h \
../database/database.h ../windows/windows.h ../dbwind/dbwind.h \ ../database/database.h ../windows/windows.h ../dbwind/dbwind.h \

View File

@ -22,6 +22,12 @@ lispFrame.o: lispFrame.c ../lisp/lisp.h lispInt.h ../utils/magic.h \
lispTrace.o: lispTrace.c ../lisp/lisp.h lispInt.h ../utils/magic.h \ lispTrace.o: lispTrace.c ../lisp/lisp.h lispInt.h ../utils/magic.h \
../utils/geometry.h ../textio/txcommands.h ../textio/textio.h \ ../utils/geometry.h ../textio/txcommands.h ../textio/textio.h \
../utils/malloc.h ../utils/malloc.h
lispMagic.o: lispMagic.c ../lisp/lisp.h lispInt.h ../utils/magic.h \
../utils/geometry.h ../textio/txcommands.h lispargs.h ../utils/geofast.h \
../textio/textio.h ../utils/malloc.h ../tiles/tile.h ../utils/hash.h \
../database/database.h ../windows/windows.h ../dbwind/dbwind.h \
../utils/main.h ../commands/commands.h ../utils/utils.h \
../select/select.h
lispArith.o: lispArith.c ../lisp/lisp.h lispInt.h ../utils/magic.h \ lispArith.o: lispArith.c ../lisp/lisp.h lispInt.h ../utils/magic.h \
../utils/geometry.h ../textio/txcommands.h lispargs.h ../textio/textio.h \ ../utils/geometry.h ../textio/txcommands.h lispargs.h ../textio/textio.h \
../utils/malloc.h ../utils/malloc.h

View File

@ -1,10 +1,10 @@
txCommands.o: txCommands.c ../utils/magsgtty.h ../utils/magic.h \ txCommands.o: txCommands.c ../tcltk/tclmagic.h ../utils/magsgtty.h \
../textio/textio.h ../utils/geometry.h ../textio/txcommands.h \ ../utils/magic.h ../textio/textio.h ../utils/geometry.h \
../textio/textioInt.h ../utils/macros.h ../utils/hash.h \ ../textio/txcommands.h ../textio/textioInt.h ../utils/macros.h \
../windows/windows.h ../tiles/tile.h ../database/database.h \ ../utils/hash.h ../windows/windows.h ../tiles/tile.h \
../dbwind/dbwind.h ../drc/drc.h ../utils/signals.h \ ../database/database.h ../dbwind/dbwind.h ../drc/drc.h \
../graphics/graphics.h ../utils/dqueue.h ../utils/malloc.h \ ../utils/signals.h ../graphics/graphics.h ../utils/dqueue.h \
../utils/utils.h ../lisp/lisp.h ../utils/malloc.h ../utils/utils.h ../lisp/lisp.h
txInput.o: txInput.c ../utils/magsgtty.h ../utils/magic.h ../utils/main.h \ txInput.o: txInput.c ../utils/magsgtty.h ../utils/magic.h ../utils/main.h \
../windows/windows.h ../utils/geometry.h ../database/database.h \ ../windows/windows.h ../utils/geometry.h ../database/database.h \
../tiles/tile.h ../utils/hash.h ../textio/textio.h \ ../tiles/tile.h ../utils/hash.h ../textio/textio.h \

View File

@ -18,19 +18,20 @@ list.o: list.c ../utils/magic.h ../utils/utils.h ../utils/malloc.h \
lookup.o: lookup.c ../utils/magic.h ../utils/utils.h lookup.o: lookup.c ../utils/magic.h ../utils/utils.h
lookupany.o: lookupany.c lookupany.o: lookupany.c
lookupfull.o: lookupfull.c ../utils/magic.h lookupfull.o: lookupfull.c ../utils/magic.h
macros.o: macros.c ../utils/magic.h ../utils/utils.h ../utils/hash.h \ macros.o: macros.c ../utils/magic.h ../utils/main.h ../windows/windows.h \
../utils/malloc.h ../utils/macros.h ../windows/windows.h \
../utils/geometry.h
main.o: main.c ../utils/main.h ../windows/windows.h ../utils/magic.h \
../utils/geometry.h ../database/database.h ../tiles/tile.h \ ../utils/geometry.h ../database/database.h ../tiles/tile.h \
../utils/hash.h ../utils/malloc.h ../utils/magsgtty.h ../utils/macros.h \ ../utils/hash.h ../utils/utils.h ../utils/malloc.h ../utils/macros.h
../textio/textio.h ../textio/txcommands.h ../utils/tech.h ../drc/drc.h \ main.o: main.c ../tcltk/tclmagic.h ../utils/main.h ../windows/windows.h \
../graphics/graphics.h ../dbwind/dbwind.h ../commands/commands.h \ ../utils/magic.h ../utils/geometry.h ../database/database.h \
../utils/signals.h ../utils/utils.h ../utils/runstats.h ../cif/cif.h \ ../tiles/tile.h ../utils/hash.h ../utils/malloc.h ../utils/magsgtty.h \
../router/router.h ../lef/lef.h ../extract/extract.h ../utils/undo.h \ ../utils/macros.h ../textio/textio.h ../textio/txcommands.h \
../netmenu/netmenu.h ../plow/plow.h ../utils/paths.h ../wiring/wiring.h \ ../utils/tech.h ../drc/drc.h ../graphics/graphics.h ../dbwind/dbwind.h \
../plot/plot.h ../sim/sim.h ../utils/list.h ../mzrouter/mzrouter.h \ ../commands/commands.h ../utils/signals.h ../utils/utils.h \
../lisp/lisp.h ../graphics/wind3d.h ../utils/runstats.h ../cif/cif.h ../router/router.h ../lef/lef.h \
../extract/extract.h ../utils/undo.h ../netmenu/netmenu.h ../plow/plow.h \
../utils/paths.h ../wiring/wiring.h ../plot/plot.h ../sim/sim.h \
../utils/list.h ../mzrouter/mzrouter.h ../lisp/lisp.h \
../graphics/wind3d.h
malloc.o: malloc.c ../tcltk/tclmagic.h ../utils/magic.h ../utils/malloc.h malloc.o: malloc.c ../tcltk/tclmagic.h ../utils/magic.h ../utils/malloc.h
match.o: match.c ../utils/magic.h ../textio/textio.h match.o: match.c ../utils/magic.h ../textio/textio.h
maxrect.o: maxrect.c ../utils/maxrect.h ../database/database.h \ maxrect.o: maxrect.c ../utils/maxrect.h ../database/database.h \
@ -63,9 +64,9 @@ set.o: set.c ../utils/magic.h ../utils/utils.h ../utils/geometry.h \
show.o: show.c ../utils/magic.h ../utils/geometry.h ../windows/windows.h \ show.o: show.c ../utils/magic.h ../utils/geometry.h ../windows/windows.h \
../graphics/graphics.h ../utils/hash.h ../tiles/tile.h \ ../graphics/graphics.h ../utils/hash.h ../tiles/tile.h \
../database/database.h ../dbwind/dbwind.h ../database/database.h ../dbwind/dbwind.h
tech.o: tech.c ../utils/magic.h ../utils/geometry.h ../utils/utils.h \ tech.o: tech.c ../database/database.h ../tiles/tile.h ../utils/magic.h \
../utils/tech.h ../textio/textio.h ../windows/windows.h \ ../utils/geometry.h ../utils/hash.h ../utils/utils.h ../utils/tech.h \
../utils/malloc.h ../textio/textio.h ../windows/windows.h ../utils/malloc.h
touchtypes.o: touchtypes.c ../utils/magic.h ../utils/geometry.h \ touchtypes.o: touchtypes.c ../utils/magic.h ../utils/geometry.h \
../utils/geofast.h ../tiles/tile.h ../utils/hash.h \ ../utils/geofast.h ../tiles/tile.h ../utils/hash.h \
../database/database.h ../database/database.h

View File

@ -10,7 +10,7 @@ windCmdAM.o: windCmdAM.c ../tcltk/tclmagic.h ../utils/magic.h \
../utils/signals.h ../graphics/graphics.h ../utils/styles.h \ ../utils/signals.h ../graphics/graphics.h ../utils/styles.h \
../textio/txcommands.h ../graphics/glyphs.h ../windows/windInt.h \ ../textio/txcommands.h ../graphics/glyphs.h ../windows/windInt.h \
../tiles/tile.h ../database/database.h ../dbwind/dbwind.h \ ../tiles/tile.h ../database/database.h ../dbwind/dbwind.h \
../utils/utils.h ../utils/utils.h ../cif/cif.h
windCmdNR.o: windCmdNR.c ../utils/magic.h ../textio/textio.h \ windCmdNR.o: windCmdNR.c ../utils/magic.h ../textio/textio.h \
../utils/geometry.h ../windows/windows.h ../graphics/glyphs.h \ ../utils/geometry.h ../windows/windows.h ../graphics/glyphs.h \
../windows/windInt.h ../tiles/tile.h ../utils/hash.h \ ../windows/windInt.h ../tiles/tile.h ../utils/hash.h \