diff --git a/.gitignore b/.gitignore
index 38d0f2e..77cb82d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,3 +6,13 @@
 **/.DS_Store
 **/.Trashes/
 
+# script artifacts
+*_install.log
+*_migrate.log
+
+# autotools artifacts
+scripts/*
+!scripts/configure
+!scripts/configure.ac
+**/Makefile
+**/Makefile.am
diff --git a/Makefile b/Makefile.in
similarity index 68%
rename from Makefile
rename to Makefile.in
index 9f28a08..202fa8d 100644
--- a/Makefile
+++ b/Makefile.in
@@ -11,20 +11,25 @@
 # make
 # 	generates the tech files from source masters.
 #
-# make install-local
+# make install
 #
-# 	installs the tech files locally.
-#
-# make install-dist
-#
-# 	installs the tech files in the git project
-# 	that is used for distribution of software
-# 	across the system.
+# 	installs the tech files.  If the configuration
+#	script has been given the "--with-<PDK>-dist-path="
+#	option, then tech files are installed in the path
+#	(such as a git repository) that is used for
+#	distribution of software across a system.  Otherwise,
+#	files are installed in the local path specified by
+#	the configuration option "--with-<PDK>-local-path=".
 #
 # make clean
 #
 # 	clean up all files generated by 'make'
 # 
+# make veryclean
+#
+# 	clean up all files generated by 'make' and remove
+#	all log files.
+#
 #---------------------------------------------------
 #
 # The following definitions are tied to the contents
@@ -45,11 +50,8 @@
 
 #---------------------------------------------------
 
-install-sky130-local:	sky130
-	(cd sky130 && ${MAKE} install-local)
-
-install-sky130-dist:	sky130
-	(cd sky130 && ${MAKE} install-dist)
+install-sky130:	sky130
+	(cd sky130 && ${MAKE} install)
 
 clean-sky130:
 	(cd sky130 && ${MAKE} clean)
@@ -59,27 +61,18 @@
 
 #---------------------------------------------------
 
-install:
-	${MAKE} install-local
-
-install-local:	${TECHS}	
+install:	${TECHS}	
 	for tech in ${TECHS}; do \
 		${MAKE} install-$${tech}-local; done
 
-install-dist:	${TECHS}
-	for tech in ${TECHS}; do \
-		${MAKE} install-$${tech}-dist; done
-
-#---------------------------------------------------
-
-clean:
+clean:		${TECHS}
 	for tech in ${TECHS}; do \
 		${MAKE} clean-$${tech}; done
 
-veryclean:
+veryclean:	${TECHS}
 	for tech in ${TECHS}; do \
 		${MAKE} veryclean-$${tech}; done
 
-distclean:
+distclean:	${TECHS}
 	for tech in ${TECHS}; do \
 		${MAKE} veryclean-$${tech}; done
diff --git a/README b/README
index 5e5356d..5d63be4 100644
--- a/README
+++ b/README
@@ -128,6 +128,7 @@
 
     The local install sequence is:
 
+	configure			See options for setting paths
 	make				Generate local staging area
 	make install-local		Migrate to install directory
 
@@ -138,6 +139,7 @@
 
     The distributed install sequence is:
 
+	configure			See options for setting paths
 	make				Generate local staging area
 	make install-dist		Migrate to distribution directory
 
diff --git a/VERSION b/VERSION
index 140333f..c787b21 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.0.19
+1.0.22
diff --git a/common/gate_list.txt b/common/gate_list.txt
new file mode 100644
index 0000000..84fd5b7
--- /dev/null
+++ b/common/gate_list.txt
@@ -0,0 +1,124 @@
+#-----------------------------------------------------------------------
+# List of standard gate symbols with mapping to liberty file fields
+#
+# Y, X	       refer to logic output pins
+# C, S, ...    refer specifically to adder carry and sum output pins
+# Q, QB	       refer specifically to flip-flop or latch output pins
+# IQ, IQB      refers to function entries for flops.  "I" is literal.
+# A, B, C, ... refer to input pins
+# D, R, S, ... refer specifically to flip-flop input pins
+# SD	       refers to scan data input pin for flip-flops
+# CI	       refers specifically to full adder carry-in input
+# Z	       refers to high-impedance state
+# &	       means AND
+# |	       means OR
+# !	       means NOT
+# ( )	       groups
+#
+# Symbol    Liberty	Liberty
+# primitive file	field
+# name	    field	value	    ...
+#-----------------------------------------------------------------------
+AND2	    function	Y=A&B
+AND3	    function	Y=A&B&C
+AND4	    function	Y=A&B&C&D
+AND5	    function	Y=A&B&C&D&E
+AND8	    function	Y=A&B&C&D&E&F&G&H
+
+AND2I	    function	Y=!A&B
+
+AO21	    function	Y=(A&B)|C
+AO22	    function	Y=(A&B)|(C&D)
+
+AOI21	    function	Y=!((A&B)|C)
+AOI22	    function	Y=!((A&B)|(C&D))
+
+NAND2	    function	Y=!(A&B)
+NAND3	    function	Y=!(A&B&C)
+NAND4	    function	Y=!(A&B&C&D)
+NAND5	    function	Y=!(A&B&C&D&E)
+NAND8	    function	Y=!(A&B&C&D&E&F&G&H)
+
+NAND2I	    function	Y=!(!A&B)
+
+OR2	    function	Y=A|B
+OR3	    function	Y=A|B|C
+OR4	    function	Y=A|B|C|D
+OR5	    function	Y=A|B|C|D|E
+OR8	    function	Y=A|B|C|D|E|F|G|H
+
+OR2I	    function	Y=!A|B
+
+OA21	    function	Y=(A|B)&C
+OA22	    function	Y=(A|B)&(C|D)
+
+OAI21	    function	Y=!((A|B)&C)
+OAI22	    function	Y=!((A|B)&(C|D))
+
+NOR2	    function	Y=!(A|B)
+NOR3	    function	Y=!(A|B|C)
+NOR4	    function	Y=!(A|B|C|D)
+NOR5	    function	Y=!(A|B|C|D|E)
+NOR8	    function	Y=!(A|B|C|D|E|F|G|H)
+
+NOR2I	    function	Y=!(!A|B)
+
+XOR2	    function	Y=(A&!B)|(!A&B)
+
+XNOR2	    function	Y=(A&B)|(!A&!B)
+
+INV	    function	Y=!A
+
+BUF	    function	Y=A
+
+TBUF	    function	Y=A	three_state	E
+
+TBUFI	    function	Y=A	three_state	!E
+
+MUX2	    function	Y=(A&C)|(B&!C)
+
+MUX2I	    function	Y=!((A&!C)|(B&C))
+
+MUX4	    function	Y=(A&!E&!F)|(B&!E&F)|(C&E&!F)|(D&E&F)
+
+MUX4I	    function	Y=!((A&!E&!F)|(B&!E&F)|(C&E&!F)|(D&E&F))
+
+HA	    function	C=A&B	function    S=(A&!B)|(!A&B)
+FA	    function	C=(A&B)|(A&CI)|(B&CI)	function    S=(A&B&CI)|(!A&B&!CI)|(!A&!B&CI)|(A&B&CI)
+
+LATCH	    function	Q=IQ	enable  E	data_in  D
+LATCHI	    function	Q=IQ	enable  !E	data_in  D
+LATCHR	    function	Q=IQ	enable  E	data_in  D	clear !R
+LATCHIR	    function	Q=IQ	enable  !E	data_in  D	clear !R
+LATCHSR	    function	Q=IQ	enable  E	data_in  D	preset !S   clear !R
+LATCHISR    function	Q=IQ	enable  E	data_in  D	preset !S   clear !R
+
+LATCHQ	    function	Q=IQ	QB=IQB	enable  E	data_in  D
+LATCHIQ	    function	Q=IQ	QB=IQB	enable  !E	data_in  D
+LATCHRQ	    function	Q=IQ	QB=IQB	enable  E	data_in  D	clear !R
+LATCHIRQ    function	Q=IQ	QB=IQB	enable  !E	data_in  D	clear !R
+LATCHSRQ    function	Q=IQ	QB=IQB	enable  E	data_in  D	preset !S   clear !R
+LATCHISRQ   function	Q=IQ	QB=IQB	enable  E	data_in  D	preset !S   clear !R
+
+DFF	    function	Q=IQ	clocked_on  C	    next_state  D
+DFFQ	    function	Q=IQ	function    QB=IQB   clocked_on	C   next_state	D
+DFFS	    function	Q=IQ	clocked_on  C	    next_state  D   preset	!S
+DFFR	    function	Q=IQ	clocked_on  C	    next_state  D   clear	!R
+DFFSR	    function	Q=IQ	clocked_on  C	    next_state	D   preset	!S  clear   !R
+DFFSQ	    function	Q=IQ	function    QB=IQB   clocked_on  C   next_state  D   preset  !S
+DFFRQ	    function	Q=IQ	function    QB=IQB   clocked_on  C   next_state  D   clear  !R
+DFFSRQ	    function	Q=IQ	function    QB=IQB   clocked_on  C   next_state  D   clear  !R	preset !S
+DFFI	    function	Q=IQ	clocked_on  !C	    next_state  D
+DFFIQ	    function	Q=IQ	function    QB=IQB   clocked_on	!C   next_state	D
+DFFIS	    function	Q=IQ	clocked_on  !C	    next_state  D   preset	!S
+DFFIR	    function	Q=IQ	clocked_on  !C	    next_state  D   clear	!R
+DFFISR	    function	Q=IQ	clocked_on  !C	    next_state	D   preset	!S  clear   !R
+DFFISQ	    function	Q=IQ	function    QB=IQB   clocked_on  !C  next_state  D   preset  !S
+DFFIRQ	    function	Q=IQ	function    QB=IQB   clocked_on  !C  next_state  D   clear  !R
+DFFISRQ	    function	Q=IQ	function    QB=IQB   clocked_on  !C  next_state  D   clear  !R	preset !S
+
+EDFF	    function	Q=IQ	clocked_on  C	    next_state  (D&E)|(IQ&!E)
+EDFFQ	    function	Q=IQ	QB=IQB	clocked_on  C	    next_state  (D&E)|(IQ&!E)
+
+SDFF	    function	Q=IQ	clocked_on  C	    next_state  (D&!E)|(SD&E)
+SDFFQ	    function	Q=IQ	QB=IQB	clocked_on  C	    next_state  (D&!E)|(SD&E)
diff --git a/common/spectre_to_spice.py b/common/spectre_to_spice.py
index a00dc18..c522367 100755
--- a/common/spectre_to_spice.py
+++ b/common/spectre_to_spice.py
@@ -27,25 +27,27 @@
 # If inside a subcircuit, remove the keyword "parameters".  If outside,
 # change it to ".param"
 
-def parse_param_line(line, inparam, insub):
+def parse_param_line(line, inparam, insub, iscall, ispassed):
 
     # Regexp patterns
     parm1rex = re.compile('[ \t]*parameters[ \t]*(.*)')
     parm2rex = re.compile('[ \t]*params:[ \t]*(.*)')
-    parm3rex = re.compile('\+[ \t]*(.*)')
+    parm3rex = re.compile('[ \t]*\+[ \t]*(.*)')
     parm4rex = re.compile('[ \t]*([^= \t]+)[ \t]*=[ \t]*([^ \t]+)[ \t]*(.*)')
     parm5rex = re.compile('[ \t]*([^= \t]+)[ \t]*(.*)')
+    rtok = re.compile('([^ \t\n]+)[ \t]*(.*)')
 
     fmtline = []
-    iscdl = False
     
-    if inparam:
+    if iscall:
+        rest = line
+    elif inparam:
         pmatch = parm3rex.match(line)
         if pmatch:
             fmtline.append('+')
             rest = pmatch.group(1)
         else:
-            return ''
+            return '', ispassed
     else:
         pmatch = parm1rex.match(line)
         if pmatch:
@@ -60,62 +62,96 @@
                 if insub:
                     fmtline.append('+')
                 else:
-                    return ''
+                    return '', ispassed
                 rest = pmatch.group(1)
-                iscdl = True
             else:
-                return ''
+                return '', ispassed
 
     while rest != '':
         pmatch = parm4rex.match(rest)
         if pmatch:
+            if ispassed:
+                # End of passed parameters.  Break line and generate ".param"
+                ispassed = False
+                fmtline.append('\n.param ')
+
             fmtline.append(pmatch.group(1))
             fmtline.append('=')
             value = pmatch.group(2)
             rest = pmatch.group(3)
 
+            # Watch for spaces in expressions (have they no rules??!)
+            # as indicated by something after a space not being an
+            # alphabetical character (parameter name) or '$' (comment)
+
+            needmore = False
+            while rest != '':
+                rmatch = rtok.match(rest)
+                if rmatch:
+                    expch = rmatch.group(1)[0]
+                    if (expch.isalpha() or expch == '$') and not needmore:
+                        break
+                    else:
+                        needmore = False
+                        value += rmatch.group(1)
+                        rest = rmatch.group(2)
+                        expch = rmatch.group(1).strip()
+                        if expch in '+-*/(){}^~!':
+                            needmore = True
+                else:
+                    break
+
             if is_number(value):
                 fmtline.append(value)
             else:
                 fmtline.append('{' + value + '}')
 
-            # These parameter sub-expressions are related to
-            # monte carlo simulation and are incompatible with
-            # ngspice.  So put them in an in-line comment
+            # These parameter sub-expressions are related to monte carlo
+            # simulation and are incompatible with ngspice.  So put them
+            # in an in-line comment.  Avoid double-commenting things that
+            # were already in-line comments.
 
             if rest != '':
                 nmatch = parm4rex.match(rest)
                 if not nmatch:
-                    fmtline.append(' $ ' + rest.replace(' ', '').replace('\t', ''))
+                    if rest.lstrip().startswith('$ '):
+                        fmtline.append(rest)
+                    elif rest.strip() != '':
+                        fmtline.append(' $ ' + rest.replace(' ', '').replace('\t', ''))
                     rest = ''
-        elif iscdl:
+        else:
             # Match to a CDL subckt parameter that does not have an '=' and so
-            # assumes that the parameter is always passed.  That is not legal SPICE,
-            # so supply a default value of 1.
+            # assumes that the parameter is always passed, and therefore must
+	    # be part of the .subckt line.  A parameter without a value is not
+            # legal SPICE, so supply a default value of 1.
             pmatch = parm5rex.match(rest)
             if pmatch:
                 fmtline.append(pmatch.group(1) + '=1')
+                ispassed = True
                 rest = pmatch.group(2)
-        else:
-            break
+            else:
+                break
 
-    return ' '.join(fmtline)
+    return ' '.join(fmtline), ispassed
 
 def convert_file(in_file, out_file):
 
     # Regexp patterns
     statrex = re.compile('[ \t]*statistics[ \t]*\{(.*)')
     simrex = re.compile('[ \t]*simulator[ \t]+([^= \t]+)[ \t]*=[ \t]*(.+)')
-    insubrex = re.compile('[ \t]*inline[ \t]+subckt[ \t]+([^ \t]+)[ \t]*\(([^)]*)')
-    cdlsubrex = re.compile('\.subckt[ \t]+([^ \t]+)[ \t]*\(([^)]*)')
+    insubrex = re.compile('[ \t]*inline[ \t]+subckt[ \t]+([^ \t\(]+)[ \t]*\(([^)]*)')
+    cdlsubrex = re.compile('\.?subckt[ \t]+([^ \t\(]+)[ \t]*\(([^)]*)')
     endsubrex = re.compile('[ \t]*ends[ \t]+(.+)')
+    endonlysubrex = re.compile('[ \t]*ends[ \t]*')
     modelrex = re.compile('[ \t]*model[ \t]+([^ \t]+)[ \t]+([^ \t]+)[ \t]+\{(.*)')
+    cdlmodelrex = re.compile('[ \t]*model[ \t]+([^ \t]+)[ \t]+([^ \t]+)[ \t]+(.*)')
     binrex = re.compile('[ \t]*([0-9]+):[ \t]+type[ \t]*=[ \t]*(.*)')
     shincrex = re.compile('\.inc[ \t]+')
 
     stdsubrex = re.compile('\.subckt[ \t]+([^ \t]+)[ \t]+([^ \t]*)')
     stdmodelrex = re.compile('\.model[ \t]+([^ \t]+)[ \t]+([^ \t]+)[ \t]+(.*)')
     stdendsubrex = re.compile('\.ends[ \t]+(.+)')
+    stdendonlysubrex = re.compile('\.ends[ \t]*')
 
     # Devices (resistor, capacitor, subcircuit as resistor or capacitor)
     caprex = re.compile('c([^ \t]+)[ \t]*\(([^)]*)\)[ \t]*capacitor[ \t]*(.*)', re.IGNORECASE)
@@ -123,13 +159,18 @@
     cdlrex = re.compile('[ \t]*([crdlmqx])([^ \t]+)[ \t]*\(([^)]*)\)[ \t]*([^ \t]+)[ \t]*(.*)', re.IGNORECASE)
 
     with open(in_file, 'r') as ifile:
-        speclines = ifile.read().splitlines()
+        try:
+            speclines = ifile.read().splitlines()
+        except:
+            print('Failure to read ' + in_file + '; not an ASCII file?')
+            return
 
     insub = False
     inparam = False
     inmodel = False
     inpinlist = False
     isspectre = False
+    ispassed = False
     spicelines = []
     calllines = []
     modellines = []
@@ -141,7 +182,7 @@
 
     for line in speclines:
 
-        # Item 1.  C++-style // comments get replae with * comment character
+        # Item 1a.  C++-style // comments get replaced with * comment character
         if line.strip().startswith('//'):
             # Replace the leading "//" with SPICE-style comment "*".
             if modellines != []:
@@ -152,6 +193,12 @@
                 spicelines.append(line.strip().replace('//', '*', 1))
             continue
 
+        # Item 1b.  In-line C++-style // comments get replaced with $ comment character
+        elif ' //' in line:
+            line = line.replace(' //', ' $ ', 1) 
+        elif '\t//' in line:
+            line = line.replace('\t//', '\t$ ', 1) 
+
         # Item 2.  Handle SPICE-style comment lines
         if line.strip().startswith('*'):
             if modellines != []:
@@ -167,10 +214,11 @@
             contline = True
         else:
             contline = False
-            if inparam:
-                inparam = False 
-            if inpinlist:
-                inpinlist = False 
+            if line.strip() != '':
+                if inparam:
+                    inparam = False 
+                if inpinlist:
+                    inpinlist = False 
 
         # Item 3.  Handle blank lines like comment lines
         if line.strip() == '':
@@ -201,7 +249,7 @@
         if contline:
             if inparam:
                 # Continue handling parameters
-                fmtline = parse_param_line(line, inparam, insub)
+                fmtline, ispassed = parse_param_line(line, inparam, insub, False, ispassed)
                 if fmtline != '':
                     if modellines != []:
                         modellines.append(fmtline)
@@ -225,7 +273,7 @@
 
         # If inside a subcircuit, remove "parameters".  If outside,
         # change it to ".param"
-        fmtline = parse_param_line(line, inparam, insub)
+        fmtline, ispassed = parse_param_line(line, inparam, insub, False, ispassed)
         if fmtline != '':
             inparam = True
             spicelines.append(fmtline)
@@ -240,10 +288,15 @@
                 continue
 
         # model---not sure if it is always inside an inline subcircuit
+        iscdl = False
         if isspectre:
             mmatch = modelrex.match(line)
+            if not mmatch:
+                mmatch = cdlmodelrex.match(line)
+                iscdl = True
         else:
             mmatch = stdmodelrex.match(line)
+
         if mmatch:
             modname = mmatch.group(1)
             modtype = mmatch.group(2)
@@ -253,20 +306,25 @@
                 inmodel = 1
                 # Continue to "if inmodel == 1" block below
             else:
-                if not isspectre:
-                    modellines.append(line)
+                fmtline, ispassed = parse_param_line(mmatch.group(3), True, False, True, ispassed)
+                modellines.append('.model ' + mmatch.group(1) + ' ' + mmatch.group(2) + ' ' + fmtline)
+                if fmtline != '':
+                    inparam = True
+
                 inmodel = 2
                 continue
 
         if not insub:
             # Things to parse if not in a subcircuit
+            imatch = insubrex.match(line) if isspectre else None
 
-            if isspectre:
-                imatch = insubrex.match(line)
-            else:
-                # Check for CDL format .subckt lines first
+            if not imatch:
+                # Check for spectre format subckt or CDL format .subckt lines
                 imatch = cdlsubrex.match(line)
-                if not imatch:
+
+            if not imatch:
+                if not isspectre:
+                    # Check for standard SPICE format .subckt lines
                     imatch = stdsubrex.match(line)
 
             if imatch:
@@ -278,6 +336,7 @@
                     inmodel = False
 
                 insub = True
+                ispassed = True
                 subname = imatch.group(1)
                 if isspectre:
                     devrex = re.compile(subname + '[ \t]*\(([^)]*)\)[ \t]*([^ \t]+)[ \t]*(.*)', re.IGNORECASE)
@@ -307,13 +366,23 @@
             else:
                 if isspectre:
                     ematch = endsubrex.match(line)
+                    if not ematch:
+                        ematch = endonlysubrex.match(line)
                 else:
                     ematch = stdendsubrex.match(line)
+                    if not ematch:
+                        ematch = stdendonlysubrex.match(line)
+
                 if ematch:
-                    if ematch.group(1) != subname:
-                        print('Error:  "ends" name does not match "subckt" name!')
-                        print('"ends" name = ' + ematch.group(1))
-                        print('"subckt" name = ' + subname)
+                    try:
+                        endname = ematch.group(1).strip()
+                    except:
+                        pass
+                    else:
+                        if endname != subname and endname != '':
+                            print('Error:  "ends" name does not match "subckt" name!')
+                            print('"ends" name = ' + ematch.group(1).strip())
+                            print('"subckt" name = ' + subname)
                     if len(calllines) > 0:
                         line = calllines[0]
                         if modtype.startswith('bsim'):
@@ -340,14 +409,15 @@
                         spicelines.append(line)
                     calllines = []
 
-                    spicelines.append('.ends ' + subname)
-
-                    # Now add the .model after the subcircuit definition
+                    # Now add any in-circuit models
                     spicelines.append('')
                     for line in modellines:
                         spicelines.append(line)
                     modellines = []
                     
+                    # Complete the subcircuit definition
+                    spicelines.append('.ends ' + subname)
+
                     insub = False
                     inmodel = False
                     subname = ''
@@ -362,7 +432,7 @@
             # Check for devices R and C.
             dmatch = caprex.match(line)
             if dmatch:
-                fmtline = parse_param_line(dmatch.group(3), True, insub)
+                fmtline, ispassed = parse_param_line(dmatch.group(3), True, insub, True, ispassed)
                 if fmtline != '':
                     inparam = True
                     spicelines.append('c' + dmatch.group(1) + ' ' + dmatch.group(2) + ' ' + fmtline)
@@ -373,7 +443,7 @@
 
             dmatch = resrex.match(line)
             if dmatch:
-                fmtline = parse_param_line(dmatch.group(3), True, insub)
+                fmtline, ispassed = parse_param_line(dmatch.group(3), True, insub, True, ispassed)
                 if fmtline != '':
                     inparam = True
                     spicelines.append('r' + dmatch.group(1) + ' ' + dmatch.group(2) + ' ' + fmtline)
@@ -382,40 +452,40 @@
                     spicelines.append('r' + dmatch.group(1) + ' ' + dmatch.group(2) + ' ' + dmatch.group(3))
                     continue
 
-            if not isspectre:
-                cmatch = cdlrex.match(line)
-                if cmatch:
-                    devtype = cmatch.group(1)
-                    devmodel = cmatch.group(4)
+            cmatch = cdlrex.match(line)
+            if cmatch:
+                ispassed = False
+                devtype = cmatch.group(1)
+                devmodel = cmatch.group(4)
 
-                    # Handle spectreisms. . .
-                    if devmodel == 'capacitor':
-                        devtype = 'c'
-                        devmodel = ''
-                    elif devmodel == 'resistor':
-                        devtype = 'r'
-                        devmodel = ''
-                    elif devmodel == 'resbody':
-                        # This is specific to the SkyWater models;  handling it
-                        # in a generic way would be difficult, as it would be
-                        # necessary to find the model and discover that the
-                        # model is a resistor and not a subcircuit.
-                        devtype = 'r'
+                # Handle spectreisms. . .
+                if devmodel == 'capacitor':
+                    devtype = 'c'
+                    devmodel = ''
+                elif devmodel == 'resistor':
+                    devtype = 'r'
+                    devmodel = ''
+                elif devmodel == 'resbody':
+                    # This is specific to the SkyWater models;  handling it
+                    # in a generic way would be difficult, as it would be
+                    # necessary to find the model and discover that the
+                    # model is a resistor and not a subcircuit.
+                    devtype = 'r'
 
-                    fmtline = parse_param_line(cmatch.group(5), True, insub)
-                    if fmtline != '':
-                        inparam = True
-                        spicelines.append(devtype + cmatch.group(2) + ' ' + cmatch.group(3) + ' ' + devmodel + ' ' + fmtline)
-                        continue
-                    else:
-                        spicelines.append(devtype + cmatch.group(2) + ' ' + cmatch.group(3) + ' ' + devmodel + ' ' + cmatch.group(5))
-                        continue
+                fmtline, ispassed = parse_param_line(cmatch.group(5), True, insub, True, ispassed)
+                if fmtline != '':
+                    inparam = True
+                    spicelines.append(devtype + cmatch.group(2) + ' ' + cmatch.group(3) + ' ' + devmodel + ' ' + fmtline)
+                    continue
+                else:
+                    spicelines.append(devtype + cmatch.group(2) + ' ' + cmatch.group(3) + ' ' + devmodel + ' ' + cmatch.group(5))
+                    continue
 
             # Check for a line that begins with the subcircuit name
           
             dmatch = devrex.match(line)
             if dmatch:
-                fmtline = parse_param_line(dmatch.group(3), True, insub)
+                fmtline, ispassed = parse_param_line(dmatch.group(3), True, insub, True, ispassed)
                 if fmtline != '':
                     inparam = True
                     calllines.append(subname + ' ' + dmatch.group(1) + ' ' + dmatch.group(2) + ' ' + fmtline)
@@ -448,7 +518,7 @@
                 continue
 
             else:
-                fmtline = parse_param_line(line, True, True)
+                fmtline, ispassed = parse_param_line(line, True, True, False, ispassed)
                 if fmtline != '':
                     modellines.append(fmtline)
                     continue
