| #--------------------------------------------------- |
| # 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 @prefix@ ; then \ |
| mkdir -p @prefix@/pdk/bin/ ;\ |
| cp common/cleanup_unref.py @prefix@/pdk/bin/ ;\ |
| cp common/soc_floorplanner.py @prefix@/pdk/bin/ ;\ |
| cp common/change_gds_cell.py @prefix@/pdk/bin/ ;\ |
| cp common/find_gds_prefix.py @prefix@/pdk/bin/ ;\ |
| cp common/change_gds_string.py @prefix@/pdk/bin/ ;\ |
| ${CPP} -DPREFIX=@prefix@ common/create_project.py \ |
| @prefix@/pdk/bin/create_project.py ;\ |
| echo "Common install: Done." ;\ |
| else \ |
| echo "Common install: @prefix@ 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) |
| |
| #--------------------------------------------------- |