diff --git a/common/foundry_install.py b/common/foundry_install.py
index 9a4625e..a9493ef 100755
--- a/common/foundry_install.py
+++ b/common/foundry_install.py
@@ -415,10 +415,9 @@
             # Make sure this file is writable (as the original may not be)
             makeuserwritable(outfile)
 
+        arguments = [filterscript, targetroot, outfile]
         if ef_format:
-            arguments = [filterscript, targetroot, outfile, '-ef_format']
-        else:
-            arguments = [filterscript, targetroot, outfile]
+            arguments.append('-ef_format')
 
         subprocess_run('filter', arguments)
 
diff --git a/sky130/Makefile.in b/sky130/Makefile.in
index db8e314..8d25736 100644
--- a/sky130/Makefile.in
+++ b/sky130/Makefile.in
@@ -711,10 +711,13 @@
 	fi
 	cp -rp custom/scripts/seal_ring_generator ${MAGIC_STAGING_$*}/.
 	cp -rp custom/scripts/bump_bond_generator ${MAGIC_STAGING_$*}/.
-	cp custom/scripts/generate_fill.py ${MAGIC_STAGING_$*}/.
-	cp custom/scripts/check_density.py ${MAGIC_STAGING_$*}/.
 	cp custom/scripts/run_standard_drc.py ${MAGIC_STAGING_$*}/.
-	cp custom/scripts/check_antenna.py ${MAGIC_STAGING_$*}/.
+	${CPP} ${SKY130$*_DEFS} custom/scripts/generate_fill.py \
+		${MAGIC_STAGING_$*}/generate_fill.py
+	${CPP} ${SKY130$*_DEFS} custom/scripts/check_density.py \
+		${MAGIC_STAGING_$*}/check_density.py
+	${CPP} ${SKY130$*_DEFS} custom/scripts/check_antenna.py \
+		${MAGIC_STAGING_$*}/check_antenna.py
 	${CPP} ${SKY130$*_DEFS} magic/${TECH}.tech ${MAGIC_STAGING_$*}/${SKY130$*}.tech
 	${CPP} ${SKY130$*_DEFS} magic/${TECH}gds.tech ${MAGIC_STAGING_$*}/${SKY130$*}-GDS.tech
 	${CPP} ${SKY130$*_DEFS} magic/${TECH}.magicrc ${MAGIC_STAGING_$*}/${SKY130$*}.magicrc
@@ -1129,14 +1132,14 @@
 		2>&1 | tee -a ${SKY130$*}_make.log || true
 	# Custom:  Parse the (commented out) statistics blocks and generate
 	# ngspice-compatible monte carlo parameters for mismatch and process
-	./custom/scripts/mismatch_params.py ${EF_FORMAT} \
+	./custom/scripts/mismatch_params.py ${EF_FORMAT} -variant=${SKY130$*} \
 		2>&1 | tee -a ${SKY130$*}_make.log || true
-	./custom/scripts/mismatch_params.py ${EF_FORMAT} \
+	./custom/scripts/mismatch_params.py \
 		${STAGING_PATH}/${SKY130$*}/libs.tech/ngspice \
 		2>&1 | tee -a ${SKY130$*}_make.log || true
-	./custom/scripts/process_params.py \
+	./custom/scripts/process_params.py ${EF_FORMAT} -variant=${SKY130$*} \
 		2>&1 | tee -a ${SKY130$*}_make.log || true
-	./custom/scripts/montecarlo_hack.py \
+	./custom/scripts/montecarlo_hack.py -variant=${SKY130$*} \
 		2>&1 | tee -a ${SKY130$*}_make.log || true
 	# Custom:  Change vt to local_vt in one file for Xyce compatibilty
 	./custom/scripts/xyce_hack.py \
@@ -1159,7 +1162,7 @@
 		2>&1 | tee -a ${SKY130$*}_make.log || true
 	# Custom:  Add special device ID layers to bipolar layouts in magic
 	# to make the extraction models correct.
-	./custom/scripts/add_bipolar_ids.py ${EF_FORMAT} \
+	./custom/scripts/add_bipolar_ids.py ${EF_FORMAT} -variant=${SKY130$*} \
 		2>&1 | tee -a ${SKY130$*}_make.log || true
 
 	# Custom:  Add "spinit" file
diff --git a/sky130/custom/scripts/add_bipolar_ids.py b/sky130/custom/scripts/add_bipolar_ids.py
index 611cc71..73e991b 100755
--- a/sky130/custom/scripts/add_bipolar_ids.py
+++ b/sky130/custom/scripts/add_bipolar_ids.py
@@ -10,7 +10,6 @@
 import os
 import re
 import sys
