| #--------------------------------------------------- |
| # Makefile for efabless project open_pdks |
| # Tim Edwards, 11/21/2016 |
| # Updated 10/19/2018 for use independently of the |
| # efabless /ef/ tree filesystem setup. |
| # Updated 5/5/2020 for use with the 2-stage install |
| #--------------------------------------------------- |
| # |
| # Typical usage: |
| # |
| # make |
| # generates the tech files from source masters. |
| # |
| # make install |
| # |
| # 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. |
| # |
| # make uninstall |
| # |
| # remove the installed PDKs. |
| # |
| #--------------------------------------------------- |
| # |
| # The following definitions are tied to the contents |
| # of this repository and should not be changed. |
| |
| TECHS = |
| |
| SKY130_SOURCE_PATH = @SKY130_SOURCE_PATH@ |
| ifneq ($(SKY130_SOURCE_PATH),) |
| TECHS += sky130 |
| endif |
| |
| DONE_MESSAGE = "Done." |
| ifeq ($(TECHS),) |
| DONE_MESSAGE = "No techs configured." |
| endif |
| |
| TECHS_ALL = $(addprefix tech_,$(TECHS)) |
| TECHS_INSTALL = $(addprefix install-,$(TECHS)) |
| TECHS_UNINSTALL = $(addprefix uninstall-,$(TECHS)) |
| TECHS_CLEAN = $(addprefix clean-,$(TECHS)) |
| TECHS_VERYCLEAN = $(addprefix veryclean-,$(TECHS)) |
| |
| #--------------------------------------------------- |
| |
| all: $(TECHS_ALL) |
| @echo $(DONE_MESSAGE) |
| |
| install: $(TECHS_INSTALL) common_install |
| @echo $(DONE_MESSAGE) |
| |
| uninstall: $(TECHS_UNINSTALL) |
| @echo $(DONE_MESSAGE) |
| |
| clean: $(TECHS_CLEAN) |
| @echo $(DONE_MESSAGE) |
| |
| veryclean: $(TECHS_VERYCLEAN) |
| @echo $(DONE_MESSAGE) |
| |
| distclean: $(TECHS_VERYCLEAN) |
| ${RM} -rf sources |
| @echo $(DONE_MESSAGE) |
| |
| #--------------------------------------------------- |
| |
| CPP = common/preproc.py |
| |
| common_install: |
| @if test -w @datadir@ ; then \ |
| mkdir -p @datadir@/pdk/scripts/ ;\ |
| cp runtime/cace.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/cace_datasheet_upload.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/cace_design_upload.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/cace_gensim.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/cace_launch.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/cace_makeplot.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/cdl2spi.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/change_gds_cell.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/change_gds_date.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/change_gds_string.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/changepath.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/characterize_help.txt @datadir@/pdk/scripts/ ;\ |
| cp runtime/cleanup_unref.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/compare_dirs.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/config.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/consoletext.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/create_gds_library.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/create_lef_library.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/create_lib_library.py @datadir@/pdk/scripts/ ;\ |
| ${CPP} -DPREFIX=@datadir@ runtime/create_project.py \ |
| @datadir@/pdk/scripts/create_project.py ;\ |
| cp runtime/create_spice_library.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/create_verilog_library.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/editparam.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/failreport.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/find_all_devices.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/find_gds_prefix.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/fix_subckt_params.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/fixspice.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/foundry_install.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/foundry_nodes.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/gate_list.txt @datadir@/pdk/scripts/ ;\ |
| cp runtime/get_gds_date.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/helpwindow.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/insert_property.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/listboxchoice.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/lvs_help.txt @datadir@/pdk/scripts/ ;\ |
| cp runtime/make_icon_from_soft.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/makestub.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/manager_help.txt @datadir@/pdk/scripts/ ;\ |
| cp runtime/netlist_to_layout.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/padframe_generator.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/preproc.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/print_subckt_params.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/profile.py @datadir@/pdk/scripts/ ;\ |
| ${CPP} -DPREFIX=@datadir@ runtime/project_manager.py \ |
| @datadir@/pdk/scripts/project_manager.py ;\ |
| cp runtime/qflow_help.txt @datadir@/pdk/scripts/ ;\ |
| cp runtime/remove_specify.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/rename_project.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/requirements.txt @datadir@/pdk/scripts/ ;\ |
| cp runtime/settings.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/simhints.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/soc_floorplanner.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/sort_pdkfiles.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/spectre_to_spice.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/split_gds.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/split_one_spice.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/split_spice.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/staging_install.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/symbolbuilder.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/tksimpledialog.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/tooltip.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/treeviewchoice.py @datadir@/pdk/scripts/ ;\ |
| cp runtime/treeviewsplit.py @datadir@/pdk/scripts/ ;\ |
| echo "Common install: Done." ;\ |
| else \ |
| echo "Common install: @datadir@ is not writeable (ignoring)." ;\ |
| fi |
| |
| #--------------------------------------------------- |
| |
| tech_sky130: |
| (cd sky130 && ${MAKE} all) |
| |
| #--------------------------------------------------- |
| |
| install-sky130: sky130 |
| (cd sky130 && ${MAKE} install) |
| |
| uninstall-sky130: sky130 |
| (cd sky130 && ${MAKE} uninstall) |
| |
| clean-sky130: |
| (cd sky130 && ${MAKE} clean) |
| |
| veryclean-sky130: |
| (cd sky130 && ${MAKE} veryclean) |
| |
| #--------------------------------------------------- |