FreeCalypso > hg > ueda-linux
diff ifctf-part-lib/m4-fp/common.m4 @ 0:cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
author | Space Falcon <falcon@ivan.Harhan.ORG> |
---|---|
date | Mon, 20 Jul 2015 00:24:37 +0000 |
parents | |
children | fd5de6e22f08 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ifctf-part-lib/m4-fp/common.m4 Mon Jul 20 00:24:37 2015 +0000 @@ -0,0 +1,128 @@ +divert(-1) +# +# COPYRIGHT +# +# PCB, interactive printed circuit board design +# Copyright (C) 1994,1995,1996 Thomas Nau +# +# 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. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Contact addresses for paper mail and Email: +# Thomas Nau, Schlehenweg 15, 88471 Baustetten, Germany +# Thomas.Nau@rz.uni-ulm.de +# +# RCS: $Id: common.m4,v 1.9 2012/11/07 19:02:52 msokolov Exp $ +# +# common defines for packages +# +# ------------------------------------------------------------------- +# create a single object +# $1: mask name +# $2: 'value' of the new object +# $3: package of the circuit +# +define(`CreateObject', + `ifdef(`PinList_$1', `DefinePinList(PinList_$1)')' + `PKG_$3(`Description_$1', ,``$2'', Param1_$1, Param2_$1)' +) + +# this one is used to show the correct value for the footprint attribute +# in a gschem (www.geda.seul.org) schematic. See QueryLibrary.sh +define(`QueryObject', + `ifdef(`PinList_$1', `DefinePinList(PinList_$1)')' +`$3 ifdef(`Param1_$1', `Param1_$1') ifdef(`Param2_$1', `Param2_$1')' +) + +# ------------------------------------------------------------------- +# define for-loops like the manual tells us +# +define(`forloop', + `define(`$1', `$2')_forloop(`$1', `$2', `$3', `$4')') +define(`_forloop', + `$4`'ifelse($1, `$3', , + `define(`$1', incr($1))_forloop(`$1', `$2', `$3', `$4')')') + +# version with step control added by Michael Spacefalcon +define(`forloop2', + `define(`$1', `$2')_forloop2(`$1', `$2', `$3', `$4', `$5')') +define(`_forloop2', + `$5`'ifelse($1, `$3', , + `define(`$1', eval($1 + $4))_forloop2(`$1', `$2', `$3', `$4', `$5')')') + +# ------------------------------------------------------------------- +# the following definitions evaluate the list of pin-names +# missing names will be defined as 'P_#' +# +# the first two arguments are skipped +# +define(`PIN', `Pin($1 $2 $3 $4 ifdef(`P_$5', "P_$5", "$5") ifelse($5, 1, 0x101, 0x01))') +define(`PAD', `Pad($1 $2 $3 $4 $5 ifdef(`P_$6', "P_$6", "$6") ifelse($6, 1, 0x00, 0x100))') + +define(`EDGECONN', `Pad($1 $2 $3 $4 $5 ifdef(`P_$6', "P_$6", "$6") "$6" $7)') + +# This stuff won't work with dmr m4 +#define(`DEFPIN', `define(`count', incr(count))' `define(`P_'count, $1)') +#define(`DefinePinList', `ifelse($#, 1, , +# `pushdef(`count')' +# `define(`count', 0)' +# `_DEFPINLIST($@)' +# `popdef(`count')')') +#define(`_DEFPINLIST', `ifelse($#, 0, , $#, 1, `DEFPIN(`$1')', +# `DEFPIN(`$1')'` +# _DEFPINLIST(shift($@))')') +# +#define(`args',` +# ifelse($#, 0, , $#, 1,`define(`arg'cnt,`$1')', +# `define(`arg'cnt,`$1') define(`cnt',incr(cnt)) args(shift($@))')') + +include(amp.inc) +include(amphenol.inc) +include(bga.inc) +include(bourns.inc) +include(bre.inc) +include(btb.inc) +include(connector.inc) +include(cts.inc) +include(dil.inc) +include(dpr.inc) +include(geda.inc) +include(hirose.inc) +include(johnstech.inc) +include(midcom.inc) +include(minicircuits.inc) +include(misc.inc) +include(panasonic.inc) +# pci.inc uses stuff that won't work with dmr m4 +#include(pci.inc) +include(plcc.inc) +include(qfn.inc) +include(qfp.inc) +include(qfp2.inc) +include(qfpdj.inc) +include(resistor_adjust.inc) +include(rules.inc) +include(smt.inc) +include(smtosc.inc) +include(to.inc) +include(zif.inc) + +# if any of these files exist, then include them. +# this makes it a bit easier to configure pcb without +# mucking with app-defaults every time you launch it +sinclude(site-config.inc) +sinclude(user-config.inc) +sinclude(proj-config.inc) + +divert(0)dnl