-import tempfile
 
 options = []
 arguments = []
@@ -20,10 +19,17 @@
     else:
         arguments.append(item)
 
-magpath = 'sky130A/libs.ref/sky130_fd_pr/mag'
+variant = 'sky130A'
+magpath = variant + '/libs.ref/sky130_fd_pr/mag'
+
 if len(options) > 0:
-    if options[0] == 'ef_format':
-        magpath = 'sky130A/libs.ref/mag/sky130_fd_pr'
+    for option in options:
+        if option.startswith('variant'):
+            variant = option.split('=')[1]
+    magpath = variant + '/libs.ref/sky130_fd_pr/mag'
+    for option in options:
+        if option == 'ef_format':
+            magpath = variant + '/libs.ref/mag/sky130_fd_pr'
 elif len(arguments) > 0:
     magpath = arguments[0]
 
@@ -51,6 +57,7 @@
 
 for idx, device in enumerate(devlist):
     infile_name = magpath + '/' + device + '.mag'
+    outfile_name = magpath + '/' + device + '_temp.mag'
 
     if not os.path.exists(infile_name):
         print('Error:  Cannot find file ' + infile_name)
@@ -61,8 +68,7 @@
     type = typelist[idx]
     is_baserect = False
     infile = open(infile_name, 'r')
-    handle, outfile_name = tempfile.mkstemp()
-    outfile = os.fdopen(handle, 'w')
+    outfile = open(outfile_name, 'w')
     line_number = 0
     replaced_something = False
 
diff --git a/sky130/custom/scripts/check_antenna.py b/sky130/custom/scripts/check_antenna.py
index 031fa5e..e7eb89f 100755
--- a/sky130/custom/scripts/check_antenna.py
+++ b/sky130/custom/scripts/check_antenna.py
@@ -53,8 +53,8 @@
     myenv = os.environ.copy()
     myenv['MAGTYPE'] = 'mag'
     
-    if os.path.isfile('/usr/share/pdk/sky130A/libs.tech/magic/sky130A.magicrc'):
-       rcfile = '/usr/share/pdk/sky130A/libs.tech/magic/sky130A.magicrc'
+    if os.path.isfile('/usr/share/pdk/TECHNAME/libs.tech/magic/TECHNAME.magicrc'):
+       rcfile = '/usr/share/pdk/TECHNAME/libs.tech/magic/TECHNAME.magicrc'
     elif os.path.isfile(magpath + '/.magicrc'):
        rcfile = magpath + '/.magicrc'
     elif os.path.isfile(os.getcwd() + '/.magicrc'):
diff --git a/sky130/custom/scripts/check_density.py b/sky130/custom/scripts/check_density.py
index f439355..7e540eb 100755
--- a/sky130/custom/scripts/check_density.py
+++ b/sky130/custom/scripts/check_density.py
@@ -95,7 +95,7 @@
     
     # Searching for rcfile
     
-    rcfile_paths=[gdspath+'/.magicrc','/$PDK_PATH/libs.tech/magic/sky130A.magicrc','/usr/share/pdk/sky130A/libs.tech/magic/sky130A.magicrc']
+    rcfile_paths=[gdspath+'/.magicrc','/$PDK_PATH/libs.tech/magic/TECHNAME.magicrc','/usr/share/pdk/TECHNAME/libs.tech/magic/TECHNAME.magicrc']
     
     rcfile=''
     
diff --git a/sky130/custom/scripts/fix_spice_includes.py b/sky130/custom/scripts/fix_spice_includes.py
index 8469057..f70079b 100755
--- a/sky130/custom/scripts/fix_spice_includes.py
+++ b/sky130/custom/scripts/fix_spice_includes.py
@@ -11,7 +11,6 @@
 import os
 import re
 import sys
-import tempfile
 
 newdevs = []
 newdevs.append('sky130_fd_pr__pnp_05v5_W3p40L3p40')
@@ -39,10 +38,10 @@
     filepath = os.path.split(infile_name)[0]
     filename = os.path.split(infile_name)[1]
     fileroot = os.path.split(filename)[0]
+    outfile_name = os.path.join(filepath, fileroot + '_temp')
 
     infile = open(infile_name, 'r')
-    handle, outfile_name = tempfile.mkstemp()
-    outfile = os.fdopen(handle, 'w')
+    outfile = open(outfile_name, 'w')
 
     line_number = 0
     replaced_something = False
