mirror of
git://projects.qi-hardware.com/eda-tools.git
synced 2024-11-22 10:06:16 +02:00
Makefile.kicad: copy over from ben-wpan/makefiles/
This commit is contained in:
parent
1a8beb2f15
commit
fdabcc9b3e
211
Makefile.kicad
Normal file
211
Makefile.kicad
Normal file
@ -0,0 +1,211 @@
|
||||
#
|
||||
# Makefile.kicad - Makefile template for KiCAD projects
|
||||
#
|
||||
# Written 2011, 2013 by Werner Almesberger
|
||||
# Copyright 2011, 2013 Werner Almesberger
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
|
||||
#
|
||||
# Define before including this template:
|
||||
#
|
||||
# NAME project name
|
||||
# VERSION "release" version number
|
||||
#
|
||||
|
||||
ifndef TOP
|
||||
TOP = ../..
|
||||
endif
|
||||
|
||||
PLOT_BRD = pcbnew --plot=ps --plot-fill-all-zones
|
||||
CPTX = $(TOP)/eda-tools/mlztx/cptx
|
||||
GMERGE = $(TOP)/eda-tools/fab/gmerge
|
||||
DRL2GERBER = $(TOP)/eda-tools/fab/drl2gerber
|
||||
PRETTYGERBV = $(TOP)/eda-tools/fab/prettygerbv
|
||||
POS2FAB = $(TOP)/eda-tools/fab/pos2fab
|
||||
FPDOC = PATH=$$PATH:$(TOP)/eda-tools/fab:$(TOP)/eda-tools/fpd2pdf fpdoc
|
||||
|
||||
DIR = $(shell pwd | sed 's|.*/||')
|
||||
|
||||
SCH=$(shell pwd)/$(NAME).sch
|
||||
BRD=$(shell pwd)/$(NAME).brd
|
||||
|
||||
|
||||
.PHONY: all gen generate sch brd xpdf front back clean
|
||||
.PHONY: gerber gerbv fab fab-pcb fab-smt overview
|
||||
|
||||
all:
|
||||
@echo "make what ? target: gen sch brd xpdf front back clean"
|
||||
@exit 1
|
||||
|
||||
gen generate:
|
||||
eeschema --plot=ps $(SCH)
|
||||
# need scripts
|
||||
|
||||
sch:
|
||||
eeschema $(SCH)
|
||||
|
||||
brd:
|
||||
pcbnew $(BRD)
|
||||
|
||||
xpdf:
|
||||
xpdf $(NAME).pdf
|
||||
|
||||
front: $(NAME)-Front.ps
|
||||
lpr $<
|
||||
|
||||
back: $(NAME)-Back.ps
|
||||
lpr $<
|
||||
|
||||
# --- DIY production (toner transfer) -----------------------------------------
|
||||
|
||||
#
|
||||
# Postscript for production of front/back layer, using the toner transfer
|
||||
# method. Note that other artwork transfer methods may require different
|
||||
# mirror settings.
|
||||
#
|
||||
# We use --ps-pads-drill-opt=none to avoid having any hole before drilling,
|
||||
# which yields the best results with a CNC drill. For manual drilling, "real"
|
||||
# would be preferrable. Do not use "small", for this created holes that are
|
||||
# larger (!) than designed.
|
||||
#
|
||||
|
||||
%-Front.ps: %.brd
|
||||
$(PLOT_BRD) --layers=Front --plot-mirror $<
|
||||
|
||||
%-Back.ps: %.brd
|
||||
$(PLOT_BRD) --layers=Back $<
|
||||
|
||||
# --- Industrial production ---------------------------------------------------
|
||||
|
||||
# $(call choose, basename, old-suffix, new-suffix)
|
||||
|
||||
choose = $(if $(wildcard $(1)-$(3)), $(1)-$(3), $(1)-$(2))
|
||||
|
||||
GERBERS = $(call choose, $(NAME),SilkS_Front.gto,F_SilkS.gto) \
|
||||
$(call choose, $(NAME),Mask_Front.gts,F_Mask.gts) \
|
||||
$(call choose, $(NAME),Front.gtl,F_Cu.gtl) \
|
||||
$(call choose, $(NAME),Back.gbl,B_Cu.gbl) \
|
||||
$(call choose, $(NAME),Mask_Back.gbs,B_Mask.gbs) \
|
||||
$(call choose, $(NAME),PCB_Edges.gbr,Edge_Cuts.gbr) \
|
||||
$(call choose, $(NAME),SoldP_Front.gtp,F_Paste.gtp)
|
||||
|
||||
PCB_FILES = README-PCB $(NAME)-front.png $(NAME)-back.png \
|
||||
$(NAME)-PCB_Edges.dxf $(NAME).drl $(GERBERS)
|
||||
|
||||
SMT_FILES = README-SMT $(NAME)-front.png $(NAME)-bom.csv $(NAME)-pos.csv \
|
||||
$(NAME)-footprints.pdf
|
||||
|
||||
gerber: $(GERBERS)
|
||||
|
||||
$(GERBERS): $(NAME).brd Makefile
|
||||
pcbnew --plot=gerber --plot-aux-origin \
|
||||
--layers=`pcbnew --list-layers $(BRD) | tr '\012' ,` \
|
||||
--plot-fill-all-zones --plot-exclude-edge \
|
||||
$(BRD)
|
||||
$(GMERGE) $(NAME)-SilkS_Front.gto $(NAME)-Comments.gbr >_tmp \
|
||||
|| { rm -rf _tmp; exit 1; }
|
||||
mv _tmp $(NAME)-SilkS_Front.gto
|
||||
|
||||
fab: fab-pcb fab-smt
|
||||
|
||||
$(NAME)-PCB_Edges.dxf: $(NAME).brd
|
||||
pcbnew --plot=dxf --plot-aux-origin --layers=PCB_Edges $(BRD)
|
||||
|
||||
$(NAME).drl: $(NAME).brd
|
||||
pcbnew --drill --drill-aux-origin $(BRD)
|
||||
|
||||
fab-pcb: $(PCB_FILES)
|
||||
mkdir -p fab
|
||||
tar Ccfz .. fab/$(NAME)-pcb-$(VERSION).tar.gz \
|
||||
$(PCB_FILES:%=$(DIR)/%)
|
||||
cd ..; zip -l $(DIR)/fab/$(NAME)-pcb-$(VERSION).zip \
|
||||
$(PCB_FILES:%=$(DIR)/%)
|
||||
|
||||
gerbv:
|
||||
gerbv $(NAME)-SilkS_Front.gto \
|
||||
$(NAME)-SoldP_Front.gtp \
|
||||
$(NAME)-Front.gtl \
|
||||
$(NAME)-Mask_Front.gts \
|
||||
$(NAME)-Mask_Back.gbs \
|
||||
$(NAME)-Back.gbl \
|
||||
$(NAME)-PCB_Edges.gbr
|
||||
|
||||
$(NAME)Front.pos:
|
||||
pcbnew --pos $(BRD)
|
||||
|
||||
%-pos.csv: %Front.pos %.cmp
|
||||
$(POS2FAB) $^ >$@ || { rm -f "$@"; exit 1; }
|
||||
|
||||
../bom/$(NAME)-bom.csv:
|
||||
$(MAKE) -C ../bom $(NAME)-bom.csv
|
||||
|
||||
%-bom.csv: ../bom/%-bom.csv
|
||||
mv $< $@
|
||||
|
||||
%-footprints.pdf: %.pro %.cmp %Front.pos
|
||||
$(FPDOC) -a FIDUCIAL $< "$@" || { rm -f "$@"; exit 1; }
|
||||
|
||||
fab-smt: $(SMT_FILES)
|
||||
mkdir -p fab
|
||||
tar Ccfz .. fab/$(NAME)-smt-$(VERSION).tar.gz \
|
||||
$(SMT_FILES:%=$(DIR)/%)
|
||||
cd ..; zip -l $(DIR)/fab/$(NAME)-smt-$(VERSION).zip \
|
||||
$(SMT_FILES:%=$(DIR)/%)
|
||||
|
||||
upload:
|
||||
qippl \
|
||||
fab/$(NAME)-pcb-$(VERSION).tar.gz \
|
||||
fab/$(NAME)-pcb-$(VERSION).zip \
|
||||
fab/$(NAME)-smt-$(VERSION).tar.gz \
|
||||
fab/$(NAME)-smt-$(VERSION).zip \
|
||||
wpan/fab
|
||||
|
||||
# --- Overview images ---------------------------------------------------------
|
||||
|
||||
%-Drill.gbr: %.drl
|
||||
$(DRL2GERBER) $^ >$@ || { rm -f "$@"; exit 1; }
|
||||
|
||||
$(NAME)-front.png: gerber $(NAME)-Drill.gbr
|
||||
$(PRETTYGERBV) -d $(NAME)-Drill.gbr $(NAME) front \
|
||||
$(NAME)-front.png
|
||||
|
||||
$(NAME)-back.png: gerber $(NAME)-Drill.gbr
|
||||
$(PRETTYGERBV) -d $(NAME)-Drill.gbr $(NAME) back \
|
||||
$(NAME)-back.png
|
||||
|
||||
$(NAME)-overview.png: gerber $(NAME)-Drill.gbr
|
||||
$(PRETTYGERBV) -d $(NAME)-Drill.gbr $(NAME) all \
|
||||
$(NAME)-overview.png
|
||||
|
||||
overview: $(NAME)-overview.png
|
||||
display $(NAME)-overview.png
|
||||
|
||||
uoverview: $(NAME)-overview.png
|
||||
qippl $(NAME)-overview.png \
|
||||
wpan/tmp/$(NAME)-$(VERSION)-overview.png
|
||||
|
||||
# --- Cleanup -----------------------------------------------------------------
|
||||
|
||||
clean::
|
||||
rm -f $(NAME)-Front.ps $(NAME)-Back.ps
|
||||
rm -f $(NAME).drl $(NAME)-Drill.gbr
|
||||
rm -f $(NAME)-PCB_Edges.gbr $(NAME)-PCB_Edges.dxf
|
||||
rm -f $(NAME)-Front.gtl $(NAME)-Mask_Front.gts
|
||||
rm -f $(NAME)-SilkS_Front.gto $(NAME)-SoldP_Front.gtp
|
||||
rm -f $(NAME)-Back.gbl $(NAME)-Mask_Back.gbs
|
||||
rm -f $(NAME)-SilkS_Back.gbo $(NAME)-SoldP_Back.gbp
|
||||
rm -f $(NAME)-Comments.gbr $(NAME)-Drawings.gbr
|
||||
rm -f $(NAME)-overview.png $(NAME)-front.png $(NAME)-back.png
|
||||
rm -f $(NAME)Front.pos $(NAME)-pos.csv
|
||||
rm -f $(NAME)-bom.csv $(NAME)-footprints.pdf
|
||||
|
||||
spotless:: clean
|
||||
rm -f '$$'savepcb.000 '$$'savepcb.brd
|
||||
rm -f $(NAME)-cache.lib $(NAME)-cache.bak
|
||||
rm -f $(NAME).000
|
||||
rm -f $(NAME).net
|
4
README
4
README
@ -23,5 +23,9 @@ This is a collection of utilities for Electronic Design Automation:
|
||||
|
||||
- swpcmp: swap components in a layout
|
||||
|
||||
- Makefile.kicad: common makefile for KiCAD projects. Note that some of
|
||||
the functions provided there use the command-lines patches for KiCAD
|
||||
and therefore don't work with current versions of KiCAD.
|
||||
|
||||
Each utility can have its own licensing terms. They're specified in the
|
||||
respective directory or in the file itself.
|
||||
|
Loading…
Reference in New Issue
Block a user