diff --git a/configure b/configure
new file mode 100755
index 0000000..bfa278f
--- /dev/null
+++ b/configure
@@ -0,0 +1,13 @@
+#!/bin/sh
+# From magic
+#
+# Use:  ./configure [args]
+#
+#	where [args] are arguments passed to the scripts/configure script
+#
+# This script is a workaround to GNU autoconf which can't deal with having
+# all of its config scripts in a different directory than the configure
+# script itself.  It also sets up CFLAGS without the default optimizer
+# flag (-O2).
+
+(  cd scripts && ./configure "$@" )
diff --git a/scripts/configure b/scripts/configure
new file mode 100755
index 0000000..536a041
--- /dev/null
+++ b/scripts/configure
@@ -0,0 +1,3349 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.69 for open_pdks 1.0.
+#
+# Report bugs to <github.com/RTimothyEdwards/open_pdks>.
+#
+#
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+#
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in #(
+      *"$as_nl"*)
+	expr "X$arg" : "X\\(.*\\)$as_nl";
+	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""	$as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# Use a proper internal environment variable to ensure we don't fall
+  # into an infinite loop, continuously re-executing ourselves.
+  if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+    _as_can_reexec=no; export _as_can_reexec;
+    # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+  fi
+  # We don't want this to propagate to other subprocesses.
+          { _as_can_reexec=; unset _as_can_reexec;}
+if test "x$CONFIG_SHELL" = x; then
+  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
+else
+  case \`(set -o) 2>/dev/null\` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+"
+  as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+  exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
+  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1"
+  if (eval "$as_required") 2>/dev/null; then :
+  as_have_required=yes
+else
+  as_have_required=no
+fi
+  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  as_found=:
+  case $as_dir in #(
+	 /*)
+	   for as_base in sh bash ksh sh5; do
+	     # Try only shells that exist, to save several forks.
+	     as_shell=$as_dir/$as_base
+	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  CONFIG_SHELL=$as_shell as_have_required=yes
+		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  break 2
+fi
+fi
+	   done;;
+       esac
+  as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+  CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+      if test "x$CONFIG_SHELL" != x; then :
+  export CONFIG_SHELL
+             # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+fi
+
+    if test x$as_have_required = xno; then :
+  $as_echo "$0: This script requires a shell more modern than all"
+  $as_echo "$0: the shells that I found on your system."
+  if test x${ZSH_VERSION+set} = xset ; then
+    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+  else
+    $as_echo "$0: Please tell bug-autoconf@gnu.org and
+$0: github.com/RTimothyEdwards/open_pdks about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+  fi
+  exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  fi
+  $as_echo "$as_me: error: $2" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+  as_lineno_1=$LINENO as_lineno_1a=$LINENO
+  as_lineno_2=$LINENO as_lineno_2a=$LINENO
+  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
+    sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
+      N
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+      t loop
+      s/-\n.*//
+    ' >$as_me.lineno &&
+  chmod +x "$as_me.lineno" ||
+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+  # already done that, so ensure we don't try to do so again and fall
+  # in an infinite loop.  This has already happened in practice.
+  _as_can_reexec=no; export _as_can_reexec
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensitive to this).
+  . "./$as_me.lineno"
+  # Exit status is that of the last command.
+  exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+  case `echo 'xy\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='	';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -pR'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -pR'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -pR'
+  fi
+else
+  as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p='mkdir -p "$as_dir"'
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME='open_pdks'
+PACKAGE_TARNAME='open_pdks'
+PACKAGE_VERSION='1.0'
+PACKAGE_STRING='open_pdks 1.0'
+PACKAGE_BUGREPORT='github.com/RTimothyEdwards/open_pdks'
+PACKAGE_URL=''
+
+ac_subst_vars='LTLIBOBJS
+LIBOBJS
+EF_STYLE
+MAGIC
+pkgpyexecdir
+pyexecdir
+pkgpythondir
+pythondir
+PYTHON_PLATFORM
+PYTHON_EXEC_PREFIX
+PYTHON_PREFIX
+PYTHON_VERSION
+PYTHON
+SKY130_LINK_TARGETS
+SKY130_DIST_PATH
+SKY130_LOCAL_PATH
+SKY130_SOURCE_PATH
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+with_sky130_source
+with_sky130_local_path
+with_sky130_dist_path
+with_sky130_link_targets
+with_ef_style
+'
+      ac_precious_vars='build_alias
+host_alias
+target_alias
+PYTHON'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval $ac_prev=\$ac_option
+    ac_prev=
+    continue
+  fi
+
+  case $ac_option in
+  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+  *=)   ac_optarg= ;;
+  *)    ac_optarg=yes ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case $ac_dashdash$ac_option in
+  --)
+    ac_dashdash=yes ;;
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir=$ac_optarg ;;
+
+  -build | --build | --buil | --bui | --bu)
+    ac_prev=build_alias ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build_alias=$ac_optarg ;;
+
+  -cache-file | --cache-file | --cache-fil | --cache-fi \
+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+    ac_prev=cache_file ;;
+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+    cache_file=$ac_optarg ;;
+
+  --config-cache | -C)
+    cache_file=config.cache ;;
+
+  -datadir | --datadir | --datadi | --datad)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=*)
+    datadir=$ac_optarg ;;
+
+  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+  | --dataroo | --dataro | --datar)
+    ac_prev=datarootdir ;;
+  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+    datarootdir=$ac_optarg ;;
+
+  -disable-* | --disable-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid feature name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=no ;;
+
+  -docdir | --docdir | --docdi | --doc | --do)
+    ac_prev=docdir ;;
+  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+    docdir=$ac_optarg ;;
+
+  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+    ac_prev=dvidir ;;
+  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+    dvidir=$ac_optarg ;;
+
+  -enable-* | --enable-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid feature name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=\$ac_optarg ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix=$ac_optarg ;;
+
+  -gas | --gas | --ga | --g)
+    # Obsolete; use --with-gas.
+    with_gas=yes ;;
+
+  -help | --help | --hel | --he | -h)
+    ac_init_help=long ;;
+  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+    ac_init_help=recursive ;;
+  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+    ac_init_help=short ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host_alias ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host_alias=$ac_optarg ;;
+
+  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+    ac_prev=htmldir ;;
+  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+  | --ht=*)
+    htmldir=$ac_optarg ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir=$ac_optarg ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir=$ac_optarg ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir=$ac_optarg ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir=$ac_optarg ;;
+
+  -localedir | --localedir | --localedi | --localed | --locale)
+    ac_prev=localedir ;;
+  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+    localedir=$ac_optarg ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst | --locals)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+    localstatedir=$ac_optarg ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir=$ac_optarg ;;
+
+  -nfp | --nfp | --nf)
+    # Obsolete; use --without-fp.
+    with_fp=no ;;
+
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c | -n)
+    no_create=yes ;;
+
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    no_recursion=yes ;;
+
+  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+  | --oldin | --oldi | --old | --ol | --o)
+    ac_prev=oldincludedir ;;
+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+    oldincludedir=$ac_optarg ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix=$ac_optarg ;;
+
+  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+  | --program-pre | --program-pr | --program-p)
+    ac_prev=program_prefix ;;
+  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+    program_prefix=$ac_optarg ;;
+
+  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+  | --program-suf | --program-su | --program-s)
+    ac_prev=program_suffix ;;
+  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+    program_suffix=$ac_optarg ;;
+
+  -program-transform-name | --program-transform-name \
+  | --program-transform-nam | --program-transform-na \
+  | --program-transform-n | --program-transform- \
+  | --program-transform | --program-transfor \
+  | --program-transfo | --program-transf \
+  | --program-trans | --program-tran \
+  | --progr-tra | --program-tr | --program-t)
+    ac_prev=program_transform_name ;;
+  -program-transform-name=* | --program-transform-name=* \
+  | --program-transform-nam=* | --program-transform-na=* \
+  | --program-transform-n=* | --program-transform-=* \
+  | --program-transform=* | --program-transfor=* \
+  | --program-transfo=* | --program-transf=* \
+  | --program-trans=* | --program-tran=* \
+  | --progr-tra=* | --program-tr=* | --program-t=*)
+    program_transform_name=$ac_optarg ;;
+
+  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+    ac_prev=pdfdir ;;
+  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+    pdfdir=$ac_optarg ;;
+
+  -psdir | --psdir | --psdi | --psd | --ps)
+    ac_prev=psdir ;;
+  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+    psdir=$ac_optarg ;;
+
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil)
+    silent=yes ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir=$ac_optarg ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir=$ac_optarg ;;
+
+  -site | --site | --sit)
+    ac_prev=site ;;
+  -site=* | --site=* | --sit=*)
+    site=$ac_optarg ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir=$ac_optarg ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir=$ac_optarg ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target_alias ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target_alias=$ac_optarg ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers | -V)
+    ac_init_version=: ;;
+
+  -with-* | --with-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid package name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=\$ac_optarg ;;
+
+  -without-* | --without-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid package name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=no ;;
+
+  --x)
+    # Obsolete; use --with-x.
+    with_x=yes ;;
+
+  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+  | --x-incl | --x-inc | --x-in | --x-i)
+    ac_prev=x_includes ;;
+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+    x_includes=$ac_optarg ;;
+
+  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+    ac_prev=x_libraries ;;
+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+    x_libraries=$ac_optarg ;;
+
+  -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
+    ;;
+
+  *=*)
+    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+    # Reject names that are not valid shell variable names.
+    case $ac_envvar in #(
+      '' | [0-9]* | *[!_$as_cr_alnum]* )
+      as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+    esac
+    eval $ac_envvar=\$ac_optarg
+    export $ac_envvar ;;
+
+  *)
+    # FIXME: should be removed in autoconf 3.0.
+    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+  as_fn_error $? "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+  case $enable_option_checking in
+    no) ;;
+    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+  esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
+		datadir sysconfdir sharedstatedir localstatedir includedir \
+		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+		libdir localedir mandir
+do
+  eval ac_val=\$$ac_var
+  # Remove trailing slashes.
+  case $ac_val in
+    */ )
+      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+      eval $ac_var=\$ac_val;;
+  esac
+  # Be sure to have absolute directory names.
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* )  continue;;
+    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+  esac
+  as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+  if test "x$build_alias" = x; then
+    cross_compiling=maybe
+  elif test "x$build_alias" != "x$host_alias"; then
+    cross_compiling=yes
+  fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+  as_fn_error $? "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+  as_fn_error $? "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+  ac_srcdir_defaulted=yes
+  # Try the directory containing this script, then the parent directory.
+  ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_myself" : 'X\(//\)[^/]' \| \
+	 X"$as_myself" : 'X\(//\)$' \| \
+	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+  srcdir=$ac_confdir
+  if test ! -r "$srcdir/$ac_unique_file"; then
+    srcdir=..
+  fi
+else
+  ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+  as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+	cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+	pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+  srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+  eval ac_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_env_${ac_var}_value=\$${ac_var}
+  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+  # Omit some internal or obsolete options to make the list less imposing.
+  # This message is too long to be a string in the A/UX 3.1 sh.
+  cat <<_ACEOF
+\`configure' configures open_pdks 1.0 to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE.  See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+  -h, --help              display this help and exit
+      --help=short        display options specific to this package
+      --help=recursive    display the short help of all the included packages
+  -V, --version           display version information and exit
+  -q, --quiet, --silent   do not print \`checking ...' messages
+      --cache-file=FILE   cache test results in FILE [disabled]
+  -C, --config-cache      alias for \`--cache-file=config.cache'
+  -n, --no-create         do not create output files
+      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                          [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+  --bindir=DIR            user executables [EPREFIX/bin]
+  --sbindir=DIR           system admin executables [EPREFIX/sbin]
+  --libexecdir=DIR        program executables [EPREFIX/libexec]
+  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
+  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
+  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --libdir=DIR            object code libraries [EPREFIX/lib]
+  --includedir=DIR        C header files [PREFIX/include]
+  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
+  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
+  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
+  --infodir=DIR           info documentation [DATAROOTDIR/info]
+  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
+  --mandir=DIR            man documentation [DATAROOTDIR/man]
+  --docdir=DIR            documentation root [DATAROOTDIR/doc/open_pdks]
+  --htmldir=DIR           html documentation [DOCDIR]
+  --dvidir=DIR            dvi documentation [DOCDIR]
+  --pdfdir=DIR            pdf documentation [DOCDIR]
+  --psdir=DIR             ps documentation [DOCDIR]
+_ACEOF
+
+  cat <<\_ACEOF
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+  case $ac_init_help in
+     short | recursive ) echo "Configuration of open_pdks 1.0:";;
+   esac
+  cat <<\_ACEOF
+
+Optional Packages:
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --with-sky130-source=/path/to/sky130/source
+                          "location of the source files for sky130"
+  --with-sky130-local-path=/path/to/install/pdks
+                          "run-time location of the PDKs"
+  --with-sky130-dist-path=/path/to/install/pdks
+                          "staging location to install the PDKs for
+                          distribution (optional)"
+  --with-sky130-link-targets=none|source
+                          "make symbolic links to existing files
+                          [default=none]"
+  --with-ef-style         Use efabless style file system structure
+                          [default=no]
+
+Some influential environment variables:
+  PYTHON      the Python interpreter
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to <github.com/RTimothyEdwards/open_pdks>.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+  # If there are subdirs, report their specific --help.
+  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+    test -d "$ac_dir" ||
+      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+      continue
+    ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+    cd "$ac_dir" || { ac_status=$?; continue; }
+    # Check for guested configure.
+    if test -f "$ac_srcdir/configure.gnu"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+    elif test -f "$ac_srcdir/configure"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure" --help=recursive
+    else
+      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+    fi || ac_status=$?
+    cd "$ac_pwd" || { ac_status=$?; break; }
+  done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+  cat <<\_ACEOF
+open_pdks configure 1.0
+generated by GNU Autoconf 2.69
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+  exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by open_pdks $as_me 1.0, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
+
+  $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
+
+/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
+/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
+/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    $as_echo "PATH: $as_dir"
+  done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+  for ac_arg
+  do
+    case $ac_arg in
+    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+    | -silent | --silent | --silen | --sile | --sil)
+      continue ;;
+    *\'*)
+      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    case $ac_pass in
+    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+    2)
+      as_fn_append ac_configure_args1 " '$ac_arg'"
+      if test $ac_must_keep_next = true; then
+	ac_must_keep_next=false # Got value, back to normal.
+      else
+	case $ac_arg in
+	  *=* | --config-cache | -C | -disable-* | --disable-* \
+	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+	  | -with-* | --with-* | -without-* | --without-* | --x)
+	    case "$ac_configure_args0 " in
+	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+	    esac
+	    ;;
+	  -* ) ac_must_keep_next=true ;;
+	esac
+      fi
+      as_fn_append ac_configure_args " '$ac_arg'"
+      ;;
+    esac
+  done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log.  We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+  # Save into config.log some information that might help in debugging.
+  {
+    echo
+
+    $as_echo "## ---------------- ##
+## Cache variables. ##
+## ---------------- ##"
+    echo
+    # The following way of writing the cache mishandles newlines in values,
+(
+  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+      *) { eval $ac_var=; unset $ac_var;} ;;
+      esac ;;
+    esac
+  done
+  (set) 2>&1 |
+    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      sed -n \
+	"s/'\''/'\''\\\\'\'''\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+      ;; #(
+    *)
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+)
+    echo
+
+    $as_echo "## ----------------- ##
+## Output variables. ##
+## ----------------- ##"
+    echo
+    for ac_var in $ac_subst_vars
+    do
+      eval ac_val=\$$ac_var
+      case $ac_val in
+      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+      esac
+      $as_echo "$ac_var='\''$ac_val'\''"
+    done | sort
+    echo
+
+    if test -n "$ac_subst_files"; then
+      $as_echo "## ------------------- ##
+## File substitutions. ##
+## ------------------- ##"
+      echo
+      for ac_var in $ac_subst_files
+      do
+	eval ac_val=\$$ac_var
+	case $ac_val in
+	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+	esac
+	$as_echo "$ac_var='\''$ac_val'\''"
+      done | sort
+      echo
+    fi
+
+    if test -s confdefs.h; then
+      $as_echo "## ----------- ##
+## confdefs.h. ##
+## ----------- ##"
+      echo
+      cat confdefs.h
+      echo
+    fi
+    test "$ac_signal" != 0 &&
+      $as_echo "$as_me: caught signal $ac_signal"
+    $as_echo "$as_me: exit $exit_status"
+  } >&5
+  rm -f core *.core core.conftest.* &&
+    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+    exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+  trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+  # We do not want a PATH search for config.site.
+  case $CONFIG_SITE in #((
+    -*)  ac_site_file1=./$CONFIG_SITE;;
+    */*) ac_site_file1=$CONFIG_SITE;;
+    *)   ac_site_file1=./$CONFIG_SITE;;
+  esac
+elif test "x$prefix" != xNONE; then
+  ac_site_file1=$prefix/share/config.site
+  ac_site_file2=$prefix/etc/config.site
+else
+  ac_site_file1=$ac_default_prefix/share/config.site
+  ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+  test "x$ac_site_file" = xNONE && continue
+  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+    sed 's/^/| /' "$ac_site_file" >&5
+    . "$ac_site_file" \
+      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
+  fi
+done
+
+if test -r "$cache_file"; then
+  # Some versions of bash will fail to source /dev/null (special files
+  # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
+  if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+    case $cache_file in
+      [\\/]* | ?:[\\/]* ) . "$cache_file";;
+      *)                      . "./$cache_file";;
+    esac
+  fi
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+  >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+  eval ac_old_set=\$ac_cv_env_${ac_var}_set
+  eval ac_new_set=\$ac_env_${ac_var}_set
+  eval ac_old_val=\$ac_cv_env_${ac_var}_value
+  eval ac_new_val=\$ac_env_${ac_var}_value
+  case $ac_old_set,$ac_new_set in
+    set,)
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,set)
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,);;
+    *)
+      if test "x$ac_old_val" != "x$ac_new_val"; then
+	# differences in whitespace do not lead to failure.
+	ac_old_val_w=`echo x $ac_old_val`
+	ac_new_val_w=`echo x $ac_new_val`
+	if test "$ac_old_val_w" != "$ac_new_val_w"; then
+	  { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+	  ac_cache_corrupted=:
+	else
+	  { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+	  eval $ac_var=\$ac_old_val
+	fi
+	{ $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
+$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
+	{ $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
+$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
+      fi;;
+  esac
+  # Pass precious variables to config.status.
+  if test "$ac_new_set" = set; then
+    case $ac_new_val in
+    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *) ac_arg=$ac_var=$ac_new_val ;;
+    esac
+    case " $ac_configure_args " in
+      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+      *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+    esac
+  fi
+done
+if $ac_cache_corrupted; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+# detect PDKs based on directories that include Makefile.in files
+
+
+# check for the source and install paths for each PDK.
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: Found technology directories: sky130" >&5
+$as_echo "$as_me: Found technology directories: sky130" >&6;}
+
+
+    # --with-pdk-source=PDK_SOURCE_PATH
+
+
+        SKY130_SOURCE_PATH=""
+
+# Check whether --with-sky130-source was given.
+if test "${with_sky130_source+set}" = set; then :
+  withval=$with_sky130_source; SKY130_SOURCE_PATH=$withval
+
+fi
+
+
+	# Require this argument
+        { $as_echo "$as_me:${as_lineno-$LINENO}: Checking whether source path is specified for 'sky130'" >&5
+$as_echo "$as_me: Checking whether source path is specified for 'sky130'" >&6;}
+        if test "x$SKY130_SOURCE_PATH" == "x" ; then
+	   as_fn_error $? "Option --with-sky130-source=<path> not specified!" "$LINENO" 5
+	fi
+
+	SKY130_SOURCE_PATH=$(readlink -f $SKY130_SOURCE_PATH)
+
+        # basic check that the PDK exists there (the path must exist in any case)
+        { $as_echo "$as_me:${as_lineno-$LINENO}: Checking specified path for 'sky130' at $SKY130_SOURCE_PATH" >&5
+$as_echo "$as_me: Checking specified path for 'sky130' at $SKY130_SOURCE_PATH" >&6;}
+        as_ac_File=`$as_echo "ac_cv_file_$SKY130_SOURCE_PATH" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $SKY130_SOURCE_PATH" >&5
+$as_echo_n "checking for $SKY130_SOURCE_PATH... " >&6; }
+if eval \${$as_ac_File+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  test "$cross_compiling" = yes &&
+  as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
+if test -r "$SKY130_SOURCE_PATH"; then
+  eval "$as_ac_File=yes"
+else
+  eval "$as_ac_File=no"
+fi
+fi
+eval ac_res=\$$as_ac_File
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
+
+           { $as_echo "$as_me:${as_lineno-$LINENO}: 'sky130' source path found at $SKY130_SOURCE_PATH" >&5
+$as_echo "$as_me: 'sky130' source path found at $SKY130_SOURCE_PATH" >&6;}
+
+else
+
+           as_fn_error $? "Specified path for 'sky130' at $SKY130_SOURCE_PATH not found" "$LINENO" 5
+
+fi
+
+
+
+
+
+    # --with-pdk-local-path=PDK_LOCAL_PATH
+
+
+        SKY130_LOCAL_PATH=""
+
+# Check whether --with-sky130-local-path was given.
+if test "${with_sky130_local_path+set}" = set; then :
+  withval=$with_sky130_local_path; SKY130_LOCAL_PATH=$withval
+
+fi
+
+	# Require this argument
+        { $as_echo "$as_me:${as_lineno-$LINENO}: Checking whether local path is specified for 'sky130'" >&5
+$as_echo "$as_me: Checking whether local path is specified for 'sky130'" >&6;}
+        if test "x$SKY130_LOCAL_PATH" == "x" ; then
+	   as_fn_error $? "Option --with-sky130-local-path=<path> not specified!" "$LINENO" 5
+	fi
+	SKY130_LOCAL_PATH=$(readlink -f $SKY130_LOCAL_PATH)
+
+
+
+    # --with-pdk-dist-path=PDK_DIST_PATH
+
+
+        SKY130_DIST_PATH=""
+
+# Check whether --with-sky130-dist-path was given.
+if test "${with_sky130_dist_path+set}" = set; then :
+  withval=$with_sky130_dist_path; SKY130_DIST_PATH=$withval
+
+fi
+
+	# Require this argument
+        { $as_echo "$as_me:${as_lineno-$LINENO}: Checking whether distribution path is specified for 'sky130'" >&5
+$as_echo "$as_me: Checking whether distribution path is specified for 'sky130'" >&6;}
+        if test "x$SKY130_DIST_PATH" == "x" ; then
+	   { $as_echo "$as_me:${as_lineno-$LINENO}: Option --with-sky130-dist-path=<path> not specified.  Local install only.\"" >&5
+$as_echo "$as_me: Option --with-sky130-dist-path=<path> not specified.  Local install only.\"" >&6;}
+	fi
+	SKY130_DIST_PATH=$(readlink -f $SKY130_DIST_PATH)
+
+
+
+    # --with-pdk-link-targets=PDK_LINK_TARGETS
+
+
+	# Default link_targets = "none"
+	SKY130_LINK_TARGETS="none"
+
+
+# Check whether --with-sky130-link-targets was given.
+if test "${with_sky130_link_targets+set}" = set; then :
+  withval=$with_sky130_link_targets; SKY130_LINK_TARGETS=$with_sky130_link_targets
+
+fi
+
+
+        { $as_echo "$as_me:${as_lineno-$LINENO}: Link targets set to $SKY130_LINK_TARGETS" >&5
+$as_echo "$as_me: Link targets set to $SKY130_LINK_TARGETS" >&6;}
+
+
+
+# Checking if (some) prerequisites are satisfied
+
+
+
+
+
+
+        if test -n "$PYTHON"; then
+      # If the user set $PYTHON, use it and don't search something else.
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $PYTHON version is >= 3.4" >&5
+$as_echo_n "checking whether $PYTHON version is >= 3.4... " >&6; }
+      prog="import sys
+# split strings by '.' and convert to numeric.  Append some zeros
+# because we need at least 4 digits for the hex conversion.
+# map returns an iterator in Python 3.0 and a list in 2.x
+minver = list(map(int, '3.4'.split('.'))) + [0, 0, 0]
+minverhex = 0
+# xrange is not present in Python 3.0 and range returns an iterator
+for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[i]
+sys.exit(sys.hexversion < minverhex)"
+  if { echo "$as_me:$LINENO: $PYTHON -c "$prog"" >&5
+   ($PYTHON -c "$prog") >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+			       as_fn_error $? "Python interpreter is too old" "$LINENO" 5
+fi
+      am_display_PYTHON=$PYTHON
+    else
+      # Otherwise, try each interpreter until we find one that satisfies
+      # VERSION.
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a Python interpreter with version >= 3.4" >&5
+$as_echo_n "checking for a Python interpreter with version >= 3.4... " >&6; }
+if ${am_cv_pathless_PYTHON+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+	for am_cv_pathless_PYTHON in python python2 python3 python3.3 python3.2 python3.1 python3.0 python2.7  python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 none; do
+	  test "$am_cv_pathless_PYTHON" = none && break
+	  prog="import sys
+# split strings by '.' and convert to numeric.  Append some zeros
+# because we need at least 4 digits for the hex conversion.
+# map returns an iterator in Python 3.0 and a list in 2.x
+minver = list(map(int, '3.4'.split('.'))) + [0, 0, 0]
+minverhex = 0
+# xrange is not present in Python 3.0 and range returns an iterator
+for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[i]
+sys.exit(sys.hexversion < minverhex)"
+  if { echo "$as_me:$LINENO: $am_cv_pathless_PYTHON -c "$prog"" >&5
+   ($am_cv_pathless_PYTHON -c "$prog") >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }; then :
+  break
+fi
+	done
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_pathless_PYTHON" >&5
+$as_echo "$am_cv_pathless_PYTHON" >&6; }
+      # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
+      if test "$am_cv_pathless_PYTHON" = none; then
+	PYTHON=:
+      else
+        # Extract the first word of "$am_cv_pathless_PYTHON", so it can be a program name with args.
+set dummy $am_cv_pathless_PYTHON; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PYTHON+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $PYTHON in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+PYTHON=$ac_cv_path_PYTHON
+if test -n "$PYTHON"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
+$as_echo "$PYTHON" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+      fi
+      am_display_PYTHON=$am_cv_pathless_PYTHON
+    fi
+
+
+  if test "$PYTHON" = :; then
+      as_fn_error $? "no suitable Python interpreter found" "$LINENO" 5
+  else
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON version" >&5
+$as_echo_n "checking for $am_display_PYTHON version... " >&6; }
+if ${am_cv_python_version+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[:3])"`
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5
+$as_echo "$am_cv_python_version" >&6; }
+  PYTHON_VERSION=$am_cv_python_version
+
+
+
+  PYTHON_PREFIX='${prefix}'
+
+  PYTHON_EXEC_PREFIX='${exec_prefix}'
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON platform" >&5
+$as_echo_n "checking for $am_display_PYTHON platform... " >&6; }
+if ${am_cv_python_platform+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5
+$as_echo "$am_cv_python_platform" >&6; }
+  PYTHON_PLATFORM=$am_cv_python_platform
+
+
+  # Just factor out some code duplication.
+  am_python_setup_sysconfig="\
+import sys
+# Prefer sysconfig over distutils.sysconfig, for better compatibility
+# with python 3.x.  See automake bug#10227.
+try:
+    import sysconfig
+except ImportError:
+    can_use_sysconfig = 0
+else:
+    can_use_sysconfig = 1
+# Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs:
+# <https://github.com/pypa/virtualenv/issues/118>
+try:
+    from platform import python_implementation
+    if python_implementation() == 'CPython' and sys.version[:3] == '2.7':
+        can_use_sysconfig = 0
+except ImportError:
+    pass"
+
+
+            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory" >&5
+$as_echo_n "checking for $am_display_PYTHON script directory... " >&6; }
+if ${am_cv_python_pythondir+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "x$prefix" = xNONE
+     then
+       am_py_prefix=$ac_default_prefix
+     else
+       am_py_prefix=$prefix
+     fi
+     am_cv_python_pythondir=`$PYTHON -c "
+$am_python_setup_sysconfig
+if can_use_sysconfig:
+    sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
+else:
+    from distutils import sysconfig
+    sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
+sys.stdout.write(sitedir)"`
+     case $am_cv_python_pythondir in
+     $am_py_prefix*)
+       am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
+       am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
+       ;;
+     *)
+       case $am_py_prefix in
+         /usr|/System*) ;;
+         *)
+	  am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
+	  ;;
+       esac
+       ;;
+     esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pythondir" >&5
+$as_echo "$am_cv_python_pythondir" >&6; }
+  pythondir=$am_cv_python_pythondir
+
+
+
+  pkgpythondir=\${pythondir}/$PACKAGE
+
+
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON extension module directory" >&5
+$as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; }
+if ${am_cv_python_pyexecdir+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "x$exec_prefix" = xNONE
+     then
+       am_py_exec_prefix=$am_py_prefix
+     else
+       am_py_exec_prefix=$exec_prefix
+     fi
+     am_cv_python_pyexecdir=`$PYTHON -c "
+$am_python_setup_sysconfig
+if can_use_sysconfig:
+    sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'})
+else:
+    from distutils import sysconfig
+    sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix')
+sys.stdout.write(sitedir)"`
+     case $am_cv_python_pyexecdir in
+     $am_py_exec_prefix*)
+       am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
+       am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
+       ;;
+     *)
+       case $am_py_exec_prefix in
+         /usr|/System*) ;;
+         *)
+	   am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
+	   ;;
+       esac
+       ;;
+     esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pyexecdir" >&5
+$as_echo "$am_cv_python_pyexecdir" >&6; }
+  pyexecdir=$am_cv_python_pyexecdir
+
+
+
+  pkgpyexecdir=\${pyexecdir}/$PACKAGE
+
+
+
+  fi
+
+
+
+    if test -z $PYTHON;
+    then
+        PYTHON="python"
+    fi
+    PYTHON_NAME=`basename $PYTHON`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking $PYTHON_NAME module: distutils" >&5
+$as_echo_n "checking $PYTHON_NAME module: distutils... " >&6; }
+	$PYTHON -c "import distutils" 2>/dev/null
+	if test $? -eq 0;
+	then
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+		eval HAVE_PYMOD_DISTUTILS=yes
+	else
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+		eval HAVE_PYMOD_DISTUTILS=no
+		#
+		if test -n ""
+		then
+			as_fn_error $? "failed to find required module distutils" "$LINENO" 5
+			exit 1
+		fi
+	fi
+
+
+# Extract the first word of "magic", so it can be a program name with args.
+set dummy magic; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MAGIC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $MAGIC in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_MAGIC="$MAGIC" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_MAGIC="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+MAGIC=$ac_cv_path_MAGIC
+if test -n "$MAGIC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC" >&5
+$as_echo "$MAGIC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+if test -z "$MAGIC"; then
+   as_fn_error $? "You need 'magic' to generate the needed various cell views" "$LINENO" 5
+fi
+
+# Check for "--with-ef-style"
+EF_STYLE=0
+
+# Check whether --with-ef-style was given.
+if test "${with_ef_style+set}" = set; then :
+  withval=$with_ef_style;
+    pdks_ef_style=$withval
+    if test "$withval" == "yes" -o "$withval" == "YES"; then
+        EF_STYLE=1
+    fi
+
+fi
+
+
+
+
+MAKEFILES=$(find .. -name "Makefile.in" | sed 's/\(.*\)\.in/\1/g')
+ac_config_files="$ac_config_files $MAKEFILES"
+
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems.  If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+      *) { eval $ac_var=; unset $ac_var;} ;;
+      esac ;;
+    esac
+  done
+
+  (set) 2>&1 |
+    case $as_nl`(ac_space=' '; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      # `set' does not quote correctly, so add quotes: double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \.
+      sed -n \
+	"s/'/'\\\\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+      ;; #(
+    *)
+      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+) |
+  sed '
+     /^ac_cv_env_/b end
+     t clear
+     :clear
+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     t end
+     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+  if test -w "$cache_file"; then
+    if test "x$cache_file" != "x/dev/null"; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+      if test ! -f "$cache_file" || test -h "$cache_file"; then
+	cat confcache >"$cache_file"
+      else
+        case $cache_file in #(
+        */* | ?:*)
+	  mv -f confcache "$cache_file"$$ &&
+	  mv -f "$cache_file"$$ "$cache_file" ;; #(
+        *)
+	  mv -f confcache "$cache_file" ;;
+	esac
+      fi
+    fi
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+  fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Transform confdefs.h into DEFS.
+# Protect against shell expansion while executing Makefile rules.
+# Protect against Makefile macro expansion.
+#
+# If the first sed substitution is executed (which looks for macros that
+# take arguments), then branch to the quote section.  Otherwise,
+# look for a macro that doesn't take arguments.
+ac_script='
+:mline
+/\\$/{
+ N
+ s,\\\n,,
+ b mline
+}
+t clear
+:clear
+s/^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 (][^	 (]*([^)]*)\)[	 ]*\(.*\)/-D\1=\2/g
+t quote
+s/^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 ][^	 ]*\)[	 ]*\(.*\)/-D\1=\2/g
+t quote
+b any
+:quote
+s/[	 `~#$^&*(){}\\|;'\''"<>?]/\\&/g
+s/\[/\\&/g
+s/\]/\\&/g
+s/\$/$$/g
+H
+:any
+${
+	g
+	s/^\n//
+	s/\n/ /g
+	p
+}
+'
+DEFS=`sed -n "$ac_script" confdefs.h`
+
+
+ac_libobjs=
+ac_ltlibobjs=
+U=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+  # 1. Remove the extension, and $U if already installed.
+  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
+  #    will be set to the directory where LIBOBJS objects are built.
+  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+
+: "${CONFIG_STATUS=./config.status}"
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in #(
+      *"$as_nl"*)
+	expr "X$arg" : "X\\(.*\\)$as_nl";
+	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""	$as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  fi
+  $as_echo "$as_me: error: $2" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+  case `echo 'xy\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='	';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -pR'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -pR'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -pR'
+  fi
+else
+  as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p='mkdir -p "$as_dir"'
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by open_pdks $as_me 1.0, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
+
+  CONFIG_FILES    = $CONFIG_FILES
+  CONFIG_HEADERS  = $CONFIG_HEADERS
+  CONFIG_LINKS    = $CONFIG_LINKS
+  CONFIG_COMMANDS = $CONFIG_COMMANDS
+  $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration.  Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+  -h, --help       print this help, then exit
+  -V, --version    print version number and configuration settings, then exit
+      --config     print configuration, then exit
+  -q, --quiet, --silent
+                   do not print progress messages
+  -d, --debug      don't remove temporary files
+      --recheck    update $as_me by reconfiguring in the same conditions
+      --file=FILE[:TEMPLATE]
+                   instantiate the configuration file FILE
+
+Configuration files:
+$config_files
+
+Report bugs to <github.com/RTimothyEdwards/open_pdks>."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+open_pdks config.status 1.0
+configured by $0, generated by GNU Autoconf 2.69,
+  with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+  case $1 in
+  --*=?*)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+    ac_shift=:
+    ;;
+  --*=)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=
+    ac_shift=:
+    ;;
+  *)
+    ac_option=$1
+    ac_optarg=$2
+    ac_shift=shift
+    ;;
+  esac
+
+  case $ac_option in
+  # Handling of the options.
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    ac_cs_recheck=: ;;
+  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+    $as_echo "$ac_cs_version"; exit ;;
+  --config | --confi | --conf | --con | --co | --c )
+    $as_echo "$ac_cs_config"; exit ;;
+  --debug | --debu | --deb | --de | --d | -d )
+    debug=: ;;
+  --file | --fil | --fi | --f )
+    $ac_shift
+    case $ac_optarg in
+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    '') as_fn_error $? "missing file argument" ;;
+    esac
+    as_fn_append CONFIG_FILES " '$ac_optarg'"
+    ac_need_defaults=false;;
+  --he | --h |  --help | --hel | -h )
+    $as_echo "$ac_cs_usage"; exit ;;
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil | --si | --s)
+    ac_cs_silent=: ;;
+
+  # This is an error.
+  -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+  *) as_fn_append ac_config_targets " $1"
+     ac_need_defaults=false ;;
+
+  esac
+  shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+  exec 6>/dev/null
+  ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+  set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+  shift
+  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+  CONFIG_SHELL='$SHELL'
+  export CONFIG_SHELL
+  exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+  $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+  case $ac_config_target in
+    "$MAKEFILES") CONFIG_FILES="$CONFIG_FILES $MAKEFILES" ;;
+
+  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+  esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used.  Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+fi
+
+# Have a temporary directory for convenience.  Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+  tmp= ac_tmp=
+  trap 'exit_status=$?
+  : "${ac_tmp:=$tmp}"
+  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+' 0
+  trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+  test -d "$tmp"
+}  ||
+{
+  tmp=./conf$$-$RANDOM
+  (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+  eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+  ac_cs_awk_cr='\\r'
+else
+  ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+  echo "cat >conf$$subs.awk <<_ACEOF" &&
+  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+  echo "_ACEOF"
+} >conf$$subs.sh ||
+  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+  . ./conf$$subs.sh ||
+    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+
+  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+  if test $ac_delim_n = $ac_delim_num; then
+    break
+  elif $ac_last_try; then
+    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\)..*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\)..*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+  N
+  s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+  for (key in S) S_is_set[key] = 1
+  FS = ""
+
+}
+{
+  line = $ 0
+  nfields = split(line, field, "@")
+  substed = 0
+  len = length(field[1])
+  for (i = 2; i < nfields; i++) {
+    key = field[i]
+    keylen = length(key)
+    if (S_is_set[key]) {
+      value = S[key]
+      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+      len += length(value) + length(field[++i])
+      substed = 1
+    } else
+      len += 1 + keylen
+  }
+
+  print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+  cat
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[	 ]*VPATH[	 ]*=[	 ]*/{
+h
+s///
+s/^/:/
+s/[	 ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[	 ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[	 ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+
+eval set X "  :F $CONFIG_FILES      "
+shift
+for ac_tag
+do
+  case $ac_tag in
+  :[FHLC]) ac_mode=$ac_tag; continue;;
+  esac
+  case $ac_mode$ac_tag in
+  :[FHL]*:*);;
+  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+  :[FH]-) ac_tag=-:-;;
+  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+  esac
+  ac_save_IFS=$IFS
+  IFS=:
+  set x $ac_tag
+  IFS=$ac_save_IFS
+  shift
+  ac_file=$1
+  shift
+
+  case $ac_mode in
+  :L) ac_source=$1;;
+  :[FH])
+    ac_file_inputs=
+    for ac_f
+    do
+      case $ac_f in
+      -) ac_f="$ac_tmp/stdin";;
+      *) # Look for the file first in the build tree, then in the source tree
+	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
+	 # because $ac_f cannot contain `:'.
+	 test -f "$ac_f" ||
+	   case $ac_f in
+	   [\\/$]*) false;;
+	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+	   esac ||
+	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+      esac
+      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+      as_fn_append ac_file_inputs " '$ac_f'"
+    done
+
+    # Let's still pretend it is `configure' which instantiates (i.e., don't
+    # use $as_me), people would be surprised to read:
+    #    /* config.h.  Generated by config.status.  */
+    configure_input='Generated from '`
+	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+	`' by configure.'
+    if test x"$ac_file" != x-; then
+      configure_input="$ac_file.  $configure_input"
+      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+    fi
+    # Neutralize special characters interpreted by sed in replacement strings.
+    case $configure_input in #(
+    *\&* | *\|* | *\\* )
+       ac_sed_conf_input=`$as_echo "$configure_input" |
+       sed 's/[\\\\&|]/\\\\&/g'`;; #(
+    *) ac_sed_conf_input=$configure_input;;
+    esac
+
+    case $ac_tag in
+    *:-:* | *:-) cat >"$ac_tmp/stdin" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+    esac
+    ;;
+  esac
+
+  ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$ac_file" : 'X\(//\)[^/]' \| \
+	 X"$ac_file" : 'X\(//\)$' \| \
+	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+  as_dir="$ac_dir"; as_fn_mkdir_p
+  ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+  case $ac_mode in
+  :F)
+  #
+  # CONFIG_FILE
+  #
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+  p
+  q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+  ac_datarootdir_hack='
+  s&@datadir@&$datadir&g
+  s&@docdir@&$docdir&g
+  s&@infodir@&$infodir&g
+  s&@localedir@&$localedir&g
+  s&@mandir@&$mandir&g
+  s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
+      "$ac_tmp/out"`; test -z "$ac_out"; } &&
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined" >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined" >&2;}
+
+  rm -f "$ac_tmp/stdin"
+  case $ac_file in
+  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+  esac \
+  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+
+
+
+  esac
+
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+  as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded.  So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status.  When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+  ac_cs_success=:
+  ac_config_status_args=
+  test "$silent" = yes &&
+    ac_config_status_args="$ac_config_status_args --quiet"
+  exec 5>/dev/null
+  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+  exec 5>>config.log
+  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+  # would make configure fail if this is the last instruction.
+  $ac_cs_success || as_fn_exit 1
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Build configured successfully" >&5
+$as_echo "Build configured successfully" >&6; }
diff --git a/scripts/configure.ac b/scripts/configure.ac
new file mode 100755
index 0000000..362d3d2
--- /dev/null
+++ b/scripts/configure.ac
@@ -0,0 +1,120 @@
+AC_INIT([open_pdks], [1.0], [github.com/RTimothyEdwards/open_pdks])
+
+# detect PDKs based on directories that include Makefile.in files
+m4_define([M4_GET_TECHS], [m4_normalize(m4_esyscmd(cd .. && find * -mindepth 1 -name "Makefile.in" -exec dirname {} \; | tr "\n" " "))])
+
+# check for the source and install paths for each PDK.
+AC_DEFUN([M4_GEN_WITH_PDK_ARGS],
+[
+    # --with-pdk-source=PDK_SOURCE_PATH
+    m4_foreach_w(pdk, $1, [
+	m4_define([pdkvar], [m4_normalize(m4_esyscmd(echo pdk | tr "a-z" "A-Z"))])
+        pdkvar[]_SOURCE_PATH=""
+        AC_ARG_WITH(pdk-source,
+              [AS_HELP_STRING([--with-pdk-source=/path/to/pdk/source], "location of the source files for pdk")],
+              [pdkvar[]_SOURCE_PATH=$withval]
+        )
+
+	# Require this argument
+        AC_MSG_NOTICE([Checking whether source path is specified for 'pdk'])
+        if test "x$[]pdkvar[]_SOURCE_PATH" == "x" ; then
+	   AC_MSG_ERROR([Option --with-pdk-source=<path> not specified!])
+	fi
+
+	pdkvar[]_SOURCE_PATH=$(readlink -f $[]pdkvar[]_SOURCE_PATH)
+
+        # basic check that the PDK exists there (the path must exist in any case)
+        AC_MSG_NOTICE([Checking specified path for 'pdk' at $[]pdkvar[]_SOURCE_PATH])
+        AC_CHECK_FILE($[]pdkvar[]_SOURCE_PATH,
+        [
+           AC_MSG_NOTICE(['pdk' source path found at $[]pdkvar[]_SOURCE_PATH])
+        ],
+        [
+           AC_MSG_ERROR([Specified path for 'pdk' at $[]pdkvar[]_SOURCE_PATH not found])
+        ])
+        AC_SUBST([]pdkvar[]_SOURCE_PATH)
+    ])
+
+
+    # --with-pdk-local-path=PDK_LOCAL_PATH
+    m4_foreach_w(pdk, $1, [
+	m4_define([pdkvar], [m4_normalize(m4_esyscmd(echo pdk | tr "a-z" "A-Z"))])
+        pdkvar[]_LOCAL_PATH=""
+        AC_ARG_WITH(pdk-local-path,
+              [AS_HELP_STRING([--with-pdk-local-path=/path/to/install/pdks], "run-time location of the PDKs")],
+              [pdkvar[]_LOCAL_PATH=$withval]
+        )
+	# Require this argument
+        AC_MSG_NOTICE([Checking whether local path is specified for 'pdk'])
+        if test "x$[]pdkvar[]_LOCAL_PATH" == "x" ; then
+	   AC_MSG_ERROR([Option --with-pdk-local-path=<path> not specified!])
+	fi
+	pdkvar[]_LOCAL_PATH=$(readlink -f $[]pdkvar[]_LOCAL_PATH)
+        AC_SUBST([]pdkvar[]_LOCAL_PATH)
+    ])
+
+    # --with-pdk-dist-path=PDK_DIST_PATH
+    m4_foreach_w(pdk, $1, [
+	m4_define([pdkvar], [m4_normalize(m4_esyscmd(echo pdk | tr "a-z" "A-Z"))])
+        pdkvar[]_DIST_PATH=""
+        AC_ARG_WITH(pdk-dist-path,
+              [AS_HELP_STRING([--with-pdk-dist-path=/path/to/install/pdks], "staging location to install the PDKs for distribution (optional)")],
+              [[]pdkvar[]_DIST_PATH=$withval]
+        )
+	# Require this argument
+        AC_MSG_NOTICE([Checking whether distribution path is specified for 'pdk'])
+        if test "x$[]pdkvar[]_DIST_PATH" == "x" ; then
+	   AC_MSG_NOTICE([Option --with-pdk-dist-path=<path> not specified.  Local install only."])
+	fi
+	pdkvar[]_DIST_PATH=$(readlink -f $[]pdkvar[]_DIST_PATH)
+        AC_SUBST([]pdkvar[]_DIST_PATH)
+    ])
+
+    # --with-pdk-link-targets=PDK_LINK_TARGETS
+    m4_foreach_w(pdk, $1, [
+	m4_define([pdkvar], [m4_normalize(m4_esyscmd(echo pdk | tr "a-z" "A-Z"))])
+	# Default link_targets = "none"
+	pdkvar[]_LINK_TARGETS="none"
+
+        AC_ARG_WITH(pdk-link-targets,
+              [AS_HELP_STRING([--with-pdk-link-targets=none|source], "make symbolic links to existing files @<:@default=none@:>@")],
+              [[]pdkvar[]_LINK_TARGETS=$with_[]pdk[]_link_targets]
+        )
+        AC_SUBST([]pdkvar[]_LINK_TARGETS)
+        AC_MSG_NOTICE([Link targets set to $[]pdkvar[]_LINK_TARGETS])
+    ])
+])
+
+AC_MSG_NOTICE([Found technology directories: M4_GET_TECHS()])
+
+M4_GEN_WITH_PDK_ARGS(M4_GET_TECHS())
+
+# Checking if (some) prerequisites are satisfied
+AM_PATH_PYTHON([3.4])
+AX_PYTHON_MODULE([distutils],[])
+
+AC_PATH_PROG(MAGIC, magic)
+if test -z "$MAGIC"; then
+   AC_MSG_ERROR([You need 'magic' to generate the needed various cell views])
+fi
+
+# Check for "--with-ef-style"
+EF_STYLE=0
+AC_ARG_WITH([ef-style],
+  [AS_HELP_STRING([--with-ef-style],
+    [Use efabless style file system structure @<:@default=no@:>@])],
+  [
+    pdks_ef_style=$withval
+    if test "$withval" == "yes" -o "$withval" == "YES"; then
+        EF_STYLE=1
+    fi
+  ], )
+
+AC_SUBST(EF_STYLE)
+
+MAKEFILES=$(find .. -name "Makefile.in" | sed 's/\(.*\)\.in/\1/g')
+AC_CONFIG_FILES($MAKEFILES)
+
+AC_OUTPUT
+
+AC_MSG_RESULT(Build configured successfully)
diff --git a/sky130/Makefile b/sky130/Makefile.in
similarity index 77%
rename from sky130/Makefile
rename to sky130/Makefile.in
index d8eb452..8485deb 100644
--- a/sky130/Makefile
+++ b/sky130/Makefile.in
@@ -11,9 +11,41 @@
 #
 # Instructions:
 #
-# Modify values below as needed:
+# Run "configure" from the top level directory.  Use the following
+# configuration options to match your environment:
 #
-#	VENDOR_PATH: points to vendor sources
+#	--with-sky130-source-path=<path>
+#		where <path> is the location of the Google/Skywater repository
+#		cloned from https://github.com/google/skywater-pdk.  This
+#		option is mandatory and has no default.
+#
+#	--with-sky130-local-path=<path>
+#		where <path> is the run-time location of the installed PDK
+#		files generated by open_pdks.  This option is mandatory and
+#		has no default.
+#
+#	--with-sky130-dist-path=<path>
+#		where <path> is the install-time location of the installed
+#		PDK files generated by open_pdks, with the expectation that
+#		<path> is something like a git repository that is then
+#		distributed across a system.  If this option is not specified,
+#		then files are installed to the local path.
+#
+#	--with-sky130-link-targets=<value>
+#		where <value> is one of "none" or "source".  If set to "source",
+#		then where possible, the installed files are symbolic links
+#		back to the source, rather than copies of the source.  The
+#		default value is "none" if the option is not specified.
+#
+#	--with-ef-style
+#		If specified, then the installation uses the efabless style,
+#		which swaps the file hierarchy of file formats vs. IP libraries;
+#		e.g., "gds/sky130_fd_sc_hd/" with ef-style, vs.
+#		"sky130_fd_sc_hd/gds/" without it.
+#
+# The variables below are substituted from the configuration options:
+#
+#	SKYWATER_PATH: points to vendor sources
 #	EF_STYLE: 1 for efabless style, 0 otherwise
 #	LINK_TARGETS: link back to source or link to 1st PDK when possible
 #	DIST_PATH: install location for distributed install
@@ -21,21 +53,16 @@
 #		    for distributed install
 #
 # Run "make" to stage the PDK for tool setup and vendor libraries
-
-# If installing into the final destination (local install):
 #
-#   Run "make install-local" to install all staged files
-#   ("make install" is equivalent to "make install-local")
-#
-# If installing into a repository to be distributed to the final destination:
-#
-#   Run "make install-dist" to install all staged files
+# Run "make install" to install all staged files.  The installation is
+# either local or distributed, depending on whether --with-sky130-dist-path
+# has been set when running configure.
 #
 # Run "make clean" to remove all staging files.
 #
 # Run "make veryclean" to remove all staging and install log files.
 #
-# For the sake of simplicity, the "standard" local install can be done
+# For the sake of simplicity, the "standard" installation can be done
 # with the usual
 #
 #   make
@@ -54,8 +81,8 @@
 # Mainly, the hierarchy of library names and file types is reversed
 # (e.g., sky130_fd_sc_hd/lef vs. lef/sky130_fd_sc_hd).
 
-EF_STYLE = 0
-# EF_STYLE = 1
+# EF_STYLE = 0 | 1
+EF_STYLE = @EF_STYLE@
 
 # Normally it's fine to keep the staging path in a local directory,
 # although /tmp or a dedicated staging area are also fine, as long
@@ -71,9 +98,8 @@
 # same files in that PDK, where they exist, and are copied
 # from source, where they don't.
 
-# LINK_TARGETS = source
-LINK_TARGETS = none
-# LINK_TARGETS = sky130A
+# LINK_TARGETS = source | none | sky130A
+LINK_TARGETS = @SKY130_LINK_TARGETS@
 
 # Paths:
 
@@ -82,26 +108,27 @@
 # SKYWATER_PATH = ~/gits/skywater-pdk-scratch/skywater-pdk/libraries
 # Version below is also from foss-eda-tools and is more recent than
 # the scratch repo above.
-SKYWATER_PATH = ~/gits/skywater-pdk/libraries
+SKYWATER_PATH = @SKY130_SOURCE_PATH@
 
-# Path to OSU standard cell library sources
+# Path to OSU standard cell library sources (to be added to configuration options).
 OSU_PATH = ~/gits/osu_130_pdk
 
 # NOTE:  Install destination is the git repository of the technology platform.
 # Once updated in git, the git project can be distributed to all hosts.
 #
 ifeq (${EF_STYLE}, 1)
-    LOCAL_PATH = /ef/tech/SW
+    LOCAL_PATH = @SKY130_LOCAL_PATH@
     CONFIG_DIR = .ef-config
     REV_DIR = ${REVISION}
 else
     # LOCAL_PATH = /usr/local/share/vlsi/SkyWater
-    LOCAL_PATH = ~/projects/efabless/tech/SW
+    LOCAL_PATH = @SKY130_LOCAL_PATH@
     CONFIG_DIR = .config
     REV_DIR = .
 endif
 
-DIST_PATH = ~/gits/ef-skywater-${TECH}
+# DIST_PATH = ~/gits/ef-skywater-${TECH}
+DIST_PATH = @SKY130_DIST_PATH@
 
 # EF process nodes created from the master sources
 SKY130A = sky130A
@@ -271,11 +298,15 @@
 	${CPP} ${SKY130A_DEFS} klayout/${TECH}.lyp > ${KLAYOUT_STAGING_A}/${SKY130A}.lyp
 	${CPP} ${SKY130A_DEFS} klayout/${TECH}.lyt > ${KLAYOUT_STAGING_A}/${SKY130A}.lyt
 
-openlane-a: openlane/common_pdn.tcl openlane/config.tcl openlane/sky130_fd_sc_hd/config.tcl  openlane/sky130_fd_sc_hs/config.tcl
+openlane-a: openlane/common_pdn.tcl openlane/config.tcl openlane/sky130_fd_sc_hd/config.tcl  openlane/sky130_fd_sc_hs/config.tcl openlane/sky130_fd_sc_ms/config.tcl openlane/sky130_fd_sc_ls/config.tcl openlane/sky130_fd_sc_hdll/config.tcl
 	mkdir -p ${OPENLANETOP_STAGING_A}
 	mkdir -p ${OPENLANE_STAGING_A}
 	mkdir -p ${OPENLANE_STAGING_A}/sky130_fd_sc_hd
 	mkdir -p ${OPENLANE_STAGING_A}/sky130_fd_sc_hs
+	mkdir -p ${OPENLANE_STAGING_A}/sky130_fd_sc_ls
+	mkdir -p ${OPENLANE_STAGING_A}/sky130_fd_sc_ms
+	mkdir -p ${OPENLANE_STAGING_A}/sky130_fd_sc_hdll
+	mkdir -p ${OPENLANE_STAGING_A}/sky130_fd_sc_hvl
 	rm -f ${OPENLANE_STAGING_A}/common_pdn.info
 	rm -f ${OPENLANE_STAGING_A}/config.tcl
 	rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_hd/config.tcl
@@ -285,6 +316,18 @@
 	rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_hs/config.tcl
 	rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_hs/tracks.info
 	rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_hs/no_synth.cells
+	rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_hdll/config.tcl
+	rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_hdll/tracks.info
+	rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_hdll/no_synth.cells
+	rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_ls/config.tcl
+	rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_ls/tracks.info
+	rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_ls/no_synth.cells
+	rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_ms/config.tcl
+	rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_ms/tracks.info
+	rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_ms/no_synth.cells
+	rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_hvl/config.tcl
+	rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_hvl/tracks.info
+	rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_hvl/no_synth.cells
 	${CPP} ${SKY130A_DEFS} openlane/common_pdn.tcl > ${OPENLANE_STAGING_A}/common_pdn.tcl
 	${CPP} ${SKY130A_DEFS} openlane/config.tcl > ${OPENLANE_STAGING_A}/config.tcl
 	${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hd/config.tcl > ${OPENLANE_STAGING_A}/sky130_fd_sc_hd/config.tcl
@@ -294,6 +337,18 @@
 	${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hs/config.tcl > ${OPENLANE_STAGING_A}/sky130_fd_sc_hs/config.tcl
 	${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hs/tracks.info > ${OPENLANE_STAGING_A}/sky130_fd_sc_hs/tracks.info
 	${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hs/no_synth.cells > ${OPENLANE_STAGING_A}/sky130_fd_sc_hs/no_synth.cells
+	${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ms/config.tcl > ${OPENLANE_STAGING_A}/sky130_fd_sc_ms/config.tcl
+	${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ms/tracks.info > ${OPENLANE_STAGING_A}/sky130_fd_sc_ms/tracks.info
+	${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ms/no_synth.cells > ${OPENLANE_STAGING_A}/sky130_fd_sc_ms/no_synth.cells
+	${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ls/config.tcl > ${OPENLANE_STAGING_A}/sky130_fd_sc_ls/config.tcl
+	${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ls/tracks.info > ${OPENLANE_STAGING_A}/sky130_fd_sc_ls/tracks.info
+	${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ls/no_synth.cells > ${OPENLANE_STAGING_A}/sky130_fd_sc_ls/no_synth.cells
+	${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hdll/config.tcl > ${OPENLANE_STAGING_A}/sky130_fd_sc_hdll/config.tcl
+	${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hdll/tracks.info > ${OPENLANE_STAGING_A}/sky130_fd_sc_hdll/tracks.info
+	${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hdll/no_synth.cells > ${OPENLANE_STAGING_A}/sky130_fd_sc_hdll/no_synth.cells
+	${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hvl/config.tcl > ${OPENLANE_STAGING_A}/sky130_fd_sc_hvl/config.tcl
+	${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hvl/tracks.info > ${OPENLANE_STAGING_A}/sky130_fd_sc_hvl/tracks.info
+	${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hvl/no_synth.cells > ${OPENLANE_STAGING_A}/sky130_fd_sc_hvl/no_synth.cells	
 
 vendor-a:
 	# Install base device models from vendor files
@@ -372,7 +427,12 @@
 	# ${ADDPROP} ${STAGING_PATH}/${SKY130A} sky130_fd_io sky130_fd_io_top_xres4v2 \
 	# 	"FIXED_BBOX 0 407 15000 40000"
 
-install: install-local
+install:
+	if test "x${DIST_PATH}" == "x" ; then
+	    ${MAKE} install-local
+	else
+	    ${MAKE} install-dist
+	fi
 
 install-local: install-local-a
 
diff --git a/sky130/README b/sky130/README
index 4f650ca..acf9e0d 100644
--- a/sky130/README
+++ b/sky130/README
@@ -71,7 +71,28 @@
 
 Step 1:
 
-    Edit the Makefile to set the following definitions for your host system:
+    Run "configure" to set the paths to the Google/SkyWater source
+    repository and to set the path to the install location.  Note that
+    the configure script is located in the open_pdks top level directory,
+    not in the foundry subdirctory, and must be run from the top level
+    directory.  Configure options are as follows:
+
+	--with-sky130-source=/path/to/sky130/source
+                          "location of the source files for sky130"
+	--with-local-path=/path/to/install/pdks
+                          "location where the PDKs will be installed"
+
+    NOTE:  The intention of the configure file is to not have to hand-edit
+    the Makefile.  However, the development of the configure script is
+    currently ongoing and unfinished, so for now the Makefile should be
+    checked and edited after running configure.
+
+Step 2:
+
+    All other steps are run in the sky130/ subdirectory.
+
+    cd to the sky130/ subdirectory and edit the Makefile to set the following
+    definitions for your host system:
 
 	EF_STYLE = Select "1" for an efabless-style file structure, "0"
 			otherwise. There are some differences in
@@ -93,13 +114,14 @@
 			in both the local and distribution installations.  For
 			a distribution installation, this is the local name of
 			the path to the PDK after it has been distributed to
-			the host computers.
+			the host computers (This should have been set by the
+			option --with-local-path= passed to configure).
 
 	DIST_PATH = The path to the location of the installed files prior to
 			distribution.  This will most likely be a git or similar
 			repo.
 
-Step 2:
+Step 3:
 	Run:
 
 	    make
@@ -108,7 +130,7 @@
 	for the SKY130A PDK, and process all vendor files, and place everything
 	in a local staging area.
 
-Step 3:
+Step 4:
 	For a local install, do:
 
 	    make install-local
diff --git a/sky130/netgen/sky130_setup.tcl b/sky130/netgen/sky130_setup.tcl
index bb5c574..7669f39 100644
--- a/sky130/netgen/sky130_setup.tcl
+++ b/sky130/netgen/sky130_setup.tcl
@@ -63,8 +63,7 @@
 
 set devices {mrl1 mrm1 mrm2 mrm3}
 #ifdef METAL5
-lappend devices mrm4
-lappend devices mrm5
+lappend devices mrm4 mrm5
 #endif (METAL5)
 
 foreach dev $devices {
@@ -101,9 +100,8 @@
 #-------------------------------------------
 
 set devices {nshort nlowvt sonos_e nhvnative nhv pshort plowvt phighvt phv}
-lappend devices xcnwvc
-lappend devices xcnwvc2
-lappend devices xchvnwc
+lappend devices ppu npass npd
+lappend devices xcnwvc xcnwvc2 xchvnwc
 
 foreach dev $devices {
     if {[lsearch $cells1 $dev] >= 0} {
diff --git a/sky130/openlane/common_pdn.tcl b/sky130/openlane/common_pdn.tcl
index 60ad840..872688a 100644
--- a/sky130/openlane/common_pdn.tcl
+++ b/sky130/openlane/common_pdn.tcl
@@ -1,6 +1,6 @@
 # Power nets
-set ::power_nets "VDD"
-set ::ground_nets "VSS"
+set ::power_nets $::env(VDD_PIN)
+set ::ground_nets $::env(GND_PIN)
 
 set ::macro_blockage_layer_list "li1 met1 met2 met3 met4 met5"
 
diff --git a/sky130/openlane/config.tcl b/sky130/openlane/config.tcl
index 7c4f7fb..de727d3 100755
--- a/sky130/openlane/config.tcl
+++ b/sky130/openlane/config.tcl
@@ -2,26 +2,40 @@
 set ::env(PROCESS) 130
 set ::env(DEF_UNITS_PER_MICRON) 1000
 
-
 # Placement site for core cells
 # This can be found in the technology lef
 
-set ::env(VDD_PIN) "vpwr"
-set ::env(GND_PIN) "vgnd"
+set ::env(VDD_PIN) "VPWR"
+set ::env(GND_PIN) "VGND"
 
 # Technology LEF
-set ::env(TECH_LEF) "$::env(PDK_ROOT)/TECHNAME/libs.ref/techLEF/$::env(PDK_VARIANT)/*.tlef"
-set ::env(CELLS_LEF) [glob "$::env(PDK_ROOT)/TECHNAME/libs.ref/lef/$::env(PDK_VARIANT)/*.lef"]
-set ::env(MAGIC_TECH_FILE) "$::env(PDK_ROOT)/TECHNAME/libs.tech/magic/sky130A.tech"
-set ::env(MAGIC_MAGICRC) "$::env(PDK_ROOT)/TECHNAME/libs.tech/magic/sky130A.magicrc"
-set ::env(GPIO_PADS_LEF) [glob "$::env(PDK_ROOT)/TECHNAME/libs.ref/sky130_fd_io/lef/routing_abstract.lef"]
+#ifdef EF_FORMAT
+set ::env(TECH_LEF) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/techLEF/$::env(STD_CELL_LIBRARY)/$::env(STD_CELL_LIBRARY).tlef"
+set ::env(CELLS_LEF) [glob "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/lef/$::env(STD_CELL_LIBRARY)/*.lef"]
+set ::env(GPIO_PADS_LEF) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/lef/sky130_fd_io/sky130_fd_io.lef"
+#else (!EF_FORMAT)
+set ::env(TECH_LEF) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/techlef/$::env(STD_CELL_LIBRARY).tlef"
+set ::env(CELLS_LEF) [glob "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lef/*.lef"]
+set ::env(GPIO_PADS_LEF) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/sky130_fd_io/lef/sky130_fd_io.lef"
+#endif (!EF_FORMAT)
+
+# magic setup
+#ifdef EF_FORMAT
+set ::env(MAGIC_MAGICRC) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/magic/20200508/TECHNAME.magicrc"
+set ::env(MAGIC_TECH_FILE) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/magic/20200508/TECHNAME.tech"
+#else (!EF_FORMAT)
+set ::env(MAGIC_MAGICRC) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/magic/TECHNAME.magicrc"
+set ::env(MAGIC_TECH_FILE) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/magic/TECHNAME.tech"
+#endif (!EF_FORMAT)
 
 # netgen setup
-set ::env(NETGEN_SETUP_FILE) $::env(PDK_ROOT)/TECHNAME/libs.tech/netgen/TECHNAME_setup.tcl
+set ::env(NETGEN_SETUP_FILE) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/netgen/TECHNAME_setup.tcl"
 # CTS luts
 set ::env(CTS_TECH_DIR) "N/A"
 
 set ::env(FP_TAPCELL_DIST) 14
 
+# Tracks info
+set ::env(TRACKS_INFO_FILE) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/tracks.info"
 
 set ::env(GLB_RT_L1_ADJUSTMENT) 0.99
diff --git a/sky130/openlane/sky130_fd_sc_hd/config.tcl b/sky130/openlane/sky130_fd_sc_hd/config.tcl
index 37586f9..739787a 100755
--- a/sky130/openlane/sky130_fd_sc_hd/config.tcl
+++ b/sky130/openlane/sky130_fd_sc_hd/config.tcl
@@ -1,16 +1,18 @@
 set current_folder [file dirname [file normalize [info script]]]
 # Technology lib
 
-set ::env(LIB_SYNTH) "$::env(PDK_ROOT)/TECHNAME/libs.ref/sky130_fd_sc_hd/lib/sky130_fd_sc_hd__tt_025C_1v80.lib"
-set ::env(LIB_MAX) "$::env(PDK_ROOT)/TECHNAME/libs.ref/sky130_fd_sc_hd/lib/sky130_fd_sc_hd__ff_n40C_1v95.lib"
-set ::env(LIB_MIN) "$::env(PDK_ROOT)/TECHNAME/libs.ref/sky130_fd_sc_hd/lib/sky130_fd_sc_hd__ss_100C_1v60.lib"
+#ifdef EF_FORMAT
+set ::env(LIB_SYNTH) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/lib/$::env(STD_CELL_LIBRARY)/sky130_fd_sc_hd__tt_025C_1v80.lib"
+set ::env(LIB_FASTEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/lib/$::env(STD_CELL_LIBRARY)/sky130_fd_sc_hd__ff_n40C_1v95.lib"
+set ::env(LIB_SLOWEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/lib/$::env(STD_CELL_LIBRARY)/sky130_fd_sc_hd__ss_100C_1v60.lib"
+#else (!EF_FORMAT)
+set ::env(LIB_SYNTH) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_hd__tt_025C_1v80.lib"
+set ::env(LIB_FASTEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_hd__ff_n40C_1v95.lib"
+set ::env(LIB_SLOWEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_hd__ss_100C_1v60.lib"
+#endif (!EF_FORMAT)
 
 set ::env(LIB_TYPICAL) $::env(LIB_SYNTH)
 
-# Tracks info
-set ::env(TRACKS_INFO_FILE) "$::env(PDK_ROOT)/TECHNAME/libs.tech/openlane/sky130_fd_sc_hd/tracks.info"
-
-
 # Placement site for core cells
 # This can be found in the technology lef
 set ::env(PLACE_SITE) "unithd"
diff --git a/sky130/openlane/sky130_fd_sc_hd/no_synth.cells b/sky130/openlane/sky130_fd_sc_hd/no_synth.cells
index dbc3264..192afe1 100644
--- a/sky130/openlane/sky130_fd_sc_hd/no_synth.cells
+++ b/sky130/openlane/sky130_fd_sc_hd/no_synth.cells
@@ -1,3 +1,5 @@
+sky130_fd_sc_hd__probe_p_8
+sky130_fd_sc_hd__probec_p_8
 sky130_fd_sc_hd__dfstp_2
 sky130_fd_sc_hd__xor3_4
 sky130_fd_sc_hd__or2b_2
diff --git a/sky130/openlane/sky130_fd_sc_hdll/config.tcl b/sky130/openlane/sky130_fd_sc_hdll/config.tcl
new file mode 100755
index 0000000..0435e79
--- /dev/null
+++ b/sky130/openlane/sky130_fd_sc_hdll/config.tcl
@@ -0,0 +1,68 @@
+set current_folder [file dirname [file normalize [info script]]]
+# Technology lib
+
+#ifdef EF_FORMAT
+set ::env(LIB_SYNTH) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/lib/$::env(STD_CELL_LIBRARY)/sky130_fd_sc_hdll__tt_025C_1v80.lib"
+set ::env(LIB_FASTEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/lib/$::env(STD_CELL_LIBRARY)/sky130_fd_sc_hdll__ff_n40C_1v95.lib"
+set ::env(LIB_SLOWEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/lib/$::env(STD_CELL_LIBRARY)/sky130_fd_sc_hdll__ss_100C_1v60.lib"
+#else (!EF_FORMAT)
+set ::env(LIB_SYNTH) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_hdll__tt_025C_1v80.lib"
+set ::env(LIB_FASTEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_hdll__ff_n40C_1v95.lib"
+set ::env(LIB_SLOWEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_hdll__ss_100C_1v60.lib"
+#endif (!EF_FORMAT)
+
+
+set ::env(LIB_TYPICAL) $::env(LIB_SYNTH)
+
+# Placement site for core cells
+# This can be found in the technology lef
+set ::env(PLACE_SITE) "unithd"
+set ::env(PLACE_SITE_WIDTH) 0.460
+set ::env(PLACE_SITE_HEIGHT) 2.720
+
+
+
+# welltap and endcap cells
+#set ::env(FP_WELLTAP_CELL) "sky130_fd_sc_hd__tapvpwrvgnd_1"
+set ::env(FP_ENDCAP_CELL) "sky130_fd_sc_hdll__decap_3"
+
+# defaults (can be overridden by designs):
+set ::env(SYNTH_DRIVING_CELL) "sky130_fd_sc_hdll__inv_8"
+#capacitance : 0.017653;
+set ::env(SYNTH_DRIVING_CELL_PIN) "Y"
+# update these
+set ::env(SYNTH_CAP_LOAD) "17.895" ; # femtofarad _inv_8 pin A cap
+set ::env(SYNTH_MIN_BUF_PORT) "sky130_fd_sc_hdll__buf_2 A X"
+set ::env(SYNTH_TIEHI_PORT) "sky130_fd_sc_hdll__conb_1 HI"
+set ::env(SYNTH_TIELO_PORT) "sky130_fd_sc_hdll__conb_1 LO"
+
+# cts defaults
+set ::env(CTS_ROOT_BUFFER) sky130_fd_sc_hdll__clkbuf_16
+set ::env(CELL_CLK_PORT) CLK
+
+# Placement defaults
+set ::env(PL_LIB) $::env(LIB_TYPICAL)
+
+# Fillcell insertion
+set ::env(FILL_CELL) "sky130_fd_sc_hdll__fill_"
+set ::env(DECAP_CELL) "sky130_fd_sc_hdll__decap_"
+set ::env(RE_BUFFER_CELL) "sky130_fd_sc_hdll__buf_4"
+
+
+# Diode insertaion
+set ::env(DIODE_CELL) "sky130_fd_sc_hdll__diode_2"
+set ::env(FAKEDIODE_CELL) "sky130_fd_sc_hdll__fakediode_2"
+set ::env(DIODE_CELL_PIN) "DIODE"
+
+set ::env(CELL_PAD) 8
+set ::env(CELL_PAD_EXECLUDE) "$::env(STD_CELL_LIBRARY)__tap* $::env(STD_CELL_LIBRARY)__decap* $::env(STD_CELL_LIBRARY)__fill*"
+
+# Clk Buffers info CTS data
+set ::env(ROOT_CLK_BUFFER) $::env(STD_CELL_LIBRARY)__clkbuf_16
+set ::env(CLK_BUFFER) $::env(STD_CELL_LIBRARY)__clkbuf_4
+set ::env(CLK_BUFFER_INPUT) A
+set ::env(CLK_BUFFER_OUTPUT) X
+set ::env(CTS_CLK_BUFFER_LIST) "sky130_fd_sc_hdll__clkbuf_1 sky130_fd_sc_hdll__clkbuf_2 sky130_fd_sc_hdll__clkbuf_4 sky130_fd_sc_hdll__clkbuf_8"
+set ::env(CTS_SQR_CAP) 0.258e-3
+set ::env(CTS_SQR_RES) 0.125
+set ::env(CTS_MAX_CAP) 1.53169
diff --git a/sky130/openlane/sky130_fd_sc_hdll/no_synth.cells b/sky130/openlane/sky130_fd_sc_hdll/no_synth.cells
new file mode 100644
index 0000000..b3fd884
--- /dev/null
+++ b/sky130/openlane/sky130_fd_sc_hdll/no_synth.cells
@@ -0,0 +1,430 @@
+sky130_fd_sc_hdll__clkbuf_6
+sky130_fd_sc_hdll__clkbuf_12
+sky130_fd_sc_hdll__inputiso0n_1
+sky130_fd_sc_hdll__inputiso1p_1
+sky130_fd_sc_hdll__clkinv_12
+sky130_fd_sc_hdll__muxb16to1_4
+sky130_fd_sc_hdll__probe_p_8
+sky130_fd_sc_hdll__probec_p_8
+sky130_fd_sc_hdll__dfstp_2
+sky130_fd_sc_hdll__xor3_4
+sky130_fd_sc_hdll__or2b_2
+sky130_fd_sc_hdll__xnor3_2
+sky130_fd_sc_hdll__sdfbbn_2
+sky130_fd_sc_hdll__sdfxtp_2
+sky130_fd_sc_hdll__dfxtp_2
+sky130_fd_sc_hdll__xor2_2
+sky130_fd_sc_hdll__o311ai_2
+sky130_fd_sc_hdll__nand2_2
+sky130_fd_sc_hdll__sdfrtp_2
+sky130_fd_sc_hdll__and4_2
+sky130_fd_sc_hdll__dfsbp_2
+sky130_fd_sc_hdll__or4_2
+sky130_fd_sc_hdll__inv_2
+sky130_fd_sc_hdll__dlymetal6s4s_1
+sky130_fd_sc_hdll__o31ai_2
+sky130_fd_sc_hdll__bufbuf_16
+sky130_fd_sc_hdll__dlygate4sd3_1
+sky130_fd_sc_hdll__o22ai_2
+sky130_fd_sc_hdll__o32ai_2
+sky130_fd_sc_hdll__and3_2
+sky130_fd_sc_hdll__o2111ai_2
+sky130_fd_sc_hdll__dlrbp_2
+sky130_fd_sc_hdll__and4bb_2
+sky130_fd_sc_hdll__nand3b_2
+sky130_fd_sc_hdll__buf_6
+sky130_fd_sc_hdll__and4b_2
+sky130_fd_sc_hdll__a2bb2oi_2
+sky130_fd_sc_hdll__buf_12
+sky130_fd_sc_hdll__and2_2
+sky130_fd_sc_hdll__dlxbn_2
+sky130_fd_sc_hdll__dlrtp_2
+sky130_fd_sc_hdll__xor3_1
+sky130_fd_sc_hdll__a21oi_2
+sky130_fd_sc_hdll__inv_12
+sky130_fd_sc_hdll__o21ai_2
+sky130_fd_sc_hdll__a311oi_2
+sky130_fd_sc_hdll__o21bai_2
+sky130_fd_sc_hdll__nand3_2
+sky130_fd_sc_hdll__dlygate4sd2_1
+sky130_fd_sc_hdll__o211ai_2
+sky130_fd_sc_hdll__or4b_2
+sky130_fd_sc_hdll__and3b_2
+sky130_fd_sc_hdll__or4bb_2
+sky130_fd_sc_hdll__sdfrbp_2
+sky130_fd_sc_hdll__o2bb2ai_2
+sky130_fd_sc_hdll__bufinv_16
+sky130_fd_sc_hdll__xor3_2
+sky130_fd_sc_hdll__o41ai_2
+sky130_fd_sc_hdll__or3b_2
+sky130_fd_sc_hdll__or2_2
+sky130_fd_sc_hdll__dfrtp_2
+sky130_fd_sc_hdll__bufbuf_8
+sky130_fd_sc_hdll__bufinv_8
+sky130_fd_sc_hdll__buf_2
+sky130_fd_sc_hdll__inv_6
+sky130_fd_sc_hdll__xnor3_4
+sky130_fd_sc_hdll__and2b_2
+sky130_fd_sc_hdll__a2111oi_2
+sky130_fd_sc_hdll__xnor3_1
+sky130_fd_sc_hdll__dlymetal6s6s_1
+sky130_fd_sc_hdll__o221ai_2
+sky130_fd_sc_hdll__sdfstp_2
+sky130_fd_sc_hdll__a31oi_2
+sky130_fd_sc_hdll__a211oi_2
+sky130_fd_sc_hdll__nand2b_2
+sky130_fd_sc_hdll__a22oi_2
+sky130_fd_sc_hdll__dlymetal6s2s_1
+sky130_fd_sc_hdll__dlxtn_2
+sky130_fd_sc_hdll__a21boi_2
+sky130_fd_sc_hdll__dlrtn_2
+sky130_fd_sc_hdll__a221oi_2
+sky130_fd_sc_hdll__or3_2
+sky130_fd_sc_hdll__sdfsbp_2
+sky130_fd_sc_hdll__xnor2_2
+sky130_fd_sc_hdll__sdfxbp_2
+sky130_fd_sc_hdll__clkbuf_1
+sky130_fd_sc_hdll__clkbuf_2
+sky130_fd_sc_hdll__clkbuf_4
+sky130_fd_sc_hdll__clkbuf_8
+sky130_fd_sc_hdll__clkbuf_16
+sky130_fd_sc_hdll__o22a_1
+sky130_fd_sc_hdll__o22ai_1
+sky130_fd_sc_hdll__o21a_1
+sky130_fd_sc_hdll__o21ai_1
+sky130_fd_sc_hdll__a211o_1
+sky130_fd_sc_hdll__a211oi_2
+sky130_fd_sc_hdll__a21oi_2
+sky130_fd_sc_hdll__a22oi_2
+sky130_fd_sc_hdll__a311oi_2
+sky130_fd_sc_hdll__and2_2
+sky130_fd_sc_hdll__and3_2
+sky130_fd_sc_hdll__and4_2
+sky130_fd_sc_hdll__and4bb_2
+sky130_fd_sc_hdll__buf_6
+sky130_fd_sc_hdll__bufbuf_8
+sky130_fd_sc_hdll__bufinv_8
+sky130_fd_sc_hdll__clkbuf_16
+sky130_fd_sc_hdll__clkbuf_4
+sky130_fd_sc_hdll__dfrtp_2
+sky130_fd_sc_hdll__dfstp_2
+sky130_fd_sc_hdll__dlrbp_2
+sky130_fd_sc_hdll__dlrtp_2
+sky130_fd_sc_hdll__dlxtn_2
+sky130_fd_sc_hdll__dlygate4sd3_1
+sky130_fd_sc_hdll__dlymetal6s4s_1
+sky130_fd_sc_hdll__inv_12
+sky130_fd_sc_hdll__inv_6
+sky130_fd_sc_hdll__nand2b_2
+sky130_fd_sc_hdll__nand3b_2
+sky130_fd_sc_hdll__o211ai_2
+sky130_fd_sc_hdll__o21ai_1
+sky130_fd_sc_hdll__o21bai_2
+sky130_fd_sc_hdll__o22a_1
+sky130_fd_sc_hdll__o22ai_2
+sky130_fd_sc_hdll__o311ai_2
+sky130_fd_sc_hdll__o32ai_2
+sky130_fd_sc_hdll__or2_2
+sky130_fd_sc_hdll__or3_2
+sky130_fd_sc_hdll__or4_2
+sky130_fd_sc_hdll__or4bb_2
+sky130_fd_sc_hdll__sdfrbp_2
+sky130_fd_sc_hdll__sdfsbp_2
+sky130_fd_sc_hdll__sdfxbp_2
+sky130_fd_sc_hdll__xnor2_2
+sky130_fd_sc_hdll__xnor3_2
+sky130_fd_sc_hdll__xor2_2
+sky130_fd_sc_hdll__xor3_2
+sky130_fd_sc_hdll__buf_12
+sky130_fd_sc_hdll__a2111o_1
+sky130_fd_sc_hdll__a2111o_2
+sky130_fd_sc_hdll__a2111oi_0
+sky130_fd_sc_hdll__a2111oi_1
+sky130_fd_sc_hdll__a211o_2
+sky130_fd_sc_hdll__a211oi_1
+sky130_fd_sc_hdll__a211oi_4
+sky130_fd_sc_hdll__a21bo_1
+sky130_fd_sc_hdll__a21bo_2
+sky130_fd_sc_hdll__a21boi_0
+sky130_fd_sc_hdll__a21boi_1
+sky130_fd_sc_hdll__a21o_1
+sky130_fd_sc_hdll__a21o_2
+sky130_fd_sc_hdll__a21oi_1
+sky130_fd_sc_hdll__a221o_1
+sky130_fd_sc_hdll__a221o_2
+sky130_fd_sc_hdll__a221o_4
+sky130_fd_sc_hdll__a221oi_1
+sky130_fd_sc_hdll__a221oi_4
+sky130_fd_sc_hdll__a222oi_1
+sky130_fd_sc_hdll__a22o_1
+sky130_fd_sc_hdll__a22o_2
+sky130_fd_sc_hdll__a22o_4
+sky130_fd_sc_hdll__a22oi_1
+sky130_fd_sc_hdll__a2bb2o_1
+sky130_fd_sc_hdll__a2bb2o_2
+sky130_fd_sc_hdll__a2bb2oi_1
+sky130_fd_sc_hdll__a311o_1
+sky130_fd_sc_hdll__a311o_2
+sky130_fd_sc_hdll__a311o_4
+sky130_fd_sc_hdll__a311oi_1
+sky130_fd_sc_hdll__a311oi_4
+sky130_fd_sc_hdll__a31o_1
+sky130_fd_sc_hdll__a31o_2
+sky130_fd_sc_hdll__a31o_4
+sky130_fd_sc_hdll__a31oi_1
+sky130_fd_sc_hdll__a31oi_4
+sky130_fd_sc_hdll__a32o_1
+sky130_fd_sc_hdll__a32o_2
+sky130_fd_sc_hdll__a32oi_1
+sky130_fd_sc_hdll__a32oi_2
+sky130_fd_sc_hdll__a41o_1
+sky130_fd_sc_hdll__a41o_2
+sky130_fd_sc_hdll__a41oi_1
+sky130_fd_sc_hdll__a41oi_2
+sky130_fd_sc_hdll__and2_0
+sky130_fd_sc_hdll__and2_1
+sky130_fd_sc_hdll__and2b_1
+sky130_fd_sc_hdll__and2b_4
+sky130_fd_sc_hdll__and3_1
+sky130_fd_sc_hdll__and3b_1
+sky130_fd_sc_hdll__and3b_4
+sky130_fd_sc_hdll__and4_1
+sky130_fd_sc_hdll__and4b_1
+sky130_fd_sc_hdll__and4b_4
+sky130_fd_sc_hdll__and4bb_1
+sky130_fd_sc_hdll__and4bb_4
+sky130_fd_sc_hdll__clkdlybuf4s15_1
+sky130_fd_sc_hdll__clkdlybuf4s15_2
+sky130_fd_sc_hdll__clkdlybuf4s18_1
+sky130_fd_sc_hdll__clkdlybuf4s18_2
+sky130_fd_sc_hdll__clkdlybuf4s25_1
+sky130_fd_sc_hdll__clkdlybuf4s25_2
+sky130_fd_sc_hdll__clkdlybuf4s50_1
+sky130_fd_sc_hdll__clkdlybuf4s50_2
+sky130_fd_sc_hdll__clkinv_1
+sky130_fd_sc_hdll__clkinv_16
+sky130_fd_sc_hdll__clkinv_2
+sky130_fd_sc_hdll__clkinv_4
+sky130_fd_sc_hdll__clkinv_8
+sky130_fd_sc_hdll__clkinvlp_2
+sky130_fd_sc_hdll__clkinvlp_4
+sky130_fd_sc_hdll__decap_12
+sky130_fd_sc_hdll__decap_3
+sky130_fd_sc_hdll__decap_4
+sky130_fd_sc_hdll__decap_6
+sky130_fd_sc_hdll__decap_8
+sky130_fd_sc_hdll__dfbbn_1
+sky130_fd_sc_hdll__dfbbp_1
+sky130_fd_sc_hdll__dfrbp_1
+sky130_fd_sc_hdll__dfrtn_1
+sky130_fd_sc_hdll__dfrtp_1
+sky130_fd_sc_hdll__dfsbp_1
+sky130_fd_sc_hdll__dfstp_1
+sky130_fd_sc_hdll__dfxbp_1
+sky130_fd_sc_hdll__dfxtp_1
+sky130_fd_sc_hdll__diode_2
+sky130_fd_sc_hdll__dlclkp_1
+sky130_fd_sc_hdll__dlclkp_2
+sky130_fd_sc_hdll__dlclkp_4
+sky130_fd_sc_hdll__dlrbn_1
+sky130_fd_sc_hdll__dlrbn_2
+sky130_fd_sc_hdll__dlrbp_1
+sky130_fd_sc_hdll__dlrtn_1
+sky130_fd_sc_hdll__dlrtn_4
+sky130_fd_sc_hdll__dlrtp_1
+sky130_fd_sc_hdll__dlrtp_4
+sky130_fd_sc_hdll__dlxbn_1
+sky130_fd_sc_hdll__dlxbp_1
+sky130_fd_sc_hdll__dlxtn_1
+sky130_fd_sc_hdll__dlxtn_4
+sky130_fd_sc_hdll__dlxtp_1
+sky130_fd_sc_hdll__dlygate4sd1_1
+sky130_fd_sc_hdll__ebufn_1
+sky130_fd_sc_hdll__ebufn_2
+sky130_fd_sc_hdll__ebufn_4
+sky130_fd_sc_hdll__ebufn_8
+sky130_fd_sc_hdll__edfxbp_1
+sky130_fd_sc_hdll__edfxtp_1
+sky130_fd_sc_hdll__einvn_0
+sky130_fd_sc_hdll__einvn_1
+sky130_fd_sc_hdll__einvn_2
+sky130_fd_sc_hdll__einvn_4
+sky130_fd_sc_hdll__einvn_8
+sky130_fd_sc_hdll__einvp_1
+sky130_fd_sc_hdll__einvp_2
+sky130_fd_sc_hdll__einvp_4
+sky130_fd_sc_hdll__einvp_8
+sky130_fd_sc_hdll__fa_1
+sky130_fd_sc_hdll__fa_2
+sky130_fd_sc_hdll__fa_4
+sky130_fd_sc_hdll__fah_1
+sky130_fd_sc_hdll__fahcin_1
+sky130_fd_sc_hdll__fahcon_1
+sky130_fd_sc_hdll__ha_1
+sky130_fd_sc_hdll__ha_2
+sky130_fd_sc_hdll__ha_4
+sky130_fd_sc_hdll__inv_1
+sky130_fd_sc_hdll__inv_4
+sky130_fd_sc_hdll__lpflow_bleeder_1
+sky130_fd_sc_hdll__lpflow_clkbufkapwr_1
+sky130_fd_sc_hdll__lpflow_clkbufkapwr_16
+sky130_fd_sc_hdll__lpflow_clkbufkapwr_2
+sky130_fd_sc_hdll__lpflow_clkbufkapwr_4
+sky130_fd_sc_hdll__lpflow_clkbufkapwr_8
+sky130_fd_sc_hdll__lpflow_clkinvkapwr_1
+sky130_fd_sc_hdll__lpflow_clkinvkapwr_16
+sky130_fd_sc_hdll__lpflow_clkinvkapwr_2
+sky130_fd_sc_hdll__lpflow_clkinvkapwr_4
+sky130_fd_sc_hdll__lpflow_clkinvkapwr_8
+sky130_fd_sc_hdll__lpflow_decapkapwr_12
+sky130_fd_sc_hdll__lpflow_decapkapwr_3
+sky130_fd_sc_hdll__lpflow_decapkapwr_4
+sky130_fd_sc_hdll__lpflow_decapkapwr_6
+sky130_fd_sc_hdll__lpflow_decapkapwr_8
+sky130_fd_sc_hdll__lpflow_inputiso0n_1
+sky130_fd_sc_hdll__lpflow_inputiso0p_1
+sky130_fd_sc_hdll__lpflow_inputiso1n_1
+sky130_fd_sc_hdll__lpflow_inputiso1p_1
+sky130_fd_sc_hdll__lpflow_inputisolatch_1
+sky130_fd_sc_hdll__lpflow_isobufsrc_1
+sky130_fd_sc_hdll__lpflow_isobufsrc_16
+sky130_fd_sc_hdll__lpflow_isobufsrc_2
+sky130_fd_sc_hdll__lpflow_isobufsrc_4
+sky130_fd_sc_hdll__lpflow_isobufsrc_8
+sky130_fd_sc_hdll__lpflow_isobufsrckapwr_16
+sky130_fd_sc_hdll__lpflow_lsbuf_lh_isowell_4
+sky130_fd_sc_hdll__lpflow_lsbuf_lh_isowell_tap_1
+sky130_fd_sc_hdll__lpflow_lsbuf_lh_isowell_tap_2
+sky130_fd_sc_hdll__lpflow_lsbuf_lh_isowell_tap_4
+sky130_fd_sc_hdll__macro_sparecell
+sky130_fd_sc_hdll__maj3_1
+sky130_fd_sc_hdll__maj3_2
+sky130_fd_sc_hdll__mux2_1
+sky130_fd_sc_hdll__mux2_2
+sky130_fd_sc_hdll__mux2_4
+sky130_fd_sc_hdll__mux2_8
+sky130_fd_sc_hdll__mux2i_1
+sky130_fd_sc_hdll__mux2i_2
+sky130_fd_sc_hdll__mux2i_4
+sky130_fd_sc_hdll__mux4_1
+sky130_fd_sc_hdll__mux4_2
+sky130_fd_sc_hdll__nand2_1
+sky130_fd_sc_hdll__nand2_8
+sky130_fd_sc_hdll__nand2b_1
+sky130_fd_sc_hdll__nand2b_4
+sky130_fd_sc_hdll__nand3_1
+sky130_fd_sc_hdll__nand3b_1
+sky130_fd_sc_hdll__nand3b_4
+sky130_fd_sc_hdll__nand4_1
+sky130_fd_sc_hdll__nand4_2
+sky130_fd_sc_hdll__nand4b_1
+sky130_fd_sc_hdll__nand4b_2
+sky130_fd_sc_hdll__nand4b_4
+sky130_fd_sc_hdll__nand4bb_1
+sky130_fd_sc_hdll__nand4bb_2
+sky130_fd_sc_hdll__nand4bb_4
+sky130_fd_sc_hdll__nor2_1
+sky130_fd_sc_hdll__nor2_2
+sky130_fd_sc_hdll__nor2_8
+sky130_fd_sc_hdll__nor2b_1
+sky130_fd_sc_hdll__nor2b_2
+sky130_fd_sc_hdll__nor2b_4
+sky130_fd_sc_hdll__nor3_1
+sky130_fd_sc_hdll__nor3_2
+sky130_fd_sc_hdll__nor3b_1
+sky130_fd_sc_hdll__nor3b_2
+sky130_fd_sc_hdll__nor3b_4
+sky130_fd_sc_hdll__nor4_1
+sky130_fd_sc_hdll__nor4_2
+sky130_fd_sc_hdll__nor4b_1
+sky130_fd_sc_hdll__nor4b_2
+sky130_fd_sc_hdll__nor4b_4
+sky130_fd_sc_hdll__nor4bb_1
+sky130_fd_sc_hdll__nor4bb_2
+sky130_fd_sc_hdll__nor4bb_4
+sky130_fd_sc_hdll__o2111a_1
+sky130_fd_sc_hdll__o2111a_2
+sky130_fd_sc_hdll__o2111a_4
+sky130_fd_sc_hdll__o2111ai_1
+sky130_fd_sc_hdll__o2111ai_4
+sky130_fd_sc_hdll__o211a_1
+sky130_fd_sc_hdll__o211a_2
+sky130_fd_sc_hdll__o211a_4
+sky130_fd_sc_hdll__o211ai_1
+sky130_fd_sc_hdll__o211ai_4
+sky130_fd_sc_hdll__o21a_2
+sky130_fd_sc_hdll__o21ai_0
+sky130_fd_sc_hdll__o21ba_1
+sky130_fd_sc_hdll__o21ba_2
+sky130_fd_sc_hdll__o21ba_4
+sky130_fd_sc_hdll__o21bai_1
+sky130_fd_sc_hdll__o21bai_4
+sky130_fd_sc_hdll__o221a_1
+sky130_fd_sc_hdll__o221a_2
+sky130_fd_sc_hdll__o221a_4
+sky130_fd_sc_hdll__o221ai_1
+sky130_fd_sc_hdll__o221ai_4
+sky130_fd_sc_hdll__o22a_2
+sky130_fd_sc_hdll__o22ai_4
+sky130_fd_sc_hdll__o2bb2a_1
+sky130_fd_sc_hdll__o2bb2a_2
+sky130_fd_sc_hdll__o2bb2a_4
+sky130_fd_sc_hdll__o2bb2ai_1
+sky130_fd_sc_hdll__o2bb2ai_4
+sky130_fd_sc_hdll__o311a_1
+sky130_fd_sc_hdll__o311a_2
+sky130_fd_sc_hdll__o311a_4
+sky130_fd_sc_hdll__o311ai_0
+sky130_fd_sc_hdll__o311ai_1
+sky130_fd_sc_hdll__o311ai_4
+sky130_fd_sc_hdll__o31a_1
+sky130_fd_sc_hdll__o31a_2
+sky130_fd_sc_hdll__o31a_4
+sky130_fd_sc_hdll__o31ai_1
+sky130_fd_sc_hdll__o31ai_4
+sky130_fd_sc_hdll__o32a_1
+sky130_fd_sc_hdll__o32a_2
+sky130_fd_sc_hdll__o32ai_1
+sky130_fd_sc_hdll__o41a_1
+sky130_fd_sc_hdll__o41a_2
+sky130_fd_sc_hdll__o41ai_1
+sky130_fd_sc_hdll__or2_0
+sky130_fd_sc_hdll__or2_1
+sky130_fd_sc_hdll__or2b_1
+sky130_fd_sc_hdll__or2b_4
+sky130_fd_sc_hdll__or3_1
+sky130_fd_sc_hdll__or3b_1
+sky130_fd_sc_hdll__or3b_4
+sky130_fd_sc_hdll__or4_1
+sky130_fd_sc_hdll__or4b_1
+sky130_fd_sc_hdll__or4b_4
+sky130_fd_sc_hdll__or4bb_1
+sky130_fd_sc_hdll__or4bb_4
+sky130_fd_sc_hdll__probe_s8p_8
+sky130_fd_sc_hdll__probec_s8p_8
+sky130_fd_sc_hdll__sdfbbn_1
+sky130_fd_sc_hdll__sdfbbp_1
+sky130_fd_sc_hdll__sdfrbp_1
+sky130_fd_sc_hdll__sdfrtn_1
+sky130_fd_sc_hdll__sdfrtp_1
+sky130_fd_sc_hdll__sdfrtp_4
+sky130_fd_sc_hdll__sdfsbp_1
+sky130_fd_sc_hdll__sdfstp_1
+sky130_fd_sc_hdll__sdfstp_4
+sky130_fd_sc_hdll__sdfxbp_1
+sky130_fd_sc_hdll__sdfxtp_1
+sky130_fd_sc_hdll__sdfxtp_4
+sky130_fd_sc_hdll__sdlclkp_1
+sky130_fd_sc_hdll__sdlclkp_2
+sky130_fd_sc_hdll__sdlclkp_4
+sky130_fd_sc_hdll__sedfxbp_1
+sky130_fd_sc_hdll__sedfxbp_2
+sky130_fd_sc_hdll__sedfxtp_1
+sky130_fd_sc_hdll__sedfxtp_2
+sky130_fd_sc_hdll__sedfxtp_4
+sky130_fd_sc_hdll__xnor2_1
+sky130_fd_sc_hdll__xor2_1
+sky130_fd_sc_hdll__buf_16
+sky130_fd_sc_hdll__lpflow_lsbuf_lh_hl_isowell_tap_1
+sky130_fd_sc_hdll__lpflow_lsbuf_lh_hl_isowell_tap_2
+sky130_fd_sc_hdll__lpflow_lsbuf_lh_hl_isowell_tap_4
diff --git a/sky130/openlane/sky130_fd_sc_hdll/tracks.info b/sky130/openlane/sky130_fd_sc_hdll/tracks.info
new file mode 100644
index 0000000..948dbd2
--- /dev/null
+++ b/sky130/openlane/sky130_fd_sc_hdll/tracks.info
@@ -0,0 +1,12 @@
+li1 X 0.23 0.46
+li1 Y 0.17 0.34
+met1 X 0.17 0.34
+met1 Y 0.17 0.34
+met2 X 0.23 0.46
+met2 Y 0.23 0.46
+met3 X 0.34 0.68
+met3 Y 0.34 0.68
+met4 X 0.46 0.92
+met4 Y 0.46 0.92
+met5 X 1.70 3.40
+met5 Y 1.70 3.40
diff --git a/sky130/openlane/sky130_fd_sc_hs/config.tcl b/sky130/openlane/sky130_fd_sc_hs/config.tcl
index 2f28bf7..fbd5ff2 100755
--- a/sky130/openlane/sky130_fd_sc_hs/config.tcl
+++ b/sky130/openlane/sky130_fd_sc_hs/config.tcl
@@ -1,16 +1,18 @@
 set current_folder [file dirname [file normalize [info script]]]
 # Technology lib
 
-set ::env(LIB_SYNTH) "$::env(PDK_ROOT)/TECHNAME/libs.ref/sky130_fd_sc_hs/lib/sky130_fd_sc_hs__tt_025C_1v80.lib"
-set ::env(LIB_MAX) "$::env(PDK_ROOT)/TECHNAME/libs.ref/sky130_fd_sc_hs/lib/sky130_fd_sc_hs__ff_n40C_1v95.lib"
-set ::env(LIB_MIN) "$::env(PDK_ROOT)/TECHNAME/libs.ref/sky130_fd_sc_hs/lib/sky130_fd_sc_hs__ss_100C_1v60.lib"
+#ifdef EF_FORMAT
+set ::env(LIB_SYNTH) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/lib/$::env(STD_CELL_LIBRARY)/sky130_fd_sc_hs__tt_025C_1v80.lib"
+set ::env(LIB_FASTEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/lib/$::env(STD_CELL_LIBRARY)/sky130_fd_sc_hs__ff_n40C_1v95.lib"
+set ::env(LIB_SLOWEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/lib/$::env(STD_CELL_LIBRARY)/sky130_fd_sc_hs__ss_100C_1v60.lib"
+#else (!EF_FORMAT)
+set ::env(LIB_SYNTH) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_hs__tt_025C_1v80.lib"
+set ::env(LIB_FASTEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_hs__ff_n40C_1v95.lib"
+set ::env(LIB_SLOWEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_hs__ss_100C_1v60.lib"
+#endif (!EF_FORMAT)
 
 set ::env(LIB_TYPICAL) $::env(LIB_SYNTH)
 
-#tracks info
-set ::env(TRACKS_INFO_FILE) "$::env(PDK_ROOT)/TECHNAME/libs.tech/openlane/sky130_fd_sc_hs/tracks.info"
-
-
 # Placement site for core cells
 # This can be found in the technology lef
 set ::env(PLACE_SITE) "unit"
@@ -44,8 +46,10 @@
 set ::env(DECAP_CELL) "sky130_fd_sc_hs__decap_"
 
 # Diode insertaion
-set ::env(DIODE_CELL) "sky130_fd_sc_hs__diode_2"
-set ::env(DIODE_CELL_PIN) "DIODE"
+set ::env(DIODE_CELL) ""
+set ::env(FAKEDIODE_CELL) ""
+set ::env(DIODE_CELL_PIN) ""
+set ::env(DIODE_INSERTION_STRATEGY) 0
 
 set ::env(CELL_PAD) 8
 set ::env(CELL_PAD_EXECLUDE) "sky130_fd_sc_hs__tap* sky130_fd_sc_hs__decap* sky130_fd_sc_hs__fill*"
@@ -54,3 +58,7 @@
 set ::env(CLK_BUFFER) sky130_fd_sc_hs__clkbuf_4
 set ::env(CLK_BUFFER_INPUT) A
 set ::env(CLK_BUFFER_OUTPUT) X
+set ::env(CTS_CLK_BUFFER_LIST) "sky130_fd_sc_hs__clkbuf_2 sky130_fd_sc_hs__clkbuf_4 sky130_fd_sc_hs__clkbuf_8"
+set ::env(CTS_SQR_CAP) 0.469e-3
+set ::env(CTS_SQR_RES) 0.125
+set ::env(CTS_MAX_CAP) 1.8894300000
diff --git a/sky130/openlane/sky130_fd_sc_hs/no_synth.cells b/sky130/openlane/sky130_fd_sc_hs/no_synth.cells
index e69de29..61dccae 100644
--- a/sky130/openlane/sky130_fd_sc_hs/no_synth.cells
+++ b/sky130/openlane/sky130_fd_sc_hs/no_synth.cells
@@ -0,0 +1,428 @@
+sky130_fd_sc_hs__nand4bb_1
+sky130_fd_sc_hs__clkdlyinv3sd3_1
+sky130_fd_sc_hs__clkdlyinv3sd1_1
+sky130_fd_sc_hs__clkdlyinv3sd2_1
+sky130_fd_sc_hs__probe_p_8
+sky130_fd_sc_hs__probec_p_8
+sky130_fd_sc_hs__dfstp_2
+sky130_fd_sc_hs__xor3_4
+sky130_fd_sc_hs__or2b_2
+sky130_fd_sc_hs__xnor3_2
+sky130_fd_sc_hs__sdfbbn_2
+sky130_fd_sc_hs__sdfxtp_2
+sky130_fd_sc_hs__dfxtp_2
+sky130_fd_sc_hs__xor2_2
+sky130_fd_sc_hs__o311ai_2
+sky130_fd_sc_hs__nand2_2
+sky130_fd_sc_hs__sdfrtp_2
+sky130_fd_sc_hs__and4_2
+sky130_fd_sc_hs__dfsbp_2
+sky130_fd_sc_hs__or4_2
+sky130_fd_sc_hs__inv_2
+sky130_fd_sc_hs__dlymetal6s4s_1
+sky130_fd_sc_hs__o31ai_2
+sky130_fd_sc_hs__bufbuf_16
+sky130_fd_sc_hs__dlygate4sd3_1
+sky130_fd_sc_hs__o22ai_2
+sky130_fd_sc_hs__o32ai_2
+sky130_fd_sc_hs__and3_2
+sky130_fd_sc_hs__o2111ai_2
+sky130_fd_sc_hs__dlrbp_2
+sky130_fd_sc_hs__and4bb_2
+sky130_fd_sc_hs__nand3b_2
+sky130_fd_sc_hs__buf_6
+sky130_fd_sc_hs__and4b_2
+sky130_fd_sc_hs__a2bb2oi_2
+sky130_fd_sc_hs__buf_12
+sky130_fd_sc_hs__and2_2
+sky130_fd_sc_hs__dlxbn_2
+sky130_fd_sc_hs__dlrtp_2
+sky130_fd_sc_hs__xor3_1
+sky130_fd_sc_hs__a21oi_2
+sky130_fd_sc_hs__inv_12
+sky130_fd_sc_hs__o21ai_2
+sky130_fd_sc_hs__a311oi_2
+sky130_fd_sc_hs__o21bai_2
+sky130_fd_sc_hs__nand3_2
+sky130_fd_sc_hs__dlygate4sd2_1
+sky130_fd_sc_hs__o211ai_2
+sky130_fd_sc_hs__or4b_2
+sky130_fd_sc_hs__and3b_2
+sky130_fd_sc_hs__or4bb_2
+sky130_fd_sc_hs__sdfrbp_2
+sky130_fd_sc_hs__o2bb2ai_2
+sky130_fd_sc_hs__bufinv_16
+sky130_fd_sc_hs__xor3_2
+sky130_fd_sc_hs__o41ai_2
+sky130_fd_sc_hs__or3b_2
+sky130_fd_sc_hs__or2_2
+sky130_fd_sc_hs__dfrtp_2
+sky130_fd_sc_hs__bufbuf_8
+sky130_fd_sc_hs__bufinv_8
+sky130_fd_sc_hs__buf_2
+sky130_fd_sc_hs__inv_6
+sky130_fd_sc_hs__xnor3_4
+sky130_fd_sc_hs__and2b_2
+sky130_fd_sc_hs__a2111oi_2
+sky130_fd_sc_hs__xnor3_1
+sky130_fd_sc_hs__dlymetal6s6s_1
+sky130_fd_sc_hs__o221ai_2
+sky130_fd_sc_hs__sdfstp_2
+sky130_fd_sc_hs__a31oi_2
+sky130_fd_sc_hs__a211oi_2
+sky130_fd_sc_hs__nand2b_2
+sky130_fd_sc_hs__a22oi_2
+sky130_fd_sc_hs__dlymetal6s2s_1
+sky130_fd_sc_hs__dlxtn_2
+sky130_fd_sc_hs__a21boi_2
+sky130_fd_sc_hs__dlrtn_2
+sky130_fd_sc_hs__a221oi_2
+sky130_fd_sc_hs__or3_2
+sky130_fd_sc_hs__sdfsbp_2
+sky130_fd_sc_hs__xnor2_2
+sky130_fd_sc_hs__sdfxbp_2
+sky130_fd_sc_hs__clkbuf_1
+sky130_fd_sc_hs__clkbuf_2
+sky130_fd_sc_hs__clkbuf_4
+sky130_fd_sc_hs__clkbuf_8
+sky130_fd_sc_hs__clkbuf_16
+sky130_fd_sc_hs__o22a_1
+sky130_fd_sc_hs__o22ai_1
+sky130_fd_sc_hs__o21a_1
+sky130_fd_sc_hs__o21ai_1
+sky130_fd_sc_hs__a211o_1
+sky130_fd_sc_hs__a211oi_2
+sky130_fd_sc_hs__a21oi_2
+sky130_fd_sc_hs__a22oi_2
+sky130_fd_sc_hs__a311oi_2
+sky130_fd_sc_hs__and2_2
+sky130_fd_sc_hs__and3_2
+sky130_fd_sc_hs__and4_2
+sky130_fd_sc_hs__and4bb_2
+sky130_fd_sc_hs__buf_6
+sky130_fd_sc_hs__bufbuf_8
+sky130_fd_sc_hs__bufinv_8
+sky130_fd_sc_hs__clkbuf_16
+sky130_fd_sc_hs__clkbuf_4
+sky130_fd_sc_hs__dfrtp_2
+sky130_fd_sc_hs__dfstp_2
+sky130_fd_sc_hs__dlrbp_2
+sky130_fd_sc_hs__dlrtp_2
+sky130_fd_sc_hs__dlxtn_2
+sky130_fd_sc_hs__dlygate4sd3_1
+sky130_fd_sc_hs__dlymetal6s4s_1
+sky130_fd_sc_hs__inv_12
+sky130_fd_sc_hs__inv_6
+sky130_fd_sc_hs__nand2b_2
+sky130_fd_sc_hs__nand3b_2
+sky130_fd_sc_hs__o211ai_2
+sky130_fd_sc_hs__o21ai_1
+sky130_fd_sc_hs__o21bai_2
+sky130_fd_sc_hs__o22a_1
+sky130_fd_sc_hs__o22ai_2
+sky130_fd_sc_hs__o311ai_2
+sky130_fd_sc_hs__o32ai_2
+sky130_fd_sc_hs__or2_2
+sky130_fd_sc_hs__or3_2
+sky130_fd_sc_hs__or4_2
+sky130_fd_sc_hs__or4bb_2
+sky130_fd_sc_hs__sdfrbp_2
+sky130_fd_sc_hs__sdfsbp_2
+sky130_fd_sc_hs__sdfxbp_2
+sky130_fd_sc_hs__xnor2_2
+sky130_fd_sc_hs__xnor3_2
+sky130_fd_sc_hs__xor2_2
+sky130_fd_sc_hs__xor3_2
+sky130_fd_sc_hs__buf_12
+sky130_fd_sc_hs__a2111o_1
+sky130_fd_sc_hs__a2111o_2
+sky130_fd_sc_hs__a2111oi_0
+sky130_fd_sc_hs__a2111oi_1
+sky130_fd_sc_hs__a211o_2
+sky130_fd_sc_hs__a211oi_1
+sky130_fd_sc_hs__a211oi_4
+sky130_fd_sc_hs__a21bo_1
+sky130_fd_sc_hs__a21bo_2
+sky130_fd_sc_hs__a21boi_0
+sky130_fd_sc_hs__a21boi_1
+sky130_fd_sc_hs__a21o_1
+sky130_fd_sc_hs__a21o_2
+sky130_fd_sc_hs__a21oi_1
+sky130_fd_sc_hs__a221o_1
+sky130_fd_sc_hs__a221o_2
+sky130_fd_sc_hs__a221o_4
+sky130_fd_sc_hs__a221oi_1
+sky130_fd_sc_hs__a221oi_4
+sky130_fd_sc_hs__a222oi_1
+sky130_fd_sc_hs__a22o_1
+sky130_fd_sc_hs__a22o_2
+sky130_fd_sc_hs__a22o_4
+sky130_fd_sc_hs__a22oi_1
+sky130_fd_sc_hs__a2bb2o_1
+sky130_fd_sc_hs__a2bb2o_2
+sky130_fd_sc_hs__a2bb2oi_1
+sky130_fd_sc_hs__a311o_1
+sky130_fd_sc_hs__a311o_2
+sky130_fd_sc_hs__a311o_4
+sky130_fd_sc_hs__a311oi_1
+sky130_fd_sc_hs__a311oi_4
+sky130_fd_sc_hs__a31o_1
+sky130_fd_sc_hs__a31o_2
+sky130_fd_sc_hs__a31o_4
+sky130_fd_sc_hs__a31oi_1
+sky130_fd_sc_hs__a31oi_4
+sky130_fd_sc_hs__a32o_1
+sky130_fd_sc_hs__a32o_2
+sky130_fd_sc_hs__a32oi_1
+sky130_fd_sc_hs__a32oi_2
+sky130_fd_sc_hs__a41o_1
+sky130_fd_sc_hs__a41o_2
+sky130_fd_sc_hs__a41oi_1
+sky130_fd_sc_hs__a41oi_2
+sky130_fd_sc_hs__and2_0
+sky130_fd_sc_hs__and2_1
+sky130_fd_sc_hs__and2b_1
+sky130_fd_sc_hs__and2b_4
+sky130_fd_sc_hs__and3_1
+sky130_fd_sc_hs__and3b_1
+sky130_fd_sc_hs__and3b_4
+sky130_fd_sc_hs__and4_1
+sky130_fd_sc_hs__and4b_1
+sky130_fd_sc_hs__and4b_4
+sky130_fd_sc_hs__and4bb_1
+sky130_fd_sc_hs__and4bb_4
+sky130_fd_sc_hs__clkdlybuf4s15_1
+sky130_fd_sc_hs__clkdlybuf4s15_2
+sky130_fd_sc_hs__clkdlybuf4s18_1
+sky130_fd_sc_hs__clkdlybuf4s18_2
+sky130_fd_sc_hs__clkdlybuf4s25_1
+sky130_fd_sc_hs__clkdlybuf4s25_2
+sky130_fd_sc_hs__clkdlybuf4s50_1
+sky130_fd_sc_hs__clkdlybuf4s50_2
+sky130_fd_sc_hs__clkinv_1
+sky130_fd_sc_hs__clkinv_16
+sky130_fd_sc_hs__clkinv_2
+sky130_fd_sc_hs__clkinv_4
+sky130_fd_sc_hs__clkinv_8
+sky130_fd_sc_hs__clkinvlp_2
+sky130_fd_sc_hs__clkinvlp_4
+sky130_fd_sc_hs__decap_12
+sky130_fd_sc_hs__decap_3
+sky130_fd_sc_hs__decap_4
+sky130_fd_sc_hs__decap_6
+sky130_fd_sc_hs__decap_8
+sky130_fd_sc_hs__dfbbn_1
+sky130_fd_sc_hs__dfbbp_1
+sky130_fd_sc_hs__dfrbp_1
+sky130_fd_sc_hs__dfrtn_1
+sky130_fd_sc_hs__dfrtp_1
+sky130_fd_sc_hs__dfsbp_1
+sky130_fd_sc_hs__dfstp_1
+sky130_fd_sc_hs__dfxbp_1
+sky130_fd_sc_hs__dfxtp_1
+sky130_fd_sc_hs__diode_2
+sky130_fd_sc_hs__dlclkp_1
+sky130_fd_sc_hs__dlclkp_2
+sky130_fd_sc_hs__dlclkp_4
+sky130_fd_sc_hs__dlrbn_1
+sky130_fd_sc_hs__dlrbn_2
+sky130_fd_sc_hs__dlrbp_1
+sky130_fd_sc_hs__dlrtn_1
+sky130_fd_sc_hs__dlrtn_4
+sky130_fd_sc_hs__dlrtp_1
+sky130_fd_sc_hs__dlrtp_4
+sky130_fd_sc_hs__dlxbn_1
+sky130_fd_sc_hs__dlxbp_1
+sky130_fd_sc_hs__dlxtn_1
+sky130_fd_sc_hs__dlxtn_4
+sky130_fd_sc_hs__dlxtp_1
+sky130_fd_sc_hs__dlygate4sd1_1
+sky130_fd_sc_hs__ebufn_1
+sky130_fd_sc_hs__ebufn_2
+sky130_fd_sc_hs__ebufn_4
+sky130_fd_sc_hs__ebufn_8
+sky130_fd_sc_hs__edfxbp_1
+sky130_fd_sc_hs__edfxtp_1
+sky130_fd_sc_hs__einvn_0
+sky130_fd_sc_hs__einvn_1
+sky130_fd_sc_hs__einvn_2
+sky130_fd_sc_hs__einvn_4
+sky130_fd_sc_hs__einvn_8
+sky130_fd_sc_hs__einvp_1
+sky130_fd_sc_hs__einvp_2
+sky130_fd_sc_hs__einvp_4
+sky130_fd_sc_hs__einvp_8
+sky130_fd_sc_hs__fa_1
+sky130_fd_sc_hs__fa_2
+sky130_fd_sc_hs__fa_4
+sky130_fd_sc_hs__fah_1
+sky130_fd_sc_hs__fahcin_1
+sky130_fd_sc_hs__fahcon_1
+sky130_fd_sc_hs__ha_1
+sky130_fd_sc_hs__ha_2
+sky130_fd_sc_hs__ha_4
+sky130_fd_sc_hs__inv_1
+sky130_fd_sc_hs__inv_4
+sky130_fd_sc_hs__lpflow_bleeder_1
+sky130_fd_sc_hs__lpflow_clkbufkapwr_1
+sky130_fd_sc_hs__lpflow_clkbufkapwr_16
+sky130_fd_sc_hs__lpflow_clkbufkapwr_2
+sky130_fd_sc_hs__lpflow_clkbufkapwr_4
+sky130_fd_sc_hs__lpflow_clkbufkapwr_8
+sky130_fd_sc_hs__lpflow_clkinvkapwr_1
+sky130_fd_sc_hs__lpflow_clkinvkapwr_16
+sky130_fd_sc_hs__lpflow_clkinvkapwr_2
+sky130_fd_sc_hs__lpflow_clkinvkapwr_4
+sky130_fd_sc_hs__lpflow_clkinvkapwr_8
+sky130_fd_sc_hs__lpflow_decapkapwr_12
+sky130_fd_sc_hs__lpflow_decapkapwr_3
+sky130_fd_sc_hs__lpflow_decapkapwr_4
+sky130_fd_sc_hs__lpflow_decapkapwr_6
+sky130_fd_sc_hs__lpflow_decapkapwr_8
+sky130_fd_sc_hs__lpflow_inputiso0n_1
+sky130_fd_sc_hs__lpflow_inputiso0p_1
+sky130_fd_sc_hs__lpflow_inputiso1n_1
+sky130_fd_sc_hs__lpflow_inputiso1p_1
+sky130_fd_sc_hs__lpflow_inputisolatch_1
+sky130_fd_sc_hs__lpflow_isobufsrc_1
+sky130_fd_sc_hs__lpflow_isobufsrc_16
+sky130_fd_sc_hs__lpflow_isobufsrc_2
+sky130_fd_sc_hs__lpflow_isobufsrc_4
+sky130_fd_sc_hs__lpflow_isobufsrc_8
+sky130_fd_sc_hs__lpflow_isobufsrckapwr_16
+sky130_fd_sc_hs__lpflow_lsbuf_lh_isowell_4
+sky130_fd_sc_hs__lpflow_lsbuf_lh_isowell_tap_1
+sky130_fd_sc_hs__lpflow_lsbuf_lh_isowell_tap_2
+sky130_fd_sc_hs__lpflow_lsbuf_lh_isowell_tap_4
+sky130_fd_sc_hs__macro_sparecell
+sky130_fd_sc_hs__maj3_1
+sky130_fd_sc_hs__maj3_2
+sky130_fd_sc_hs__mux2_1
+sky130_fd_sc_hs__mux2_2
+sky130_fd_sc_hs__mux2_4
+sky130_fd_sc_hs__mux2_8
+sky130_fd_sc_hs__mux2i_1
+sky130_fd_sc_hs__mux2i_2
+sky130_fd_sc_hs__mux2i_4
+sky130_fd_sc_hs__mux4_1
+sky130_fd_sc_hs__mux4_2
+sky130_fd_sc_hs__nand2_1
+sky130_fd_sc_hs__nand2_8
+sky130_fd_sc_hs__nand2b_1
+sky130_fd_sc_hs__nand2b_4
+sky130_fd_sc_hs__nand3_1
+sky130_fd_sc_hs__nand3b_1
+sky130_fd_sc_hs__nand3b_4
+sky130_fd_sc_hs__nand4_1
+sky130_fd_sc_hs__nand4_2
+sky130_fd_sc_hs__nand4b_1
+sky130_fd_sc_hs__nand4b_2
+sky130_fd_sc_hs__nand4b_4
+sky130_fd_sc_hs__nand4bb_1
+sky130_fd_sc_hs__nand4bb_2
+sky130_fd_sc_hs__nand4bb_4
+sky130_fd_sc_hs__nor2_1
+sky130_fd_sc_hs__nor2_2
+sky130_fd_sc_hs__nor2_8
+sky130_fd_sc_hs__nor2b_1
+sky130_fd_sc_hs__nor2b_2
+sky130_fd_sc_hs__nor2b_4
+sky130_fd_sc_hs__nor3_1
+sky130_fd_sc_hs__nor3_2
+sky130_fd_sc_hs__nor3b_1
+sky130_fd_sc_hs__nor3b_2
+sky130_fd_sc_hs__nor3b_4
+sky130_fd_sc_hs__nor4_1
+sky130_fd_sc_hs__nor4_2
+sky130_fd_sc_hs__nor4b_1
+sky130_fd_sc_hs__nor4b_2
+sky130_fd_sc_hs__nor4b_4
+sky130_fd_sc_hs__nor4bb_1
+sky130_fd_sc_hs__nor4bb_2
+sky130_fd_sc_hs__nor4bb_4
+sky130_fd_sc_hs__o2111a_1
+sky130_fd_sc_hs__o2111a_2
+sky130_fd_sc_hs__o2111a_4
+sky130_fd_sc_hs__o2111ai_1
+sky130_fd_sc_hs__o2111ai_4
+sky130_fd_sc_hs__o211a_1
+sky130_fd_sc_hs__o211a_2
+sky130_fd_sc_hs__o211a_4
+sky130_fd_sc_hs__o211ai_1
+sky130_fd_sc_hs__o211ai_4
+sky130_fd_sc_hs__o21a_2
+sky130_fd_sc_hs__o21ai_0
+sky130_fd_sc_hs__o21ba_1
+sky130_fd_sc_hs__o21ba_2
+sky130_fd_sc_hs__o21ba_4
+sky130_fd_sc_hs__o21bai_1
+sky130_fd_sc_hs__o21bai_4
+sky130_fd_sc_hs__o221a_1
+sky130_fd_sc_hs__o221a_2
+sky130_fd_sc_hs__o221a_4
+sky130_fd_sc_hs__o221ai_1
+sky130_fd_sc_hs__o221ai_4
+sky130_fd_sc_hs__o22a_2
+sky130_fd_sc_hs__o22ai_4
+sky130_fd_sc_hs__o2bb2a_1
+sky130_fd_sc_hs__o2bb2a_2
+sky130_fd_sc_hs__o2bb2a_4
+sky130_fd_sc_hs__o2bb2ai_1
+sky130_fd_sc_hs__o2bb2ai_4
+sky130_fd_sc_hs__o311a_1
+sky130_fd_sc_hs__o311a_2
+sky130_fd_sc_hs__o311a_4
+sky130_fd_sc_hs__o311ai_0
+sky130_fd_sc_hs__o311ai_1
+sky130_fd_sc_hs__o311ai_4
+sky130_fd_sc_hs__o31a_1
+sky130_fd_sc_hs__o31a_2
+sky130_fd_sc_hs__o31a_4
+sky130_fd_sc_hs__o31ai_1
+sky130_fd_sc_hs__o31ai_4
+sky130_fd_sc_hs__o32a_1
+sky130_fd_sc_hs__o32a_2
+sky130_fd_sc_hs__o32ai_1
+sky130_fd_sc_hs__o41a_1
+sky130_fd_sc_hs__o41a_2
+sky130_fd_sc_hs__o41ai_1
+sky130_fd_sc_hs__or2_0
+sky130_fd_sc_hs__or2_1
+sky130_fd_sc_hs__or2b_1
+sky130_fd_sc_hs__or2b_4
+sky130_fd_sc_hs__or3_1
+sky130_fd_sc_hs__or3b_1
+sky130_fd_sc_hs__or3b_4
+sky130_fd_sc_hs__or4_1
+sky130_fd_sc_hs__or4b_1
+sky130_fd_sc_hs__or4b_4
+sky130_fd_sc_hs__or4bb_1
+sky130_fd_sc_hs__or4bb_4
+sky130_fd_sc_hs__probe_s8p_8
+sky130_fd_sc_hs__probec_s8p_8
+sky130_fd_sc_hs__sdfbbn_1
+sky130_fd_sc_hs__sdfbbp_1
+sky130_fd_sc_hs__sdfrbp_1
+sky130_fd_sc_hs__sdfrtn_1
+sky130_fd_sc_hs__sdfrtp_1
+sky130_fd_sc_hs__sdfrtp_4
+sky130_fd_sc_hs__sdfsbp_1
+sky130_fd_sc_hs__sdfstp_1
+sky130_fd_sc_hs__sdfstp_4
+sky130_fd_sc_hs__sdfxbp_1
+sky130_fd_sc_hs__sdfxtp_1
+sky130_fd_sc_hs__sdfxtp_4
+sky130_fd_sc_hs__sdlclkp_1
+sky130_fd_sc_hs__sdlclkp_2
+sky130_fd_sc_hs__sdlclkp_4
+sky130_fd_sc_hs__sedfxbp_1
+sky130_fd_sc_hs__sedfxbp_2
+sky130_fd_sc_hs__sedfxtp_1
+sky130_fd_sc_hs__sedfxtp_2
+sky130_fd_sc_hs__sedfxtp_4
+sky130_fd_sc_hs__xnor2_1
+sky130_fd_sc_hs__xor2_1
+sky130_fd_sc_hs__buf_16
+sky130_fd_sc_hs__lpflow_lsbuf_lh_hl_isowell_tap_1
+sky130_fd_sc_hs__lpflow_lsbuf_lh_hl_isowell_tap_2
+sky130_fd_sc_hs__lpflow_lsbuf_lh_hl_isowell_tap_4
diff --git a/sky130/openlane/sky130_fd_sc_hvl/config.tcl b/sky130/openlane/sky130_fd_sc_hvl/config.tcl
new file mode 100644
index 0000000..159b208
--- /dev/null
+++ b/sky130/openlane/sky130_fd_sc_hvl/config.tcl
@@ -0,0 +1,61 @@
+set current_folder [file dirname [file normalize [info script]]]
+# Technology lib
+
+#ifdef EF_FORMAT
+set ::env(LIB_SYNTH) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/lib/$::env(STD_CELL_LIBRARY)/sky130_fd_sc_hvl__tt_025C_3v30.lib"
+set ::env(LIB_FASTEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/lib/$::env(STD_CELL_LIBRARY)/sky130_fd_sc_hvl__ff_n40C_5v50.lib"
+set ::env(LIB_SLOWEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/lib/$::env(STD_CELL_LIBRARY)/sky130_fd_sc_hvl__ss_150C_1v65.lib"
+#else (!EF_FORMAT)
+set ::env(LIB_SYNTH) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_hvl__tt_025C_3v30.lib"
+set ::env(LIB_FASTEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_hvl__ff_n40C_5v50.lib"
+set ::env(LIB_SLOWEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_hvl__ss_150C_1v65.lib"
+#endif (!EF_FORMAT)
+
+
+
+set ::env(LIB_TYPICAL) $::env(LIB_SYNTH)
+
+
+
+# Placement site for core cells
+# This can be found in the technology lef
+set ::env(PLACE_SITE) "unithv"
+set ::env(PLACE_SITE_WIDTH) 0.480
+set ::env(PLACE_SITE_HEIGHT) 4.070
+
+# welltap and endcap cells
+#set ::env(FP_WELLTAP_CELL) ""
+set ::env(FP_ENDCAP_CELL) "sky130_fd_sc_hvl__decap_4"
+
+# defaults (can be overridden by designs):
+set ::env(SYNTH_DRIVING_CELL) "sky130_fd_sc_hvl_inv_16"
+#capacitance : 0.017653;
+set ::env(SYNTH_DRIVING_CELL_PIN) "Y"
+# update these
+set ::env(SYNTH_CAP_LOAD) "70.77" ; # femtofarad __inv_8 pin A cap
+set ::env(SYNTH_MIN_BUF_PORT) "sky130_fd_sc_hvl__buf_1 A X"
+set ::env(SYNTH_TIEHI_PORT) "sky130_fd_sc_hvl__conb_1 HI"
+set ::env(SYNTH_TIELO_PORT) "sky130_fd_sc_hvl__conb_1 LO"
+
+# cts defaults
+set ::env(CTS_ROOT_BUFFER) ""
+#set ::env(CELL_CLK_PORT) CLK
+
+# Placement defaults
+set ::env(PL_LIB) $::env(LIB_TYPICAL)
+
+# Fillcell insertion
+set ::env(FILL_CELL) "sky130_fd_sc_hvl__fill_"
+set ::env(DECAP_CELL) "sky130_fd_sc_hvl__decap_"
+set ::env(RE_BUFFER_CELL) "sky130_fd_sc_hvl__buf_1"
+
+
+# Diode insertaion
+set ::env(DIODE_CELL) "sky130_fd_sc_hvl__diode_2"
+set ::env(DIODE_CELL_PIN) "DIODE"
+
+set ::env(CELL_PAD) 8
+set ::env(CELL_PAD_EXECLUDE) "sky130_fd_sc_hvl__tap* sky130_fd_sc_hvl__decap* sky130_fd_sc_hvl__fill*"
+
+# Clk Buffers info CTS data
+set ::env(CLOCK_TREE_SYNTH) 0
diff --git a/sky130/openlane/sky130_fd_sc_hvl/no_synth.cells b/sky130/openlane/sky130_fd_sc_hvl/no_synth.cells
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/sky130/openlane/sky130_fd_sc_hvl/no_synth.cells
diff --git a/sky130/openlane/sky130_fd_sc_hvl/tracks.info b/sky130/openlane/sky130_fd_sc_hvl/tracks.info
new file mode 100644
index 0000000..ceee4d4
--- /dev/null
+++ b/sky130/openlane/sky130_fd_sc_hvl/tracks.info
@@ -0,0 +1,12 @@
+li1 X 0.24 0.48
+li1 Y 0.24 0.48
+met1 X 0.185 0.37
+met1 Y 0.185 0.37
+met2 X 0.24 0.48
+met2 Y 0.24 0.48
+met3 X 0.37 0.74
+met3 Y 0.37 0.74
+met4 X 0.48 0.96
+met4 Y 0.48 0.96
+met5 X 1.665 3.33
+met5 Y 1.665 3.33
diff --git a/sky130/openlane/sky130_fd_sc_ls/config.tcl b/sky130/openlane/sky130_fd_sc_ls/config.tcl
new file mode 100755
index 0000000..c5e0a75
--- /dev/null
+++ b/sky130/openlane/sky130_fd_sc_ls/config.tcl
@@ -0,0 +1,67 @@
+set current_folder [file dirname [file normalize [info script]]]
+# Technology lib
+
+#ifdef EF_FORMAT
+set ::env(LIB_SYNTH) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/lib/$::env(STD_CELL_LIBRARY)/sky130_fd_sc_ls__tt_025C_1v80.lib"
+set ::env(LIB_FASTEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/lib/$::env(STD_CELL_LIBRARY)/sky130_fd_sc_ls__ff_n40C_1v95.lib"
+set ::env(LIB_SLOWEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/lib/$::env(STD_CELL_LIBRARY)/sky130_fd_sc_ls__ss_100C_1v60.lib"
+#else (!EF_FORMAT)
+set ::env(LIB_SYNTH) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_ls__tt_025C_1v80.lib"
+set ::env(LIB_FASTEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_ls__ff_n40C_1v95.lib"
+set ::env(LIB_SLOWEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_ls__ss_100C_1v60.lib"
+#endif (!EF_FORMAT)
+
+set ::env(LIB_TYPICAL) $::env(LIB_SYNTH)
+
+# Placement site for core cells
+# This can be found in the technology lef
+set ::env(PLACE_SITE) "unit"
+set ::env(PLACE_SITE_WIDTH) 0.480
+set ::env(PLACE_SITE_HEIGHT) 3.330
+
+
+
+# welltap and endcap cells
+#set ::env(FP_WELLTAP_CELL) "sky130_fd_sc_ls__tapvpwrvgnd_1"
+set ::env(FP_ENDCAP_CELL) "sky130_fd_sc_ls__decap_4"
+
+# defaults (can be overridden by designs):
+set ::env(SYNTH_DRIVING_CELL) "sky130_fd_sc_ls__inv_8"
+#capacitance : 0.017653;
+set ::env(SYNTH_DRIVING_CELL_PIN) "Y"
+# update these
+set ::env(SYNTH_CAP_LOAD) "22.050" ; # femtofarad _inv_8 pin A cap
+set ::env(SYNTH_MIN_BUF_PORT) "sky130_fd_sc_ls__buf_2 A X"
+set ::env(SYNTH_TIEHI_PORT) "sky130_fd_sc_ls__conb_1 HI"
+set ::env(SYNTH_TIELO_PORT) "sky130_fd_sc_ls__conb_1 LO"
+
+# cts defaults
+set ::env(CTS_ROOT_BUFFER) sky130_fd_sc_ls__clkbuf_16
+set ::env(CELL_CLK_PORT) CLK
+
+# Placement defaults
+set ::env(PL_LIB) $::env(LIB_TYPICAL)
+
+# Fillcell insertion
+set ::env(FILL_CELL) "sky130_fd_sc_ls__fill_"
+set ::env(DECAP_CELL) "sky130_fd_sc_ls__decap_"
+set ::env(RE_BUFFER_CELL) "sky130_fd_sc_ls__buf_4"
+
+
+# Diode insertaion
+set ::env(DIODE_CELL) "sky130_fd_sc_ls__diode_2"
+set ::env(FAKEDIODE_CELL) "sky130_fd_sc_ls__fakediode_2"
+set ::env(DIODE_CELL_PIN) "DIODE"
+
+set ::env(CELL_PAD) 8
+set ::env(CELL_PAD_EXECLUDE) "$::env(STD_CELL_LIBRARY)__tap* $::env(STD_CELL_LIBRARY)__decap* $::env(STD_CELL_LIBRARY)__fill*"
+
+# Clk Buffers info CTS data
+set ::env(ROOT_CLK_BUFFER) $::env(STD_CELL_LIBRARY)__clkbuf_16
+set ::env(CLK_BUFFER) $::env(STD_CELL_LIBRARY)__clkbuf_4
+set ::env(CLK_BUFFER_INPUT) A
+set ::env(CLK_BUFFER_OUTPUT) X
+set ::env(CTS_CLK_BUFFER_LIST) "sky130_fd_sc_ls__clkbuf_1 sky130_fd_sc_ls__clkbuf_2 sky130_fd_sc_ls__clkbuf_4 sky130_fd_sc_ls__clkbuf_8"
+set ::env(CTS_SQR_CAP) 0.258e-3
+set ::env(CTS_SQR_RES) 0.125
+set ::env(CTS_MAX_CAP) 1.53169
diff --git a/sky130/openlane/sky130_fd_sc_ls/no_synth.cells b/sky130/openlane/sky130_fd_sc_ls/no_synth.cells
new file mode 100644
index 0000000..3220076
--- /dev/null
+++ b/sky130/openlane/sky130_fd_sc_ls/no_synth.cells
@@ -0,0 +1,433 @@
+sky130_fd_sc_ls__clkdlyinv3sd1_1
+sky130_fd_sc_ls__clkdlyinv3sd2_1
+sky130_fd_sc_ls__clkdlyinv3sd3_1
+sky130_fd_sc_ls__clkbuf_6
+sky130_fd_sc_ls__clkbuf_12
+sky130_fd_sc_ls__inputiso0n_1
+sky130_fd_sc_ls__inputiso1p_1
+sky130_fd_sc_ls__clkinv_12
+sky130_fd_sc_ls__muxb16to1_4
+sky130_fd_sc_ls__probe_p_8
+sky130_fd_sc_ls__probec_p_8
+sky130_fd_sc_ls__dfstp_2
+sky130_fd_sc_ls__xor3_4
+sky130_fd_sc_ls__or2b_2
+sky130_fd_sc_ls__xnor3_2
+sky130_fd_sc_ls__sdfbbn_2
+sky130_fd_sc_ls__sdfxtp_2
+sky130_fd_sc_ls__dfxtp_2
+sky130_fd_sc_ls__xor2_2
+sky130_fd_sc_ls__o311ai_2
+sky130_fd_sc_ls__nand2_2
+sky130_fd_sc_ls__sdfrtp_2
+sky130_fd_sc_ls__and4_2
+sky130_fd_sc_ls__dfsbp_2
+sky130_fd_sc_ls__or4_2
+sky130_fd_sc_ls__inv_2
+sky130_fd_sc_ls__dlymetal6s4s_1
+sky130_fd_sc_ls__o31ai_2
+sky130_fd_sc_ls__bufbuf_16
+sky130_fd_sc_ls__dlygate4sd3_1
+sky130_fd_sc_ls__o22ai_2
+sky130_fd_sc_ls__o32ai_2
+sky130_fd_sc_ls__and3_2
+sky130_fd_sc_ls__o2111ai_2
+sky130_fd_sc_ls__dlrbp_2
+sky130_fd_sc_ls__and4bb_2
+sky130_fd_sc_ls__nand3b_2
+sky130_fd_sc_ls__buf_6
+sky130_fd_sc_ls__and4b_2
+sky130_fd_sc_ls__a2bb2oi_2
+sky130_fd_sc_ls__buf_12
+sky130_fd_sc_ls__and2_2
+sky130_fd_sc_ls__dlxbn_2
+sky130_fd_sc_ls__dlrtp_2
+sky130_fd_sc_ls__xor3_1
+sky130_fd_sc_ls__a21oi_2
+sky130_fd_sc_ls__inv_12
+sky130_fd_sc_ls__o21ai_2
+sky130_fd_sc_ls__a311oi_2
+sky130_fd_sc_ls__o21bai_2
+sky130_fd_sc_ls__nand3_2
+sky130_fd_sc_ls__dlygate4sd2_1
+sky130_fd_sc_ls__o211ai_2
+sky130_fd_sc_ls__or4b_2
+sky130_fd_sc_ls__and3b_2
+sky130_fd_sc_ls__or4bb_2
+sky130_fd_sc_ls__sdfrbp_2
+sky130_fd_sc_ls__o2bb2ai_2
+sky130_fd_sc_ls__bufinv_16
+sky130_fd_sc_ls__xor3_2
+sky130_fd_sc_ls__o41ai_2
+sky130_fd_sc_ls__or3b_2
+sky130_fd_sc_ls__or2_2
+sky130_fd_sc_ls__dfrtp_2
+sky130_fd_sc_ls__bufbuf_8
+sky130_fd_sc_ls__bufinv_8
+sky130_fd_sc_ls__buf_2
+sky130_fd_sc_ls__inv_6
+sky130_fd_sc_ls__xnor3_4
+sky130_fd_sc_ls__and2b_2
+sky130_fd_sc_ls__a2111oi_2
+sky130_fd_sc_ls__xnor3_1
+sky130_fd_sc_ls__dlymetal6s6s_1
+sky130_fd_sc_ls__o221ai_2
+sky130_fd_sc_ls__sdfstp_2
+sky130_fd_sc_ls__a31oi_2
+sky130_fd_sc_ls__a211oi_2
+sky130_fd_sc_ls__nand2b_2
+sky130_fd_sc_ls__a22oi_2
+sky130_fd_sc_ls__dlymetal6s2s_1
+sky130_fd_sc_ls__dlxtn_2
+sky130_fd_sc_ls__a21boi_2
+sky130_fd_sc_ls__dlrtn_2
+sky130_fd_sc_ls__a221oi_2
+sky130_fd_sc_ls__or3_2
+sky130_fd_sc_ls__sdfsbp_2
+sky130_fd_sc_ls__xnor2_2
+sky130_fd_sc_ls__sdfxbp_2
+sky130_fd_sc_ls__clkbuf_1
+sky130_fd_sc_ls__clkbuf_2
+sky130_fd_sc_ls__clkbuf_4
+sky130_fd_sc_ls__clkbuf_8
+sky130_fd_sc_ls__clkbuf_16
+sky130_fd_sc_ls__o22a_1
+sky130_fd_sc_ls__o22ai_1
+sky130_fd_sc_ls__o21a_1
+sky130_fd_sc_ls__o21ai_1
+sky130_fd_sc_ls__a211o_1
+sky130_fd_sc_ls__a211oi_2
+sky130_fd_sc_ls__a21oi_2
+sky130_fd_sc_ls__a22oi_2
+sky130_fd_sc_ls__a311oi_2
+sky130_fd_sc_ls__and2_2
+sky130_fd_sc_ls__and3_2
+sky130_fd_sc_ls__and4_2
+sky130_fd_sc_ls__and4bb_2
+sky130_fd_sc_ls__buf_6
+sky130_fd_sc_ls__bufbuf_8
+sky130_fd_sc_ls__bufinv_8
+sky130_fd_sc_ls__clkbuf_16
+sky130_fd_sc_ls__clkbuf_4
+sky130_fd_sc_ls__dfrtp_2
+sky130_fd_sc_ls__dfstp_2
+sky130_fd_sc_ls__dlrbp_2
+sky130_fd_sc_ls__dlrtp_2
+sky130_fd_sc_ls__dlxtn_2
+sky130_fd_sc_ls__dlygate4sd3_1
+sky130_fd_sc_ls__dlymetal6s4s_1
+sky130_fd_sc_ls__inv_12
+sky130_fd_sc_ls__inv_6
+sky130_fd_sc_ls__nand2b_2
+sky130_fd_sc_ls__nand3b_2
+sky130_fd_sc_ls__o211ai_2
+sky130_fd_sc_ls__o21ai_1
+sky130_fd_sc_ls__o21bai_2
+sky130_fd_sc_ls__o22a_1
+sky130_fd_sc_ls__o22ai_2
+sky130_fd_sc_ls__o311ai_2
+sky130_fd_sc_ls__o32ai_2
+sky130_fd_sc_ls__or2_2
+sky130_fd_sc_ls__or3_2
+sky130_fd_sc_ls__or4_2
+sky130_fd_sc_ls__or4bb_2
+sky130_fd_sc_ls__sdfrbp_2
+sky130_fd_sc_ls__sdfsbp_2
+sky130_fd_sc_ls__sdfxbp_2
+sky130_fd_sc_ls__xnor2_2
+sky130_fd_sc_ls__xnor3_2
+sky130_fd_sc_ls__xor2_2
+sky130_fd_sc_ls__xor3_2
+sky130_fd_sc_ls__buf_12
+sky130_fd_sc_ls__a2111o_1
+sky130_fd_sc_ls__a2111o_2
+sky130_fd_sc_ls__a2111oi_0
+sky130_fd_sc_ls__a2111oi_1
+sky130_fd_sc_ls__a211o_2
+sky130_fd_sc_ls__a211oi_1
+sky130_fd_sc_ls__a211oi_4
+sky130_fd_sc_ls__a21bo_1
+sky130_fd_sc_ls__a21bo_2
+sky130_fd_sc_ls__a21boi_0
+sky130_fd_sc_ls__a21boi_1
+sky130_fd_sc_ls__a21o_1
+sky130_fd_sc_ls__a21o_2
+sky130_fd_sc_ls__a21oi_1
+sky130_fd_sc_ls__a221o_1
+sky130_fd_sc_ls__a221o_2
+sky130_fd_sc_ls__a221o_4
+sky130_fd_sc_ls__a221oi_1
+sky130_fd_sc_ls__a221oi_4
+sky130_fd_sc_ls__a222oi_1
+sky130_fd_sc_ls__a22o_1
+sky130_fd_sc_ls__a22o_2
+sky130_fd_sc_ls__a22o_4
+sky130_fd_sc_ls__a22oi_1
+sky130_fd_sc_ls__a2bb2o_1
+sky130_fd_sc_ls__a2bb2o_2
+sky130_fd_sc_ls__a2bb2oi_1
+sky130_fd_sc_ls__a311o_1
+sky130_fd_sc_ls__a311o_2
+sky130_fd_sc_ls__a311o_4
+sky130_fd_sc_ls__a311oi_1
+sky130_fd_sc_ls__a311oi_4
+sky130_fd_sc_ls__a31o_1
+sky130_fd_sc_ls__a31o_2
+sky130_fd_sc_ls__a31o_4
+sky130_fd_sc_ls__a31oi_1
+sky130_fd_sc_ls__a31oi_4
+sky130_fd_sc_ls__a32o_1
+sky130_fd_sc_ls__a32o_2
+sky130_fd_sc_ls__a32oi_1
+sky130_fd_sc_ls__a32oi_2
+sky130_fd_sc_ls__a41o_1
+sky130_fd_sc_ls__a41o_2
+sky130_fd_sc_ls__a41oi_1
+sky130_fd_sc_ls__a41oi_2
+sky130_fd_sc_ls__and2_0
+sky130_fd_sc_ls__and2_1
+sky130_fd_sc_ls__and2b_1
+sky130_fd_sc_ls__and2b_4
+sky130_fd_sc_ls__and3_1
+sky130_fd_sc_ls__and3b_1
+sky130_fd_sc_ls__and3b_4
+sky130_fd_sc_ls__and4_1
+sky130_fd_sc_ls__and4b_1
+sky130_fd_sc_ls__and4b_4
+sky130_fd_sc_ls__and4bb_1
+sky130_fd_sc_ls__and4bb_4
+sky130_fd_sc_ls__clkdlybuf4s15_1
+sky130_fd_sc_ls__clkdlybuf4s15_2
+sky130_fd_sc_ls__clkdlybuf4s18_1
+sky130_fd_sc_ls__clkdlybuf4s18_2
+sky130_fd_sc_ls__clkdlybuf4s25_1
+sky130_fd_sc_ls__clkdlybuf4s25_2
+sky130_fd_sc_ls__clkdlybuf4s50_1
+sky130_fd_sc_ls__clkdlybuf4s50_2
+sky130_fd_sc_ls__clkinv_1
+sky130_fd_sc_ls__clkinv_16
+sky130_fd_sc_ls__clkinv_2
+sky130_fd_sc_ls__clkinv_4
+sky130_fd_sc_ls__clkinv_8
+sky130_fd_sc_ls__clkinvlp_2
+sky130_fd_sc_ls__clkinvlp_4
+sky130_fd_sc_ls__decap_12
+sky130_fd_sc_ls__decap_3
+sky130_fd_sc_ls__decap_4
+sky130_fd_sc_ls__decap_6
+sky130_fd_sc_ls__decap_8
+sky130_fd_sc_ls__dfbbn_1
+sky130_fd_sc_ls__dfbbp_1
+sky130_fd_sc_ls__dfrbp_1
+sky130_fd_sc_ls__dfrtn_1
+sky130_fd_sc_ls__dfrtp_1
+sky130_fd_sc_ls__dfsbp_1
+sky130_fd_sc_ls__dfstp_1
+sky130_fd_sc_ls__dfxbp_1
+sky130_fd_sc_ls__dfxtp_1
+sky130_fd_sc_ls__diode_2
+sky130_fd_sc_ls__dlclkp_1
+sky130_fd_sc_ls__dlclkp_2
+sky130_fd_sc_ls__dlclkp_4
+sky130_fd_sc_ls__dlrbn_1
+sky130_fd_sc_ls__dlrbn_2
+sky130_fd_sc_ls__dlrbp_1
+sky130_fd_sc_ls__dlrtn_1
+sky130_fd_sc_ls__dlrtn_4
+sky130_fd_sc_ls__dlrtp_1
+sky130_fd_sc_ls__dlrtp_4
+sky130_fd_sc_ls__dlxbn_1
+sky130_fd_sc_ls__dlxbp_1
+sky130_fd_sc_ls__dlxtn_1
+sky130_fd_sc_ls__dlxtn_4
+sky130_fd_sc_ls__dlxtp_1
+sky130_fd_sc_ls__dlygate4sd1_1
+sky130_fd_sc_ls__ebufn_1
+sky130_fd_sc_ls__ebufn_2
+sky130_fd_sc_ls__ebufn_4
+sky130_fd_sc_ls__ebufn_8
+sky130_fd_sc_ls__edfxbp_1
+sky130_fd_sc_ls__edfxtp_1
+sky130_fd_sc_ls__einvn_0
+sky130_fd_sc_ls__einvn_1
+sky130_fd_sc_ls__einvn_2
+sky130_fd_sc_ls__einvn_4
+sky130_fd_sc_ls__einvn_8
+sky130_fd_sc_ls__einvp_1
+sky130_fd_sc_ls__einvp_2
+sky130_fd_sc_ls__einvp_4
+sky130_fd_sc_ls__einvp_8
+sky130_fd_sc_ls__fa_1
+sky130_fd_sc_ls__fa_2
+sky130_fd_sc_ls__fa_4
+sky130_fd_sc_ls__fah_1
+sky130_fd_sc_ls__fahcin_1
+sky130_fd_sc_ls__fahcon_1
+sky130_fd_sc_ls__ha_1
+sky130_fd_sc_ls__ha_2
+sky130_fd_sc_ls__ha_4
+sky130_fd_sc_ls__inv_1
+sky130_fd_sc_ls__inv_4
+sky130_fd_sc_ls__lpflow_bleeder_1
+sky130_fd_sc_ls__lpflow_clkbufkapwr_1
+sky130_fd_sc_ls__lpflow_clkbufkapwr_16
+sky130_fd_sc_ls__lpflow_clkbufkapwr_2
+sky130_fd_sc_ls__lpflow_clkbufkapwr_4
+sky130_fd_sc_ls__lpflow_clkbufkapwr_8
+sky130_fd_sc_ls__lpflow_clkinvkapwr_1
+sky130_fd_sc_ls__lpflow_clkinvkapwr_16
+sky130_fd_sc_ls__lpflow_clkinvkapwr_2
+sky130_fd_sc_ls__lpflow_clkinvkapwr_4
+sky130_fd_sc_ls__lpflow_clkinvkapwr_8
+sky130_fd_sc_ls__lpflow_decapkapwr_12
+sky130_fd_sc_ls__lpflow_decapkapwr_3
+sky130_fd_sc_ls__lpflow_decapkapwr_4
+sky130_fd_sc_ls__lpflow_decapkapwr_6
+sky130_fd_sc_ls__lpflow_decapkapwr_8
+sky130_fd_sc_ls__lpflow_inputiso0n_1
+sky130_fd_sc_ls__lpflow_inputiso0p_1
+sky130_fd_sc_ls__lpflow_inputiso1n_1
+sky130_fd_sc_ls__lpflow_inputiso1p_1
+sky130_fd_sc_ls__lpflow_inputisolatch_1
+sky130_fd_sc_ls__lpflow_isobufsrc_1
+sky130_fd_sc_ls__lpflow_isobufsrc_16
+sky130_fd_sc_ls__lpflow_isobufsrc_2
+sky130_fd_sc_ls__lpflow_isobufsrc_4
+sky130_fd_sc_ls__lpflow_isobufsrc_8
+sky130_fd_sc_ls__lpflow_isobufsrckapwr_16
+sky130_fd_sc_ls__lpflow_lsbuf_lh_isowell_4
+sky130_fd_sc_ls__lpflow_lsbuf_lh_isowell_tap_1
+sky130_fd_sc_ls__lpflow_lsbuf_lh_isowell_tap_2
+sky130_fd_sc_ls__lpflow_lsbuf_lh_isowell_tap_4
+sky130_fd_sc_ls__macro_sparecell
+sky130_fd_sc_ls__maj3_1
+sky130_fd_sc_ls__maj3_2
+sky130_fd_sc_ls__mux2_1
+sky130_fd_sc_ls__mux2_2
+sky130_fd_sc_ls__mux2_4
+sky130_fd_sc_ls__mux2_8
+sky130_fd_sc_ls__mux2i_1
+sky130_fd_sc_ls__mux2i_2
+sky130_fd_sc_ls__mux2i_4
+sky130_fd_sc_ls__mux4_1
+sky130_fd_sc_ls__mux4_2
+sky130_fd_sc_ls__nand2_1
+sky130_fd_sc_ls__nand2_8
+sky130_fd_sc_ls__nand2b_1
+sky130_fd_sc_ls__nand2b_4
+sky130_fd_sc_ls__nand3_1
+sky130_fd_sc_ls__nand3b_1
+sky130_fd_sc_ls__nand3b_4
+sky130_fd_sc_ls__nand4_1
+sky130_fd_sc_ls__nand4_2
+sky130_fd_sc_ls__nand4b_1
+sky130_fd_sc_ls__nand4b_2
+sky130_fd_sc_ls__nand4b_4
+sky130_fd_sc_ls__nand4bb_1
+sky130_fd_sc_ls__nand4bb_2
+sky130_fd_sc_ls__nand4bb_4
+sky130_fd_sc_ls__nor2_1
+sky130_fd_sc_ls__nor2_2
+sky130_fd_sc_ls__nor2_8
+sky130_fd_sc_ls__nor2b_1
+sky130_fd_sc_ls__nor2b_2
+sky130_fd_sc_ls__nor2b_4
+sky130_fd_sc_ls__nor3_1
+sky130_fd_sc_ls__nor3_2
+sky130_fd_sc_ls__nor3b_1
+sky130_fd_sc_ls__nor3b_2
+sky130_fd_sc_ls__nor3b_4
+sky130_fd_sc_ls__nor4_1
+sky130_fd_sc_ls__nor4_2
+sky130_fd_sc_ls__nor4b_1
+sky130_fd_sc_ls__nor4b_2
+sky130_fd_sc_ls__nor4b_4
+sky130_fd_sc_ls__nor4bb_1
+sky130_fd_sc_ls__nor4bb_2
+sky130_fd_sc_ls__nor4bb_4
+sky130_fd_sc_ls__o2111a_1
+sky130_fd_sc_ls__o2111a_2
+sky130_fd_sc_ls__o2111a_4
+sky130_fd_sc_ls__o2111ai_1
+sky130_fd_sc_ls__o2111ai_4
+sky130_fd_sc_ls__o211a_1
+sky130_fd_sc_ls__o211a_2
+sky130_fd_sc_ls__o211a_4
+sky130_fd_sc_ls__o211ai_1
+sky130_fd_sc_ls__o211ai_4
+sky130_fd_sc_ls__o21a_2
+sky130_fd_sc_ls__o21ai_0
+sky130_fd_sc_ls__o21ba_1
+sky130_fd_sc_ls__o21ba_2
+sky130_fd_sc_ls__o21ba_4
+sky130_fd_sc_ls__o21bai_1
+sky130_fd_sc_ls__o21bai_4
+sky130_fd_sc_ls__o221a_1
+sky130_fd_sc_ls__o221a_2
+sky130_fd_sc_ls__o221a_4
+sky130_fd_sc_ls__o221ai_1
+sky130_fd_sc_ls__o221ai_4
+sky130_fd_sc_ls__o22a_2
+sky130_fd_sc_ls__o22ai_4
+sky130_fd_sc_ls__o2bb2a_1
+sky130_fd_sc_ls__o2bb2a_2
+sky130_fd_sc_ls__o2bb2a_4
+sky130_fd_sc_ls__o2bb2ai_1
+sky130_fd_sc_ls__o2bb2ai_4
+sky130_fd_sc_ls__o311a_1
+sky130_fd_sc_ls__o311a_2
+sky130_fd_sc_ls__o311a_4
+sky130_fd_sc_ls__o311ai_0
+sky130_fd_sc_ls__o311ai_1
+sky130_fd_sc_ls__o311ai_4
+sky130_fd_sc_ls__o31a_1
+sky130_fd_sc_ls__o31a_2
+sky130_fd_sc_ls__o31a_4
+sky130_fd_sc_ls__o31ai_1
+sky130_fd_sc_ls__o31ai_4
+sky130_fd_sc_ls__o32a_1
+sky130_fd_sc_ls__o32a_2
+sky130_fd_sc_ls__o32ai_1
+sky130_fd_sc_ls__o41a_1
+sky130_fd_sc_ls__o41a_2
+sky130_fd_sc_ls__o41ai_1
+sky130_fd_sc_ls__or2_0
+sky130_fd_sc_ls__or2_1
+sky130_fd_sc_ls__or2b_1
+sky130_fd_sc_ls__or2b_4
+sky130_fd_sc_ls__or3_1
+sky130_fd_sc_ls__or3b_1
+sky130_fd_sc_ls__or3b_4
+sky130_fd_sc_ls__or4_1
+sky130_fd_sc_ls__or4b_1
+sky130_fd_sc_ls__or4b_4
+sky130_fd_sc_ls__or4bb_1
+sky130_fd_sc_ls__or4bb_4
+sky130_fd_sc_ls__probe_s8p_8
+sky130_fd_sc_ls__probec_s8p_8
+sky130_fd_sc_ls__sdfbbn_1
+sky130_fd_sc_ls__sdfbbp_1
+sky130_fd_sc_ls__sdfrbp_1
+sky130_fd_sc_ls__sdfrtn_1
+sky130_fd_sc_ls__sdfrtp_1
+sky130_fd_sc_ls__sdfrtp_4
+sky130_fd_sc_ls__sdfsbp_1
+sky130_fd_sc_ls__sdfstp_1
+sky130_fd_sc_ls__sdfstp_4
+sky130_fd_sc_ls__sdfxbp_1
+sky130_fd_sc_ls__sdfxtp_1
+sky130_fd_sc_ls__sdfxtp_4
+sky130_fd_sc_ls__sdlclkp_1
+sky130_fd_sc_ls__sdlclkp_2
+sky130_fd_sc_ls__sdlclkp_4
+sky130_fd_sc_ls__sedfxbp_1
+sky130_fd_sc_ls__sedfxbp_2
+sky130_fd_sc_ls__sedfxtp_1
+sky130_fd_sc_ls__sedfxtp_2
+sky130_fd_sc_ls__sedfxtp_4
+sky130_fd_sc_ls__xnor2_1
+sky130_fd_sc_ls__xor2_1
+sky130_fd_sc_ls__buf_16
+sky130_fd_sc_ls__lpflow_lsbuf_lh_hl_isowell_tap_1
+sky130_fd_sc_ls__lpflow_lsbuf_lh_hl_isowell_tap_2
+sky130_fd_sc_ls__lpflow_lsbuf_lh_hl_isowell_tap_4
diff --git a/sky130/openlane/sky130_fd_sc_ls/tracks.info b/sky130/openlane/sky130_fd_sc_ls/tracks.info
new file mode 100644
index 0000000..ceee4d4
--- /dev/null
+++ b/sky130/openlane/sky130_fd_sc_ls/tracks.info
@@ -0,0 +1,12 @@
+li1 X 0.24 0.48
+li1 Y 0.24 0.48
+met1 X 0.185 0.37
+met1 Y 0.185 0.37
+met2 X 0.24 0.48
+met2 Y 0.24 0.48
+met3 X 0.37 0.74
+met3 Y 0.37 0.74
+met4 X 0.48 0.96
+met4 Y 0.48 0.96
+met5 X 1.665 3.33
+met5 Y 1.665 3.33
diff --git a/sky130/openlane/sky130_fd_sc_ms/config.tcl b/sky130/openlane/sky130_fd_sc_ms/config.tcl
new file mode 100755
index 0000000..fbeb569
--- /dev/null
+++ b/sky130/openlane/sky130_fd_sc_ms/config.tcl
@@ -0,0 +1,68 @@
+set current_folder [file dirname [file normalize [info script]]]
+# Technology lib
+
+#ifdef EF_FORMAT
+set ::env(LIB_SYNTH) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/lib/$::env(STD_CELL_LIBRARY)/sky130_fd_sc_ms__tt_025C_1v80.lib"
+set ::env(LIB_FASTEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/lib/$::env(STD_CELL_LIBRARY)/sky130_fd_sc_ms__ff_n40C_1v95.lib"
+set ::env(LIB_SLOWEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/lib/$::env(STD_CELL_LIBRARY)/sky130_fd_sc_ms__ss_100C_1v60.lib"
+#else (!EF_FORMAT)
+set ::env(LIB_SYNTH) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_ms__tt_025C_1v80.lib"
+set ::env(LIB_FASTEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_ms__ff_n40C_1v95.lib"
+set ::env(LIB_SLOWEST) "$::env(PDK_ROOT)/$::env(PDK)/libs.ref/$::env(STD_CELL_LIBRARY)/lib/sky130_fd_sc_ms__ss_100C_1v60.lib"
+#endif (!EF_FORMAT)
+
+set ::env(LIB_TYPICAL) $::env(LIB_SYNTH)
+
+# Placement site for core cells
+# This can be found in the technology lef
+set ::env(PLACE_SITE) "unit"
+set ::env(PLACE_SITE_WIDTH) 0.480
+set ::env(PLACE_SITE_HEIGHT) 3.330
+
+
+
+# welltap and endcap cells
+set ::env(FP_WELLTAP_CELL) "sky130_fd_sc_ms__tapvpwrvgnd_1"
+set ::env(FP_ENDCAP_CELL) "sky130_fd_sc_ms__decap_4"
+
+# defaults (can be overridden by designs):
+set ::env(SYNTH_DRIVING_CELL) "sky130_fd_sc_ms__inv_8"
+#capacitance : 0.017653;
+set ::env(SYNTH_DRIVING_CELL_PIN) "Y"
+# update these
+set ::env(SYNTH_CAP_LOAD) "22.66" ; # femtofarad _inv_8 pin A cap
+set ::env(SYNTH_MIN_BUF_PORT) "sky130_fd_sc_ms__buf_2 A X"
+set ::env(SYNTH_TIEHI_PORT) "sky130_fd_sc_ms__conb_1 HI"
+set ::env(SYNTH_TIELO_PORT) "sky130_fd_sc_ms__conb_1 LO"
+
+# cts defaults
+set ::env(CTS_ROOT_BUFFER) sky130_fd_sc_ms__clkbuf_16
+set ::env(CELL_CLK_PORT) CLK
+
+# Placement defaults
+set ::env(PL_LIB) $::env(LIB_TYPICAL)
+
+# Fillcell insertion
+set ::env(FILL_CELL) "sky130_fd_sc_ms__fill_"
+set ::env(DECAP_CELL) "sky130_fd_sc_ms__decap_"
+set ::env(RE_BUFFER_CELL) "sky130_fd_sc_ms__buf_4"
+
+
+# Diode insertaion
+set ::env(DIODE_CELL) ""
+set ::env(FAKEDIODE_CELL) ""
+set ::env(DIODE_CELL_PIN) ""
+set ::env(DIODE_INSERTION_STRATEGY) 0 
+
+set ::env(CELL_PAD) 8
+set ::env(CELL_PAD_EXECLUDE) "$::env(STD_CELL_LIBRARY)__tap* $::env(STD_CELL_LIBRARY)__decap* $::env(STD_CELL_LIBRARY)__fill*"
+
+# Clk Buffers info CTS data
+set ::env(ROOT_CLK_BUFFER) $::env(STD_CELL_LIBRARY)__clkbuf_16
+set ::env(CLK_BUFFER) $::env(STD_CELL_LIBRARY)__clkbuf_4
+set ::env(CLK_BUFFER_INPUT) A
+set ::env(CLK_BUFFER_OUTPUT) X
+set ::env(CTS_CLK_BUFFER_LIST) "sky130_fd_sc_ms__clkbuf_2 sky130_fd_sc_ms__clkbuf_4 sky130_fd_sc_ms__clkbuf_8"
+set ::env(CTS_SQR_CAP) 0.258e-3
+set ::env(CTS_SQR_RES) 0.125
+set ::env(CTS_MAX_CAP) 1.53169
diff --git a/sky130/openlane/sky130_fd_sc_ms/no_synth.cells b/sky130/openlane/sky130_fd_sc_ms/no_synth.cells
new file mode 100644
index 0000000..5094f22
--- /dev/null
+++ b/sky130/openlane/sky130_fd_sc_ms/no_synth.cells
@@ -0,0 +1,425 @@
+sky130_fd_sc_ms__clkdlyinv3sd1_1
+sky130_fd_sc_ms__clkdlyinv3sd2_1
+sky130_fd_sc_ms__clkdlyinv3sd3_1
+sky130_fd_sc_ms__dfstp_2
+sky130_fd_sc_ms__xor3_4
+sky130_fd_sc_ms__or2b_2
+sky130_fd_sc_ms__xnor3_2
+sky130_fd_sc_ms__sdfbbn_2
+sky130_fd_sc_ms__sdfxtp_2
+sky130_fd_sc_ms__dfxtp_2
+sky130_fd_sc_ms__xor2_2
+sky130_fd_sc_ms__o311ai_2
+sky130_fd_sc_ms__nand2_2
+sky130_fd_sc_ms__sdfrtp_2
+sky130_fd_sc_ms__and4_2
+sky130_fd_sc_ms__dfsbp_2
+sky130_fd_sc_ms__or4_2
+sky130_fd_sc_ms__inv_2
+sky130_fd_sc_ms__dlymetal6s4s_1
+sky130_fd_sc_ms__o31ai_2
+sky130_fd_sc_ms__bufbuf_16
+sky130_fd_sc_ms__dlygate4sd3_1
+sky130_fd_sc_ms__o22ai_2
+sky130_fd_sc_ms__o32ai_2
+sky130_fd_sc_ms__and3_2
+sky130_fd_sc_ms__o2111ai_2
+sky130_fd_sc_ms__dlrbp_2
+sky130_fd_sc_ms__and4bb_2
+sky130_fd_sc_ms__nand3b_2
+sky130_fd_sc_ms__buf_6
+sky130_fd_sc_ms__and4b_2
+sky130_fd_sc_ms__a2bb2oi_2
+sky130_fd_sc_ms__buf_12
+sky130_fd_sc_ms__and2_2
+sky130_fd_sc_ms__dlxbn_2
+sky130_fd_sc_ms__dlrtp_2
+sky130_fd_sc_ms__xor3_1
+sky130_fd_sc_ms__a21oi_2
+sky130_fd_sc_ms__inv_12
+sky130_fd_sc_ms__o21ai_2
+sky130_fd_sc_ms__a311oi_2
+sky130_fd_sc_ms__o21bai_2
+sky130_fd_sc_ms__nand3_2
+sky130_fd_sc_ms__dlygate4sd2_1
+sky130_fd_sc_ms__o211ai_2
+sky130_fd_sc_ms__or4b_2
+sky130_fd_sc_ms__and3b_2
+sky130_fd_sc_ms__or4bb_2
+sky130_fd_sc_ms__sdfrbp_2
+sky130_fd_sc_ms__o2bb2ai_2
+sky130_fd_sc_ms__bufinv_16
+sky130_fd_sc_ms__xor3_2
+sky130_fd_sc_ms__o41ai_2
+sky130_fd_sc_ms__or3b_2
+sky130_fd_sc_ms__or2_2
+sky130_fd_sc_ms__dfrtp_2
+sky130_fd_sc_ms__bufbuf_8
+sky130_fd_sc_ms__bufinv_8
+sky130_fd_sc_ms__buf_2
+sky130_fd_sc_ms__inv_6
+sky130_fd_sc_ms__xnor3_4
+sky130_fd_sc_ms__and2b_2
+sky130_fd_sc_ms__a2111oi_2
+sky130_fd_sc_ms__xnor3_1
+sky130_fd_sc_ms__dlymetal6s6s_1
+sky130_fd_sc_ms__o221ai_2
+sky130_fd_sc_ms__sdfstp_2
+sky130_fd_sc_ms__a31oi_2
+sky130_fd_sc_ms__a211oi_2
+sky130_fd_sc_ms__nand2b_2
+sky130_fd_sc_ms__a22oi_2
+sky130_fd_sc_ms__dlymetal6s2s_1
+sky130_fd_sc_ms__dlxtn_2
+sky130_fd_sc_ms__a21boi_2
+sky130_fd_sc_ms__dlrtn_2
+sky130_fd_sc_ms__a221oi_2
+sky130_fd_sc_ms__or3_2
+sky130_fd_sc_ms__sdfsbp_2
+sky130_fd_sc_ms__xnor2_2
+sky130_fd_sc_ms__sdfxbp_2
+sky130_fd_sc_ms__clkbuf_1
+sky130_fd_sc_ms__clkbuf_2
+sky130_fd_sc_ms__clkbuf_4
+sky130_fd_sc_ms__clkbuf_8
+sky130_fd_sc_ms__clkbuf_16
+sky130_fd_sc_ms__o22a_1
+sky130_fd_sc_ms__o22ai_1
+sky130_fd_sc_ms__o21a_1
+sky130_fd_sc_ms__o21ai_1
+sky130_fd_sc_ms__a211o_1
+sky130_fd_sc_ms__a211oi_2
+sky130_fd_sc_ms__a21oi_2
+sky130_fd_sc_ms__a22oi_2
+sky130_fd_sc_ms__a311oi_2
+sky130_fd_sc_ms__and2_2
+sky130_fd_sc_ms__and3_2
+sky130_fd_sc_ms__and4_2
+sky130_fd_sc_ms__and4bb_2
+sky130_fd_sc_ms__buf_6
+sky130_fd_sc_ms__bufbuf_8
+sky130_fd_sc_ms__bufinv_8
+sky130_fd_sc_ms__clkbuf_16
+sky130_fd_sc_ms__clkbuf_4
+sky130_fd_sc_ms__dfrtp_2
+sky130_fd_sc_ms__dfstp_2
+sky130_fd_sc_ms__dlrbp_2
+sky130_fd_sc_ms__dlrtp_2
+sky130_fd_sc_ms__dlxtn_2
+sky130_fd_sc_ms__dlygate4sd3_1
+sky130_fd_sc_ms__dlymetal6s4s_1
+sky130_fd_sc_ms__inv_12
+sky130_fd_sc_ms__inv_6
+sky130_fd_sc_ms__nand2b_2
+sky130_fd_sc_ms__nand3b_2
+sky130_fd_sc_ms__o211ai_2
+sky130_fd_sc_ms__o21ai_1
+sky130_fd_sc_ms__o21bai_2
+sky130_fd_sc_ms__o22a_1
+sky130_fd_sc_ms__o22ai_2
+sky130_fd_sc_ms__o311ai_2
+sky130_fd_sc_ms__o32ai_2
+sky130_fd_sc_ms__or2_2
+sky130_fd_sc_ms__or3_2
+sky130_fd_sc_ms__or4_2
+sky130_fd_sc_ms__or4bb_2
+sky130_fd_sc_ms__sdfrbp_2
+sky130_fd_sc_ms__sdfsbp_2
+sky130_fd_sc_ms__sdfxbp_2
+sky130_fd_sc_ms__xnor2_2
+sky130_fd_sc_ms__xnor3_2
+sky130_fd_sc_ms__xor2_2
+sky130_fd_sc_ms__xor3_2
+sky130_fd_sc_ms__buf_12
+sky130_fd_sc_ms__a2111o_1
+sky130_fd_sc_ms__a2111o_2
+sky130_fd_sc_ms__a2111oi_0
+sky130_fd_sc_ms__a2111oi_1
+sky130_fd_sc_ms__a211o_2
+sky130_fd_sc_ms__a211oi_1
+sky130_fd_sc_ms__a211oi_4
+sky130_fd_sc_ms__a21bo_1
+sky130_fd_sc_ms__a21bo_2
+sky130_fd_sc_ms__a21boi_0
+sky130_fd_sc_ms__a21boi_1
+sky130_fd_sc_ms__a21o_1
+sky130_fd_sc_ms__a21o_2
+sky130_fd_sc_ms__a21oi_1
+sky130_fd_sc_ms__a221o_1
+sky130_fd_sc_ms__a221o_2
+sky130_fd_sc_ms__a221o_4
+sky130_fd_sc_ms__a221oi_1
+sky130_fd_sc_ms__a221oi_4
+sky130_fd_sc_ms__a222oi_1
+sky130_fd_sc_ms__a22o_1
+sky130_fd_sc_ms__a22o_2
+sky130_fd_sc_ms__a22o_4
+sky130_fd_sc_ms__a22oi_1
+sky130_fd_sc_ms__a2bb2o_1
+sky130_fd_sc_ms__a2bb2o_2
+sky130_fd_sc_ms__a2bb2oi_1
+sky130_fd_sc_ms__a311o_1
+sky130_fd_sc_ms__a311o_2
+sky130_fd_sc_ms__a311o_4
+sky130_fd_sc_ms__a311oi_1
+sky130_fd_sc_ms__a311oi_4
+sky130_fd_sc_ms__a31o_1
+sky130_fd_sc_ms__a31o_2
+sky130_fd_sc_ms__a31o_4
+sky130_fd_sc_ms__a31oi_1
+sky130_fd_sc_ms__a31oi_4
+sky130_fd_sc_ms__a32o_1
+sky130_fd_sc_ms__a32o_2
+sky130_fd_sc_ms__a32oi_1
+sky130_fd_sc_ms__a32oi_2
+sky130_fd_sc_ms__a41o_1
+sky130_fd_sc_ms__a41o_2
+sky130_fd_sc_ms__a41oi_1
+sky130_fd_sc_ms__a41oi_2
+sky130_fd_sc_ms__and2_0
+sky130_fd_sc_ms__and2_1
+sky130_fd_sc_ms__and2b_1
+sky130_fd_sc_ms__and2b_4
+sky130_fd_sc_ms__and3_1
+sky130_fd_sc_ms__and3b_1
+sky130_fd_sc_ms__and3b_4
+sky130_fd_sc_ms__and4_1
+sky130_fd_sc_ms__and4b_1
+sky130_fd_sc_ms__and4b_4
+sky130_fd_sc_ms__and4bb_1
+sky130_fd_sc_ms__and4bb_4
+sky130_fd_sc_ms__clkdlybuf4s15_1
+sky130_fd_sc_ms__clkdlybuf4s15_2
+sky130_fd_sc_ms__clkdlybuf4s18_1
+sky130_fd_sc_ms__clkdlybuf4s18_2
+sky130_fd_sc_ms__clkdlybuf4s25_1
+sky130_fd_sc_ms__clkdlybuf4s25_2
+sky130_fd_sc_ms__clkdlybuf4s50_1
+sky130_fd_sc_ms__clkdlybuf4s50_2
+sky130_fd_sc_ms__clkinv_1
+sky130_fd_sc_ms__clkinv_16
+sky130_fd_sc_ms__clkinv_2
+sky130_fd_sc_ms__clkinv_4
+sky130_fd_sc_ms__clkinv_8
+sky130_fd_sc_ms__clkinvlp_2
+sky130_fd_sc_ms__clkinvlp_4
+sky130_fd_sc_ms__decap_12
+sky130_fd_sc_ms__decap_3
+sky130_fd_sc_ms__decap_4
+sky130_fd_sc_ms__decap_6
+sky130_fd_sc_ms__decap_8
+sky130_fd_sc_ms__dfbbn_1
+sky130_fd_sc_ms__dfbbp_1
+sky130_fd_sc_ms__dfrbp_1
+sky130_fd_sc_ms__dfrtn_1
+sky130_fd_sc_ms__dfrtp_1
+sky130_fd_sc_ms__dfsbp_1
+sky130_fd_sc_ms__dfstp_1
+sky130_fd_sc_ms__dfxbp_1
+sky130_fd_sc_ms__dfxtp_1
+sky130_fd_sc_ms__diode_2
+sky130_fd_sc_ms__dlclkp_1
+sky130_fd_sc_ms__dlclkp_2
+sky130_fd_sc_ms__dlclkp_4
+sky130_fd_sc_ms__dlrbn_1
+sky130_fd_sc_ms__dlrbn_2
+sky130_fd_sc_ms__dlrbp_1
+sky130_fd_sc_ms__dlrtn_1
+sky130_fd_sc_ms__dlrtn_4
+sky130_fd_sc_ms__dlrtp_1
+sky130_fd_sc_ms__dlrtp_4
+sky130_fd_sc_ms__dlxbn_1
+sky130_fd_sc_ms__dlxbp_1
+sky130_fd_sc_ms__dlxtn_1
+sky130_fd_sc_ms__dlxtn_4
+sky130_fd_sc_ms__dlxtp_1
+sky130_fd_sc_ms__dlygate4sd1_1
+sky130_fd_sc_ms__ebufn_1
+sky130_fd_sc_ms__ebufn_2
+sky130_fd_sc_ms__ebufn_4
+sky130_fd_sc_ms__ebufn_8
+sky130_fd_sc_ms__edfxbp_1
+sky130_fd_sc_ms__edfxtp_1
+sky130_fd_sc_ms__einvn_0
+sky130_fd_sc_ms__einvn_1
+sky130_fd_sc_ms__einvn_2
+sky130_fd_sc_ms__einvn_4
+sky130_fd_sc_ms__einvn_8
+sky130_fd_sc_ms__einvp_1
+sky130_fd_sc_ms__einvp_2
+sky130_fd_sc_ms__einvp_4
+sky130_fd_sc_ms__einvp_8
+sky130_fd_sc_ms__fa_1
+sky130_fd_sc_ms__fa_2
+sky130_fd_sc_ms__fa_4
+sky130_fd_sc_ms__fah_1
+sky130_fd_sc_ms__fahcin_1
+sky130_fd_sc_ms__fahcon_1
+sky130_fd_sc_ms__ha_1
+sky130_fd_sc_ms__ha_2
+sky130_fd_sc_ms__ha_4
+sky130_fd_sc_ms__inv_1
+sky130_fd_sc_ms__inv_4
+sky130_fd_sc_ms__lpflow_bleeder_1
+sky130_fd_sc_ms__lpflow_clkbufkapwr_1
+sky130_fd_sc_ms__lpflow_clkbufkapwr_16
+sky130_fd_sc_ms__lpflow_clkbufkapwr_2
+sky130_fd_sc_ms__lpflow_clkbufkapwr_4
+sky130_fd_sc_ms__lpflow_clkbufkapwr_8
+sky130_fd_sc_ms__lpflow_clkinvkapwr_1
+sky130_fd_sc_ms__lpflow_clkinvkapwr_16
+sky130_fd_sc_ms__lpflow_clkinvkapwr_2
+sky130_fd_sc_ms__lpflow_clkinvkapwr_4
+sky130_fd_sc_ms__lpflow_clkinvkapwr_8
+sky130_fd_sc_ms__lpflow_decapkapwr_12
+sky130_fd_sc_ms__lpflow_decapkapwr_3
+sky130_fd_sc_ms__lpflow_decapkapwr_4
+sky130_fd_sc_ms__lpflow_decapkapwr_6
+sky130_fd_sc_ms__lpflow_decapkapwr_8
+sky130_fd_sc_ms__lpflow_inputiso0n_1
+sky130_fd_sc_ms__lpflow_inputiso0p_1
+sky130_fd_sc_ms__lpflow_inputiso1n_1
+sky130_fd_sc_ms__lpflow_inputiso1p_1
+sky130_fd_sc_ms__lpflow_inputisolatch_1
+sky130_fd_sc_ms__lpflow_isobufsrc_1
+sky130_fd_sc_ms__lpflow_isobufsrc_16
+sky130_fd_sc_ms__lpflow_isobufsrc_2
+sky130_fd_sc_ms__lpflow_isobufsrc_4
+sky130_fd_sc_ms__lpflow_isobufsrc_8
+sky130_fd_sc_ms__lpflow_isobufsrckapwr_16
+sky130_fd_sc_ms__lpflow_lsbuf_lh_isowell_4
+sky130_fd_sc_ms__lpflow_lsbuf_lh_isowell_tap_1
+sky130_fd_sc_ms__lpflow_lsbuf_lh_isowell_tap_2
+sky130_fd_sc_ms__lpflow_lsbuf_lh_isowell_tap_4
+sky130_fd_sc_ms__macro_sparecell
+sky130_fd_sc_ms__maj3_1
+sky130_fd_sc_ms__maj3_2
+sky130_fd_sc_ms__mux2_1
+sky130_fd_sc_ms__mux2_2
+sky130_fd_sc_ms__mux2_4
+sky130_fd_sc_ms__mux2_8
+sky130_fd_sc_ms__mux2i_1
+sky130_fd_sc_ms__mux2i_2
+sky130_fd_sc_ms__mux2i_4
+sky130_fd_sc_ms__mux4_1
+sky130_fd_sc_ms__mux4_2
+sky130_fd_sc_ms__nand2_1
+sky130_fd_sc_ms__nand2_8
+sky130_fd_sc_ms__nand2b_1
+sky130_fd_sc_ms__nand2b_4
+sky130_fd_sc_ms__nand3_1
+sky130_fd_sc_ms__nand3b_1
+sky130_fd_sc_ms__nand3b_4
+sky130_fd_sc_ms__nand4_1
+sky130_fd_sc_ms__nand4_2
+sky130_fd_sc_ms__nand4b_1
+sky130_fd_sc_ms__nand4b_2
+sky130_fd_sc_ms__nand4b_4
+sky130_fd_sc_ms__nand4bb_1
+sky130_fd_sc_ms__nand4bb_2
+sky130_fd_sc_ms__nand4bb_4
+sky130_fd_sc_ms__nor2_1
+sky130_fd_sc_ms__nor2_2
+sky130_fd_sc_ms__nor2_8
+sky130_fd_sc_ms__nor2b_1
+sky130_fd_sc_ms__nor2b_2
+sky130_fd_sc_ms__nor2b_4
+sky130_fd_sc_ms__nor3_1
+sky130_fd_sc_ms__nor3_2
+sky130_fd_sc_ms__nor3b_1
+sky130_fd_sc_ms__nor3b_2
+sky130_fd_sc_ms__nor3b_4
+sky130_fd_sc_ms__nor4_1
+sky130_fd_sc_ms__nor4_2
+sky130_fd_sc_ms__nor4b_1
+sky130_fd_sc_ms__nor4b_2
+sky130_fd_sc_ms__nor4b_4
+sky130_fd_sc_ms__nor4bb_1
+sky130_fd_sc_ms__nor4bb_2
+sky130_fd_sc_ms__nor4bb_4
+sky130_fd_sc_ms__o2111a_1
+sky130_fd_sc_ms__o2111a_2
+sky130_fd_sc_ms__o2111a_4
+sky130_fd_sc_ms__o2111ai_1
+sky130_fd_sc_ms__o2111ai_4
+sky130_fd_sc_ms__o211a_1
+sky130_fd_sc_ms__o211a_2
+sky130_fd_sc_ms__o211a_4
+sky130_fd_sc_ms__o211ai_1
+sky130_fd_sc_ms__o211ai_4
+sky130_fd_sc_ms__o21a_2
+sky130_fd_sc_ms__o21ai_0
+sky130_fd_sc_ms__o21ba_1
+sky130_fd_sc_ms__o21ba_2
+sky130_fd_sc_ms__o21ba_4
+sky130_fd_sc_ms__o21bai_1
+sky130_fd_sc_ms__o21bai_4
+sky130_fd_sc_ms__o221a_1
+sky130_fd_sc_ms__o221a_2
+sky130_fd_sc_ms__o221a_4
+sky130_fd_sc_ms__o221ai_1
+sky130_fd_sc_ms__o221ai_4
+sky130_fd_sc_ms__o22a_2
+sky130_fd_sc_ms__o22ai_4
+sky130_fd_sc_ms__o2bb2a_1
+sky130_fd_sc_ms__o2bb2a_2
+sky130_fd_sc_ms__o2bb2a_4
+sky130_fd_sc_ms__o2bb2ai_1
+sky130_fd_sc_ms__o2bb2ai_4
+sky130_fd_sc_ms__o311a_1
+sky130_fd_sc_ms__o311a_2
+sky130_fd_sc_ms__o311a_4
+sky130_fd_sc_ms__o311ai_0
+sky130_fd_sc_ms__o311ai_1
+sky130_fd_sc_ms__o311ai_4
+sky130_fd_sc_ms__o31a_1
+sky130_fd_sc_ms__o31a_2
+sky130_fd_sc_ms__o31a_4
+sky130_fd_sc_ms__o31ai_1
+sky130_fd_sc_ms__o31ai_4
+sky130_fd_sc_ms__o32a_1
+sky130_fd_sc_ms__o32a_2
+sky130_fd_sc_ms__o32ai_1
+sky130_fd_sc_ms__o41a_1
+sky130_fd_sc_ms__o41a_2
+sky130_fd_sc_ms__o41ai_1
+sky130_fd_sc_ms__or2_0
+sky130_fd_sc_ms__or2_1
+sky130_fd_sc_ms__or2b_1
+sky130_fd_sc_ms__or2b_4
+sky130_fd_sc_ms__or3_1
+sky130_fd_sc_ms__or3b_1
+sky130_fd_sc_ms__or3b_4
+sky130_fd_sc_ms__or4_1
+sky130_fd_sc_ms__or4b_1
+sky130_fd_sc_ms__or4b_4
+sky130_fd_sc_ms__or4bb_1
+sky130_fd_sc_ms__or4bb_4
+sky130_fd_sc_ms__probe_s8p_8
+sky130_fd_sc_ms__probec_s8p_8
+sky130_fd_sc_ms__sdfbbn_1
+sky130_fd_sc_ms__sdfbbp_1
+sky130_fd_sc_ms__sdfrbp_1
+sky130_fd_sc_ms__sdfrtn_1
+sky130_fd_sc_ms__sdfrtp_1
+sky130_fd_sc_ms__sdfrtp_4
+sky130_fd_sc_ms__sdfsbp_1
+sky130_fd_sc_ms__sdfstp_1
+sky130_fd_sc_ms__sdfstp_4
+sky130_fd_sc_ms__sdfxbp_1
+sky130_fd_sc_ms__sdfxtp_1
+sky130_fd_sc_ms__sdfxtp_4
+sky130_fd_sc_ms__sdlclkp_1
+sky130_fd_sc_ms__sdlclkp_2
+sky130_fd_sc_ms__sdlclkp_4
+sky130_fd_sc_ms__sedfxbp_1
+sky130_fd_sc_ms__sedfxbp_2
+sky130_fd_sc_ms__sedfxtp_1
+sky130_fd_sc_ms__sedfxtp_2
+sky130_fd_sc_ms__sedfxtp_4
+sky130_fd_sc_ms__xnor2_1
+sky130_fd_sc_ms__xor2_1
+sky130_fd_sc_ms__buf_16
+sky130_fd_sc_ms__lpflow_lsbuf_lh_hl_isowell_tap_1
+sky130_fd_sc_ms__lpflow_lsbuf_lh_hl_isowell_tap_2
+sky130_fd_sc_ms__lpflow_lsbuf_lh_hl_isowell_tap_4
diff --git a/sky130/openlane/sky130_fd_sc_ms/tracks.info b/sky130/openlane/sky130_fd_sc_ms/tracks.info
new file mode 100644
index 0000000..ceee4d4
--- /dev/null
+++ b/sky130/openlane/sky130_fd_sc_ms/tracks.info
@@ -0,0 +1,12 @@
+li1 X 0.24 0.48
+li1 Y 0.24 0.48
+met1 X 0.185 0.37
+met1 Y 0.185 0.37
+met2 X 0.24 0.48
+met2 Y 0.24 0.48
+met3 X 0.37 0.74
+met3 Y 0.37 0.74
+met4 X 0.48 0.96
+met4 Y 0.48 0.96
+met5 X 1.665 3.33
+met5 Y 1.665 3.33