diff --git a/sky130/custom/scripts/generate_fill.py b/sky130/custom/scripts/generate_fill.py
index 08209b3..38ecc39 100755
--- a/sky130/custom/scripts/generate_fill.py
+++ b/sky130/custom/scripts/generate_fill.py
@@ -119,7 +119,7 @@
 
     # Searching for rcfile
     
-    rcfile_paths=[magpath+'/.magicrc','/$PDK_PATH/libs.tech/magic/sky130A.magicrc','/usr/share/pdk/sky130A/libs.tech/magic/sky130A.magicrc']
+    rcfile_paths=[magpath+'/.magicrc','/$PDK_PATH/libs.tech/magic/TECHNAME.magicrc','/usr/share/pdk/TECHNAME/libs.tech/magic/TECHNAME.magicrc']
     
     rcfile=''
     
diff --git a/sky130/custom/scripts/mismatch_params.py b/sky130/custom/scripts/mismatch_params.py
index c8a8fef..0053542 100755
--- a/sky130/custom/scripts/mismatch_params.py
+++ b/sky130/custom/scripts/mismatch_params.py
@@ -9,7 +9,6 @@
 import os
 import re
 import sys
-import tempfile
 
 mm_switch_param = 'MC_MM_SWITCH'
 
@@ -21,11 +20,17 @@
     else:
         arguments.append(item)
 
-walkpath = 'sky130A/libs.ref/sky130_fd_pr/spice'
+variant = 'sky130A'
+walkpath = variant + '/libs.tech/ngspice'
 
 if len(options) > 0:
-    if options[0] == 'ef_format':
-        walkpath = 'sky130A/libs.ref/spi/sky130_fd_pr'
+    for option in options:
+        if option.startswith('variant'):
+            variant = option.split('=')[1]
+    walkpath = variant + '/libs.ref/sky130_fd_pr/spice'
+    for option in options: 
+        if option == 'ef_format':
+            walkpath = variant + '/libs.ref/spi/sky130_fd_pr'
 elif len(arguments) > 0:
     walkpath = arguments[0]
 
@@ -96,10 +101,10 @@
     filepath = os.path.split(infile_name)[0]
     filename = os.path.split(infile_name)[1]
     fileroot = os.path.splitext(filename)[0]
+    outfile_name = os.path.join(filepath, fileroot + '_temp')
 
     infile = open(infile_name, 'r')
-    handle, outfile_name = tempfile.mkstemp()
-    outfile = os.fdopen(handle, 'w')
+    outfile = open(outfile_name, 'w')
 
     state = 'before_mismatch'
     line_number = 0
diff --git a/sky130/custom/scripts/montecarlo_hack.py b/sky130/custom/scripts/montecarlo_hack.py
index 81a47aa..cff5576 100755
--- a/sky130/custom/scripts/montecarlo_hack.py
+++ b/sky130/custom/scripts/montecarlo_hack.py
@@ -11,14 +11,28 @@
 import os
 import re
 import sys
-import tempfile
 
-searchpath = ['sky130A/libs.tech/ngspice/parameters/critical.spice',
-	'sky130A/libs.tech/ngspice/parameters/montecarlo.spice']
+options = []
+arguments = []
+for item in sys.argv[1:]:
+    if item.find('-', 0) == 0:
+        options.append(item[1:])
+    else:
+        arguments.append(item)
 
-if len(sys.argv) > 1:
+variant = 'sky130A'
+
+if len(options) > 0:
+    for option in options:
+        if option.startswith('variant'):
+            variant = option.split('=')[1]
+    searchpath = [variant + '/libs.tech/ngspice/parameters/critical.spice',
+		variant + '/libs.tech/ngspice/parameters/montecarlo.spice']
+
+elif len(arguments) > 0:
     searchpath = sys.argv[1]
 
+
 # Flag all parameters that have the same name as devices.
 # These parameters are unused and must be deleted.
 
@@ -55,10 +69,10 @@
     filepath = os.path.split(infile_name)[0]
     filename = os.path.split(infile_name)[1]
     fileroot = os.path.splitext(filename)[0]
+    outfile_name = os.path.join(filepath, fileroot + '_temp')
 
     infile = open(infile_name, 'r')
-    handle, outfile_name = tempfile.mkstemp()
-    outfile = osfdopen(handle, 'w')
+    outfile = open(outfile_name, 'w')
 
     line_number = 0
     replaced_something = False
diff --git a/sky130/custom/scripts/process_params.py b/sky130/custom/scripts/process_params.py
index 657a635..c27840a 100755
--- a/sky130/custom/scripts/process_params.py
+++ b/sky130/custom/scripts/process_params.py
@@ -9,14 +9,30 @@
 import os
 import re
 import sys
