add makefile to generate outputs

This commit is contained in:
King Kévin 2019-12-01 18:06:34 +01:00
parent 28e59bf85c
commit df5a69fcb1
1 changed files with 105 additions and 0 deletions

105
hardware/Makefile Normal file
View File

@ -0,0 +1,105 @@
# base name of schematic/layout
TARGET=usb_cable_tester
# path to qEDA
QEDA=../qeda/bin/qeda
# path to elements
ELEMENTS=library/ic_mcu_st_stm32f103xc.yaml
ELEMENTS+=library/connector_usb-a-3.0_fci_10117835.yaml
ELEMENTS+=library/connector_usb-b-3.0_amphenol_gsb4211.yaml
ELEMENTS+=library/connector_usb-mini-b_edac_690-005-299-043.yaml
ELEMENTS+=library/connector_usb-micro-b-3.0_gct_usb3110.yaml
ELEMENTS+=library/connector_usb-micro-b-2.0_ali_32910334970.yaml
ELEMENTS+=library/connector_usb-c_hro_type-c-31-m-04.yaml
ELEMENTS+=library/connector_lightning_iphone5.yaml
ELEMENTS+=library/vreg_ldo_torex_xc6206.yaml
ELEMENTS+=library/connector_battery_18650.yaml
ELEMENTS+=library/display_lcd_lcm1602.yaml
ELEMENTS+=library/display_lcd_i2cadapter.yaml
ELEMENTS+=library/display_oled_0.96in.yaml
ELEMENTS+=library/vreg_pmic_tpower_tp4056.yaml
ELEMENTS+=library/transistor_pmos_nxp_bss84.yaml
ELEMENTS+=library/mechanical_button_6mm.yaml
ELEMENTS+=library/connector_xh-2.54-2p.yaml
netlist: $(TARGET).tdx
schematic: $(TARGET).ar.sch $(TARGET).sch.pdf
board: $(TARGET).brd-top.png $(TARGET).brd-bottom.png $(TARGET).brd.ps $(TARGET).brd.zip
#export netlist from schematic
%.tdx: %.sch
lepton-netlist -g tEDAx -o $@ $<
# export schematic as pdf
%.sch.pdf: %.sch
# export schematic
lepton-cli export --color --paper iso_a4 --layout landscape --color --output $@ $<
# rotate as it should be
pdftk $@ rotate 1-endleft output $@.tmp
mv $@.tmp $@
# create archive schematic
%.ar.sch: %.sch
cp $< $@
lepton-embed --embed $@
# export board as photorealistic preview (top side)
%.brd-top.png: %.lht
pcb-rnd -x png --dpi 1200 --photo-mode --outfile $@ $<
# export board as photorealistic preview (bottom side)
%.brd-bottom.png: %.lht
pcb-rnd -x png --dpi 1200 --photo-mode --photo-flip-y --outfile $@ $<
# export gerber from board (JLC_PCB naming style)
$(TARGET).brd.zip: $(TARGET).lht
pcb-rnd -x cam gerber:JLC_PCB --outfile $(TARGET).brd $<
zip $@ $(TARGET).brd.asb $(TARGET).brd.ast $(TARGET).brd.gbl $(TARGET).brd.gbo $(TARGET).brd.gbp $(TARGET).brd.gbs $(TARGET).brd.gko $(TARGET).brd.gtl $(TARGET).brd.gto $(TARGET).brd.gtp $(TARGET).brd.gts $(TARGET).brd.xln
# export all layers of the board in as ps document
%.brd.ps: %.lht
pcb-rnd -x ps --psfile $@ $<
# generate symbols and footprints from part definitions
geda/symbols/lib/ coraleda/subc/lib lib: library ${ELEMENTS}
# reset
$(QEDA) reset
# configure
$(QEDA) config pattern.preferManufacturer false
$(QEDA) config pattern.densityLevel M
$(QEDA) config pattern.smoothPadCorners true
# add local files
$(QEDA) add ic_mcu_st_stm32f103xc@LQFP144
$(QEDA) add connector_usb-a-3.0_fci_10117835
$(QEDA) add connector_usb-b-3.0_amphenol_gsb4211
$(QEDA) add connector_usb-mini-b_edac_690-005-299-043
$(QEDA) add connector_usb-micro-b-3.0_gct_usb3110
$(QEDA) add connector_usb-micro-b-2.0_ali_32910334970
$(QEDA) add connector_usb-c_hro_type-c-31-m-04
$(QEDA) add connector_lightning_iphone5
$(QEDA) add vreg_ldo_torex_xc6206
$(QEDA) add connector_battery_18650
$(QEDA) add display_lcd_lcm1602
$(QEDA) add display_lcd_i2cadapter
$(QEDA) add display_oled_0.96in
$(QEDA) add vreg_pmic_tpower_tp4056
$(QEDA) add transistor_pmos_nxp_bss84
$(QEDA) add mechanical_button_6mm
$(QEDA) add connector_XH-2.54-2P
# from github library
$(QEDA) add ecs/csm-7
$(QEDA) add capacitor/c0603
$(QEDA) add resistor/r0603
$(QEDA) add diode/led0603
# generate outputs
$(QEDA) config output geda
$(QEDA) generate .
$(QEDA) config output coraleda
$(QEDA) generate .
clean:
rm $(TARGET).brd-top.png $(TARGET).brd-bottom.png $(TARGET).brd.ps $(TARGET).brd.asb $(TARGET).brd.ast $(TARGET).brd.gbl $(TARGET).brd.gbo $(TARGET).brd.gbp $(TARGET).brd.gbs $(TARGET).brd.gko $(TARGET).brd.gtl $(TARGET).brd.gto $(TARGET).brd.gtp $(TARGET).brd.gts $(TARGET).brd.xln
dist-clean: clean
rm $(TARGET).tdx $(TARGET).sch.pdf $(TARGET).brd.zip