-import tempfile
 
 pr_switch_param = 'MC_PR_SWITCH'
 
-walkpath = 'sky130A/libs.tech/ngspice'
+options = []
+arguments = []
+for item in sys.argv[1:]:
+    if item.find('-', 0) == 0:
+        options.append(item[1:])
+    else:
+        arguments.append(item)
 
-if len(sys.argv) > 1:
-    walkpath = sys.argv[1]
+variant = 'sky130A'
+walkpath = variant + '/libs.ref/sky130_fd_pr/spice'
+
+if len(options) > 0:
+    for option in options:
+        if option.startswith('variant'):
+            variant = option.split('=')[1]
+    walkpath = variant + '/libs.ref/sky130_fd_pr/spice'
+    for option in options:
+        if option == 'ef_format':
+            walkpath = variant + '/libs.ref/spi/sky130_fd_pr'
+elif len(arguments) > 0:
+    walkpath = arguments[0]
 
 process_params = []
 
@@ -87,10 +103,10 @@
     filepath = os.path.split(infile_name)[0]
     filename = os.path.split(infile_name)[1]
     fileroot = os.path.splitext(filename)[0]
+    outfile_name = os.path.join(filepath, fileroot + '_temp')
 
     infile = open(infile_name, 'r')
-    handle, outfile_name = tempfile.mkstemp()
-    outfile = os.fdopen(handle, 'w')
+    outfile = open(outfile_name, 'w')
 
     state = 'before_process'
     line_number = 0
diff --git a/sky130/custom/scripts/text2m5.py b/sky130/custom/scripts/text2m5.py
index e91bc21..8351b00 100755
--- a/sky130/custom/scripts/text2m5.py
+++ b/sky130/custom/scripts/text2m5.py
@@ -25,6 +25,10 @@
         print('text2m5.py: failed to open ' + inname + ' for reading.', file=sys.stderr)
         return 1
 
+    # The library is based on sky130A only.  Pick up the name of the PDK variant
+    # from the input name (which is four directory levels up from inname)
+    variant = inname.split('/')[-5]
+
     # Process input with regexp
 
     fixedlines = []
@@ -34,7 +38,7 @@
 
         # These substitutions are for files originating from cells/*/*.spice
         fixedline = re.sub('<< metal1 >>', '<< metal5 >>', line)
-        fixedline = re.sub('tech sky130A', 'tech sky130A\nmagscale 12 1', fixedline)
+        fixedline = re.sub('tech sky130A', 'tech ' + variant + '\nmagscale 12 1', fixedline)
 
         fixedlines.append(fixedline)
         if fixedline != line:
diff --git a/sky130/custom/scripts/xyce_hack.py b/sky130/custom/scripts/xyce_hack.py
index 6fcc914..ecedb7d 100755
--- a/sky130/custom/scripts/xyce_hack.py
+++ b/sky130/custom/scripts/xyce_hack.py
@@ -12,7 +12,6 @@
 import os
 import re
 import sys
-import tempfile
 
 if len(sys.argv) <= 1:
     print('Usage: xyce_hack.py <path_to_file>')
@@ -24,10 +23,10 @@
     filepath = os.path.split(infile_name)[0]
     filename = os.path.split(infile_name)[1]
     fileroot = os.path.splitext(filename)[0]
+    outfile_name = os.path.join(filepath, fileroot + '_temp')
 
     infile = open(infile_name, 'r')
-    handle, outfile_name = tempfile.mkstemp()
-    outfile = os.fdopen(handle, 'w')
+    outfile = open(outfile_name, 'w')
 
     line_number = 0
     replaced_something = False
diff --git a/sky130/custom/scripts/xyce_hack2.py b/sky130/custom/scripts/xyce_hack2.py
index 9442ad5..9308dad 100755
--- a/sky130/custom/scripts/xyce_hack2.py
+++ b/sky130/custom/scripts/xyce_hack2.py
@@ -10,7 +10,6 @@
 import os
 import re
 import sys
-import tempfile
 
 plist = ["ldif", "hdif", "rd", "rs", "rsc", "rdc", "nqsmod"]
 regexps = []
@@ -27,10 +26,10 @@
     filepath = os.path.split(infile_name)[0]
     filename = os.path.split(infile_name)[1]
     fileroot = os.path.splitext(filename)[0]
+    outfile_name = os.path.join(filepath, fileroot + '_temp')
 
     infile = open(infile_name, 'r')
-    handle, outfile_name = tempfile.mkstemp()
-    outfile = os.fdopen(handle, 'w')
+    outfile = open(outfile_name, 'w')
 
     line_number = 0
     replaced_something = False
