modify parallel epd run file
							
								
								
									
										47
									
								
								inkycal/display/drivers/parallel_drivers/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,47 @@ | ||||
| DIR_Config   = ./lib/Config | ||||
| DIR_EPD      = ./lib/e-Paper | ||||
| DIR_FONTS    = ./lib/Fonts | ||||
| DIR_GUI      = ./lib/GUI | ||||
| DIR_Examples = ./examples | ||||
|  | ||||
| DIR_BIN      = ./bin | ||||
|  | ||||
| OBJ_C = $(wildcard ${DIR_Config}/*.c ${DIR_EPD}/*.c ${DIR_FONTS}/*.c ${DIR_GUI}/*.c ${DIR_Examples}/*.c ) | ||||
| OBJ_O = $(patsubst %.c,${DIR_BIN}/%.o,$(notdir ${OBJ_C})) | ||||
|  | ||||
| TARGET = epd | ||||
|  | ||||
| CC = gcc | ||||
|  | ||||
| MSG = -g -O0 -Wall | ||||
| DEBUG = -D USE_DEBUG | ||||
| STD = -std=gnu99 | ||||
|  | ||||
| CFLAGS += $(MSG) $(DEBUG) $(STD) | ||||
|  | ||||
| LIB = -lbcm2835 -lm -lrt -lpthread | ||||
|  | ||||
| $(shell mkdir -p $(DIR_BIN)) | ||||
|  | ||||
| ${TARGET}:${OBJ_O} | ||||
| 	$(CC) $(CFLAGS) $(OBJ_O) -o $@ $(LIB)  | ||||
|  | ||||
| ${DIR_BIN}/%.o:$(DIR_Config)/%.c | ||||
| 	$(CC) $(CFLAGS) -c  $< -o $@  | ||||
|  | ||||
| ${DIR_BIN}/%.o:$(DIR_EPD)/%.c | ||||
| 	$(CC) $(CFLAGS) -c  $< -o $@  | ||||
| 	 | ||||
| ${DIR_BIN}/%.o:$(DIR_FONTS)/%.c | ||||
| 	$(CC) $(CFLAGS) -c  $< -o $@  | ||||
| 	 | ||||
| ${DIR_BIN}/%.o:$(DIR_GUI)/%.c | ||||
| 	$(CC) $(CFLAGS) -c  $< -o $@  | ||||
| 	 | ||||
| ${DIR_BIN}/%.o:$(DIR_Examples)/%.c | ||||
| 	$(CC) $(CFLAGS) -c  $< -o $@  | ||||
|  | ||||
| clean : | ||||
| 	rm $(DIR_BIN)/*.*  | ||||
| 	rm $(TARGET)  | ||||
|  | ||||
							
								
								
									
										17
									
								
								inkycal/display/drivers/parallel_drivers/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,17 @@ | ||||
| # # IT8951 parallel drivers for Inkycal | ||||
| Inkycal now comes shipped with support for several parallel E-Paper displays! | ||||
| To allow Inkycal to use these displays, the following files were modified: | ||||
|   * main.c -> This is the main file and contains info about how the program runs | ||||
|   * example.c -> This file contains imported functions from the library. It was modified to display | ||||
|   the .BMP file from a custom path, which was not possible before | ||||
|   * example.h -> Any modification to functions in the example.c file need to be reflected here. If | ||||
|   a function in example.c now uses an addtional parameter, it must be adapted here accordingly | ||||
|  | ||||
|  | ||||
| ## How it works | ||||
| Before anything becomes affective, it is required to navigate to this folder and run: | ||||
| ````bash | ||||
| sudo make clean | ||||
| sudo make | ||||
| ``` | ||||
| This executes the MAKEFILE, which in turn compiles `main.c`, `example.c` and `example.h`. | ||||
							
								
								
									
										674
									
								
								inkycal/display/drivers/parallel_drivers/bcm2835-1.68/COPYING
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,674 @@ | ||||
|                     GNU GENERAL PUBLIC LICENSE | ||||
|                        Version 3, 29 June 2007 | ||||
|  | ||||
|  Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> | ||||
|  Everyone is permitted to copy and distribute verbatim copies | ||||
|  of this license document, but changing it is not allowed. | ||||
|  | ||||
|                             Preamble | ||||
|  | ||||
|   The GNU General Public License is a free, copyleft license for | ||||
| software and other kinds of works. | ||||
|  | ||||
|   The licenses for most software and other practical works are designed | ||||
| to take away your freedom to share and change the works.  By contrast, | ||||
| the GNU General Public License is intended to guarantee your freedom to | ||||
| share and change all versions of a program--to make sure it remains free | ||||
| software for all its users.  We, the Free Software Foundation, use the | ||||
| GNU General Public License for most of our software; it applies also to | ||||
| any other work released this way by its authors.  You can apply it to | ||||
| your programs, too. | ||||
|  | ||||
|   When we speak of free software, we are referring to freedom, not | ||||
| price.  Our General Public Licenses are designed to make sure that you | ||||
| have the freedom to distribute copies of free software (and charge for | ||||
| them if you wish), that you receive source code or can get it if you | ||||
| want it, that you can change the software or use pieces of it in new | ||||
| free programs, and that you know you can do these things. | ||||
|  | ||||
|   To protect your rights, we need to prevent others from denying you | ||||
| these rights or asking you to surrender the rights.  Therefore, you have | ||||
| certain responsibilities if you distribute copies of the software, or if | ||||
| you modify it: responsibilities to respect the freedom of others. | ||||
|  | ||||
|   For example, if you distribute copies of such a program, whether | ||||
| gratis or for a fee, you must pass on to the recipients the same | ||||
| freedoms that you received.  You must make sure that they, too, receive | ||||
| or can get the source code.  And you must show them these terms so they | ||||
| know their rights. | ||||
|  | ||||
|   Developers that use the GNU GPL protect your rights with two steps: | ||||
| (1) assert copyright on the software, and (2) offer you this License | ||||
| giving you legal permission to copy, distribute and/or modify it. | ||||
|  | ||||
|   For the developers' and authors' protection, the GPL clearly explains | ||||
| that there is no warranty for this free software.  For both users' and | ||||
| authors' sake, the GPL requires that modified versions be marked as | ||||
| changed, so that their problems will not be attributed erroneously to | ||||
| authors of previous versions. | ||||
|  | ||||
|   Some devices are designed to deny users access to install or run | ||||
| modified versions of the software inside them, although the manufacturer | ||||
| can do so.  This is fundamentally incompatible with the aim of | ||||
| protecting users' freedom to change the software.  The systematic | ||||
| pattern of such abuse occurs in the area of products for individuals to | ||||
| use, which is precisely where it is most unacceptable.  Therefore, we | ||||
| have designed this version of the GPL to prohibit the practice for those | ||||
| products.  If such problems arise substantially in other domains, we | ||||
| stand ready to extend this provision to those domains in future versions | ||||
| of the GPL, as needed to protect the freedom of users. | ||||
|  | ||||
|   Finally, every program is threatened constantly by software patents. | ||||
| States should not allow patents to restrict development and use of | ||||
| software on general-purpose computers, but in those that do, we wish to | ||||
| avoid the special danger that patents applied to a free program could | ||||
| make it effectively proprietary.  To prevent this, the GPL assures that | ||||
| patents cannot be used to render the program non-free. | ||||
|  | ||||
|   The precise terms and conditions for copying, distribution and | ||||
| modification follow. | ||||
|  | ||||
|                        TERMS AND CONDITIONS | ||||
|  | ||||
|   0. Definitions. | ||||
|  | ||||
|   "This License" refers to version 3 of the GNU General Public License. | ||||
|  | ||||
|   "Copyright" also means copyright-like laws that apply to other kinds of | ||||
| works, such as semiconductor masks. | ||||
|  | ||||
|   "The Program" refers to any copyrightable work licensed under this | ||||
| License.  Each licensee is addressed as "you".  "Licensees" and | ||||
| "recipients" may be individuals or organizations. | ||||
|  | ||||
|   To "modify" a work means to copy from or adapt all or part of the work | ||||
| in a fashion requiring copyright permission, other than the making of an | ||||
| exact copy.  The resulting work is called a "modified version" of the | ||||
| earlier work or a work "based on" the earlier work. | ||||
|  | ||||
|   A "covered work" means either the unmodified Program or a work based | ||||
| on the Program. | ||||
|  | ||||
|   To "propagate" a work means to do anything with it that, without | ||||
| permission, would make you directly or secondarily liable for | ||||
| infringement under applicable copyright law, except executing it on a | ||||
| computer or modifying a private copy.  Propagation includes copying, | ||||
| distribution (with or without modification), making available to the | ||||
| public, and in some countries other activities as well. | ||||
|  | ||||
|   To "convey" a work means any kind of propagation that enables other | ||||
| parties to make or receive copies.  Mere interaction with a user through | ||||
| a computer network, with no transfer of a copy, is not conveying. | ||||
|  | ||||
|   An interactive user interface displays "Appropriate Legal Notices" | ||||
| to the extent that it includes a convenient and prominently visible | ||||
| feature that (1) displays an appropriate copyright notice, and (2) | ||||
| tells the user that there is no warranty for the work (except to the | ||||
| extent that warranties are provided), that licensees may convey the | ||||
| work under this License, and how to view a copy of this License.  If | ||||
| the interface presents a list of user commands or options, such as a | ||||
| menu, a prominent item in the list meets this criterion. | ||||
|  | ||||
|   1. Source Code. | ||||
|  | ||||
|   The "source code" for a work means the preferred form of the work | ||||
| for making modifications to it.  "Object code" means any non-source | ||||
| form of a work. | ||||
|  | ||||
|   A "Standard Interface" means an interface that either is an official | ||||
| standard defined by a recognized standards body, or, in the case of | ||||
| interfaces specified for a particular programming language, one that | ||||
| is widely used among developers working in that language. | ||||
|  | ||||
|   The "System Libraries" of an executable work include anything, other | ||||
| than the work as a whole, that (a) is included in the normal form of | ||||
| packaging a Major Component, but which is not part of that Major | ||||
| Component, and (b) serves only to enable use of the work with that | ||||
| Major Component, or to implement a Standard Interface for which an | ||||
| implementation is available to the public in source code form.  A | ||||
| "Major Component", in this context, means a major essential component | ||||
| (kernel, window system, and so on) of the specific operating system | ||||
| (if any) on which the executable work runs, or a compiler used to | ||||
| produce the work, or an object code interpreter used to run it. | ||||
|  | ||||
|   The "Corresponding Source" for a work in object code form means all | ||||
| the source code needed to generate, install, and (for an executable | ||||
| work) run the object code and to modify the work, including scripts to | ||||
| control those activities.  However, it does not include the work's | ||||
| System Libraries, or general-purpose tools or generally available free | ||||
| programs which are used unmodified in performing those activities but | ||||
| which are not part of the work.  For example, Corresponding Source | ||||
| includes interface definition files associated with source files for | ||||
| the work, and the source code for shared libraries and dynamically | ||||
| linked subprograms that the work is specifically designed to require, | ||||
| such as by intimate data communication or control flow between those | ||||
| subprograms and other parts of the work. | ||||
|  | ||||
|   The Corresponding Source need not include anything that users | ||||
| can regenerate automatically from other parts of the Corresponding | ||||
| Source. | ||||
|  | ||||
|   The Corresponding Source for a work in source code form is that | ||||
| same work. | ||||
|  | ||||
|   2. Basic Permissions. | ||||
|  | ||||
|   All rights granted under this License are granted for the term of | ||||
| copyright on the Program, and are irrevocable provided the stated | ||||
| conditions are met.  This License explicitly affirms your unlimited | ||||
| permission to run the unmodified Program.  The output from running a | ||||
| covered work is covered by this License only if the output, given its | ||||
| content, constitutes a covered work.  This License acknowledges your | ||||
| rights of fair use or other equivalent, as provided by copyright law. | ||||
|  | ||||
|   You may make, run and propagate covered works that you do not | ||||
| convey, without conditions so long as your license otherwise remains | ||||
| in force.  You may convey covered works to others for the sole purpose | ||||
| of having them make modifications exclusively for you, or provide you | ||||
| with facilities for running those works, provided that you comply with | ||||
| the terms of this License in conveying all material for which you do | ||||
| not control copyright.  Those thus making or running the covered works | ||||
| for you must do so exclusively on your behalf, under your direction | ||||
| and control, on terms that prohibit them from making any copies of | ||||
| your copyrighted material outside their relationship with you. | ||||
|  | ||||
|   Conveying under any other circumstances is permitted solely under | ||||
| the conditions stated below.  Sublicensing is not allowed; section 10 | ||||
| makes it unnecessary. | ||||
|  | ||||
|   3. Protecting Users' Legal Rights From Anti-Circumvention Law. | ||||
|  | ||||
|   No covered work shall be deemed part of an effective technological | ||||
| measure under any applicable law fulfilling obligations under article | ||||
| 11 of the WIPO copyright treaty adopted on 20 December 1996, or | ||||
| similar laws prohibiting or restricting circumvention of such | ||||
| measures. | ||||
|  | ||||
|   When you convey a covered work, you waive any legal power to forbid | ||||
| circumvention of technological measures to the extent such circumvention | ||||
| is effected by exercising rights under this License with respect to | ||||
| the covered work, and you disclaim any intention to limit operation or | ||||
| modification of the work as a means of enforcing, against the work's | ||||
| users, your or third parties' legal rights to forbid circumvention of | ||||
| technological measures. | ||||
|  | ||||
|   4. Conveying Verbatim Copies. | ||||
|  | ||||
|   You may convey verbatim copies of the Program's source code as you | ||||
| receive it, in any medium, provided that you conspicuously and | ||||
| appropriately publish on each copy an appropriate copyright notice; | ||||
| keep intact all notices stating that this License and any | ||||
| non-permissive terms added in accord with section 7 apply to the code; | ||||
| keep intact all notices of the absence of any warranty; and give all | ||||
| recipients a copy of this License along with the Program. | ||||
|  | ||||
|   You may charge any price or no price for each copy that you convey, | ||||
| and you may offer support or warranty protection for a fee. | ||||
|  | ||||
|   5. Conveying Modified Source Versions. | ||||
|  | ||||
|   You may convey a work based on the Program, or the modifications to | ||||
| produce it from the Program, in the form of source code under the | ||||
| terms of section 4, provided that you also meet all of these conditions: | ||||
|  | ||||
|     a) The work must carry prominent notices stating that you modified | ||||
|     it, and giving a relevant date. | ||||
|  | ||||
|     b) The work must carry prominent notices stating that it is | ||||
|     released under this License and any conditions added under section | ||||
|     7.  This requirement modifies the requirement in section 4 to | ||||
|     "keep intact all notices". | ||||
|  | ||||
|     c) You must license the entire work, as a whole, under this | ||||
|     License to anyone who comes into possession of a copy.  This | ||||
|     License will therefore apply, along with any applicable section 7 | ||||
|     additional terms, to the whole of the work, and all its parts, | ||||
|     regardless of how they are packaged.  This License gives no | ||||
|     permission to license the work in any other way, but it does not | ||||
|     invalidate such permission if you have separately received it. | ||||
|  | ||||
|     d) If the work has interactive user interfaces, each must display | ||||
|     Appropriate Legal Notices; however, if the Program has interactive | ||||
|     interfaces that do not display Appropriate Legal Notices, your | ||||
|     work need not make them do so. | ||||
|  | ||||
|   A compilation of a covered work with other separate and independent | ||||
| works, which are not by their nature extensions of the covered work, | ||||
| and which are not combined with it such as to form a larger program, | ||||
| in or on a volume of a storage or distribution medium, is called an | ||||
| "aggregate" if the compilation and its resulting copyright are not | ||||
| used to limit the access or legal rights of the compilation's users | ||||
| beyond what the individual works permit.  Inclusion of a covered work | ||||
| in an aggregate does not cause this License to apply to the other | ||||
| parts of the aggregate. | ||||
|  | ||||
|   6. Conveying Non-Source Forms. | ||||
|  | ||||
|   You may convey a covered work in object code form under the terms | ||||
| of sections 4 and 5, provided that you also convey the | ||||
| machine-readable Corresponding Source under the terms of this License, | ||||
| in one of these ways: | ||||
|  | ||||
|     a) Convey the object code in, or embodied in, a physical product | ||||
|     (including a physical distribution medium), accompanied by the | ||||
|     Corresponding Source fixed on a durable physical medium | ||||
|     customarily used for software interchange. | ||||
|  | ||||
|     b) Convey the object code in, or embodied in, a physical product | ||||
|     (including a physical distribution medium), accompanied by a | ||||
|     written offer, valid for at least three years and valid for as | ||||
|     long as you offer spare parts or customer support for that product | ||||
|     model, to give anyone who possesses the object code either (1) a | ||||
|     copy of the Corresponding Source for all the software in the | ||||
|     product that is covered by this License, on a durable physical | ||||
|     medium customarily used for software interchange, for a price no | ||||
|     more than your reasonable cost of physically performing this | ||||
|     conveying of source, or (2) access to copy the | ||||
|     Corresponding Source from a network server at no charge. | ||||
|  | ||||
|     c) Convey individual copies of the object code with a copy of the | ||||
|     written offer to provide the Corresponding Source.  This | ||||
|     alternative is allowed only occasionally and noncommercially, and | ||||
|     only if you received the object code with such an offer, in accord | ||||
|     with subsection 6b. | ||||
|  | ||||
|     d) Convey the object code by offering access from a designated | ||||
|     place (gratis or for a charge), and offer equivalent access to the | ||||
|     Corresponding Source in the same way through the same place at no | ||||
|     further charge.  You need not require recipients to copy the | ||||
|     Corresponding Source along with the object code.  If the place to | ||||
|     copy the object code is a network server, the Corresponding Source | ||||
|     may be on a different server (operated by you or a third party) | ||||
|     that supports equivalent copying facilities, provided you maintain | ||||
|     clear directions next to the object code saying where to find the | ||||
|     Corresponding Source.  Regardless of what server hosts the | ||||
|     Corresponding Source, you remain obligated to ensure that it is | ||||
|     available for as long as needed to satisfy these requirements. | ||||
|  | ||||
|     e) Convey the object code using peer-to-peer transmission, provided | ||||
|     you inform other peers where the object code and Corresponding | ||||
|     Source of the work are being offered to the general public at no | ||||
|     charge under subsection 6d. | ||||
|  | ||||
|   A separable portion of the object code, whose source code is excluded | ||||
| from the Corresponding Source as a System Library, need not be | ||||
| included in conveying the object code work. | ||||
|  | ||||
|   A "User Product" is either (1) a "consumer product", which means any | ||||
| tangible personal property which is normally used for personal, family, | ||||
| or household purposes, or (2) anything designed or sold for incorporation | ||||
| into a dwelling.  In determining whether a product is a consumer product, | ||||
| doubtful cases shall be resolved in favor of coverage.  For a particular | ||||
| product received by a particular user, "normally used" refers to a | ||||
| typical or common use of that class of product, regardless of the status | ||||
| of the particular user or of the way in which the particular user | ||||
| actually uses, or expects or is expected to use, the product.  A product | ||||
| is a consumer product regardless of whether the product has substantial | ||||
| commercial, industrial or non-consumer uses, unless such uses represent | ||||
| the only significant mode of use of the product. | ||||
|  | ||||
|   "Installation Information" for a User Product means any methods, | ||||
| procedures, authorization keys, or other information required to install | ||||
| and execute modified versions of a covered work in that User Product from | ||||
| a modified version of its Corresponding Source.  The information must | ||||
| suffice to ensure that the continued functioning of the modified object | ||||
| code is in no case prevented or interfered with solely because | ||||
| modification has been made. | ||||
|  | ||||
|   If you convey an object code work under this section in, or with, or | ||||
| specifically for use in, a User Product, and the conveying occurs as | ||||
| part of a transaction in which the right of possession and use of the | ||||
| User Product is transferred to the recipient in perpetuity or for a | ||||
| fixed term (regardless of how the transaction is characterized), the | ||||
| Corresponding Source conveyed under this section must be accompanied | ||||
| by the Installation Information.  But this requirement does not apply | ||||
| if neither you nor any third party retains the ability to install | ||||
| modified object code on the User Product (for example, the work has | ||||
| been installed in ROM). | ||||
|  | ||||
|   The requirement to provide Installation Information does not include a | ||||
| requirement to continue to provide support service, warranty, or updates | ||||
| for a work that has been modified or installed by the recipient, or for | ||||
| the User Product in which it has been modified or installed.  Access to a | ||||
| network may be denied when the modification itself materially and | ||||
| adversely affects the operation of the network or violates the rules and | ||||
| protocols for communication across the network. | ||||
|  | ||||
|   Corresponding Source conveyed, and Installation Information provided, | ||||
| in accord with this section must be in a format that is publicly | ||||
| documented (and with an implementation available to the public in | ||||
| source code form), and must require no special password or key for | ||||
| unpacking, reading or copying. | ||||
|  | ||||
|   7. Additional Terms. | ||||
|  | ||||
|   "Additional permissions" are terms that supplement the terms of this | ||||
| License by making exceptions from one or more of its conditions. | ||||
| Additional permissions that are applicable to the entire Program shall | ||||
| be treated as though they were included in this License, to the extent | ||||
| that they are valid under applicable law.  If additional permissions | ||||
| apply only to part of the Program, that part may be used separately | ||||
| under those permissions, but the entire Program remains governed by | ||||
| this License without regard to the additional permissions. | ||||
|  | ||||
|   When you convey a copy of a covered work, you may at your option | ||||
| remove any additional permissions from that copy, or from any part of | ||||
| it.  (Additional permissions may be written to require their own | ||||
| removal in certain cases when you modify the work.)  You may place | ||||
| additional permissions on material, added by you to a covered work, | ||||
| for which you have or can give appropriate copyright permission. | ||||
|  | ||||
|   Notwithstanding any other provision of this License, for material you | ||||
| add to a covered work, you may (if authorized by the copyright holders of | ||||
| that material) supplement the terms of this License with terms: | ||||
|  | ||||
|     a) Disclaiming warranty or limiting liability differently from the | ||||
|     terms of sections 15 and 16 of this License; or | ||||
|  | ||||
|     b) Requiring preservation of specified reasonable legal notices or | ||||
|     author attributions in that material or in the Appropriate Legal | ||||
|     Notices displayed by works containing it; or | ||||
|  | ||||
|     c) Prohibiting misrepresentation of the origin of that material, or | ||||
|     requiring that modified versions of such material be marked in | ||||
|     reasonable ways as different from the original version; or | ||||
|  | ||||
|     d) Limiting the use for publicity purposes of names of licensors or | ||||
|     authors of the material; or | ||||
|  | ||||
|     e) Declining to grant rights under trademark law for use of some | ||||
|     trade names, trademarks, or service marks; or | ||||
|  | ||||
|     f) Requiring indemnification of licensors and authors of that | ||||
|     material by anyone who conveys the material (or modified versions of | ||||
|     it) with contractual assumptions of liability to the recipient, for | ||||
|     any liability that these contractual assumptions directly impose on | ||||
|     those licensors and authors. | ||||
|  | ||||
|   All other non-permissive additional terms are considered "further | ||||
| restrictions" within the meaning of section 10.  If the Program as you | ||||
| received it, or any part of it, contains a notice stating that it is | ||||
| governed by this License along with a term that is a further | ||||
| restriction, you may remove that term.  If a license document contains | ||||
| a further restriction but permits relicensing or conveying under this | ||||
| License, you may add to a covered work material governed by the terms | ||||
| of that license document, provided that the further restriction does | ||||
| not survive such relicensing or conveying. | ||||
|  | ||||
|   If you add terms to a covered work in accord with this section, you | ||||
| must place, in the relevant source files, a statement of the | ||||
| additional terms that apply to those files, or a notice indicating | ||||
| where to find the applicable terms. | ||||
|  | ||||
|   Additional terms, permissive or non-permissive, may be stated in the | ||||
| form of a separately written license, or stated as exceptions; | ||||
| the above requirements apply either way. | ||||
|  | ||||
|   8. Termination. | ||||
|  | ||||
|   You may not propagate or modify a covered work except as expressly | ||||
| provided under this License.  Any attempt otherwise to propagate or | ||||
| modify it is void, and will automatically terminate your rights under | ||||
| this License (including any patent licenses granted under the third | ||||
| paragraph of section 11). | ||||
|  | ||||
|   However, if you cease all violation of this License, then your | ||||
| license from a particular copyright holder is reinstated (a) | ||||
| provisionally, unless and until the copyright holder explicitly and | ||||
| finally terminates your license, and (b) permanently, if the copyright | ||||
| holder fails to notify you of the violation by some reasonable means | ||||
| prior to 60 days after the cessation. | ||||
|  | ||||
|   Moreover, your license from a particular copyright holder is | ||||
| reinstated permanently if the copyright holder notifies you of the | ||||
| violation by some reasonable means, this is the first time you have | ||||
| received notice of violation of this License (for any work) from that | ||||
| copyright holder, and you cure the violation prior to 30 days after | ||||
| your receipt of the notice. | ||||
|  | ||||
|   Termination of your rights under this section does not terminate the | ||||
| licenses of parties who have received copies or rights from you under | ||||
| this License.  If your rights have been terminated and not permanently | ||||
| reinstated, you do not qualify to receive new licenses for the same | ||||
| material under section 10. | ||||
|  | ||||
|   9. Acceptance Not Required for Having Copies. | ||||
|  | ||||
|   You are not required to accept this License in order to receive or | ||||
| run a copy of the Program.  Ancillary propagation of a covered work | ||||
| occurring solely as a consequence of using peer-to-peer transmission | ||||
| to receive a copy likewise does not require acceptance.  However, | ||||
| nothing other than this License grants you permission to propagate or | ||||
| modify any covered work.  These actions infringe copyright if you do | ||||
| not accept this License.  Therefore, by modifying or propagating a | ||||
| covered work, you indicate your acceptance of this License to do so. | ||||
|  | ||||
|   10. Automatic Licensing of Downstream Recipients. | ||||
|  | ||||
|   Each time you convey a covered work, the recipient automatically | ||||
| receives a license from the original licensors, to run, modify and | ||||
| propagate that work, subject to this License.  You are not responsible | ||||
| for enforcing compliance by third parties with this License. | ||||
|  | ||||
|   An "entity transaction" is a transaction transferring control of an | ||||
| organization, or substantially all assets of one, or subdividing an | ||||
| organization, or merging organizations.  If propagation of a covered | ||||
| work results from an entity transaction, each party to that | ||||
| transaction who receives a copy of the work also receives whatever | ||||
| licenses to the work the party's predecessor in interest had or could | ||||
| give under the previous paragraph, plus a right to possession of the | ||||
| Corresponding Source of the work from the predecessor in interest, if | ||||
| the predecessor has it or can get it with reasonable efforts. | ||||
|  | ||||
|   You may not impose any further restrictions on the exercise of the | ||||
| rights granted or affirmed under this License.  For example, you may | ||||
| not impose a license fee, royalty, or other charge for exercise of | ||||
| rights granted under this License, and you may not initiate litigation | ||||
| (including a cross-claim or counterclaim in a lawsuit) alleging that | ||||
| any patent claim is infringed by making, using, selling, offering for | ||||
| sale, or importing the Program or any portion of it. | ||||
|  | ||||
|   11. Patents. | ||||
|  | ||||
|   A "contributor" is a copyright holder who authorizes use under this | ||||
| License of the Program or a work on which the Program is based.  The | ||||
| work thus licensed is called the contributor's "contributor version". | ||||
|  | ||||
|   A contributor's "essential patent claims" are all patent claims | ||||
| owned or controlled by the contributor, whether already acquired or | ||||
| hereafter acquired, that would be infringed by some manner, permitted | ||||
| by this License, of making, using, or selling its contributor version, | ||||
| but do not include claims that would be infringed only as a | ||||
| consequence of further modification of the contributor version.  For | ||||
| purposes of this definition, "control" includes the right to grant | ||||
| patent sublicenses in a manner consistent with the requirements of | ||||
| this License. | ||||
|  | ||||
|   Each contributor grants you a non-exclusive, worldwide, royalty-free | ||||
| patent license under the contributor's essential patent claims, to | ||||
| make, use, sell, offer for sale, import and otherwise run, modify and | ||||
| propagate the contents of its contributor version. | ||||
|  | ||||
|   In the following three paragraphs, a "patent license" is any express | ||||
| agreement or commitment, however denominated, not to enforce a patent | ||||
| (such as an express permission to practice a patent or covenant not to | ||||
| sue for patent infringement).  To "grant" such a patent license to a | ||||
| party means to make such an agreement or commitment not to enforce a | ||||
| patent against the party. | ||||
|  | ||||
|   If you convey a covered work, knowingly relying on a patent license, | ||||
| and the Corresponding Source of the work is not available for anyone | ||||
| to copy, free of charge and under the terms of this License, through a | ||||
| publicly available network server or other readily accessible means, | ||||
| then you must either (1) cause the Corresponding Source to be so | ||||
| available, or (2) arrange to deprive yourself of the benefit of the | ||||
| patent license for this particular work, or (3) arrange, in a manner | ||||
| consistent with the requirements of this License, to extend the patent | ||||
| license to downstream recipients.  "Knowingly relying" means you have | ||||
| actual knowledge that, but for the patent license, your conveying the | ||||
| covered work in a country, or your recipient's use of the covered work | ||||
| in a country, would infringe one or more identifiable patents in that | ||||
| country that you have reason to believe are valid. | ||||
|  | ||||
|   If, pursuant to or in connection with a single transaction or | ||||
| arrangement, you convey, or propagate by procuring conveyance of, a | ||||
| covered work, and grant a patent license to some of the parties | ||||
| receiving the covered work authorizing them to use, propagate, modify | ||||
| or convey a specific copy of the covered work, then the patent license | ||||
| you grant is automatically extended to all recipients of the covered | ||||
| work and works based on it. | ||||
|  | ||||
|   A patent license is "discriminatory" if it does not include within | ||||
| the scope of its coverage, prohibits the exercise of, or is | ||||
| conditioned on the non-exercise of one or more of the rights that are | ||||
| specifically granted under this License.  You may not convey a covered | ||||
| work if you are a party to an arrangement with a third party that is | ||||
| in the business of distributing software, under which you make payment | ||||
| to the third party based on the extent of your activity of conveying | ||||
| the work, and under which the third party grants, to any of the | ||||
| parties who would receive the covered work from you, a discriminatory | ||||
| patent license (a) in connection with copies of the covered work | ||||
| conveyed by you (or copies made from those copies), or (b) primarily | ||||
| for and in connection with specific products or compilations that | ||||
| contain the covered work, unless you entered into that arrangement, | ||||
| or that patent license was granted, prior to 28 March 2007. | ||||
|  | ||||
|   Nothing in this License shall be construed as excluding or limiting | ||||
| any implied license or other defenses to infringement that may | ||||
| otherwise be available to you under applicable patent law. | ||||
|  | ||||
|   12. No Surrender of Others' Freedom. | ||||
|  | ||||
|   If conditions are imposed on you (whether by court order, agreement or | ||||
| otherwise) that contradict the conditions of this License, they do not | ||||
| excuse you from the conditions of this License.  If you cannot convey a | ||||
| covered work so as to satisfy simultaneously your obligations under this | ||||
| License and any other pertinent obligations, then as a consequence you may | ||||
| not convey it at all.  For example, if you agree to terms that obligate you | ||||
| to collect a royalty for further conveying from those to whom you convey | ||||
| the Program, the only way you could satisfy both those terms and this | ||||
| License would be to refrain entirely from conveying the Program. | ||||
|  | ||||
|   13. Use with the GNU Affero General Public License. | ||||
|  | ||||
|   Notwithstanding any other provision of this License, you have | ||||
| permission to link or combine any covered work with a work licensed | ||||
| under version 3 of the GNU Affero General Public License into a single | ||||
| combined work, and to convey the resulting work.  The terms of this | ||||
| License will continue to apply to the part which is the covered work, | ||||
| but the special requirements of the GNU Affero General Public License, | ||||
| section 13, concerning interaction through a network will apply to the | ||||
| combination as such. | ||||
|  | ||||
|   14. Revised Versions of this License. | ||||
|  | ||||
|   The Free Software Foundation may publish revised and/or new versions of | ||||
| the GNU General Public License from time to time.  Such new versions will | ||||
| be similar in spirit to the present version, but may differ in detail to | ||||
| address new problems or concerns. | ||||
|  | ||||
|   Each version is given a distinguishing version number.  If the | ||||
| Program specifies that a certain numbered version of the GNU General | ||||
| Public License "or any later version" applies to it, you have the | ||||
| option of following the terms and conditions either of that numbered | ||||
| version or of any later version published by the Free Software | ||||
| Foundation.  If the Program does not specify a version number of the | ||||
| GNU General Public License, you may choose any version ever published | ||||
| by the Free Software Foundation. | ||||
|  | ||||
|   If the Program specifies that a proxy can decide which future | ||||
| versions of the GNU General Public License can be used, that proxy's | ||||
| public statement of acceptance of a version permanently authorizes you | ||||
| to choose that version for the Program. | ||||
|  | ||||
|   Later license versions may give you additional or different | ||||
| permissions.  However, no additional obligations are imposed on any | ||||
| author or copyright holder as a result of your choosing to follow a | ||||
| later version. | ||||
|  | ||||
|   15. Disclaimer of Warranty. | ||||
|  | ||||
|   THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY | ||||
| APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT | ||||
| HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY | ||||
| OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, | ||||
| THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | ||||
| PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM | ||||
| IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF | ||||
| ALL NECESSARY SERVICING, REPAIR OR CORRECTION. | ||||
|  | ||||
|   16. Limitation of Liability. | ||||
|  | ||||
|   IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING | ||||
| WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS | ||||
| THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY | ||||
| GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE | ||||
| USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF | ||||
| DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD | ||||
| PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), | ||||
| EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF | ||||
| SUCH DAMAGES. | ||||
|  | ||||
|   17. Interpretation of Sections 15 and 16. | ||||
|  | ||||
|   If the disclaimer of warranty and limitation of liability provided | ||||
| above cannot be given local legal effect according to their terms, | ||||
| reviewing courts shall apply local law that most closely approximates | ||||
| an absolute waiver of all civil liability in connection with the | ||||
| Program, unless a warranty or assumption of liability accompanies a | ||||
| copy of the Program in return for a fee. | ||||
|  | ||||
|                      END OF TERMS AND CONDITIONS | ||||
|  | ||||
|             How to Apply These Terms to Your New Programs | ||||
|  | ||||
|   If you develop a new program, and you want it to be of the greatest | ||||
| possible use to the public, the best way to achieve this is to make it | ||||
| free software which everyone can redistribute and change under these terms. | ||||
|  | ||||
|   To do so, attach the following notices to the program.  It is safest | ||||
| to attach them to the start of each source file to most effectively | ||||
| state the exclusion of warranty; and each file should have at least | ||||
| the "copyright" line and a pointer to where the full notice is found. | ||||
|  | ||||
|     <one line to give the program's name and a brief idea of what it does.> | ||||
|     Copyright (C) <year>  <name of author> | ||||
|  | ||||
|     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 3 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, see <https://www.gnu.org/licenses/>. | ||||
|  | ||||
| Also add information on how to contact you by electronic and paper mail. | ||||
|  | ||||
|   If the program does terminal interaction, make it output a short | ||||
| notice like this when it starts in an interactive mode: | ||||
|  | ||||
|     <program>  Copyright (C) <year>  <name of author> | ||||
|     This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. | ||||
|     This is free software, and you are welcome to redistribute it | ||||
|     under certain conditions; type `show c' for details. | ||||
|  | ||||
| The hypothetical commands `show w' and `show c' should show the appropriate | ||||
| parts of the General Public License.  Of course, your program's commands | ||||
| might be different; for a GUI interface, you would use an "about box". | ||||
|  | ||||
|   You should also get your employer (if you work as a programmer) or school, | ||||
| if any, to sign a "copyright disclaimer" for the program, if necessary. | ||||
| For more information on this, and how to apply and follow the GNU GPL, see | ||||
| <https://www.gnu.org/licenses/>. | ||||
|  | ||||
|   The GNU General Public License does not permit incorporating your program | ||||
| into proprietary programs.  If your program is a subroutine library, you | ||||
| may consider it more useful to permit linking proprietary applications with | ||||
| the library.  If this is what you want to do, use the GNU Lesser General | ||||
| Public License instead of this License.  But first, please read | ||||
| <https://www.gnu.org/licenses/why-not-lgpl.html>. | ||||
| @@ -0,0 +1 @@ | ||||
| See bcm28335.h for complete revision history | ||||
							
								
								
									
										365
									
								
								inkycal/display/drivers/parallel_drivers/bcm2835-1.68/INSTALL
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,365 @@ | ||||
| Installation Instructions | ||||
| ************************* | ||||
|  | ||||
| Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, | ||||
| 2006, 2007, 2008, 2009 Free Software Foundation, Inc. | ||||
|  | ||||
|    Copying and distribution of this file, with or without modification, | ||||
| are permitted in any medium without royalty provided the copyright | ||||
| notice and this notice are preserved.  This file is offered as-is, | ||||
| without warranty of any kind. | ||||
|  | ||||
| Basic Installation | ||||
| ================== | ||||
|  | ||||
|    Briefly, the shell commands `./configure; make; make install' should | ||||
| configure, build, and install this package.  The following | ||||
| more-detailed instructions are generic; see the `README' file for | ||||
| instructions specific to this package.  Some packages provide this | ||||
| `INSTALL' file but do not implement all of the features documented | ||||
| below.  The lack of an optional feature in a given package is not | ||||
| necessarily a bug.  More recommendations for GNU packages can be found | ||||
| in *note Makefile Conventions: (standards)Makefile Conventions. | ||||
|  | ||||
|    The `configure' shell script attempts to guess correct values for | ||||
| various system-dependent variables used during compilation.  It uses | ||||
| those values to create a `Makefile' in each directory of the package. | ||||
| It may also create one or more `.h' files containing system-dependent | ||||
| definitions.  Finally, it creates a shell script `config.status' that | ||||
| you can run in the future to recreate the current configuration, and a | ||||
| file `config.log' containing compiler output (useful mainly for | ||||
| debugging `configure'). | ||||
|  | ||||
|    It can also use an optional file (typically called `config.cache' | ||||
| and enabled with `--cache-file=config.cache' or simply `-C') that saves | ||||
| the results of its tests to speed up reconfiguring.  Caching is | ||||
| disabled by default to prevent problems with accidental use of stale | ||||
| cache files. | ||||
|  | ||||
|    If you need to do unusual things to compile the package, please try | ||||
| to figure out how `configure' could check whether to do them, and mail | ||||
| diffs or instructions to the address given in the `README' so they can | ||||
| be considered for the next release.  If you are using the cache, and at | ||||
| some point `config.cache' contains results you don't want to keep, you | ||||
| may remove or edit it. | ||||
|  | ||||
|    The file `configure.ac' (or `configure.in') is used to create | ||||
| `configure' by a program called `autoconf'.  You need `configure.ac' if | ||||
| you want to change it or regenerate `configure' using a newer version | ||||
| of `autoconf'. | ||||
|  | ||||
|    The simplest way to compile this package is: | ||||
|  | ||||
|   1. `cd' to the directory containing the package's source code and type | ||||
|      `./configure' to configure the package for your system. | ||||
|  | ||||
|      Running `configure' might take a while.  While running, it prints | ||||
|      some messages telling which features it is checking for. | ||||
|  | ||||
|   2. Type `make' to compile the package. | ||||
|  | ||||
|   3. Optionally, type `make check' to run any self-tests that come with | ||||
|      the package, generally using the just-built uninstalled binaries. | ||||
|  | ||||
|   4. Type `make install' to install the programs and any data files and | ||||
|      documentation.  When installing into a prefix owned by root, it is | ||||
|      recommended that the package be configured and built as a regular | ||||
|      user, and only the `make install' phase executed with root | ||||
|      privileges. | ||||
|  | ||||
|   5. Optionally, type `make installcheck' to repeat any self-tests, but | ||||
|      this time using the binaries in their final installed location. | ||||
|      This target does not install anything.  Running this target as a | ||||
|      regular user, particularly if the prior `make install' required | ||||
|      root privileges, verifies that the installation completed | ||||
|      correctly. | ||||
|  | ||||
|   6. You can remove the program binaries and object files from the | ||||
|      source code directory by typing `make clean'.  To also remove the | ||||
|      files that `configure' created (so you can compile the package for | ||||
|      a different kind of computer), type `make distclean'.  There is | ||||
|      also a `make maintainer-clean' target, but that is intended mainly | ||||
|      for the package's developers.  If you use it, you may have to get | ||||
|      all sorts of other programs in order to regenerate files that came | ||||
|      with the distribution. | ||||
|  | ||||
|   7. Often, you can also type `make uninstall' to remove the installed | ||||
|      files again.  In practice, not all packages have tested that | ||||
|      uninstallation works correctly, even though it is required by the | ||||
|      GNU Coding Standards. | ||||
|  | ||||
|   8. Some packages, particularly those that use Automake, provide `make | ||||
|      distcheck', which can by used by developers to test that all other | ||||
|      targets like `make install' and `make uninstall' work correctly. | ||||
|      This target is generally not run by end users. | ||||
|  | ||||
| Compilers and Options | ||||
| ===================== | ||||
|  | ||||
|    Some systems require unusual options for compilation or linking that | ||||
| the `configure' script does not know about.  Run `./configure --help' | ||||
| for details on some of the pertinent environment variables. | ||||
|  | ||||
|    You can give `configure' initial values for configuration parameters | ||||
| by setting variables in the command line or in the environment.  Here | ||||
| is an example: | ||||
|  | ||||
|      ./configure CC=c99 CFLAGS=-g LIBS=-lposix | ||||
|  | ||||
|    *Note Defining Variables::, for more details. | ||||
|  | ||||
| Compiling For Multiple Architectures | ||||
| ==================================== | ||||
|  | ||||
|    You can compile the package for more than one kind of computer at the | ||||
| same time, by placing the object files for each architecture in their | ||||
| own directory.  To do this, you can use GNU `make'.  `cd' to the | ||||
| directory where you want the object files and executables to go and run | ||||
| the `configure' script.  `configure' automatically checks for the | ||||
| source code in the directory that `configure' is in and in `..'.  This | ||||
| is known as a "VPATH" build. | ||||
|  | ||||
|    With a non-GNU `make', it is safer to compile the package for one | ||||
| architecture at a time in the source code directory.  After you have | ||||
| installed the package for one architecture, use `make distclean' before | ||||
| reconfiguring for another architecture. | ||||
|  | ||||
|    On MacOS X 10.5 and later systems, you can create libraries and | ||||
| executables that work on multiple system types--known as "fat" or | ||||
| "universal" binaries--by specifying multiple `-arch' options to the | ||||
| compiler but only a single `-arch' option to the preprocessor.  Like | ||||
| this: | ||||
|  | ||||
|      ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ | ||||
|                  CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ | ||||
|                  CPP="gcc -E" CXXCPP="g++ -E" | ||||
|  | ||||
|    This is not guaranteed to produce working output in all cases, you | ||||
| may have to build one architecture at a time and combine the results | ||||
| using the `lipo' tool if you have problems. | ||||
|  | ||||
| Installation Names | ||||
| ================== | ||||
|  | ||||
|    By default, `make install' installs the package's commands under | ||||
| `/usr/local/bin', include files under `/usr/local/include', etc.  You | ||||
| can specify an installation prefix other than `/usr/local' by giving | ||||
| `configure' the option `--prefix=PREFIX', where PREFIX must be an | ||||
| absolute file name. | ||||
|  | ||||
|    You can specify separate installation prefixes for | ||||
| architecture-specific files and architecture-independent files.  If you | ||||
| pass the option `--exec-prefix=PREFIX' to `configure', the package uses | ||||
| PREFIX as the prefix for installing programs and libraries. | ||||
| Documentation and other data files still use the regular prefix. | ||||
|  | ||||
|    In addition, if you use an unusual directory layout you can give | ||||
| options like `--bindir=DIR' to specify different values for particular | ||||
| kinds of files.  Run `configure --help' for a list of the directories | ||||
| you can set and what kinds of files go in them.  In general, the | ||||
| default for these options is expressed in terms of `${prefix}', so that | ||||
| specifying just `--prefix' will affect all of the other directory | ||||
| specifications that were not explicitly provided. | ||||
|  | ||||
|    The most portable way to affect installation locations is to pass the | ||||
| correct locations to `configure'; however, many packages provide one or | ||||
| both of the following shortcuts of passing variable assignments to the | ||||
| `make install' command line to change installation locations without | ||||
| having to reconfigure or recompile. | ||||
|  | ||||
|    The first method involves providing an override variable for each | ||||
| affected directory.  For example, `make install | ||||
| prefix=/alternate/directory' will choose an alternate location for all | ||||
| directory configuration variables that were expressed in terms of | ||||
| `${prefix}'.  Any directories that were specified during `configure', | ||||
| but not in terms of `${prefix}', must each be overridden at install | ||||
| time for the entire installation to be relocated.  The approach of | ||||
| makefile variable overrides for each directory variable is required by | ||||
| the GNU Coding Standards, and ideally causes no recompilation. | ||||
| However, some platforms have known limitations with the semantics of | ||||
| shared libraries that end up requiring recompilation when using this | ||||
| method, particularly noticeable in packages that use GNU Libtool. | ||||
|  | ||||
|    The second method involves providing the `DESTDIR' variable.  For | ||||
| example, `make install DESTDIR=/alternate/directory' will prepend | ||||
| `/alternate/directory' before all installation names.  The approach of | ||||
| `DESTDIR' overrides is not required by the GNU Coding Standards, and | ||||
| does not work on platforms that have drive letters.  On the other hand, | ||||
| it does better at avoiding recompilation issues, and works well even | ||||
| when some directory options were not specified in terms of `${prefix}' | ||||
| at `configure' time. | ||||
|  | ||||
| Optional Features | ||||
| ================= | ||||
|  | ||||
|    If the package supports it, you can cause programs to be installed | ||||
| with an extra prefix or suffix on their names by giving `configure' the | ||||
| option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. | ||||
|  | ||||
|    Some packages pay attention to `--enable-FEATURE' options to | ||||
| `configure', where FEATURE indicates an optional part of the package. | ||||
| They may also pay attention to `--with-PACKAGE' options, where PACKAGE | ||||
| is something like `gnu-as' or `x' (for the X Window System).  The | ||||
| `README' should mention any `--enable-' and `--with-' options that the | ||||
| package recognizes. | ||||
|  | ||||
|    For packages that use the X Window System, `configure' can usually | ||||
| find the X include and library files automatically, but if it doesn't, | ||||
| you can use the `configure' options `--x-includes=DIR' and | ||||
| `--x-libraries=DIR' to specify their locations. | ||||
|  | ||||
|    Some packages offer the ability to configure how verbose the | ||||
| execution of `make' will be.  For these packages, running `./configure | ||||
| --enable-silent-rules' sets the default to minimal output, which can be | ||||
| overridden with `make V=1'; while running `./configure | ||||
| --disable-silent-rules' sets the default to verbose, which can be | ||||
| overridden with `make V=0'. | ||||
|  | ||||
| Particular systems | ||||
| ================== | ||||
|  | ||||
|    On HP-UX, the default C compiler is not ANSI C compatible.  If GNU | ||||
| CC is not installed, it is recommended to use the following options in | ||||
| order to use an ANSI C compiler: | ||||
|  | ||||
|      ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" | ||||
|  | ||||
| and if that doesn't work, install pre-built binaries of GCC for HP-UX. | ||||
|  | ||||
|    On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot | ||||
| parse its `<wchar.h>' header file.  The option `-nodtk' can be used as | ||||
| a workaround.  If GNU CC is not installed, it is therefore recommended | ||||
| to try | ||||
|  | ||||
|      ./configure CC="cc" | ||||
|  | ||||
| and if that doesn't work, try | ||||
|  | ||||
|      ./configure CC="cc -nodtk" | ||||
|  | ||||
|    On Solaris, don't put `/usr/ucb' early in your `PATH'.  This | ||||
| directory contains several dysfunctional programs; working variants of | ||||
| these programs are available in `/usr/bin'.  So, if you need `/usr/ucb' | ||||
| in your `PATH', put it _after_ `/usr/bin'. | ||||
|  | ||||
|    On Haiku, software installed for all users goes in `/boot/common', | ||||
| not `/usr/local'.  It is recommended to use the following options: | ||||
|  | ||||
|      ./configure --prefix=/boot/common | ||||
|  | ||||
| Specifying the System Type | ||||
| ========================== | ||||
|  | ||||
|    There may be some features `configure' cannot figure out | ||||
| automatically, but needs to determine by the type of machine the package | ||||
| will run on.  Usually, assuming the package is built to be run on the | ||||
| _same_ architectures, `configure' can figure that out, but if it prints | ||||
| a message saying it cannot guess the machine type, give it the | ||||
| `--build=TYPE' option.  TYPE can either be a short name for the system | ||||
| type, such as `sun4', or a canonical name which has the form: | ||||
|  | ||||
|      CPU-COMPANY-SYSTEM | ||||
|  | ||||
| where SYSTEM can have one of these forms: | ||||
|  | ||||
|      OS | ||||
|      KERNEL-OS | ||||
|  | ||||
|    See the file `config.sub' for the possible values of each field.  If | ||||
| `config.sub' isn't included in this package, then this package doesn't | ||||
| need to know the machine type. | ||||
|  | ||||
|    If you are _building_ compiler tools for cross-compiling, you should | ||||
| use the option `--target=TYPE' to select the type of system they will | ||||
| produce code for. | ||||
|  | ||||
|    If you want to _use_ a cross compiler, that generates code for a | ||||
| platform different from the build platform, you should specify the | ||||
| "host" platform (i.e., that on which the generated programs will | ||||
| eventually be run) with `--host=TYPE'. | ||||
|  | ||||
| Sharing Defaults | ||||
| ================ | ||||
|  | ||||
|    If you want to set default values for `configure' scripts to share, | ||||
| you can create a site shell script called `config.site' that gives | ||||
| default values for variables like `CC', `cache_file', and `prefix'. | ||||
| `configure' looks for `PREFIX/share/config.site' if it exists, then | ||||
| `PREFIX/etc/config.site' if it exists.  Or, you can set the | ||||
| `CONFIG_SITE' environment variable to the location of the site script. | ||||
| A warning: not all `configure' scripts look for a site script. | ||||
|  | ||||
| Defining Variables | ||||
| ================== | ||||
|  | ||||
|    Variables not defined in a site shell script can be set in the | ||||
| environment passed to `configure'.  However, some packages may run | ||||
| configure again during the build, and the customized values of these | ||||
| variables may be lost.  In order to avoid this problem, you should set | ||||
| them in the `configure' command line, using `VAR=value'.  For example: | ||||
|  | ||||
|      ./configure CC=/usr/local2/bin/gcc | ||||
|  | ||||
| causes the specified `gcc' to be used as the C compiler (unless it is | ||||
| overridden in the site shell script). | ||||
|  | ||||
| Unfortunately, this technique does not work for `CONFIG_SHELL' due to | ||||
| an Autoconf bug.  Until the bug is fixed you can use this workaround: | ||||
|  | ||||
|      CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash | ||||
|  | ||||
| `configure' Invocation | ||||
| ====================== | ||||
|  | ||||
|    `configure' recognizes the following options to control how it | ||||
| operates. | ||||
|  | ||||
| `--help' | ||||
| `-h' | ||||
|      Print a summary of all of the options to `configure', and exit. | ||||
|  | ||||
| `--help=short' | ||||
| `--help=recursive' | ||||
|      Print a summary of the options unique to this package's | ||||
|      `configure', and exit.  The `short' variant lists options used | ||||
|      only in the top level, while the `recursive' variant lists options | ||||
|      also present in any nested packages. | ||||
|  | ||||
| `--version' | ||||
| `-V' | ||||
|      Print the version of Autoconf used to generate the `configure' | ||||
|      script, and exit. | ||||
|  | ||||
| `--cache-file=FILE' | ||||
|      Enable the cache: use and save the results of the tests in FILE, | ||||
|      traditionally `config.cache'.  FILE defaults to `/dev/null' to | ||||
|      disable caching. | ||||
|  | ||||
| `--config-cache' | ||||
| `-C' | ||||
|      Alias for `--cache-file=config.cache'. | ||||
|  | ||||
| `--quiet' | ||||
| `--silent' | ||||
| `-q' | ||||
|      Do not print messages saying which checks are being made.  To | ||||
|      suppress all normal output, redirect it to `/dev/null' (any error | ||||
|      messages will still be shown). | ||||
|  | ||||
| `--srcdir=DIR' | ||||
|      Look for the package's source code in directory DIR.  Usually | ||||
|      `configure' can determine that directory automatically. | ||||
|  | ||||
| `--prefix=DIR' | ||||
|      Use DIR as the installation prefix.  *note Installation Names:: | ||||
|      for more details, including other options available for fine-tuning | ||||
|      the installation locations. | ||||
|  | ||||
| `--no-create' | ||||
| `-n' | ||||
|      Run the configure checks, but stop before creating any output | ||||
|      files. | ||||
|  | ||||
| `configure' also accepts some other, not widely useful, options.  Run | ||||
| `configure --help' for more details. | ||||
|  | ||||
							
								
								
									
										786
									
								
								inkycal/display/drivers/parallel_drivers/bcm2835-1.68/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,786 @@ | ||||
| # Makefile.in generated by automake 1.16.1 from Makefile.am. | ||||
| # Makefile.  Generated from Makefile.in by configure. | ||||
|  | ||||
| # Copyright (C) 1994-2018 Free Software Foundation, Inc. | ||||
|  | ||||
| # This Makefile.in is free software; the Free Software Foundation | ||||
| # gives unlimited permission to copy and/or distribute it, | ||||
| # with or without modifications, as long as this notice is preserved. | ||||
|  | ||||
| # This program is distributed in the hope that it will be useful, | ||||
| # but WITHOUT ANY WARRANTY, to the extent permitted by law; without | ||||
| # even the implied warranty of MERCHANTABILITY or FITNESS FOR A | ||||
| # PARTICULAR PURPOSE. | ||||
|  | ||||
|  | ||||
|  | ||||
| am__is_gnu_make = { \ | ||||
|   if test -z '$(MAKELEVEL)'; then \ | ||||
|     false; \ | ||||
|   elif test -n '$(MAKE_HOST)'; then \ | ||||
|     true; \ | ||||
|   elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ | ||||
|     true; \ | ||||
|   else \ | ||||
|     false; \ | ||||
|   fi; \ | ||||
| } | ||||
| am__make_running_with_option = \ | ||||
|   case $${target_option-} in \ | ||||
|       ?) ;; \ | ||||
|       *) echo "am__make_running_with_option: internal error: invalid" \ | ||||
|               "target option '$${target_option-}' specified" >&2; \ | ||||
|          exit 1;; \ | ||||
|   esac; \ | ||||
|   has_opt=no; \ | ||||
|   sane_makeflags=$$MAKEFLAGS; \ | ||||
|   if $(am__is_gnu_make); then \ | ||||
|     sane_makeflags=$$MFLAGS; \ | ||||
|   else \ | ||||
|     case $$MAKEFLAGS in \ | ||||
|       *\\[\ \	]*) \ | ||||
|         bs=\\; \ | ||||
|         sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | ||||
|           | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \ | ||||
|     esac; \ | ||||
|   fi; \ | ||||
|   skip_next=no; \ | ||||
|   strip_trailopt () \ | ||||
|   { \ | ||||
|     flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ | ||||
|   }; \ | ||||
|   for flg in $$sane_makeflags; do \ | ||||
|     test $$skip_next = yes && { skip_next=no; continue; }; \ | ||||
|     case $$flg in \ | ||||
|       *=*|--*) continue;; \ | ||||
|         -*I) strip_trailopt 'I'; skip_next=yes;; \ | ||||
|       -*I?*) strip_trailopt 'I';; \ | ||||
|         -*O) strip_trailopt 'O'; skip_next=yes;; \ | ||||
|       -*O?*) strip_trailopt 'O';; \ | ||||
|         -*l) strip_trailopt 'l'; skip_next=yes;; \ | ||||
|       -*l?*) strip_trailopt 'l';; \ | ||||
|       -[dEDm]) skip_next=yes;; \ | ||||
|       -[JT]) skip_next=yes;; \ | ||||
|     esac; \ | ||||
|     case $$flg in \ | ||||
|       *$$target_option*) has_opt=yes; break;; \ | ||||
|     esac; \ | ||||
|   done; \ | ||||
|   test $$has_opt = yes | ||||
| am__make_dryrun = (target_option=n; $(am__make_running_with_option)) | ||||
| am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) | ||||
| pkgdatadir = $(datadir)/bcm2835 | ||||
| pkgincludedir = $(includedir)/bcm2835 | ||||
| pkglibdir = $(libdir)/bcm2835 | ||||
| pkglibexecdir = $(libexecdir)/bcm2835 | ||||
| am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd | ||||
| install_sh_DATA = $(install_sh) -c -m 644 | ||||
| install_sh_PROGRAM = $(install_sh) -c | ||||
| install_sh_SCRIPT = $(install_sh) -c | ||||
| INSTALL_HEADER = $(INSTALL_DATA) | ||||
| transform = $(program_transform_name) | ||||
| NORMAL_INSTALL = : | ||||
| PRE_INSTALL = : | ||||
| POST_INSTALL = : | ||||
| NORMAL_UNINSTALL = : | ||||
| PRE_UNINSTALL = : | ||||
| POST_UNINSTALL = : | ||||
| subdir = . | ||||
| ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | ||||
| am__aclocal_m4_deps = $(top_srcdir)/configure.ac | ||||
| am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ | ||||
| 	$(ACLOCAL_M4) | ||||
| DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ | ||||
| 	$(am__configure_deps) $(am__DIST_COMMON) | ||||
| am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ | ||||
|  configure.lineno config.status.lineno | ||||
| mkinstalldirs = $(install_sh) -d | ||||
| CONFIG_HEADER = config.h | ||||
| CONFIG_CLEAN_FILES = | ||||
| CONFIG_CLEAN_VPATH_FILES = | ||||
| AM_V_P = $(am__v_P_$(V)) | ||||
| am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY)) | ||||
| am__v_P_0 = false | ||||
| am__v_P_1 = : | ||||
| AM_V_GEN = $(am__v_GEN_$(V)) | ||||
| am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) | ||||
| am__v_GEN_0 = @echo "  GEN     " $@; | ||||
| am__v_GEN_1 =  | ||||
| AM_V_at = $(am__v_at_$(V)) | ||||
| am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) | ||||
| am__v_at_0 = @ | ||||
| am__v_at_1 =  | ||||
| SOURCES = | ||||
| DIST_SOURCES = | ||||
| RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ | ||||
| 	ctags-recursive dvi-recursive html-recursive info-recursive \ | ||||
| 	install-data-recursive install-dvi-recursive \ | ||||
| 	install-exec-recursive install-html-recursive \ | ||||
| 	install-info-recursive install-pdf-recursive \ | ||||
| 	install-ps-recursive install-recursive installcheck-recursive \ | ||||
| 	installdirs-recursive pdf-recursive ps-recursive \ | ||||
| 	tags-recursive uninstall-recursive | ||||
| am__can_run_installinfo = \ | ||||
|   case $$AM_UPDATE_INFO_DIR in \ | ||||
|     n|no|NO) false;; \ | ||||
|     *) (install-info --version) >/dev/null 2>&1;; \ | ||||
|   esac | ||||
| RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\ | ||||
|   distclean-recursive maintainer-clean-recursive | ||||
| am__recursive_targets = \ | ||||
|   $(RECURSIVE_TARGETS) \ | ||||
|   $(RECURSIVE_CLEAN_TARGETS) \ | ||||
|   $(am__extra_recursive_targets) | ||||
| AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ | ||||
| 	cscope distdir distdir-am dist dist-all distcheck | ||||
| am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ | ||||
| 	$(LISP)config.h.in | ||||
| # Read a list of newline-separated strings from the standard input, | ||||
| # and print each of them once, without duplicates.  Input order is | ||||
| # *not* preserved. | ||||
| am__uniquify_input = $(AWK) '\ | ||||
|   BEGIN { nonempty = 0; } \ | ||||
|   { items[$$0] = 1; nonempty = 1; } \ | ||||
|   END { if (nonempty) { for (i in items) print i; }; } \ | ||||
| ' | ||||
| # Make sure the list of sources is unique.  This is necessary because, | ||||
| # e.g., the same source file might be shared among _SOURCES variables | ||||
| # for different programs/libraries. | ||||
| am__define_uniq_tagged_files = \ | ||||
|   list='$(am__tagged_files)'; \ | ||||
|   unique=`for i in $$list; do \ | ||||
|     if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | ||||
|   done | $(am__uniquify_input)` | ||||
| ETAGS = etags | ||||
| CTAGS = ctags | ||||
| CSCOPE = cscope | ||||
| DIST_SUBDIRS = $(SUBDIRS) | ||||
| am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in AUTHORS \ | ||||
| 	COPYING ChangeLog INSTALL NEWS README compile config.guess \ | ||||
| 	config.sub depcomp install-sh ltmain.sh missing | ||||
| DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | ||||
| distdir = $(PACKAGE)-$(VERSION) | ||||
| top_distdir = $(distdir) | ||||
| am__remove_distdir = \ | ||||
|   if test -d "$(distdir)"; then \ | ||||
|     find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ | ||||
|       && rm -rf "$(distdir)" \ | ||||
|       || { sleep 5 && rm -rf "$(distdir)"; }; \ | ||||
|   else :; fi | ||||
| am__post_remove_distdir = $(am__remove_distdir) | ||||
| am__relativize = \ | ||||
|   dir0=`pwd`; \ | ||||
|   sed_first='s,^\([^/]*\)/.*$$,\1,'; \ | ||||
|   sed_rest='s,^[^/]*/*,,'; \ | ||||
|   sed_last='s,^.*/\([^/]*\)$$,\1,'; \ | ||||
|   sed_butlast='s,/*[^/]*$$,,'; \ | ||||
|   while test -n "$$dir1"; do \ | ||||
|     first=`echo "$$dir1" | sed -e "$$sed_first"`; \ | ||||
|     if test "$$first" != "."; then \ | ||||
|       if test "$$first" = ".."; then \ | ||||
|         dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ | ||||
|         dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ | ||||
|       else \ | ||||
|         first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ | ||||
|         if test "$$first2" = "$$first"; then \ | ||||
|           dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ | ||||
|         else \ | ||||
|           dir2="../$$dir2"; \ | ||||
|         fi; \ | ||||
|         dir0="$$dir0"/"$$first"; \ | ||||
|       fi; \ | ||||
|     fi; \ | ||||
|     dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ | ||||
|   done; \ | ||||
|   reldir="$$dir2" | ||||
| DIST_ARCHIVES = $(distdir).tar.gz | ||||
| GZIP_ENV = --best | ||||
| DIST_TARGETS = dist-gzip | ||||
| distuninstallcheck_listfiles = find . -type f -print | ||||
| am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | ||||
|   | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' | ||||
| distcleancheck_listfiles = find . -type f -print | ||||
| ACLOCAL = ${SHELL} /home/pi/InkycalVenv/inkycal/display/drivers/7_in_8_drivers/bcm2835-1.68/missing aclocal-1.16 | ||||
| AMTAR = $${TAR-tar} | ||||
| AM_DEFAULT_VERBOSITY = 1 | ||||
| AUTOCONF = ${SHELL} /home/pi/InkycalVenv/inkycal/display/drivers/7_in_8_drivers/bcm2835-1.68/missing autoconf | ||||
| AUTOHEADER = ${SHELL} /home/pi/InkycalVenv/inkycal/display/drivers/7_in_8_drivers/bcm2835-1.68/missing autoheader | ||||
| AUTOMAKE = ${SHELL} /home/pi/InkycalVenv/inkycal/display/drivers/7_in_8_drivers/bcm2835-1.68/missing automake-1.16 | ||||
| AWK = mawk | ||||
| CC = gcc | ||||
| CCDEPMODE = depmode=gcc3 | ||||
| CFLAGS = -g -O2 | ||||
| CPPFLAGS =  | ||||
| CYGPATH_W = echo | ||||
| DEFS = -DHAVE_CONFIG_H | ||||
| DEPDIR = .deps | ||||
| DOXYGEN =  | ||||
| ECHO_C =  | ||||
| ECHO_N = -n | ||||
| ECHO_T =  | ||||
| EXEEXT =  | ||||
| INSTALL = /usr/bin/install -c | ||||
| INSTALL_DATA = ${INSTALL} -m 644 | ||||
| INSTALL_PROGRAM = ${INSTALL} | ||||
| INSTALL_SCRIPT = ${INSTALL} | ||||
| INSTALL_STRIP_PROGRAM = $(install_sh) -c -s | ||||
| LDFLAGS =  | ||||
| LIBOBJS =  | ||||
| LIBS = -lrt  | ||||
| LTLIBOBJS =  | ||||
| MAKEINFO = ${SHELL} /home/pi/InkycalVenv/inkycal/display/drivers/7_in_8_drivers/bcm2835-1.68/missing makeinfo | ||||
| MKDIR_P = /bin/mkdir -p | ||||
| OBJEXT = o | ||||
| PACKAGE = bcm2835 | ||||
| PACKAGE_BUGREPORT = mikem@airspayce.com | ||||
| PACKAGE_NAME = bcm2835 | ||||
| PACKAGE_STRING = bcm2835 1.68 | ||||
| PACKAGE_TARNAME = bcm2835 | ||||
| PACKAGE_URL =  | ||||
| PACKAGE_VERSION = 1.68 | ||||
| PATH_SEPARATOR = : | ||||
| RANLIB = ranlib | ||||
| SET_MAKE =  | ||||
| SHELL = /bin/bash | ||||
| STRIP =  | ||||
| VERSION = 1.68 | ||||
| abs_builddir = /home/pi/InkycalVenv/inkycal/display/drivers/7_in_8_drivers/bcm2835-1.68 | ||||
| abs_srcdir = /home/pi/InkycalVenv/inkycal/display/drivers/7_in_8_drivers/bcm2835-1.68 | ||||
| abs_top_builddir = /home/pi/InkycalVenv/inkycal/display/drivers/7_in_8_drivers/bcm2835-1.68 | ||||
| abs_top_srcdir = /home/pi/InkycalVenv/inkycal/display/drivers/7_in_8_drivers/bcm2835-1.68 | ||||
| ac_ct_CC = gcc | ||||
| am__include = include | ||||
| am__leading_dot = . | ||||
| am__quote =  | ||||
| am__tar = $${TAR-tar} chof - "$$tardir" | ||||
| am__untar = $${TAR-tar} xf - | ||||
| bindir = ${exec_prefix}/bin | ||||
| build_alias =  | ||||
| builddir = . | ||||
| datadir = ${datarootdir} | ||||
| datarootdir = ${prefix}/share | ||||
| docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} | ||||
| dvidir = ${docdir} | ||||
| exec_prefix = ${prefix} | ||||
| host_alias =  | ||||
| htmldir = ${docdir} | ||||
| includedir = ${prefix}/include | ||||
| infodir = ${datarootdir}/info | ||||
| install_sh = ${SHELL} /home/pi/InkycalVenv/inkycal/display/drivers/7_in_8_drivers/bcm2835-1.68/install-sh | ||||
| libdir = ${exec_prefix}/lib | ||||
| libexecdir = ${exec_prefix}/libexec | ||||
| localedir = ${datarootdir}/locale | ||||
| localstatedir = ${prefix}/var | ||||
| mandir = ${datarootdir}/man | ||||
| mkdir_p = $(MKDIR_P) | ||||
| oldincludedir = /usr/include | ||||
| pdfdir = ${docdir} | ||||
| prefix = /usr/local | ||||
| program_transform_name = s,x,x, | ||||
| psdir = ${docdir} | ||||
| runstatedir = ${localstatedir}/run | ||||
| sbindir = ${exec_prefix}/sbin | ||||
| sharedstatedir = ${prefix}/com | ||||
| srcdir = . | ||||
| sysconfdir = ${prefix}/etc | ||||
| target_alias =  | ||||
| top_build_prefix =  | ||||
| top_builddir = . | ||||
| top_srcdir = . | ||||
| ACLOCAL_AMFLAGS = -I m4 | ||||
| SUBDIRS = src doc | ||||
| CLEANFILES = *~ | ||||
| EXTRA_DIST = examples/blink/blink.c \ | ||||
| examples/input/input.c \ | ||||
| examples/event/event.c \ | ||||
| examples/spi/spi.c \ | ||||
| examples/spin/spin.c \ | ||||
| examples/pwm/pwm.c \ | ||||
| examples/i2c/i2c.c \ | ||||
| examples/gpio/gpio.c \ | ||||
| examples/spiram/spiram_test.c \ | ||||
| examples/spiram/spiram.c \ | ||||
| examples/spiram/spiram.h | ||||
|  | ||||
| all: config.h | ||||
| 	$(MAKE) $(AM_MAKEFLAGS) all-recursive | ||||
|  | ||||
| .SUFFIXES: | ||||
| am--refresh: Makefile | ||||
| 	@: | ||||
| $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps) | ||||
| 	@for dep in $?; do \ | ||||
| 	  case '$(am__configure_deps)' in \ | ||||
| 	    *$$dep*) \ | ||||
| 	      echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ | ||||
| 	      $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ | ||||
| 		&& exit 0; \ | ||||
| 	      exit 1;; \ | ||||
| 	  esac; \ | ||||
| 	done; \ | ||||
| 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ | ||||
| 	$(am__cd) $(top_srcdir) && \ | ||||
| 	  $(AUTOMAKE) --gnu Makefile | ||||
| Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | ||||
| 	@case '$?' in \ | ||||
| 	  *config.status*) \ | ||||
| 	    echo ' $(SHELL) ./config.status'; \ | ||||
| 	    $(SHELL) ./config.status;; \ | ||||
| 	  *) \ | ||||
| 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ | ||||
| 	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ | ||||
| 	esac; | ||||
|  | ||||
| $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) | ||||
| 	$(SHELL) ./config.status --recheck | ||||
|  | ||||
| $(top_srcdir)/configure:  $(am__configure_deps) | ||||
| 	$(am__cd) $(srcdir) && $(AUTOCONF) | ||||
| $(ACLOCAL_M4):  $(am__aclocal_m4_deps) | ||||
| 	$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) | ||||
| $(am__aclocal_m4_deps): | ||||
|  | ||||
| config.h: stamp-h1 | ||||
| 	@test -f $@ || rm -f stamp-h1 | ||||
| 	@test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 | ||||
|  | ||||
| stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status | ||||
| 	@rm -f stamp-h1 | ||||
| 	cd $(top_builddir) && $(SHELL) ./config.status config.h | ||||
| $(srcdir)/config.h.in:  $(am__configure_deps)  | ||||
| 	($(am__cd) $(top_srcdir) && $(AUTOHEADER)) | ||||
| 	rm -f stamp-h1 | ||||
| 	touch $@ | ||||
|  | ||||
| distclean-hdr: | ||||
| 	-rm -f config.h stamp-h1 | ||||
|  | ||||
| # This directory's subdirectories are mostly independent; you can cd | ||||
| # into them and run 'make' without going through this Makefile. | ||||
| # To change the values of 'make' variables: instead of editing Makefiles, | ||||
| # (1) if the variable is set in 'config.status', edit 'config.status' | ||||
| #     (which will cause the Makefiles to be regenerated when you run 'make'); | ||||
| # (2) otherwise, pass the desired values on the 'make' command line. | ||||
| $(am__recursive_targets): | ||||
| 	@fail=; \ | ||||
| 	if $(am__make_keepgoing); then \ | ||||
| 	  failcom='fail=yes'; \ | ||||
| 	else \ | ||||
| 	  failcom='exit 1'; \ | ||||
| 	fi; \ | ||||
| 	dot_seen=no; \ | ||||
| 	target=`echo $@ | sed s/-recursive//`; \ | ||||
| 	case "$@" in \ | ||||
| 	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ | ||||
| 	  *) list='$(SUBDIRS)' ;; \ | ||||
| 	esac; \ | ||||
| 	for subdir in $$list; do \ | ||||
| 	  echo "Making $$target in $$subdir"; \ | ||||
| 	  if test "$$subdir" = "."; then \ | ||||
| 	    dot_seen=yes; \ | ||||
| 	    local_target="$$target-am"; \ | ||||
| 	  else \ | ||||
| 	    local_target="$$target"; \ | ||||
| 	  fi; \ | ||||
| 	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ | ||||
| 	  || eval $$failcom; \ | ||||
| 	done; \ | ||||
| 	if test "$$dot_seen" = "no"; then \ | ||||
| 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ | ||||
| 	fi; test -z "$$fail" | ||||
|  | ||||
| ID: $(am__tagged_files) | ||||
| 	$(am__define_uniq_tagged_files); mkid -fID $$unique | ||||
| tags: tags-recursive | ||||
| TAGS: tags | ||||
|  | ||||
| tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) | ||||
| 	set x; \ | ||||
| 	here=`pwd`; \ | ||||
| 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ | ||||
| 	  include_option=--etags-include; \ | ||||
| 	  empty_fix=.; \ | ||||
| 	else \ | ||||
| 	  include_option=--include; \ | ||||
| 	  empty_fix=; \ | ||||
| 	fi; \ | ||||
| 	list='$(SUBDIRS)'; for subdir in $$list; do \ | ||||
| 	  if test "$$subdir" = .; then :; else \ | ||||
| 	    test ! -f $$subdir/TAGS || \ | ||||
| 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ | ||||
| 	  fi; \ | ||||
| 	done; \ | ||||
| 	$(am__define_uniq_tagged_files); \ | ||||
| 	shift; \ | ||||
| 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ | ||||
| 	  test -n "$$unique" || unique=$$empty_fix; \ | ||||
| 	  if test $$# -gt 0; then \ | ||||
| 	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ | ||||
| 	      "$$@" $$unique; \ | ||||
| 	  else \ | ||||
| 	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ | ||||
| 	      $$unique; \ | ||||
| 	  fi; \ | ||||
| 	fi | ||||
| ctags: ctags-recursive | ||||
|  | ||||
| CTAGS: ctags | ||||
| ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) | ||||
| 	$(am__define_uniq_tagged_files); \ | ||||
| 	test -z "$(CTAGS_ARGS)$$unique" \ | ||||
| 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ | ||||
| 	     $$unique | ||||
|  | ||||
| GTAGS: | ||||
| 	here=`$(am__cd) $(top_builddir) && pwd` \ | ||||
| 	  && $(am__cd) $(top_srcdir) \ | ||||
| 	  && gtags -i $(GTAGS_ARGS) "$$here" | ||||
| cscope: cscope.files | ||||
| 	test ! -s cscope.files \ | ||||
| 	  || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) | ||||
| clean-cscope: | ||||
| 	-rm -f cscope.files | ||||
| cscope.files: clean-cscope cscopelist | ||||
| cscopelist: cscopelist-recursive | ||||
|  | ||||
| cscopelist-am: $(am__tagged_files) | ||||
| 	list='$(am__tagged_files)'; \ | ||||
| 	case "$(srcdir)" in \ | ||||
| 	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ | ||||
| 	  *) sdir=$(subdir)/$(srcdir) ;; \ | ||||
| 	esac; \ | ||||
| 	for i in $$list; do \ | ||||
| 	  if test -f "$$i"; then \ | ||||
| 	    echo "$(subdir)/$$i"; \ | ||||
| 	  else \ | ||||
| 	    echo "$$sdir/$$i"; \ | ||||
| 	  fi; \ | ||||
| 	done >> $(top_builddir)/cscope.files | ||||
|  | ||||
| distclean-tags: | ||||
| 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | ||||
| 	-rm -f cscope.out cscope.in.out cscope.po.out cscope.files | ||||
|  | ||||
| distdir: $(BUILT_SOURCES) | ||||
| 	$(MAKE) $(AM_MAKEFLAGS) distdir-am | ||||
|  | ||||
| distdir-am: $(DISTFILES) | ||||
| 	$(am__remove_distdir) | ||||
| 	test -d "$(distdir)" || mkdir "$(distdir)" | ||||
| 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | ||||
| 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | ||||
| 	list='$(DISTFILES)'; \ | ||||
| 	  dist_files=`for file in $$list; do echo $$file; done | \ | ||||
| 	  sed -e "s|^$$srcdirstrip/||;t" \ | ||||
| 	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | ||||
| 	case $$dist_files in \ | ||||
| 	  */*) $(MKDIR_P) `echo "$$dist_files" | \ | ||||
| 			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | ||||
| 			   sort -u` ;; \ | ||||
| 	esac; \ | ||||
| 	for file in $$dist_files; do \ | ||||
| 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | ||||
| 	  if test -d $$d/$$file; then \ | ||||
| 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | ||||
| 	    if test -d "$(distdir)/$$file"; then \ | ||||
| 	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | ||||
| 	    fi; \ | ||||
| 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | ||||
| 	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | ||||
| 	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | ||||
| 	    fi; \ | ||||
| 	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | ||||
| 	  else \ | ||||
| 	    test -f "$(distdir)/$$file" \ | ||||
| 	    || cp -p $$d/$$file "$(distdir)/$$file" \ | ||||
| 	    || exit 1; \ | ||||
| 	  fi; \ | ||||
| 	done | ||||
| 	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ | ||||
| 	  if test "$$subdir" = .; then :; else \ | ||||
| 	    $(am__make_dryrun) \ | ||||
| 	      || test -d "$(distdir)/$$subdir" \ | ||||
| 	      || $(MKDIR_P) "$(distdir)/$$subdir" \ | ||||
| 	      || exit 1; \ | ||||
| 	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ | ||||
| 	    $(am__relativize); \ | ||||
| 	    new_distdir=$$reldir; \ | ||||
| 	    dir1=$$subdir; dir2="$(top_distdir)"; \ | ||||
| 	    $(am__relativize); \ | ||||
| 	    new_top_distdir=$$reldir; \ | ||||
| 	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ | ||||
| 	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ | ||||
| 	    ($(am__cd) $$subdir && \ | ||||
| 	      $(MAKE) $(AM_MAKEFLAGS) \ | ||||
| 	        top_distdir="$$new_top_distdir" \ | ||||
| 	        distdir="$$new_distdir" \ | ||||
| 		am__remove_distdir=: \ | ||||
| 		am__skip_length_check=: \ | ||||
| 		am__skip_mode_fix=: \ | ||||
| 	        distdir) \ | ||||
| 	      || exit 1; \ | ||||
| 	  fi; \ | ||||
| 	done | ||||
| 	-test -n "$(am__skip_mode_fix)" \ | ||||
| 	|| find "$(distdir)" -type d ! -perm -755 \ | ||||
| 		-exec chmod u+rwx,go+rx {} \; -o \ | ||||
| 	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ | ||||
| 	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ | ||||
| 	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ | ||||
| 	|| chmod -R a+r "$(distdir)" | ||||
| dist-gzip: distdir | ||||
| 	tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz | ||||
| 	$(am__post_remove_distdir) | ||||
|  | ||||
| dist-bzip2: distdir | ||||
| 	tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 | ||||
| 	$(am__post_remove_distdir) | ||||
|  | ||||
| dist-lzip: distdir | ||||
| 	tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz | ||||
| 	$(am__post_remove_distdir) | ||||
|  | ||||
| dist-xz: distdir | ||||
| 	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz | ||||
| 	$(am__post_remove_distdir) | ||||
|  | ||||
| dist-tarZ: distdir | ||||
| 	@echo WARNING: "Support for distribution archives compressed with" \ | ||||
| 		       "legacy program 'compress' is deprecated." >&2 | ||||
| 	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2 | ||||
| 	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z | ||||
| 	$(am__post_remove_distdir) | ||||
|  | ||||
| dist-shar: distdir | ||||
| 	@echo WARNING: "Support for shar distribution archives is" \ | ||||
| 	               "deprecated." >&2 | ||||
| 	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2 | ||||
| 	shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz | ||||
| 	$(am__post_remove_distdir) | ||||
|  | ||||
| dist-zip: distdir | ||||
| 	-rm -f $(distdir).zip | ||||
| 	zip -rq $(distdir).zip $(distdir) | ||||
| 	$(am__post_remove_distdir) | ||||
|  | ||||
| dist dist-all: | ||||
| 	$(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' | ||||
| 	$(am__post_remove_distdir) | ||||
|  | ||||
| # This target untars the dist file and tries a VPATH configuration.  Then | ||||
| # it guarantees that the distribution is self-contained by making another | ||||
| # tarfile. | ||||
| distcheck: dist | ||||
| 	case '$(DIST_ARCHIVES)' in \ | ||||
| 	*.tar.gz*) \ | ||||
| 	  eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ | ||||
| 	*.tar.bz2*) \ | ||||
| 	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ | ||||
| 	*.tar.lz*) \ | ||||
| 	  lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ | ||||
| 	*.tar.xz*) \ | ||||
| 	  xz -dc $(distdir).tar.xz | $(am__untar) ;;\ | ||||
| 	*.tar.Z*) \ | ||||
| 	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ | ||||
| 	*.shar.gz*) \ | ||||
| 	  eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ | ||||
| 	*.zip*) \ | ||||
| 	  unzip $(distdir).zip ;;\ | ||||
| 	esac | ||||
| 	chmod -R a-w $(distdir) | ||||
| 	chmod u+w $(distdir) | ||||
| 	mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst | ||||
| 	chmod a-w $(distdir) | ||||
| 	test -d $(distdir)/_build || exit 0; \ | ||||
| 	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ | ||||
| 	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ | ||||
| 	  && am__cwd=`pwd` \ | ||||
| 	  && $(am__cd) $(distdir)/_build/sub \ | ||||
| 	  && ../../configure \ | ||||
| 	    $(AM_DISTCHECK_CONFIGURE_FLAGS) \ | ||||
| 	    $(DISTCHECK_CONFIGURE_FLAGS) \ | ||||
| 	    --srcdir=../.. --prefix="$$dc_install_base" \ | ||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) \ | ||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) dvi \ | ||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) check \ | ||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) install \ | ||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \ | ||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \ | ||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ | ||||
| 	        distuninstallcheck \ | ||||
| 	  && chmod -R a-w "$$dc_install_base" \ | ||||
| 	  && ({ \ | ||||
| 	       (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ | ||||
| 	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ | ||||
| 	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ | ||||
| 	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ | ||||
| 	            distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ | ||||
| 	      } || { rm -rf "$$dc_destdir"; exit 1; }) \ | ||||
| 	  && rm -rf "$$dc_destdir" \ | ||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) dist \ | ||||
| 	  && rm -rf $(DIST_ARCHIVES) \ | ||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ | ||||
| 	  && cd "$$am__cwd" \ | ||||
| 	  || exit 1 | ||||
| 	$(am__post_remove_distdir) | ||||
| 	@(echo "$(distdir) archives ready for distribution: "; \ | ||||
| 	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ | ||||
| 	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' | ||||
| distuninstallcheck: | ||||
| 	@test -n '$(distuninstallcheck_dir)' || { \ | ||||
| 	  echo 'ERROR: trying to run $@ with an empty' \ | ||||
| 	       '$$(distuninstallcheck_dir)' >&2; \ | ||||
| 	  exit 1; \ | ||||
| 	}; \ | ||||
| 	$(am__cd) '$(distuninstallcheck_dir)' || { \ | ||||
| 	  echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ | ||||
| 	  exit 1; \ | ||||
| 	}; \ | ||||
| 	test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ | ||||
| 	   || { echo "ERROR: files left after uninstall:" ; \ | ||||
| 	        if test -n "$(DESTDIR)"; then \ | ||||
| 	          echo "  (check DESTDIR support)"; \ | ||||
| 	        fi ; \ | ||||
| 	        $(distuninstallcheck_listfiles) ; \ | ||||
| 	        exit 1; } >&2 | ||||
| distcleancheck: distclean | ||||
| 	@if test '$(srcdir)' = . ; then \ | ||||
| 	  echo "ERROR: distcleancheck can only run from a VPATH build" ; \ | ||||
| 	  exit 1 ; \ | ||||
| 	fi | ||||
| 	@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ | ||||
| 	  || { echo "ERROR: files left in build directory after distclean:" ; \ | ||||
| 	       $(distcleancheck_listfiles) ; \ | ||||
| 	       exit 1; } >&2 | ||||
| check-am: all-am | ||||
| check: check-recursive | ||||
| all-am: Makefile config.h | ||||
| installdirs: installdirs-recursive | ||||
| installdirs-am: | ||||
| install: install-recursive | ||||
| install-exec: install-exec-recursive | ||||
| install-data: install-data-recursive | ||||
| uninstall: uninstall-recursive | ||||
|  | ||||
| install-am: all-am | ||||
| 	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am | ||||
|  | ||||
| installcheck: installcheck-recursive | ||||
| install-strip: | ||||
| 	if test -z '$(STRIP)'; then \ | ||||
| 	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | ||||
| 	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | ||||
| 	      install; \ | ||||
| 	else \ | ||||
| 	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | ||||
| 	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | ||||
| 	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ | ||||
| 	fi | ||||
| mostlyclean-generic: | ||||
|  | ||||
| clean-generic: | ||||
| 	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) | ||||
|  | ||||
| distclean-generic: | ||||
| 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) | ||||
| 	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) | ||||
|  | ||||
| maintainer-clean-generic: | ||||
| 	@echo "This command is intended for maintainers to use" | ||||
| 	@echo "it deletes files that may require special tools to rebuild." | ||||
| clean: clean-recursive | ||||
|  | ||||
| clean-am: clean-generic mostlyclean-am | ||||
|  | ||||
| distclean: distclean-recursive | ||||
| 	-rm -f $(am__CONFIG_DISTCLEAN_FILES) | ||||
| 	-rm -f Makefile | ||||
| distclean-am: clean-am distclean-generic distclean-hdr distclean-tags | ||||
|  | ||||
| dvi: dvi-recursive | ||||
|  | ||||
| dvi-am: | ||||
|  | ||||
| html: html-recursive | ||||
|  | ||||
| html-am: | ||||
|  | ||||
| info: info-recursive | ||||
|  | ||||
| info-am: | ||||
|  | ||||
| install-data-am: | ||||
|  | ||||
| install-dvi: install-dvi-recursive | ||||
|  | ||||
| install-dvi-am: | ||||
|  | ||||
| install-exec-am: | ||||
|  | ||||
| install-html: install-html-recursive | ||||
|  | ||||
| install-html-am: | ||||
|  | ||||
| install-info: install-info-recursive | ||||
|  | ||||
| install-info-am: | ||||
|  | ||||
| install-man: | ||||
|  | ||||
| install-pdf: install-pdf-recursive | ||||
|  | ||||
| install-pdf-am: | ||||
|  | ||||
| install-ps: install-ps-recursive | ||||
|  | ||||
| install-ps-am: | ||||
|  | ||||
| installcheck-am: | ||||
|  | ||||
| maintainer-clean: maintainer-clean-recursive | ||||
| 	-rm -f $(am__CONFIG_DISTCLEAN_FILES) | ||||
| 	-rm -rf $(top_srcdir)/autom4te.cache | ||||
| 	-rm -f Makefile | ||||
| maintainer-clean-am: distclean-am maintainer-clean-generic | ||||
|  | ||||
| mostlyclean: mostlyclean-recursive | ||||
|  | ||||
| mostlyclean-am: mostlyclean-generic | ||||
|  | ||||
| pdf: pdf-recursive | ||||
|  | ||||
| pdf-am: | ||||
|  | ||||
| ps: ps-recursive | ||||
|  | ||||
| ps-am: | ||||
|  | ||||
| uninstall-am: | ||||
|  | ||||
| .MAKE: $(am__recursive_targets) all install-am install-strip | ||||
|  | ||||
| .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ | ||||
| 	am--refresh check check-am clean clean-cscope clean-generic \ | ||||
| 	cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \ | ||||
| 	dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \ | ||||
| 	distcheck distclean distclean-generic distclean-hdr \ | ||||
| 	distclean-tags distcleancheck distdir distuninstallcheck dvi \ | ||||
| 	dvi-am html html-am info info-am install install-am \ | ||||
| 	install-data install-data-am install-dvi install-dvi-am \ | ||||
| 	install-exec install-exec-am install-html install-html-am \ | ||||
| 	install-info install-info-am install-man install-pdf \ | ||||
| 	install-pdf-am install-ps install-ps-am install-strip \ | ||||
| 	installcheck installcheck-am installdirs installdirs-am \ | ||||
| 	maintainer-clean maintainer-clean-generic mostlyclean \ | ||||
| 	mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ | ||||
| 	uninstall-am | ||||
|  | ||||
| .PRECIOUS: Makefile | ||||
|  | ||||
|  | ||||
| upload: | ||||
| 	rsync -avz bcm2835-1.68.tar.gz doc/html/ www.airspayce.com:public_html/mikem/bcm2835 | ||||
|  | ||||
| # Tell versions [3.59,3.63) of GNU make to not export all variables. | ||||
| # Otherwise a system limit (for SysV at least) may be exceeded. | ||||
| .NOEXPORT: | ||||
| @@ -0,0 +1,19 @@ | ||||
| ACLOCAL_AMFLAGS = -I m4 | ||||
| SUBDIRS = src doc | ||||
| CLEANFILES = *~ | ||||
| EXTRA_DIST = examples/blink/blink.c \ | ||||
| examples/input/input.c \ | ||||
| examples/event/event.c \ | ||||
| examples/spi/spi.c \ | ||||
| examples/spin/spin.c \ | ||||
| examples/pwm/pwm.c \ | ||||
| examples/i2c/i2c.c \ | ||||
| examples/gpio/gpio.c \ | ||||
| examples/spiram/spiram_test.c \ | ||||
| examples/spiram/spiram.c \ | ||||
| examples/spiram/spiram.h | ||||
|  | ||||
| upload: | ||||
| 	rsync -avz @PACKAGE_TARNAME@-@VERSION@.tar.gz doc/html/ www.airspayce.com:public_html/mikem/@PACKAGE_NAME@ | ||||
|  | ||||
|  | ||||
| @@ -0,0 +1,786 @@ | ||||
| # Makefile.in generated by automake 1.16.1 from Makefile.am. | ||||
| # @configure_input@ | ||||
|  | ||||
| # Copyright (C) 1994-2018 Free Software Foundation, Inc. | ||||
|  | ||||
| # This Makefile.in is free software; the Free Software Foundation | ||||
| # gives unlimited permission to copy and/or distribute it, | ||||
| # with or without modifications, as long as this notice is preserved. | ||||
|  | ||||
| # This program is distributed in the hope that it will be useful, | ||||
| # but WITHOUT ANY WARRANTY, to the extent permitted by law; without | ||||
| # even the implied warranty of MERCHANTABILITY or FITNESS FOR A | ||||
| # PARTICULAR PURPOSE. | ||||
|  | ||||
| @SET_MAKE@ | ||||
| VPATH = @srcdir@ | ||||
| am__is_gnu_make = { \ | ||||
|   if test -z '$(MAKELEVEL)'; then \ | ||||
|     false; \ | ||||
|   elif test -n '$(MAKE_HOST)'; then \ | ||||
|     true; \ | ||||
|   elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ | ||||
|     true; \ | ||||
|   else \ | ||||
|     false; \ | ||||
|   fi; \ | ||||
| } | ||||
| am__make_running_with_option = \ | ||||
|   case $${target_option-} in \ | ||||
|       ?) ;; \ | ||||
|       *) echo "am__make_running_with_option: internal error: invalid" \ | ||||
|               "target option '$${target_option-}' specified" >&2; \ | ||||
|          exit 1;; \ | ||||
|   esac; \ | ||||
|   has_opt=no; \ | ||||
|   sane_makeflags=$$MAKEFLAGS; \ | ||||
|   if $(am__is_gnu_make); then \ | ||||
|     sane_makeflags=$$MFLAGS; \ | ||||
|   else \ | ||||
|     case $$MAKEFLAGS in \ | ||||
|       *\\[\ \	]*) \ | ||||
|         bs=\\; \ | ||||
|         sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | ||||
|           | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \ | ||||
|     esac; \ | ||||
|   fi; \ | ||||
|   skip_next=no; \ | ||||
|   strip_trailopt () \ | ||||
|   { \ | ||||
|     flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ | ||||
|   }; \ | ||||
|   for flg in $$sane_makeflags; do \ | ||||
|     test $$skip_next = yes && { skip_next=no; continue; }; \ | ||||
|     case $$flg in \ | ||||
|       *=*|--*) continue;; \ | ||||
|         -*I) strip_trailopt 'I'; skip_next=yes;; \ | ||||
|       -*I?*) strip_trailopt 'I';; \ | ||||
|         -*O) strip_trailopt 'O'; skip_next=yes;; \ | ||||
|       -*O?*) strip_trailopt 'O';; \ | ||||
|         -*l) strip_trailopt 'l'; skip_next=yes;; \ | ||||
|       -*l?*) strip_trailopt 'l';; \ | ||||
|       -[dEDm]) skip_next=yes;; \ | ||||
|       -[JT]) skip_next=yes;; \ | ||||
|     esac; \ | ||||
|     case $$flg in \ | ||||
|       *$$target_option*) has_opt=yes; break;; \ | ||||
|     esac; \ | ||||
|   done; \ | ||||
|   test $$has_opt = yes | ||||
| am__make_dryrun = (target_option=n; $(am__make_running_with_option)) | ||||
| am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) | ||||
| pkgdatadir = $(datadir)/@PACKAGE@ | ||||
| pkgincludedir = $(includedir)/@PACKAGE@ | ||||
| pkglibdir = $(libdir)/@PACKAGE@ | ||||
| pkglibexecdir = $(libexecdir)/@PACKAGE@ | ||||
| am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd | ||||
| install_sh_DATA = $(install_sh) -c -m 644 | ||||
| install_sh_PROGRAM = $(install_sh) -c | ||||
| install_sh_SCRIPT = $(install_sh) -c | ||||
| INSTALL_HEADER = $(INSTALL_DATA) | ||||
| transform = $(program_transform_name) | ||||
| NORMAL_INSTALL = : | ||||
| PRE_INSTALL = : | ||||
| POST_INSTALL = : | ||||
| NORMAL_UNINSTALL = : | ||||
| PRE_UNINSTALL = : | ||||
| POST_UNINSTALL = : | ||||
| subdir = . | ||||
| ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | ||||
| am__aclocal_m4_deps = $(top_srcdir)/configure.ac | ||||
| am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ | ||||
| 	$(ACLOCAL_M4) | ||||
| DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ | ||||
| 	$(am__configure_deps) $(am__DIST_COMMON) | ||||
| am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ | ||||
|  configure.lineno config.status.lineno | ||||
| mkinstalldirs = $(install_sh) -d | ||||
| CONFIG_HEADER = config.h | ||||
| CONFIG_CLEAN_FILES = | ||||
| CONFIG_CLEAN_VPATH_FILES = | ||||
| AM_V_P = $(am__v_P_@AM_V@) | ||||
| am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) | ||||
| am__v_P_0 = false | ||||
| am__v_P_1 = : | ||||
| AM_V_GEN = $(am__v_GEN_@AM_V@) | ||||
| am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) | ||||
| am__v_GEN_0 = @echo "  GEN     " $@; | ||||
| am__v_GEN_1 =  | ||||
| AM_V_at = $(am__v_at_@AM_V@) | ||||
| am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) | ||||
| am__v_at_0 = @ | ||||
| am__v_at_1 =  | ||||
| SOURCES = | ||||
| DIST_SOURCES = | ||||
| RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ | ||||
| 	ctags-recursive dvi-recursive html-recursive info-recursive \ | ||||
| 	install-data-recursive install-dvi-recursive \ | ||||
| 	install-exec-recursive install-html-recursive \ | ||||
| 	install-info-recursive install-pdf-recursive \ | ||||
| 	install-ps-recursive install-recursive installcheck-recursive \ | ||||
| 	installdirs-recursive pdf-recursive ps-recursive \ | ||||
| 	tags-recursive uninstall-recursive | ||||
| am__can_run_installinfo = \ | ||||
|   case $$AM_UPDATE_INFO_DIR in \ | ||||
|     n|no|NO) false;; \ | ||||
|     *) (install-info --version) >/dev/null 2>&1;; \ | ||||
|   esac | ||||
| RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\ | ||||
|   distclean-recursive maintainer-clean-recursive | ||||
| am__recursive_targets = \ | ||||
|   $(RECURSIVE_TARGETS) \ | ||||
|   $(RECURSIVE_CLEAN_TARGETS) \ | ||||
|   $(am__extra_recursive_targets) | ||||
| AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ | ||||
| 	cscope distdir distdir-am dist dist-all distcheck | ||||
| am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ | ||||
| 	$(LISP)config.h.in | ||||
| # Read a list of newline-separated strings from the standard input, | ||||
| # and print each of them once, without duplicates.  Input order is | ||||
| # *not* preserved. | ||||
| am__uniquify_input = $(AWK) '\ | ||||
|   BEGIN { nonempty = 0; } \ | ||||
|   { items[$$0] = 1; nonempty = 1; } \ | ||||
|   END { if (nonempty) { for (i in items) print i; }; } \ | ||||
| ' | ||||
| # Make sure the list of sources is unique.  This is necessary because, | ||||
| # e.g., the same source file might be shared among _SOURCES variables | ||||
| # for different programs/libraries. | ||||
| am__define_uniq_tagged_files = \ | ||||
|   list='$(am__tagged_files)'; \ | ||||
|   unique=`for i in $$list; do \ | ||||
|     if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | ||||
|   done | $(am__uniquify_input)` | ||||
| ETAGS = etags | ||||
| CTAGS = ctags | ||||
| CSCOPE = cscope | ||||
| DIST_SUBDIRS = $(SUBDIRS) | ||||
| am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in AUTHORS \ | ||||
| 	COPYING ChangeLog INSTALL NEWS README compile config.guess \ | ||||
| 	config.sub depcomp install-sh ltmain.sh missing | ||||
| DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | ||||
| distdir = $(PACKAGE)-$(VERSION) | ||||
| top_distdir = $(distdir) | ||||
| am__remove_distdir = \ | ||||
|   if test -d "$(distdir)"; then \ | ||||
|     find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ | ||||
|       && rm -rf "$(distdir)" \ | ||||
|       || { sleep 5 && rm -rf "$(distdir)"; }; \ | ||||
|   else :; fi | ||||
| am__post_remove_distdir = $(am__remove_distdir) | ||||
| am__relativize = \ | ||||
|   dir0=`pwd`; \ | ||||
|   sed_first='s,^\([^/]*\)/.*$$,\1,'; \ | ||||
|   sed_rest='s,^[^/]*/*,,'; \ | ||||
|   sed_last='s,^.*/\([^/]*\)$$,\1,'; \ | ||||
|   sed_butlast='s,/*[^/]*$$,,'; \ | ||||
|   while test -n "$$dir1"; do \ | ||||
|     first=`echo "$$dir1" | sed -e "$$sed_first"`; \ | ||||
|     if test "$$first" != "."; then \ | ||||
|       if test "$$first" = ".."; then \ | ||||
|         dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ | ||||
|         dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ | ||||
|       else \ | ||||
|         first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ | ||||
|         if test "$$first2" = "$$first"; then \ | ||||
|           dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ | ||||
|         else \ | ||||
|           dir2="../$$dir2"; \ | ||||
|         fi; \ | ||||
|         dir0="$$dir0"/"$$first"; \ | ||||
|       fi; \ | ||||
|     fi; \ | ||||
|     dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ | ||||
|   done; \ | ||||
|   reldir="$$dir2" | ||||
| DIST_ARCHIVES = $(distdir).tar.gz | ||||
| GZIP_ENV = --best | ||||
| DIST_TARGETS = dist-gzip | ||||
| distuninstallcheck_listfiles = find . -type f -print | ||||
| am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | ||||
|   | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' | ||||
| distcleancheck_listfiles = find . -type f -print | ||||
| ACLOCAL = @ACLOCAL@ | ||||
| AMTAR = @AMTAR@ | ||||
| AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ | ||||
| AUTOCONF = @AUTOCONF@ | ||||
| AUTOHEADER = @AUTOHEADER@ | ||||
| AUTOMAKE = @AUTOMAKE@ | ||||
| AWK = @AWK@ | ||||
| CC = @CC@ | ||||
| CCDEPMODE = @CCDEPMODE@ | ||||
| CFLAGS = @CFLAGS@ | ||||
| CPPFLAGS = @CPPFLAGS@ | ||||
| CYGPATH_W = @CYGPATH_W@ | ||||
| DEFS = @DEFS@ | ||||
| DEPDIR = @DEPDIR@ | ||||
| DOXYGEN = @DOXYGEN@ | ||||
| ECHO_C = @ECHO_C@ | ||||
| ECHO_N = @ECHO_N@ | ||||
| ECHO_T = @ECHO_T@ | ||||
| EXEEXT = @EXEEXT@ | ||||
| INSTALL = @INSTALL@ | ||||
| INSTALL_DATA = @INSTALL_DATA@ | ||||
| INSTALL_PROGRAM = @INSTALL_PROGRAM@ | ||||
| INSTALL_SCRIPT = @INSTALL_SCRIPT@ | ||||
| INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ | ||||
| LDFLAGS = @LDFLAGS@ | ||||
| LIBOBJS = @LIBOBJS@ | ||||
| LIBS = @LIBS@ | ||||
| LTLIBOBJS = @LTLIBOBJS@ | ||||
| MAKEINFO = @MAKEINFO@ | ||||
| MKDIR_P = @MKDIR_P@ | ||||
| OBJEXT = @OBJEXT@ | ||||
| PACKAGE = @PACKAGE@ | ||||
| PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ | ||||
| PACKAGE_NAME = @PACKAGE_NAME@ | ||||
| PACKAGE_STRING = @PACKAGE_STRING@ | ||||
| PACKAGE_TARNAME = @PACKAGE_TARNAME@ | ||||
| PACKAGE_URL = @PACKAGE_URL@ | ||||
| PACKAGE_VERSION = @PACKAGE_VERSION@ | ||||
| PATH_SEPARATOR = @PATH_SEPARATOR@ | ||||
| RANLIB = @RANLIB@ | ||||
| SET_MAKE = @SET_MAKE@ | ||||
| SHELL = @SHELL@ | ||||
| STRIP = @STRIP@ | ||||
| VERSION = @VERSION@ | ||||
| abs_builddir = @abs_builddir@ | ||||
| abs_srcdir = @abs_srcdir@ | ||||
| abs_top_builddir = @abs_top_builddir@ | ||||
| abs_top_srcdir = @abs_top_srcdir@ | ||||
| ac_ct_CC = @ac_ct_CC@ | ||||
| am__include = @am__include@ | ||||
| am__leading_dot = @am__leading_dot@ | ||||
| am__quote = @am__quote@ | ||||
| am__tar = @am__tar@ | ||||
| am__untar = @am__untar@ | ||||
| bindir = @bindir@ | ||||
| build_alias = @build_alias@ | ||||
| builddir = @builddir@ | ||||
| datadir = @datadir@ | ||||
| datarootdir = @datarootdir@ | ||||
| docdir = @docdir@ | ||||
| dvidir = @dvidir@ | ||||
| exec_prefix = @exec_prefix@ | ||||
| host_alias = @host_alias@ | ||||
| htmldir = @htmldir@ | ||||
| includedir = @includedir@ | ||||
| infodir = @infodir@ | ||||
| install_sh = @install_sh@ | ||||
| libdir = @libdir@ | ||||
| libexecdir = @libexecdir@ | ||||
| localedir = @localedir@ | ||||
| localstatedir = @localstatedir@ | ||||
| mandir = @mandir@ | ||||
| mkdir_p = @mkdir_p@ | ||||
| oldincludedir = @oldincludedir@ | ||||
| pdfdir = @pdfdir@ | ||||
| prefix = @prefix@ | ||||
| program_transform_name = @program_transform_name@ | ||||
| psdir = @psdir@ | ||||
| runstatedir = @runstatedir@ | ||||
| sbindir = @sbindir@ | ||||
| sharedstatedir = @sharedstatedir@ | ||||
| srcdir = @srcdir@ | ||||
| sysconfdir = @sysconfdir@ | ||||
| target_alias = @target_alias@ | ||||
| top_build_prefix = @top_build_prefix@ | ||||
| top_builddir = @top_builddir@ | ||||
| top_srcdir = @top_srcdir@ | ||||
| ACLOCAL_AMFLAGS = -I m4 | ||||
| SUBDIRS = src doc | ||||
| CLEANFILES = *~ | ||||
| EXTRA_DIST = examples/blink/blink.c \ | ||||
| examples/input/input.c \ | ||||
| examples/event/event.c \ | ||||
| examples/spi/spi.c \ | ||||
| examples/spin/spin.c \ | ||||
| examples/pwm/pwm.c \ | ||||
| examples/i2c/i2c.c \ | ||||
| examples/gpio/gpio.c \ | ||||
| examples/spiram/spiram_test.c \ | ||||
| examples/spiram/spiram.c \ | ||||
| examples/spiram/spiram.h | ||||
|  | ||||
| all: config.h | ||||
| 	$(MAKE) $(AM_MAKEFLAGS) all-recursive | ||||
|  | ||||
| .SUFFIXES: | ||||
| am--refresh: Makefile | ||||
| 	@: | ||||
| $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps) | ||||
| 	@for dep in $?; do \ | ||||
| 	  case '$(am__configure_deps)' in \ | ||||
| 	    *$$dep*) \ | ||||
| 	      echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ | ||||
| 	      $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ | ||||
| 		&& exit 0; \ | ||||
| 	      exit 1;; \ | ||||
| 	  esac; \ | ||||
| 	done; \ | ||||
| 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ | ||||
| 	$(am__cd) $(top_srcdir) && \ | ||||
| 	  $(AUTOMAKE) --gnu Makefile | ||||
| Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | ||||
| 	@case '$?' in \ | ||||
| 	  *config.status*) \ | ||||
| 	    echo ' $(SHELL) ./config.status'; \ | ||||
| 	    $(SHELL) ./config.status;; \ | ||||
| 	  *) \ | ||||
| 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ | ||||
| 	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ | ||||
| 	esac; | ||||
|  | ||||
| $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) | ||||
| 	$(SHELL) ./config.status --recheck | ||||
|  | ||||
| $(top_srcdir)/configure:  $(am__configure_deps) | ||||
| 	$(am__cd) $(srcdir) && $(AUTOCONF) | ||||
| $(ACLOCAL_M4):  $(am__aclocal_m4_deps) | ||||
| 	$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) | ||||
| $(am__aclocal_m4_deps): | ||||
|  | ||||
| config.h: stamp-h1 | ||||
| 	@test -f $@ || rm -f stamp-h1 | ||||
| 	@test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 | ||||
|  | ||||
| stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status | ||||
| 	@rm -f stamp-h1 | ||||
| 	cd $(top_builddir) && $(SHELL) ./config.status config.h | ||||
| $(srcdir)/config.h.in:  $(am__configure_deps)  | ||||
| 	($(am__cd) $(top_srcdir) && $(AUTOHEADER)) | ||||
| 	rm -f stamp-h1 | ||||
| 	touch $@ | ||||
|  | ||||
| distclean-hdr: | ||||
| 	-rm -f config.h stamp-h1 | ||||
|  | ||||
| # This directory's subdirectories are mostly independent; you can cd | ||||
| # into them and run 'make' without going through this Makefile. | ||||
| # To change the values of 'make' variables: instead of editing Makefiles, | ||||
| # (1) if the variable is set in 'config.status', edit 'config.status' | ||||
| #     (which will cause the Makefiles to be regenerated when you run 'make'); | ||||
| # (2) otherwise, pass the desired values on the 'make' command line. | ||||
| $(am__recursive_targets): | ||||
| 	@fail=; \ | ||||
| 	if $(am__make_keepgoing); then \ | ||||
| 	  failcom='fail=yes'; \ | ||||
| 	else \ | ||||
| 	  failcom='exit 1'; \ | ||||
| 	fi; \ | ||||
| 	dot_seen=no; \ | ||||
| 	target=`echo $@ | sed s/-recursive//`; \ | ||||
| 	case "$@" in \ | ||||
| 	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ | ||||
| 	  *) list='$(SUBDIRS)' ;; \ | ||||
| 	esac; \ | ||||
| 	for subdir in $$list; do \ | ||||
| 	  echo "Making $$target in $$subdir"; \ | ||||
| 	  if test "$$subdir" = "."; then \ | ||||
| 	    dot_seen=yes; \ | ||||
| 	    local_target="$$target-am"; \ | ||||
| 	  else \ | ||||
| 	    local_target="$$target"; \ | ||||
| 	  fi; \ | ||||
| 	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ | ||||
| 	  || eval $$failcom; \ | ||||
| 	done; \ | ||||
| 	if test "$$dot_seen" = "no"; then \ | ||||
| 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ | ||||
| 	fi; test -z "$$fail" | ||||
|  | ||||
| ID: $(am__tagged_files) | ||||
| 	$(am__define_uniq_tagged_files); mkid -fID $$unique | ||||
| tags: tags-recursive | ||||
| TAGS: tags | ||||
|  | ||||
| tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) | ||||
| 	set x; \ | ||||
| 	here=`pwd`; \ | ||||
| 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ | ||||
| 	  include_option=--etags-include; \ | ||||
| 	  empty_fix=.; \ | ||||
| 	else \ | ||||
| 	  include_option=--include; \ | ||||
| 	  empty_fix=; \ | ||||
| 	fi; \ | ||||
| 	list='$(SUBDIRS)'; for subdir in $$list; do \ | ||||
| 	  if test "$$subdir" = .; then :; else \ | ||||
| 	    test ! -f $$subdir/TAGS || \ | ||||
| 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ | ||||
| 	  fi; \ | ||||
| 	done; \ | ||||
| 	$(am__define_uniq_tagged_files); \ | ||||
| 	shift; \ | ||||
| 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ | ||||
| 	  test -n "$$unique" || unique=$$empty_fix; \ | ||||
| 	  if test $$# -gt 0; then \ | ||||
| 	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ | ||||
| 	      "$$@" $$unique; \ | ||||
| 	  else \ | ||||
| 	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ | ||||
| 	      $$unique; \ | ||||
| 	  fi; \ | ||||
| 	fi | ||||
| ctags: ctags-recursive | ||||
|  | ||||
| CTAGS: ctags | ||||
| ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) | ||||
| 	$(am__define_uniq_tagged_files); \ | ||||
| 	test -z "$(CTAGS_ARGS)$$unique" \ | ||||
| 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ | ||||
| 	     $$unique | ||||
|  | ||||
| GTAGS: | ||||
| 	here=`$(am__cd) $(top_builddir) && pwd` \ | ||||
| 	  && $(am__cd) $(top_srcdir) \ | ||||
| 	  && gtags -i $(GTAGS_ARGS) "$$here" | ||||
| cscope: cscope.files | ||||
| 	test ! -s cscope.files \ | ||||
| 	  || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) | ||||
| clean-cscope: | ||||
| 	-rm -f cscope.files | ||||
| cscope.files: clean-cscope cscopelist | ||||
| cscopelist: cscopelist-recursive | ||||
|  | ||||
| cscopelist-am: $(am__tagged_files) | ||||
| 	list='$(am__tagged_files)'; \ | ||||
| 	case "$(srcdir)" in \ | ||||
| 	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ | ||||
| 	  *) sdir=$(subdir)/$(srcdir) ;; \ | ||||
| 	esac; \ | ||||
| 	for i in $$list; do \ | ||||
| 	  if test -f "$$i"; then \ | ||||
| 	    echo "$(subdir)/$$i"; \ | ||||
| 	  else \ | ||||
| 	    echo "$$sdir/$$i"; \ | ||||
| 	  fi; \ | ||||
| 	done >> $(top_builddir)/cscope.files | ||||
|  | ||||
| distclean-tags: | ||||
| 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | ||||
| 	-rm -f cscope.out cscope.in.out cscope.po.out cscope.files | ||||
|  | ||||
| distdir: $(BUILT_SOURCES) | ||||
| 	$(MAKE) $(AM_MAKEFLAGS) distdir-am | ||||
|  | ||||
| distdir-am: $(DISTFILES) | ||||
| 	$(am__remove_distdir) | ||||
| 	test -d "$(distdir)" || mkdir "$(distdir)" | ||||
| 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | ||||
| 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | ||||
| 	list='$(DISTFILES)'; \ | ||||
| 	  dist_files=`for file in $$list; do echo $$file; done | \ | ||||
| 	  sed -e "s|^$$srcdirstrip/||;t" \ | ||||
| 	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | ||||
| 	case $$dist_files in \ | ||||
| 	  */*) $(MKDIR_P) `echo "$$dist_files" | \ | ||||
| 			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | ||||
| 			   sort -u` ;; \ | ||||
| 	esac; \ | ||||
| 	for file in $$dist_files; do \ | ||||
| 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | ||||
| 	  if test -d $$d/$$file; then \ | ||||
| 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | ||||
| 	    if test -d "$(distdir)/$$file"; then \ | ||||
| 	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | ||||
| 	    fi; \ | ||||
| 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | ||||
| 	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | ||||
| 	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | ||||
| 	    fi; \ | ||||
| 	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | ||||
| 	  else \ | ||||
| 	    test -f "$(distdir)/$$file" \ | ||||
| 	    || cp -p $$d/$$file "$(distdir)/$$file" \ | ||||
| 	    || exit 1; \ | ||||
| 	  fi; \ | ||||
| 	done | ||||
| 	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ | ||||
| 	  if test "$$subdir" = .; then :; else \ | ||||
| 	    $(am__make_dryrun) \ | ||||
| 	      || test -d "$(distdir)/$$subdir" \ | ||||
| 	      || $(MKDIR_P) "$(distdir)/$$subdir" \ | ||||
| 	      || exit 1; \ | ||||
| 	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ | ||||
| 	    $(am__relativize); \ | ||||
| 	    new_distdir=$$reldir; \ | ||||
| 	    dir1=$$subdir; dir2="$(top_distdir)"; \ | ||||
| 	    $(am__relativize); \ | ||||
| 	    new_top_distdir=$$reldir; \ | ||||
| 	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ | ||||
| 	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ | ||||
| 	    ($(am__cd) $$subdir && \ | ||||
| 	      $(MAKE) $(AM_MAKEFLAGS) \ | ||||
| 	        top_distdir="$$new_top_distdir" \ | ||||
| 	        distdir="$$new_distdir" \ | ||||
| 		am__remove_distdir=: \ | ||||
| 		am__skip_length_check=: \ | ||||
| 		am__skip_mode_fix=: \ | ||||
| 	        distdir) \ | ||||
| 	      || exit 1; \ | ||||
| 	  fi; \ | ||||
| 	done | ||||
| 	-test -n "$(am__skip_mode_fix)" \ | ||||
| 	|| find "$(distdir)" -type d ! -perm -755 \ | ||||
| 		-exec chmod u+rwx,go+rx {} \; -o \ | ||||
| 	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ | ||||
| 	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ | ||||
| 	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ | ||||
| 	|| chmod -R a+r "$(distdir)" | ||||
| dist-gzip: distdir | ||||
| 	tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz | ||||
| 	$(am__post_remove_distdir) | ||||
|  | ||||
| dist-bzip2: distdir | ||||
| 	tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 | ||||
| 	$(am__post_remove_distdir) | ||||
|  | ||||
| dist-lzip: distdir | ||||
| 	tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz | ||||
| 	$(am__post_remove_distdir) | ||||
|  | ||||
| dist-xz: distdir | ||||
| 	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz | ||||
| 	$(am__post_remove_distdir) | ||||
|  | ||||
| dist-tarZ: distdir | ||||
| 	@echo WARNING: "Support for distribution archives compressed with" \ | ||||
| 		       "legacy program 'compress' is deprecated." >&2 | ||||
| 	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2 | ||||
| 	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z | ||||
| 	$(am__post_remove_distdir) | ||||
|  | ||||
| dist-shar: distdir | ||||
| 	@echo WARNING: "Support for shar distribution archives is" \ | ||||
| 	               "deprecated." >&2 | ||||
| 	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2 | ||||
| 	shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz | ||||
| 	$(am__post_remove_distdir) | ||||
|  | ||||
| dist-zip: distdir | ||||
| 	-rm -f $(distdir).zip | ||||
| 	zip -rq $(distdir).zip $(distdir) | ||||
| 	$(am__post_remove_distdir) | ||||
|  | ||||
| dist dist-all: | ||||
| 	$(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' | ||||
| 	$(am__post_remove_distdir) | ||||
|  | ||||
| # This target untars the dist file and tries a VPATH configuration.  Then | ||||
| # it guarantees that the distribution is self-contained by making another | ||||
| # tarfile. | ||||
| distcheck: dist | ||||
| 	case '$(DIST_ARCHIVES)' in \ | ||||
| 	*.tar.gz*) \ | ||||
| 	  eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ | ||||
| 	*.tar.bz2*) \ | ||||
| 	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ | ||||
| 	*.tar.lz*) \ | ||||
| 	  lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ | ||||
| 	*.tar.xz*) \ | ||||
| 	  xz -dc $(distdir).tar.xz | $(am__untar) ;;\ | ||||
| 	*.tar.Z*) \ | ||||
| 	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ | ||||
| 	*.shar.gz*) \ | ||||
| 	  eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ | ||||
| 	*.zip*) \ | ||||
| 	  unzip $(distdir).zip ;;\ | ||||
| 	esac | ||||
| 	chmod -R a-w $(distdir) | ||||
| 	chmod u+w $(distdir) | ||||
| 	mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst | ||||
| 	chmod a-w $(distdir) | ||||
| 	test -d $(distdir)/_build || exit 0; \ | ||||
| 	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ | ||||
| 	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ | ||||
| 	  && am__cwd=`pwd` \ | ||||
| 	  && $(am__cd) $(distdir)/_build/sub \ | ||||
| 	  && ../../configure \ | ||||
| 	    $(AM_DISTCHECK_CONFIGURE_FLAGS) \ | ||||
| 	    $(DISTCHECK_CONFIGURE_FLAGS) \ | ||||
| 	    --srcdir=../.. --prefix="$$dc_install_base" \ | ||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) \ | ||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) dvi \ | ||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) check \ | ||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) install \ | ||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \ | ||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \ | ||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ | ||||
| 	        distuninstallcheck \ | ||||
| 	  && chmod -R a-w "$$dc_install_base" \ | ||||
| 	  && ({ \ | ||||
| 	       (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ | ||||
| 	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ | ||||
| 	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ | ||||
| 	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ | ||||
| 	            distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ | ||||
| 	      } || { rm -rf "$$dc_destdir"; exit 1; }) \ | ||||
| 	  && rm -rf "$$dc_destdir" \ | ||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) dist \ | ||||
| 	  && rm -rf $(DIST_ARCHIVES) \ | ||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ | ||||
| 	  && cd "$$am__cwd" \ | ||||
| 	  || exit 1 | ||||
| 	$(am__post_remove_distdir) | ||||
| 	@(echo "$(distdir) archives ready for distribution: "; \ | ||||
| 	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ | ||||
| 	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' | ||||
| distuninstallcheck: | ||||
| 	@test -n '$(distuninstallcheck_dir)' || { \ | ||||
| 	  echo 'ERROR: trying to run $@ with an empty' \ | ||||
| 	       '$$(distuninstallcheck_dir)' >&2; \ | ||||
| 	  exit 1; \ | ||||
| 	}; \ | ||||
| 	$(am__cd) '$(distuninstallcheck_dir)' || { \ | ||||
| 	  echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ | ||||
| 	  exit 1; \ | ||||
| 	}; \ | ||||
| 	test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ | ||||
| 	   || { echo "ERROR: files left after uninstall:" ; \ | ||||
| 	        if test -n "$(DESTDIR)"; then \ | ||||
| 	          echo "  (check DESTDIR support)"; \ | ||||
| 	        fi ; \ | ||||
| 	        $(distuninstallcheck_listfiles) ; \ | ||||
| 	        exit 1; } >&2 | ||||
| distcleancheck: distclean | ||||
| 	@if test '$(srcdir)' = . ; then \ | ||||
| 	  echo "ERROR: distcleancheck can only run from a VPATH build" ; \ | ||||
| 	  exit 1 ; \ | ||||
| 	fi | ||||
| 	@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ | ||||
| 	  || { echo "ERROR: files left in build directory after distclean:" ; \ | ||||
| 	       $(distcleancheck_listfiles) ; \ | ||||
| 	       exit 1; } >&2 | ||||
| check-am: all-am | ||||
| check: check-recursive | ||||
| all-am: Makefile config.h | ||||
| installdirs: installdirs-recursive | ||||
| installdirs-am: | ||||
| install: install-recursive | ||||
| install-exec: install-exec-recursive | ||||
| install-data: install-data-recursive | ||||
| uninstall: uninstall-recursive | ||||
|  | ||||
| install-am: all-am | ||||
| 	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am | ||||
|  | ||||
| installcheck: installcheck-recursive | ||||
| install-strip: | ||||
| 	if test -z '$(STRIP)'; then \ | ||||
| 	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | ||||
| 	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | ||||
| 	      install; \ | ||||
| 	else \ | ||||
| 	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | ||||
| 	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | ||||
| 	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ | ||||
| 	fi | ||||
| mostlyclean-generic: | ||||
|  | ||||
| clean-generic: | ||||
| 	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) | ||||
|  | ||||
| distclean-generic: | ||||
| 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) | ||||
| 	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) | ||||
|  | ||||
| maintainer-clean-generic: | ||||
| 	@echo "This command is intended for maintainers to use" | ||||
| 	@echo "it deletes files that may require special tools to rebuild." | ||||
| clean: clean-recursive | ||||
|  | ||||
| clean-am: clean-generic mostlyclean-am | ||||
|  | ||||
| distclean: distclean-recursive | ||||
| 	-rm -f $(am__CONFIG_DISTCLEAN_FILES) | ||||
| 	-rm -f Makefile | ||||
| distclean-am: clean-am distclean-generic distclean-hdr distclean-tags | ||||
|  | ||||
| dvi: dvi-recursive | ||||
|  | ||||
| dvi-am: | ||||
|  | ||||
| html: html-recursive | ||||
|  | ||||
| html-am: | ||||
|  | ||||
| info: info-recursive | ||||
|  | ||||
| info-am: | ||||
|  | ||||
| install-data-am: | ||||
|  | ||||
| install-dvi: install-dvi-recursive | ||||
|  | ||||
| install-dvi-am: | ||||
|  | ||||
| install-exec-am: | ||||
|  | ||||
| install-html: install-html-recursive | ||||
|  | ||||
| install-html-am: | ||||
|  | ||||
| install-info: install-info-recursive | ||||
|  | ||||
| install-info-am: | ||||
|  | ||||
| install-man: | ||||
|  | ||||
| install-pdf: install-pdf-recursive | ||||
|  | ||||
| install-pdf-am: | ||||
|  | ||||
| install-ps: install-ps-recursive | ||||
|  | ||||
| install-ps-am: | ||||
|  | ||||
| installcheck-am: | ||||
|  | ||||
| maintainer-clean: maintainer-clean-recursive | ||||
| 	-rm -f $(am__CONFIG_DISTCLEAN_FILES) | ||||
| 	-rm -rf $(top_srcdir)/autom4te.cache | ||||
| 	-rm -f Makefile | ||||
| maintainer-clean-am: distclean-am maintainer-clean-generic | ||||
|  | ||||
| mostlyclean: mostlyclean-recursive | ||||
|  | ||||
| mostlyclean-am: mostlyclean-generic | ||||
|  | ||||
| pdf: pdf-recursive | ||||
|  | ||||
| pdf-am: | ||||
|  | ||||
| ps: ps-recursive | ||||
|  | ||||
| ps-am: | ||||
|  | ||||
| uninstall-am: | ||||
|  | ||||
| .MAKE: $(am__recursive_targets) all install-am install-strip | ||||
|  | ||||
| .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ | ||||
| 	am--refresh check check-am clean clean-cscope clean-generic \ | ||||
| 	cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \ | ||||
| 	dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \ | ||||
| 	distcheck distclean distclean-generic distclean-hdr \ | ||||
| 	distclean-tags distcleancheck distdir distuninstallcheck dvi \ | ||||
| 	dvi-am html html-am info info-am install install-am \ | ||||
| 	install-data install-data-am install-dvi install-dvi-am \ | ||||
| 	install-exec install-exec-am install-html install-html-am \ | ||||
| 	install-info install-info-am install-man install-pdf \ | ||||
| 	install-pdf-am install-ps install-ps-am install-strip \ | ||||
| 	installcheck installcheck-am installdirs installdirs-am \ | ||||
| 	maintainer-clean maintainer-clean-generic mostlyclean \ | ||||
| 	mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ | ||||
| 	uninstall-am | ||||
|  | ||||
| .PRECIOUS: Makefile | ||||
|  | ||||
|  | ||||
| upload: | ||||
| 	rsync -avz @PACKAGE_TARNAME@-@VERSION@.tar.gz doc/html/ www.airspayce.com:public_html/mikem/@PACKAGE_NAME@ | ||||
|  | ||||
| # Tell versions [3.59,3.63) of GNU make to not export all variables. | ||||
| # Otherwise a system limit (for SysV at least) may be exceeded. | ||||
| .NOEXPORT: | ||||
| @@ -0,0 +1,5 @@ | ||||
| This is a C library for Raspberry Pi (RPi). It provides access to  | ||||
| GPIO and other IO functions on the Broadcom BCM 2835 chip. | ||||
| allowing access to the  | ||||
| 26 pin ISE plug on the RPi board so you can control and interface with various | ||||
| external devices. | ||||
							
								
								
									
										1201
									
								
								inkycal/display/drivers/parallel_drivers/bcm2835-1.68/aclocal.m4
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										348
									
								
								inkycal/display/drivers/parallel_drivers/bcm2835-1.68/compile
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,348 @@ | ||||
| #! /bin/sh | ||||
| # Wrapper for compilers which do not understand '-c -o'. | ||||
|  | ||||
| scriptversion=2018-03-07.03; # UTC | ||||
|  | ||||
| # Copyright (C) 1999-2018 Free Software Foundation, Inc. | ||||
| # Written by Tom Tromey <tromey@cygnus.com>. | ||||
| # | ||||
| # 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, 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, see <https://www.gnu.org/licenses/>. | ||||
|  | ||||
| # As a special exception to the GNU General Public License, if you | ||||
| # distribute this file as part of a program that contains a | ||||
| # configuration script generated by Autoconf, you may include it under | ||||
| # the same distribution terms that you use for the rest of that program. | ||||
|  | ||||
| # This file is maintained in Automake, please report | ||||
| # bugs to <bug-automake@gnu.org> or send patches to | ||||
| # <automake-patches@gnu.org>. | ||||
|  | ||||
| nl=' | ||||
| ' | ||||
|  | ||||
| # We need space, tab and new line, in precisely that order.  Quoting is | ||||
| # there to prevent tools from complaining about whitespace usage. | ||||
| IFS=" ""	$nl" | ||||
|  | ||||
| file_conv= | ||||
|  | ||||
| # func_file_conv build_file lazy | ||||
| # Convert a $build file to $host form and store it in $file | ||||
| # Currently only supports Windows hosts. If the determined conversion | ||||
| # type is listed in (the comma separated) LAZY, no conversion will | ||||
| # take place. | ||||
| func_file_conv () | ||||
| { | ||||
|   file=$1 | ||||
|   case $file in | ||||
|     / | /[!/]*) # absolute file, and not a UNC file | ||||
|       if test -z "$file_conv"; then | ||||
| 	# lazily determine how to convert abs files | ||||
| 	case `uname -s` in | ||||
| 	  MINGW*) | ||||
| 	    file_conv=mingw | ||||
| 	    ;; | ||||
| 	  CYGWIN*) | ||||
| 	    file_conv=cygwin | ||||
| 	    ;; | ||||
| 	  *) | ||||
| 	    file_conv=wine | ||||
| 	    ;; | ||||
| 	esac | ||||
|       fi | ||||
|       case $file_conv/,$2, in | ||||
| 	*,$file_conv,*) | ||||
| 	  ;; | ||||
| 	mingw/*) | ||||
| 	  file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` | ||||
| 	  ;; | ||||
| 	cygwin/*) | ||||
| 	  file=`cygpath -m "$file" || echo "$file"` | ||||
| 	  ;; | ||||
| 	wine/*) | ||||
| 	  file=`winepath -w "$file" || echo "$file"` | ||||
| 	  ;; | ||||
|       esac | ||||
|       ;; | ||||
|   esac | ||||
| } | ||||
|  | ||||
| # func_cl_dashL linkdir | ||||
| # Make cl look for libraries in LINKDIR | ||||
| func_cl_dashL () | ||||
| { | ||||
|   func_file_conv "$1" | ||||
|   if test -z "$lib_path"; then | ||||
|     lib_path=$file | ||||
|   else | ||||
|     lib_path="$lib_path;$file" | ||||
|   fi | ||||
|   linker_opts="$linker_opts -LIBPATH:$file" | ||||
| } | ||||
|  | ||||
| # func_cl_dashl library | ||||
| # Do a library search-path lookup for cl | ||||
| func_cl_dashl () | ||||
| { | ||||
|   lib=$1 | ||||
|   found=no | ||||
|   save_IFS=$IFS | ||||
|   IFS=';' | ||||
|   for dir in $lib_path $LIB | ||||
|   do | ||||
|     IFS=$save_IFS | ||||
|     if $shared && test -f "$dir/$lib.dll.lib"; then | ||||
|       found=yes | ||||
|       lib=$dir/$lib.dll.lib | ||||
|       break | ||||
|     fi | ||||
|     if test -f "$dir/$lib.lib"; then | ||||
|       found=yes | ||||
|       lib=$dir/$lib.lib | ||||
|       break | ||||
|     fi | ||||
|     if test -f "$dir/lib$lib.a"; then | ||||
|       found=yes | ||||
|       lib=$dir/lib$lib.a | ||||
|       break | ||||
|     fi | ||||
|   done | ||||
|   IFS=$save_IFS | ||||
|  | ||||
|   if test "$found" != yes; then | ||||
|     lib=$lib.lib | ||||
|   fi | ||||
| } | ||||
|  | ||||
| # func_cl_wrapper cl arg... | ||||
| # Adjust compile command to suit cl | ||||
| func_cl_wrapper () | ||||
| { | ||||
|   # Assume a capable shell | ||||
|   lib_path= | ||||
|   shared=: | ||||
|   linker_opts= | ||||
|   for arg | ||||
|   do | ||||
|     if test -n "$eat"; then | ||||
|       eat= | ||||
|     else | ||||
|       case $1 in | ||||
| 	-o) | ||||
| 	  # configure might choose to run compile as 'compile cc -o foo foo.c'. | ||||
| 	  eat=1 | ||||
| 	  case $2 in | ||||
| 	    *.o | *.[oO][bB][jJ]) | ||||
| 	      func_file_conv "$2" | ||||
| 	      set x "$@" -Fo"$file" | ||||
| 	      shift | ||||
| 	      ;; | ||||
| 	    *) | ||||
| 	      func_file_conv "$2" | ||||
| 	      set x "$@" -Fe"$file" | ||||
| 	      shift | ||||
| 	      ;; | ||||
| 	  esac | ||||
| 	  ;; | ||||
| 	-I) | ||||
| 	  eat=1 | ||||
| 	  func_file_conv "$2" mingw | ||||
| 	  set x "$@" -I"$file" | ||||
| 	  shift | ||||
| 	  ;; | ||||
| 	-I*) | ||||
| 	  func_file_conv "${1#-I}" mingw | ||||
| 	  set x "$@" -I"$file" | ||||
| 	  shift | ||||
| 	  ;; | ||||
| 	-l) | ||||
| 	  eat=1 | ||||
| 	  func_cl_dashl "$2" | ||||
| 	  set x "$@" "$lib" | ||||
| 	  shift | ||||
| 	  ;; | ||||
| 	-l*) | ||||
| 	  func_cl_dashl "${1#-l}" | ||||
| 	  set x "$@" "$lib" | ||||
| 	  shift | ||||
| 	  ;; | ||||
| 	-L) | ||||
| 	  eat=1 | ||||
| 	  func_cl_dashL "$2" | ||||
| 	  ;; | ||||
| 	-L*) | ||||
| 	  func_cl_dashL "${1#-L}" | ||||
| 	  ;; | ||||
| 	-static) | ||||
| 	  shared=false | ||||
| 	  ;; | ||||
| 	-Wl,*) | ||||
| 	  arg=${1#-Wl,} | ||||
| 	  save_ifs="$IFS"; IFS=',' | ||||
| 	  for flag in $arg; do | ||||
| 	    IFS="$save_ifs" | ||||
| 	    linker_opts="$linker_opts $flag" | ||||
| 	  done | ||||
| 	  IFS="$save_ifs" | ||||
| 	  ;; | ||||
| 	-Xlinker) | ||||
| 	  eat=1 | ||||
| 	  linker_opts="$linker_opts $2" | ||||
| 	  ;; | ||||
| 	-*) | ||||
| 	  set x "$@" "$1" | ||||
| 	  shift | ||||
| 	  ;; | ||||
| 	*.cc | *.CC | *.cxx | *.CXX | *.[cC]++) | ||||
| 	  func_file_conv "$1" | ||||
| 	  set x "$@" -Tp"$file" | ||||
| 	  shift | ||||
| 	  ;; | ||||
| 	*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) | ||||
| 	  func_file_conv "$1" mingw | ||||
| 	  set x "$@" "$file" | ||||
| 	  shift | ||||
| 	  ;; | ||||
| 	*) | ||||
| 	  set x "$@" "$1" | ||||
| 	  shift | ||||
| 	  ;; | ||||
|       esac | ||||
|     fi | ||||
|     shift | ||||
|   done | ||||
|   if test -n "$linker_opts"; then | ||||
|     linker_opts="-link$linker_opts" | ||||
|   fi | ||||
|   exec "$@" $linker_opts | ||||
|   exit 1 | ||||
| } | ||||
|  | ||||
| eat= | ||||
|  | ||||
| case $1 in | ||||
|   '') | ||||
|      echo "$0: No command.  Try '$0 --help' for more information." 1>&2 | ||||
|      exit 1; | ||||
|      ;; | ||||
|   -h | --h*) | ||||
|     cat <<\EOF | ||||
| Usage: compile [--help] [--version] PROGRAM [ARGS] | ||||
|  | ||||
| Wrapper for compilers which do not understand '-c -o'. | ||||
| Remove '-o dest.o' from ARGS, run PROGRAM with the remaining | ||||
| arguments, and rename the output as expected. | ||||
|  | ||||
| If you are trying to build a whole package this is not the | ||||
| right script to run: please start by reading the file 'INSTALL'. | ||||
|  | ||||
| Report bugs to <bug-automake@gnu.org>. | ||||
| EOF | ||||
|     exit $? | ||||
|     ;; | ||||
|   -v | --v*) | ||||
|     echo "compile $scriptversion" | ||||
|     exit $? | ||||
|     ;; | ||||
|   cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ | ||||
|   icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) | ||||
|     func_cl_wrapper "$@"      # Doesn't return... | ||||
|     ;; | ||||
| esac | ||||
|  | ||||
| ofile= | ||||
| cfile= | ||||
|  | ||||
| for arg | ||||
| do | ||||
|   if test -n "$eat"; then | ||||
|     eat= | ||||
|   else | ||||
|     case $1 in | ||||
|       -o) | ||||
| 	# configure might choose to run compile as 'compile cc -o foo foo.c'. | ||||
| 	# So we strip '-o arg' only if arg is an object. | ||||
| 	eat=1 | ||||
| 	case $2 in | ||||
| 	  *.o | *.obj) | ||||
| 	    ofile=$2 | ||||
| 	    ;; | ||||
| 	  *) | ||||
| 	    set x "$@" -o "$2" | ||||
| 	    shift | ||||
| 	    ;; | ||||
| 	esac | ||||
| 	;; | ||||
|       *.c) | ||||
| 	cfile=$1 | ||||
| 	set x "$@" "$1" | ||||
| 	shift | ||||
| 	;; | ||||
|       *) | ||||
| 	set x "$@" "$1" | ||||
| 	shift | ||||
| 	;; | ||||
|     esac | ||||
|   fi | ||||
|   shift | ||||
| done | ||||
|  | ||||
| if test -z "$ofile" || test -z "$cfile"; then | ||||
|   # If no '-o' option was seen then we might have been invoked from a | ||||
|   # pattern rule where we don't need one.  That is ok -- this is a | ||||
|   # normal compilation that the losing compiler can handle.  If no | ||||
|   # '.c' file was seen then we are probably linking.  That is also | ||||
|   # ok. | ||||
|   exec "$@" | ||||
| fi | ||||
|  | ||||
| # Name of file we expect compiler to create. | ||||
| cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` | ||||
|  | ||||
| # Create the lock directory. | ||||
| # Note: use '[/\\:.-]' here to ensure that we don't use the same name | ||||
| # that we are using for the .o file.  Also, base the name on the expected | ||||
| # object file name, since that is what matters with a parallel build. | ||||
| lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d | ||||
| while true; do | ||||
|   if mkdir "$lockdir" >/dev/null 2>&1; then | ||||
|     break | ||||
|   fi | ||||
|   sleep 1 | ||||
| done | ||||
| # FIXME: race condition here if user kills between mkdir and trap. | ||||
| trap "rmdir '$lockdir'; exit 1" 1 2 15 | ||||
|  | ||||
| # Run the compile. | ||||
| "$@" | ||||
| ret=$? | ||||
|  | ||||
| if test -f "$cofile"; then | ||||
|   test "$cofile" = "$ofile" || mv "$cofile" "$ofile" | ||||
| elif test -f "${cofile}bj"; then | ||||
|   test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" | ||||
| fi | ||||
|  | ||||
| rmdir "$lockdir" | ||||
| exit $ret | ||||
|  | ||||
| # Local Variables: | ||||
| # mode: shell-script | ||||
| # sh-indentation: 2 | ||||
| # eval: (add-hook 'before-save-hook 'time-stamp) | ||||
| # time-stamp-start: "scriptversion=" | ||||
| # time-stamp-format: "%:y-%02m-%02d.%02H" | ||||
| # time-stamp-time-zone: "UTC0" | ||||
| # time-stamp-end: "; # UTC" | ||||
| # End: | ||||
							
								
								
									
										1511
									
								
								inkycal/display/drivers/parallel_drivers/bcm2835-1.68/config.guess
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,29 @@ | ||||
| /* config.h.  Generated from config.h.in by configure.  */ | ||||
| /* config.h.in.  Generated from configure.ac by autoheader.  */ | ||||
|  | ||||
| /* Define to 1 if you have the `rt' library (-lrt). */ | ||||
| #define HAVE_LIBRT 1 | ||||
|  | ||||
| /* Name of package */ | ||||
| #define PACKAGE "bcm2835" | ||||
|  | ||||
| /* Define to the address where bug reports for this package should be sent. */ | ||||
| #define PACKAGE_BUGREPORT "mikem@airspayce.com" | ||||
|  | ||||
| /* Define to the full name of this package. */ | ||||
| #define PACKAGE_NAME "bcm2835" | ||||
|  | ||||
| /* Define to the full name and version of this package. */ | ||||
| #define PACKAGE_STRING "bcm2835 1.68" | ||||
|  | ||||
| /* Define to the one symbol short name of this package. */ | ||||
| #define PACKAGE_TARNAME "bcm2835" | ||||
|  | ||||
| /* Define to the home page for this package. */ | ||||
| #define PACKAGE_URL "" | ||||
|  | ||||
| /* Define to the version of this package. */ | ||||
| #define PACKAGE_VERSION "1.68" | ||||
|  | ||||
| /* Version number of package */ | ||||
| #define VERSION "1.68" | ||||
| @@ -0,0 +1,28 @@ | ||||
| /* config.h.in.  Generated from configure.ac by autoheader.  */ | ||||
|  | ||||
| /* Define to 1 if you have the `rt' library (-lrt). */ | ||||
| #undef HAVE_LIBRT | ||||
|  | ||||
| /* Name of package */ | ||||
| #undef PACKAGE | ||||
|  | ||||
| /* Define to the address where bug reports for this package should be sent. */ | ||||
| #undef PACKAGE_BUGREPORT | ||||
|  | ||||
| /* Define to the full name of this package. */ | ||||
| #undef PACKAGE_NAME | ||||
|  | ||||
| /* Define to the full name and version of this package. */ | ||||
| #undef PACKAGE_STRING | ||||
|  | ||||
| /* Define to the one symbol short name of this package. */ | ||||
| #undef PACKAGE_TARNAME | ||||
|  | ||||
| /* Define to the home page for this package. */ | ||||
| #undef PACKAGE_URL | ||||
|  | ||||
| /* Define to the version of this package. */ | ||||
| #undef PACKAGE_VERSION | ||||
|  | ||||
| /* Version number of package */ | ||||
| #undef VERSION | ||||
							
								
								
									
										1183
									
								
								inkycal/display/drivers/parallel_drivers/bcm2835-1.68/config.status
									
									
									
									
									
										Executable file
									
								
							
							
						
						
							
								
								
									
										1705
									
								
								inkycal/display/drivers/parallel_drivers/bcm2835-1.68/config.sub
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										5887
									
								
								inkycal/display/drivers/parallel_drivers/bcm2835-1.68/configure
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						| @@ -0,0 +1,23 @@ | ||||
| dnl -*-autoconf-*- | ||||
| dnl bcm2835: Autoconf script | ||||
| dnl  | ||||
| dnl $Id: configure.in,v 1.1 2012/12/01 22:56:52 mikem Exp mikem $ | ||||
| dnl (C) 2012 Mike McCauley (mikem@airspayce.com) | ||||
|  | ||||
| dnl Dont forget to update  BCM2835_VERSION and .tar.gz in bcm2835.h | ||||
| dnl and the zip file. | ||||
| AC_INIT([bcm2835], [1.68], [mikem@airspayce.com]) | ||||
|  | ||||
| AM_CONFIG_HEADER(config.h) | ||||
| AM_INIT_AUTOMAKE() | ||||
| AC_CHECK_LIB([rt], [clock_gettime]) | ||||
| AC_CHECK_PROGS([DOXYGEN], [doxygen]) | ||||
| if test -z "$DOXYGEN"; | ||||
|    then AC_MSG_WARN([Doxygen not found - continuing without Doxygen support]) | ||||
| fi | ||||
| AC_PROG_RANLIB | ||||
| AC_PROG_CC | ||||
| AC_CONFIG_MACRO_DIR([m4]) | ||||
| AM_CONDITIONAL([HAVE_DOXYGEN], [test -n "$DOXYGEN"]) | ||||
| AM_COND_IF([HAVE_DOXYGEN], [AC_CONFIG_FILES([doc/Doxyfile])]) | ||||
| AC_OUTPUT(Makefile src/Makefile doc/Makefile) | ||||
							
								
								
									
										630
									
								
								inkycal/display/drivers/parallel_drivers/bcm2835-1.68/depcomp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,630 @@ | ||||
| #! /bin/sh | ||||
| # depcomp - compile a program generating dependencies as side-effects | ||||
|  | ||||
| scriptversion=2009-04-28.21; # UTC | ||||
|  | ||||
| # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free | ||||
| # Software Foundation, Inc. | ||||
|  | ||||
| # 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, 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, see <http://www.gnu.org/licenses/>. | ||||
|  | ||||
| # As a special exception to the GNU General Public License, if you | ||||
| # distribute this file as part of a program that contains a | ||||
| # configuration script generated by Autoconf, you may include it under | ||||
| # the same distribution terms that you use for the rest of that program. | ||||
|  | ||||
| # Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>. | ||||
|  | ||||
| case $1 in | ||||
|   '') | ||||
|      echo "$0: No command.  Try \`$0 --help' for more information." 1>&2 | ||||
|      exit 1; | ||||
|      ;; | ||||
|   -h | --h*) | ||||
|     cat <<\EOF | ||||
| Usage: depcomp [--help] [--version] PROGRAM [ARGS] | ||||
|  | ||||
| Run PROGRAMS ARGS to compile a file, generating dependencies | ||||
| as side-effects. | ||||
|  | ||||
| Environment variables: | ||||
|   depmode     Dependency tracking mode. | ||||
|   source      Source file read by `PROGRAMS ARGS'. | ||||
|   object      Object file output by `PROGRAMS ARGS'. | ||||
|   DEPDIR      directory where to store dependencies. | ||||
|   depfile     Dependency file to output. | ||||
|   tmpdepfile  Temporary file to use when outputing dependencies. | ||||
|   libtool     Whether libtool is used (yes/no). | ||||
|  | ||||
| Report bugs to <bug-automake@gnu.org>. | ||||
| EOF | ||||
|     exit $? | ||||
|     ;; | ||||
|   -v | --v*) | ||||
|     echo "depcomp $scriptversion" | ||||
|     exit $? | ||||
|     ;; | ||||
| esac | ||||
|  | ||||
| if test -z "$depmode" || test -z "$source" || test -z "$object"; then | ||||
|   echo "depcomp: Variables source, object and depmode must be set" 1>&2 | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. | ||||
| depfile=${depfile-`echo "$object" | | ||||
|   sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} | ||||
| tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} | ||||
|  | ||||
| rm -f "$tmpdepfile" | ||||
|  | ||||
| # Some modes work just like other modes, but use different flags.  We | ||||
| # parameterize here, but still list the modes in the big case below, | ||||
| # to make depend.m4 easier to write.  Note that we *cannot* use a case | ||||
| # here, because this file can only contain one case statement. | ||||
| if test "$depmode" = hp; then | ||||
|   # HP compiler uses -M and no extra arg. | ||||
|   gccflag=-M | ||||
|   depmode=gcc | ||||
| fi | ||||
|  | ||||
| if test "$depmode" = dashXmstdout; then | ||||
|    # This is just like dashmstdout with a different argument. | ||||
|    dashmflag=-xM | ||||
|    depmode=dashmstdout | ||||
| fi | ||||
|  | ||||
| cygpath_u="cygpath -u -f -" | ||||
| if test "$depmode" = msvcmsys; then | ||||
|    # This is just like msvisualcpp but w/o cygpath translation. | ||||
|    # Just convert the backslash-escaped backslashes to single forward | ||||
|    # slashes to satisfy depend.m4 | ||||
|    cygpath_u="sed s,\\\\\\\\,/,g" | ||||
|    depmode=msvisualcpp | ||||
| fi | ||||
|  | ||||
| case "$depmode" in | ||||
| gcc3) | ||||
| ## gcc 3 implements dependency tracking that does exactly what | ||||
| ## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like | ||||
| ## it if -MD -MP comes after the -MF stuff.  Hmm. | ||||
| ## Unfortunately, FreeBSD c89 acceptance of flags depends upon | ||||
| ## the command line argument order; so add the flags where they | ||||
| ## appear in depend2.am.  Note that the slowdown incurred here | ||||
| ## affects only configure: in makefiles, %FASTDEP% shortcuts this. | ||||
|   for arg | ||||
|   do | ||||
|     case $arg in | ||||
|     -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; | ||||
|     *)  set fnord "$@" "$arg" ;; | ||||
|     esac | ||||
|     shift # fnord | ||||
|     shift # $arg | ||||
|   done | ||||
|   "$@" | ||||
|   stat=$? | ||||
|   if test $stat -eq 0; then : | ||||
|   else | ||||
|     rm -f "$tmpdepfile" | ||||
|     exit $stat | ||||
|   fi | ||||
|   mv "$tmpdepfile" "$depfile" | ||||
|   ;; | ||||
|  | ||||
| gcc) | ||||
| ## There are various ways to get dependency output from gcc.  Here's | ||||
| ## why we pick this rather obscure method: | ||||
| ## - Don't want to use -MD because we'd like the dependencies to end | ||||
| ##   up in a subdir.  Having to rename by hand is ugly. | ||||
| ##   (We might end up doing this anyway to support other compilers.) | ||||
| ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like | ||||
| ##   -MM, not -M (despite what the docs say). | ||||
| ## - Using -M directly means running the compiler twice (even worse | ||||
| ##   than renaming). | ||||
|   if test -z "$gccflag"; then | ||||
|     gccflag=-MD, | ||||
|   fi | ||||
|   "$@" -Wp,"$gccflag$tmpdepfile" | ||||
|   stat=$? | ||||
|   if test $stat -eq 0; then : | ||||
|   else | ||||
|     rm -f "$tmpdepfile" | ||||
|     exit $stat | ||||
|   fi | ||||
|   rm -f "$depfile" | ||||
|   echo "$object : \\" > "$depfile" | ||||
|   alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz | ||||
| ## The second -e expression handles DOS-style file names with drive letters. | ||||
|   sed -e 's/^[^:]*: / /' \ | ||||
|       -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" | ||||
| ## This next piece of magic avoids the `deleted header file' problem. | ||||
| ## The problem is that when a header file which appears in a .P file | ||||
| ## is deleted, the dependency causes make to die (because there is | ||||
| ## typically no way to rebuild the header).  We avoid this by adding | ||||
| ## dummy dependencies for each header file.  Too bad gcc doesn't do | ||||
| ## this for us directly. | ||||
|   tr ' ' ' | ||||
| ' < "$tmpdepfile" | | ||||
| ## Some versions of gcc put a space before the `:'.  On the theory | ||||
| ## that the space means something, we add a space to the output as | ||||
| ## well. | ||||
| ## Some versions of the HPUX 10.20 sed can't process this invocation | ||||
| ## correctly.  Breaking it into two sed invocations is a workaround. | ||||
|     sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" | ||||
|   rm -f "$tmpdepfile" | ||||
|   ;; | ||||
|  | ||||
| hp) | ||||
|   # This case exists only to let depend.m4 do its work.  It works by | ||||
|   # looking at the text of this script.  This case will never be run, | ||||
|   # since it is checked for above. | ||||
|   exit 1 | ||||
|   ;; | ||||
|  | ||||
| sgi) | ||||
|   if test "$libtool" = yes; then | ||||
|     "$@" "-Wp,-MDupdate,$tmpdepfile" | ||||
|   else | ||||
|     "$@" -MDupdate "$tmpdepfile" | ||||
|   fi | ||||
|   stat=$? | ||||
|   if test $stat -eq 0; then : | ||||
|   else | ||||
|     rm -f "$tmpdepfile" | ||||
|     exit $stat | ||||
|   fi | ||||
|   rm -f "$depfile" | ||||
|  | ||||
|   if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files | ||||
|     echo "$object : \\" > "$depfile" | ||||
|  | ||||
|     # Clip off the initial element (the dependent).  Don't try to be | ||||
|     # clever and replace this with sed code, as IRIX sed won't handle | ||||
|     # lines with more than a fixed number of characters (4096 in | ||||
|     # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines; | ||||
|     # the IRIX cc adds comments like `#:fec' to the end of the | ||||
|     # dependency line. | ||||
|     tr ' ' ' | ||||
| ' < "$tmpdepfile" \ | ||||
|     | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ | ||||
|     tr ' | ||||
| ' ' ' >> "$depfile" | ||||
|     echo >> "$depfile" | ||||
|  | ||||
|     # The second pass generates a dummy entry for each header file. | ||||
|     tr ' ' ' | ||||
| ' < "$tmpdepfile" \ | ||||
|    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ | ||||
|    >> "$depfile" | ||||
|   else | ||||
|     # The sourcefile does not contain any dependencies, so just | ||||
|     # store a dummy comment line, to avoid errors with the Makefile | ||||
|     # "include basename.Plo" scheme. | ||||
|     echo "#dummy" > "$depfile" | ||||
|   fi | ||||
|   rm -f "$tmpdepfile" | ||||
|   ;; | ||||
|  | ||||
| aix) | ||||
|   # The C for AIX Compiler uses -M and outputs the dependencies | ||||
|   # in a .u file.  In older versions, this file always lives in the | ||||
|   # current directory.  Also, the AIX compiler puts `$object:' at the | ||||
|   # start of each line; $object doesn't have directory information. | ||||
|   # Version 6 uses the directory in both cases. | ||||
|   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` | ||||
|   test "x$dir" = "x$object" && dir= | ||||
|   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` | ||||
|   if test "$libtool" = yes; then | ||||
|     tmpdepfile1=$dir$base.u | ||||
|     tmpdepfile2=$base.u | ||||
|     tmpdepfile3=$dir.libs/$base.u | ||||
|     "$@" -Wc,-M | ||||
|   else | ||||
|     tmpdepfile1=$dir$base.u | ||||
|     tmpdepfile2=$dir$base.u | ||||
|     tmpdepfile3=$dir$base.u | ||||
|     "$@" -M | ||||
|   fi | ||||
|   stat=$? | ||||
|  | ||||
|   if test $stat -eq 0; then : | ||||
|   else | ||||
|     rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" | ||||
|     exit $stat | ||||
|   fi | ||||
|  | ||||
|   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" | ||||
|   do | ||||
|     test -f "$tmpdepfile" && break | ||||
|   done | ||||
|   if test -f "$tmpdepfile"; then | ||||
|     # Each line is of the form `foo.o: dependent.h'. | ||||
|     # Do two passes, one to just change these to | ||||
|     # `$object: dependent.h' and one to simply `dependent.h:'. | ||||
|     sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" | ||||
|     # That's a tab and a space in the []. | ||||
|     sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" | ||||
|   else | ||||
|     # The sourcefile does not contain any dependencies, so just | ||||
|     # store a dummy comment line, to avoid errors with the Makefile | ||||
|     # "include basename.Plo" scheme. | ||||
|     echo "#dummy" > "$depfile" | ||||
|   fi | ||||
|   rm -f "$tmpdepfile" | ||||
|   ;; | ||||
|  | ||||
| icc) | ||||
|   # Intel's C compiler understands `-MD -MF file'.  However on | ||||
|   #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c | ||||
|   # ICC 7.0 will fill foo.d with something like | ||||
|   #    foo.o: sub/foo.c | ||||
|   #    foo.o: sub/foo.h | ||||
|   # which is wrong.  We want: | ||||
|   #    sub/foo.o: sub/foo.c | ||||
|   #    sub/foo.o: sub/foo.h | ||||
|   #    sub/foo.c: | ||||
|   #    sub/foo.h: | ||||
|   # ICC 7.1 will output | ||||
|   #    foo.o: sub/foo.c sub/foo.h | ||||
|   # and will wrap long lines using \ : | ||||
|   #    foo.o: sub/foo.c ... \ | ||||
|   #     sub/foo.h ... \ | ||||
|   #     ... | ||||
|  | ||||
|   "$@" -MD -MF "$tmpdepfile" | ||||
|   stat=$? | ||||
|   if test $stat -eq 0; then : | ||||
|   else | ||||
|     rm -f "$tmpdepfile" | ||||
|     exit $stat | ||||
|   fi | ||||
|   rm -f "$depfile" | ||||
|   # Each line is of the form `foo.o: dependent.h', | ||||
|   # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. | ||||
|   # Do two passes, one to just change these to | ||||
|   # `$object: dependent.h' and one to simply `dependent.h:'. | ||||
|   sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" | ||||
|   # Some versions of the HPUX 10.20 sed can't process this invocation | ||||
|   # correctly.  Breaking it into two sed invocations is a workaround. | ||||
|   sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | | ||||
|     sed -e 's/$/ :/' >> "$depfile" | ||||
|   rm -f "$tmpdepfile" | ||||
|   ;; | ||||
|  | ||||
| hp2) | ||||
|   # The "hp" stanza above does not work with aCC (C++) and HP's ia64 | ||||
|   # compilers, which have integrated preprocessors.  The correct option | ||||
|   # to use with these is +Maked; it writes dependencies to a file named | ||||
|   # 'foo.d', which lands next to the object file, wherever that | ||||
|   # happens to be. | ||||
|   # Much of this is similar to the tru64 case; see comments there. | ||||
|   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` | ||||
|   test "x$dir" = "x$object" && dir= | ||||
|   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` | ||||
|   if test "$libtool" = yes; then | ||||
|     tmpdepfile1=$dir$base.d | ||||
|     tmpdepfile2=$dir.libs/$base.d | ||||
|     "$@" -Wc,+Maked | ||||
|   else | ||||
|     tmpdepfile1=$dir$base.d | ||||
|     tmpdepfile2=$dir$base.d | ||||
|     "$@" +Maked | ||||
|   fi | ||||
|   stat=$? | ||||
|   if test $stat -eq 0; then : | ||||
|   else | ||||
|      rm -f "$tmpdepfile1" "$tmpdepfile2" | ||||
|      exit $stat | ||||
|   fi | ||||
|  | ||||
|   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" | ||||
|   do | ||||
|     test -f "$tmpdepfile" && break | ||||
|   done | ||||
|   if test -f "$tmpdepfile"; then | ||||
|     sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" | ||||
|     # Add `dependent.h:' lines. | ||||
|     sed -ne '2,${ | ||||
| 	       s/^ *// | ||||
| 	       s/ \\*$// | ||||
| 	       s/$/:/ | ||||
| 	       p | ||||
| 	     }' "$tmpdepfile" >> "$depfile" | ||||
|   else | ||||
|     echo "#dummy" > "$depfile" | ||||
|   fi | ||||
|   rm -f "$tmpdepfile" "$tmpdepfile2" | ||||
|   ;; | ||||
|  | ||||
| tru64) | ||||
|    # The Tru64 compiler uses -MD to generate dependencies as a side | ||||
|    # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. | ||||
|    # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put | ||||
|    # dependencies in `foo.d' instead, so we check for that too. | ||||
|    # Subdirectories are respected. | ||||
|    dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` | ||||
|    test "x$dir" = "x$object" && dir= | ||||
|    base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` | ||||
|  | ||||
|    if test "$libtool" = yes; then | ||||
|       # With Tru64 cc, shared objects can also be used to make a | ||||
|       # static library.  This mechanism is used in libtool 1.4 series to | ||||
|       # handle both shared and static libraries in a single compilation. | ||||
|       # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. | ||||
|       # | ||||
|       # With libtool 1.5 this exception was removed, and libtool now | ||||
|       # generates 2 separate objects for the 2 libraries.  These two | ||||
|       # compilations output dependencies in $dir.libs/$base.o.d and | ||||
|       # in $dir$base.o.d.  We have to check for both files, because | ||||
|       # one of the two compilations can be disabled.  We should prefer | ||||
|       # $dir$base.o.d over $dir.libs/$base.o.d because the latter is | ||||
|       # automatically cleaned when .libs/ is deleted, while ignoring | ||||
|       # the former would cause a distcleancheck panic. | ||||
|       tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4 | ||||
|       tmpdepfile2=$dir$base.o.d          # libtool 1.5 | ||||
|       tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5 | ||||
|       tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504 | ||||
|       "$@" -Wc,-MD | ||||
|    else | ||||
|       tmpdepfile1=$dir$base.o.d | ||||
|       tmpdepfile2=$dir$base.d | ||||
|       tmpdepfile3=$dir$base.d | ||||
|       tmpdepfile4=$dir$base.d | ||||
|       "$@" -MD | ||||
|    fi | ||||
|  | ||||
|    stat=$? | ||||
|    if test $stat -eq 0; then : | ||||
|    else | ||||
|       rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" | ||||
|       exit $stat | ||||
|    fi | ||||
|  | ||||
|    for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" | ||||
|    do | ||||
|      test -f "$tmpdepfile" && break | ||||
|    done | ||||
|    if test -f "$tmpdepfile"; then | ||||
|       sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" | ||||
|       # That's a tab and a space in the []. | ||||
|       sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" | ||||
|    else | ||||
|       echo "#dummy" > "$depfile" | ||||
|    fi | ||||
|    rm -f "$tmpdepfile" | ||||
|    ;; | ||||
|  | ||||
| #nosideeffect) | ||||
|   # This comment above is used by automake to tell side-effect | ||||
|   # dependency tracking mechanisms from slower ones. | ||||
|  | ||||
| dashmstdout) | ||||
|   # Important note: in order to support this mode, a compiler *must* | ||||
|   # always write the preprocessed file to stdout, regardless of -o. | ||||
|   "$@" || exit $? | ||||
|  | ||||
|   # Remove the call to Libtool. | ||||
|   if test "$libtool" = yes; then | ||||
|     while test "X$1" != 'X--mode=compile'; do | ||||
|       shift | ||||
|     done | ||||
|     shift | ||||
|   fi | ||||
|  | ||||
|   # Remove `-o $object'. | ||||
|   IFS=" " | ||||
|   for arg | ||||
|   do | ||||
|     case $arg in | ||||
|     -o) | ||||
|       shift | ||||
|       ;; | ||||
|     $object) | ||||
|       shift | ||||
|       ;; | ||||
|     *) | ||||
|       set fnord "$@" "$arg" | ||||
|       shift # fnord | ||||
|       shift # $arg | ||||
|       ;; | ||||
|     esac | ||||
|   done | ||||
|  | ||||
|   test -z "$dashmflag" && dashmflag=-M | ||||
|   # Require at least two characters before searching for `:' | ||||
|   # in the target name.  This is to cope with DOS-style filenames: | ||||
|   # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. | ||||
|   "$@" $dashmflag | | ||||
|     sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile" | ||||
|   rm -f "$depfile" | ||||
|   cat < "$tmpdepfile" > "$depfile" | ||||
|   tr ' ' ' | ||||
| ' < "$tmpdepfile" | \ | ||||
| ## Some versions of the HPUX 10.20 sed can't process this invocation | ||||
| ## correctly.  Breaking it into two sed invocations is a workaround. | ||||
|     sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" | ||||
|   rm -f "$tmpdepfile" | ||||
|   ;; | ||||
|  | ||||
| dashXmstdout) | ||||
|   # This case only exists to satisfy depend.m4.  It is never actually | ||||
|   # run, as this mode is specially recognized in the preamble. | ||||
|   exit 1 | ||||
|   ;; | ||||
|  | ||||
| makedepend) | ||||
|   "$@" || exit $? | ||||
|   # Remove any Libtool call | ||||
|   if test "$libtool" = yes; then | ||||
|     while test "X$1" != 'X--mode=compile'; do | ||||
|       shift | ||||
|     done | ||||
|     shift | ||||
|   fi | ||||
|   # X makedepend | ||||
|   shift | ||||
|   cleared=no eat=no | ||||
|   for arg | ||||
|   do | ||||
|     case $cleared in | ||||
|     no) | ||||
|       set ""; shift | ||||
|       cleared=yes ;; | ||||
|     esac | ||||
|     if test $eat = yes; then | ||||
|       eat=no | ||||
|       continue | ||||
|     fi | ||||
|     case "$arg" in | ||||
|     -D*|-I*) | ||||
|       set fnord "$@" "$arg"; shift ;; | ||||
|     # Strip any option that makedepend may not understand.  Remove | ||||
|     # the object too, otherwise makedepend will parse it as a source file. | ||||
|     -arch) | ||||
|       eat=yes ;; | ||||
|     -*|$object) | ||||
|       ;; | ||||
|     *) | ||||
|       set fnord "$@" "$arg"; shift ;; | ||||
|     esac | ||||
|   done | ||||
|   obj_suffix=`echo "$object" | sed 's/^.*\././'` | ||||
|   touch "$tmpdepfile" | ||||
|   ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" | ||||
|   rm -f "$depfile" | ||||
|   cat < "$tmpdepfile" > "$depfile" | ||||
|   sed '1,2d' "$tmpdepfile" | tr ' ' ' | ||||
| ' | \ | ||||
| ## Some versions of the HPUX 10.20 sed can't process this invocation | ||||
| ## correctly.  Breaking it into two sed invocations is a workaround. | ||||
|     sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" | ||||
|   rm -f "$tmpdepfile" "$tmpdepfile".bak | ||||
|   ;; | ||||
|  | ||||
| cpp) | ||||
|   # Important note: in order to support this mode, a compiler *must* | ||||
|   # always write the preprocessed file to stdout. | ||||
|   "$@" || exit $? | ||||
|  | ||||
|   # Remove the call to Libtool. | ||||
|   if test "$libtool" = yes; then | ||||
|     while test "X$1" != 'X--mode=compile'; do | ||||
|       shift | ||||
|     done | ||||
|     shift | ||||
|   fi | ||||
|  | ||||
|   # Remove `-o $object'. | ||||
|   IFS=" " | ||||
|   for arg | ||||
|   do | ||||
|     case $arg in | ||||
|     -o) | ||||
|       shift | ||||
|       ;; | ||||
|     $object) | ||||
|       shift | ||||
|       ;; | ||||
|     *) | ||||
|       set fnord "$@" "$arg" | ||||
|       shift # fnord | ||||
|       shift # $arg | ||||
|       ;; | ||||
|     esac | ||||
|   done | ||||
|  | ||||
|   "$@" -E | | ||||
|     sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ | ||||
|        -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | | ||||
|     sed '$ s: \\$::' > "$tmpdepfile" | ||||
|   rm -f "$depfile" | ||||
|   echo "$object : \\" > "$depfile" | ||||
|   cat < "$tmpdepfile" >> "$depfile" | ||||
|   sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" | ||||
|   rm -f "$tmpdepfile" | ||||
|   ;; | ||||
|  | ||||
| msvisualcpp) | ||||
|   # Important note: in order to support this mode, a compiler *must* | ||||
|   # always write the preprocessed file to stdout. | ||||
|   "$@" || exit $? | ||||
|  | ||||
|   # Remove the call to Libtool. | ||||
|   if test "$libtool" = yes; then | ||||
|     while test "X$1" != 'X--mode=compile'; do | ||||
|       shift | ||||
|     done | ||||
|     shift | ||||
|   fi | ||||
|  | ||||
|   IFS=" " | ||||
|   for arg | ||||
|   do | ||||
|     case "$arg" in | ||||
|     -o) | ||||
|       shift | ||||
|       ;; | ||||
|     $object) | ||||
|       shift | ||||
|       ;; | ||||
|     "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") | ||||
| 	set fnord "$@" | ||||
| 	shift | ||||
| 	shift | ||||
| 	;; | ||||
|     *) | ||||
| 	set fnord "$@" "$arg" | ||||
| 	shift | ||||
| 	shift | ||||
| 	;; | ||||
|     esac | ||||
|   done | ||||
|   "$@" -E 2>/dev/null | | ||||
|   sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" | ||||
|   rm -f "$depfile" | ||||
|   echo "$object : \\" > "$depfile" | ||||
|   sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::	\1 \\:p' >> "$depfile" | ||||
|   echo "	" >> "$depfile" | ||||
|   sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" | ||||
|   rm -f "$tmpdepfile" | ||||
|   ;; | ||||
|  | ||||
| msvcmsys) | ||||
|   # This case exists only to let depend.m4 do its work.  It works by | ||||
|   # looking at the text of this script.  This case will never be run, | ||||
|   # since it is checked for above. | ||||
|   exit 1 | ||||
|   ;; | ||||
|  | ||||
| none) | ||||
|   exec "$@" | ||||
|   ;; | ||||
|  | ||||
| *) | ||||
|   echo "Unknown depmode $depmode" 1>&2 | ||||
|   exit 1 | ||||
|   ;; | ||||
| esac | ||||
|  | ||||
| exit 0 | ||||
|  | ||||
| # Local Variables: | ||||
| # mode: shell-script | ||||
| # sh-indentation: 2 | ||||
| # eval: (add-hook 'write-file-hooks 'time-stamp) | ||||
| # time-stamp-start: "scriptversion=" | ||||
| # time-stamp-format: "%:y-%02m-%02d.%02H" | ||||
| # time-stamp-time-zone: "UTC" | ||||
| # time-stamp-end: "; # UTC" | ||||
| # End: | ||||
| @@ -0,0 +1,413 @@ | ||||
| # Makefile.in generated by automake 1.16.1 from Makefile.am. | ||||
| # doc/Makefile.  Generated from Makefile.in by configure. | ||||
|  | ||||
| # Copyright (C) 1994-2018 Free Software Foundation, Inc. | ||||
|  | ||||
| # This Makefile.in is free software; the Free Software Foundation | ||||
| # gives unlimited permission to copy and/or distribute it, | ||||
| # with or without modifications, as long as this notice is preserved. | ||||
|  | ||||
| # This program is distributed in the hope that it will be useful, | ||||
| # but WITHOUT ANY WARRANTY, to the extent permitted by law; without | ||||
| # even the implied warranty of MERCHANTABILITY or FITNESS FOR A | ||||
| # PARTICULAR PURPOSE. | ||||
|  | ||||
|  | ||||
|  | ||||
| am__is_gnu_make = { \ | ||||
|   if test -z '$(MAKELEVEL)'; then \ | ||||
|     false; \ | ||||
|   elif test -n '$(MAKE_HOST)'; then \ | ||||
|     true; \ | ||||
|   elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ | ||||
|     true; \ | ||||
|   else \ | ||||
|     false; \ | ||||
|   fi; \ | ||||
| } | ||||
| am__make_running_with_option = \ | ||||
|   case $${target_option-} in \ | ||||
|       ?) ;; \ | ||||
|       *) echo "am__make_running_with_option: internal error: invalid" \ | ||||
|               "target option '$${target_option-}' specified" >&2; \ | ||||
|          exit 1;; \ | ||||
|   esac; \ | ||||
|   has_opt=no; \ | ||||
|   sane_makeflags=$$MAKEFLAGS; \ | ||||
|   if $(am__is_gnu_make); then \ | ||||
|     sane_makeflags=$$MFLAGS; \ | ||||
|   else \ | ||||
|     case $$MAKEFLAGS in \ | ||||
|       *\\[\ \	]*) \ | ||||
|         bs=\\; \ | ||||
|         sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | ||||
|           | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \ | ||||
|     esac; \ | ||||
|   fi; \ | ||||
|   skip_next=no; \ | ||||
|   strip_trailopt () \ | ||||
|   { \ | ||||
|     flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ | ||||
|   }; \ | ||||
|   for flg in $$sane_makeflags; do \ | ||||
|     test $$skip_next = yes && { skip_next=no; continue; }; \ | ||||
|     case $$flg in \ | ||||
|       *=*|--*) continue;; \ | ||||
|         -*I) strip_trailopt 'I'; skip_next=yes;; \ | ||||
|       -*I?*) strip_trailopt 'I';; \ | ||||
|         -*O) strip_trailopt 'O'; skip_next=yes;; \ | ||||
|       -*O?*) strip_trailopt 'O';; \ | ||||
|         -*l) strip_trailopt 'l'; skip_next=yes;; \ | ||||
|       -*l?*) strip_trailopt 'l';; \ | ||||
|       -[dEDm]) skip_next=yes;; \ | ||||
|       -[JT]) skip_next=yes;; \ | ||||
|     esac; \ | ||||
|     case $$flg in \ | ||||
|       *$$target_option*) has_opt=yes; break;; \ | ||||
|     esac; \ | ||||
|   done; \ | ||||
|   test $$has_opt = yes | ||||
| am__make_dryrun = (target_option=n; $(am__make_running_with_option)) | ||||
| am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) | ||||
| pkgdatadir = $(datadir)/bcm2835 | ||||
| pkgincludedir = $(includedir)/bcm2835 | ||||
| pkglibdir = $(libdir)/bcm2835 | ||||
| pkglibexecdir = $(libexecdir)/bcm2835 | ||||
| am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd | ||||
| install_sh_DATA = $(install_sh) -c -m 644 | ||||
| install_sh_PROGRAM = $(install_sh) -c | ||||
| install_sh_SCRIPT = $(install_sh) -c | ||||
| INSTALL_HEADER = $(INSTALL_DATA) | ||||
| transform = $(program_transform_name) | ||||
| NORMAL_INSTALL = : | ||||
| PRE_INSTALL = : | ||||
| POST_INSTALL = : | ||||
| NORMAL_UNINSTALL = : | ||||
| PRE_UNINSTALL = : | ||||
| POST_UNINSTALL = : | ||||
| subdir = doc | ||||
| ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | ||||
| am__aclocal_m4_deps = $(top_srcdir)/configure.ac | ||||
| am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ | ||||
| 	$(ACLOCAL_M4) | ||||
| DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) | ||||
| mkinstalldirs = $(install_sh) -d | ||||
| CONFIG_HEADER = $(top_builddir)/config.h | ||||
| CONFIG_CLEAN_FILES = Doxyfile | ||||
| CONFIG_CLEAN_VPATH_FILES = | ||||
| AM_V_P = $(am__v_P_$(V)) | ||||
| am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY)) | ||||
| am__v_P_0 = false | ||||
| am__v_P_1 = : | ||||
| AM_V_GEN = $(am__v_GEN_$(V)) | ||||
| am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) | ||||
| am__v_GEN_0 = @echo "  GEN     " $@; | ||||
| am__v_GEN_1 =  | ||||
| AM_V_at = $(am__v_at_$(V)) | ||||
| am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) | ||||
| am__v_at_0 = @ | ||||
| am__v_at_1 =  | ||||
| SOURCES = | ||||
| DIST_SOURCES = | ||||
| am__can_run_installinfo = \ | ||||
|   case $$AM_UPDATE_INFO_DIR in \ | ||||
|     n|no|NO) false;; \ | ||||
|     *) (install-info --version) >/dev/null 2>&1;; \ | ||||
|   esac | ||||
| am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) | ||||
| am__DIST_COMMON = $(srcdir)/Doxyfile.in $(srcdir)/Makefile.in | ||||
| DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | ||||
| ACLOCAL = ${SHELL} /home/pi/InkycalVenv/inkycal/display/drivers/7_in_8_drivers/bcm2835-1.68/missing aclocal-1.16 | ||||
| AMTAR = $${TAR-tar} | ||||
| AM_DEFAULT_VERBOSITY = 1 | ||||
| AUTOCONF = ${SHELL} /home/pi/InkycalVenv/inkycal/display/drivers/7_in_8_drivers/bcm2835-1.68/missing autoconf | ||||
| AUTOHEADER = ${SHELL} /home/pi/InkycalVenv/inkycal/display/drivers/7_in_8_drivers/bcm2835-1.68/missing autoheader | ||||
| AUTOMAKE = ${SHELL} /home/pi/InkycalVenv/inkycal/display/drivers/7_in_8_drivers/bcm2835-1.68/missing automake-1.16 | ||||
| AWK = mawk | ||||
| CC = gcc | ||||
| CCDEPMODE = depmode=gcc3 | ||||
| CFLAGS = -g -O2 | ||||
| CPPFLAGS =  | ||||
| CYGPATH_W = echo | ||||
| DEFS = -DHAVE_CONFIG_H | ||||
| DEPDIR = .deps | ||||
| DOXYGEN =  | ||||
| ECHO_C =  | ||||
| ECHO_N = -n | ||||
| ECHO_T =  | ||||
| EXEEXT =  | ||||
| INSTALL = /usr/bin/install -c | ||||
| INSTALL_DATA = ${INSTALL} -m 644 | ||||
| INSTALL_PROGRAM = ${INSTALL} | ||||
| INSTALL_SCRIPT = ${INSTALL} | ||||
| INSTALL_STRIP_PROGRAM = $(install_sh) -c -s | ||||
| LDFLAGS =  | ||||
| LIBOBJS =  | ||||
| LIBS = -lrt  | ||||
| LTLIBOBJS =  | ||||
| MAKEINFO = ${SHELL} /home/pi/InkycalVenv/inkycal/display/drivers/7_in_8_drivers/bcm2835-1.68/missing makeinfo | ||||
| MKDIR_P = /bin/mkdir -p | ||||
| OBJEXT = o | ||||
| PACKAGE = bcm2835 | ||||
| PACKAGE_BUGREPORT = mikem@airspayce.com | ||||
| PACKAGE_NAME = bcm2835 | ||||
| PACKAGE_STRING = bcm2835 1.68 | ||||
| PACKAGE_TARNAME = bcm2835 | ||||
| PACKAGE_URL =  | ||||
| PACKAGE_VERSION = 1.68 | ||||
| PATH_SEPARATOR = : | ||||
| RANLIB = ranlib | ||||
| SET_MAKE =  | ||||
| SHELL = /bin/bash | ||||
| STRIP =  | ||||
| VERSION = 1.68 | ||||
| abs_builddir = /home/pi/InkycalVenv/inkycal/display/drivers/7_in_8_drivers/bcm2835-1.68/doc | ||||
| abs_srcdir = /home/pi/InkycalVenv/inkycal/display/drivers/7_in_8_drivers/bcm2835-1.68/doc | ||||
| abs_top_builddir = /home/pi/InkycalVenv/inkycal/display/drivers/7_in_8_drivers/bcm2835-1.68 | ||||
| abs_top_srcdir = /home/pi/InkycalVenv/inkycal/display/drivers/7_in_8_drivers/bcm2835-1.68 | ||||
| ac_ct_CC = gcc | ||||
| am__include = include | ||||
| am__leading_dot = . | ||||
| am__quote =  | ||||
| am__tar = $${TAR-tar} chof - "$$tardir" | ||||
| am__untar = $${TAR-tar} xf - | ||||
| bindir = ${exec_prefix}/bin | ||||
| build_alias =  | ||||
| builddir = . | ||||
| datadir = ${datarootdir} | ||||
| datarootdir = ${prefix}/share | ||||
| docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} | ||||
| dvidir = ${docdir} | ||||
| exec_prefix = ${prefix} | ||||
| host_alias =  | ||||
| htmldir = ${docdir} | ||||
| includedir = ${prefix}/include | ||||
| infodir = ${datarootdir}/info | ||||
| install_sh = ${SHELL} /home/pi/InkycalVenv/inkycal/display/drivers/7_in_8_drivers/bcm2835-1.68/install-sh | ||||
| libdir = ${exec_prefix}/lib | ||||
| libexecdir = ${exec_prefix}/libexec | ||||
| localedir = ${datarootdir}/locale | ||||
| localstatedir = ${prefix}/var | ||||
| mandir = ${datarootdir}/man | ||||
| mkdir_p = $(MKDIR_P) | ||||
| oldincludedir = /usr/include | ||||
| pdfdir = ${docdir} | ||||
| prefix = /usr/local | ||||
| program_transform_name = s,x,x, | ||||
| psdir = ${docdir} | ||||
| runstatedir = ${localstatedir}/run | ||||
| sbindir = ${exec_prefix}/sbin | ||||
| sharedstatedir = ${prefix}/com | ||||
| srcdir = . | ||||
| sysconfdir = ${prefix}/etc | ||||
| target_alias =  | ||||
| top_build_prefix = ../ | ||||
| top_builddir = .. | ||||
| top_srcdir = .. | ||||
| #CLEANFILES = doxyfile.stamp *~ | ||||
| all: all-am | ||||
|  | ||||
| .SUFFIXES: | ||||
| $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps) | ||||
| 	@for dep in $?; do \ | ||||
| 	  case '$(am__configure_deps)' in \ | ||||
| 	    *$$dep*) \ | ||||
| 	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ | ||||
| 	        && { if test -f $@; then exit 0; else break; fi; }; \ | ||||
| 	      exit 1;; \ | ||||
| 	  esac; \ | ||||
| 	done; \ | ||||
| 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ | ||||
| 	$(am__cd) $(top_srcdir) && \ | ||||
| 	  $(AUTOMAKE) --gnu doc/Makefile | ||||
| Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | ||||
| 	@case '$?' in \ | ||||
| 	  *config.status*) \ | ||||
| 	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ | ||||
| 	  *) \ | ||||
| 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ | ||||
| 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ | ||||
| 	esac; | ||||
|  | ||||
| $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) | ||||
| 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||||
|  | ||||
| $(top_srcdir)/configure:  $(am__configure_deps) | ||||
| 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||||
| $(ACLOCAL_M4):  $(am__aclocal_m4_deps) | ||||
| 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||||
| $(am__aclocal_m4_deps): | ||||
| #Doxyfile: $(top_builddir)/config.status $(srcdir)/Doxyfile.in | ||||
| #	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ | ||||
| tags TAGS: | ||||
|  | ||||
| ctags CTAGS: | ||||
|  | ||||
| cscope cscopelist: | ||||
|  | ||||
|  | ||||
| distdir: $(BUILT_SOURCES) | ||||
| 	$(MAKE) $(AM_MAKEFLAGS) distdir-am | ||||
|  | ||||
| distdir-am: $(DISTFILES) | ||||
| 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | ||||
| 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | ||||
| 	list='$(DISTFILES)'; \ | ||||
| 	  dist_files=`for file in $$list; do echo $$file; done | \ | ||||
| 	  sed -e "s|^$$srcdirstrip/||;t" \ | ||||
| 	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | ||||
| 	case $$dist_files in \ | ||||
| 	  */*) $(MKDIR_P) `echo "$$dist_files" | \ | ||||
| 			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | ||||
| 			   sort -u` ;; \ | ||||
| 	esac; \ | ||||
| 	for file in $$dist_files; do \ | ||||
| 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | ||||
| 	  if test -d $$d/$$file; then \ | ||||
| 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | ||||
| 	    if test -d "$(distdir)/$$file"; then \ | ||||
| 	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | ||||
| 	    fi; \ | ||||
| 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | ||||
| 	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | ||||
| 	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | ||||
| 	    fi; \ | ||||
| 	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | ||||
| 	  else \ | ||||
| 	    test -f "$(distdir)/$$file" \ | ||||
| 	    || cp -p $$d/$$file "$(distdir)/$$file" \ | ||||
| 	    || exit 1; \ | ||||
| 	  fi; \ | ||||
| 	done | ||||
| check-am: all-am | ||||
| check: check-am | ||||
| all-local: | ||||
| all-am: Makefile all-local | ||||
| installdirs: | ||||
| install: install-am | ||||
| install-exec: install-exec-am | ||||
| install-data: install-data-am | ||||
| uninstall: uninstall-am | ||||
|  | ||||
| install-am: all-am | ||||
| 	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am | ||||
|  | ||||
| installcheck: installcheck-am | ||||
| install-strip: | ||||
| 	if test -z '$(STRIP)'; then \ | ||||
| 	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | ||||
| 	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | ||||
| 	      install; \ | ||||
| 	else \ | ||||
| 	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | ||||
| 	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | ||||
| 	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ | ||||
| 	fi | ||||
| mostlyclean-generic: | ||||
|  | ||||
| clean-generic: | ||||
| 	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) | ||||
|  | ||||
| distclean-generic: | ||||
| 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) | ||||
| 	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) | ||||
|  | ||||
| maintainer-clean-generic: | ||||
| 	@echo "This command is intended for maintainers to use" | ||||
| 	@echo "it deletes files that may require special tools to rebuild." | ||||
| clean-local: | ||||
| clean: clean-am | ||||
|  | ||||
| clean-am: clean-generic clean-local mostlyclean-am | ||||
|  | ||||
| distclean: distclean-am | ||||
| 	-rm -f Makefile | ||||
| distclean-am: clean-am distclean-generic | ||||
|  | ||||
| dvi: dvi-am | ||||
|  | ||||
| dvi-am: | ||||
|  | ||||
| html: html-am | ||||
|  | ||||
| html-am: | ||||
|  | ||||
| info: info-am | ||||
|  | ||||
| info-am: | ||||
|  | ||||
| install-data-am: | ||||
|  | ||||
| install-dvi: install-dvi-am | ||||
|  | ||||
| install-dvi-am: | ||||
|  | ||||
| install-exec-am: | ||||
|  | ||||
| install-html: install-html-am | ||||
|  | ||||
| install-html-am: | ||||
|  | ||||
| install-info: install-info-am | ||||
|  | ||||
| install-info-am: | ||||
|  | ||||
| install-man: | ||||
|  | ||||
| install-pdf: install-pdf-am | ||||
|  | ||||
| install-pdf-am: | ||||
|  | ||||
| install-ps: install-ps-am | ||||
|  | ||||
| install-ps-am: | ||||
|  | ||||
| installcheck-am: | ||||
|  | ||||
| maintainer-clean: maintainer-clean-am | ||||
| 	-rm -f Makefile | ||||
| maintainer-clean-am: distclean-am maintainer-clean-generic | ||||
|  | ||||
| mostlyclean: mostlyclean-am | ||||
|  | ||||
| mostlyclean-am: mostlyclean-generic | ||||
|  | ||||
| pdf: pdf-am | ||||
|  | ||||
| pdf-am: | ||||
|  | ||||
| ps: ps-am | ||||
|  | ||||
| ps-am: | ||||
|  | ||||
| uninstall-am: | ||||
|  | ||||
| .MAKE: install-am install-strip | ||||
|  | ||||
| .PHONY: all all-am all-local check check-am clean clean-generic \ | ||||
| 	clean-local cscopelist-am ctags-am distclean distclean-generic \ | ||||
| 	distdir dvi dvi-am html html-am info info-am install \ | ||||
| 	install-am install-data install-data-am install-dvi \ | ||||
| 	install-dvi-am install-exec install-exec-am install-html \ | ||||
| 	install-html-am install-info install-info-am install-man \ | ||||
| 	install-pdf install-pdf-am install-ps install-ps-am \ | ||||
| 	install-strip installcheck installcheck-am installdirs \ | ||||
| 	maintainer-clean maintainer-clean-generic mostlyclean \ | ||||
| 	mostlyclean-generic pdf pdf-am ps ps-am tags-am uninstall \ | ||||
| 	uninstall-am | ||||
|  | ||||
| .PRECIOUS: Makefile | ||||
|  | ||||
|  | ||||
| #doxyfile.stamp: ../src/bcm2835.h | ||||
| #	$(DOXYGEN) Doxyfile | ||||
| #	echo Timestamp > doxyfile.stamp | ||||
|  | ||||
| #all-local: doxyfile.stamp | ||||
|  | ||||
| #clean-local: | ||||
| #	rm -rf html | ||||
|  | ||||
| # Tell versions [3.59,3.63) of GNU make to not export all variables. | ||||
| # Otherwise a system limit (for SysV at least) may be exceeded. | ||||
| .NOEXPORT: | ||||
| @@ -0,0 +1,13 @@ | ||||
| if HAVE_DOXYGEN | ||||
|  | ||||
| doxyfile.stamp: ../src/bcm2835.h | ||||
| 	$(DOXYGEN) Doxyfile | ||||
| 	echo Timestamp > doxyfile.stamp | ||||
|  | ||||
| CLEANFILES = doxyfile.stamp *~ | ||||
|  | ||||
| all-local: doxyfile.stamp | ||||
|  | ||||
| clean-local: | ||||
| 	rm -rf html | ||||
| endif  | ||||
| @@ -0,0 +1,413 @@ | ||||
| # Makefile.in generated by automake 1.16.1 from Makefile.am. | ||||
| # @configure_input@ | ||||
|  | ||||
| # Copyright (C) 1994-2018 Free Software Foundation, Inc. | ||||
|  | ||||
| # This Makefile.in is free software; the Free Software Foundation | ||||
| # gives unlimited permission to copy and/or distribute it, | ||||
| # with or without modifications, as long as this notice is preserved. | ||||
|  | ||||
| # This program is distributed in the hope that it will be useful, | ||||
| # but WITHOUT ANY WARRANTY, to the extent permitted by law; without | ||||
| # even the implied warranty of MERCHANTABILITY or FITNESS FOR A | ||||
| # PARTICULAR PURPOSE. | ||||
|  | ||||
| @SET_MAKE@ | ||||
| VPATH = @srcdir@ | ||||
| am__is_gnu_make = { \ | ||||
|   if test -z '$(MAKELEVEL)'; then \ | ||||
|     false; \ | ||||
|   elif test -n '$(MAKE_HOST)'; then \ | ||||
|     true; \ | ||||
|   elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ | ||||
|     true; \ | ||||
|   else \ | ||||
|     false; \ | ||||
|   fi; \ | ||||
| } | ||||
| am__make_running_with_option = \ | ||||
|   case $${target_option-} in \ | ||||
|       ?) ;; \ | ||||
|       *) echo "am__make_running_with_option: internal error: invalid" \ | ||||
|               "target option '$${target_option-}' specified" >&2; \ | ||||
|          exit 1;; \ | ||||
|   esac; \ | ||||
|   has_opt=no; \ | ||||
|   sane_makeflags=$$MAKEFLAGS; \ | ||||
|   if $(am__is_gnu_make); then \ | ||||
|     sane_makeflags=$$MFLAGS; \ | ||||
|   else \ | ||||
|     case $$MAKEFLAGS in \ | ||||
|       *\\[\ \	]*) \ | ||||
|         bs=\\; \ | ||||
|         sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | ||||
|           | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \ | ||||
|     esac; \ | ||||
|   fi; \ | ||||
|   skip_next=no; \ | ||||
|   strip_trailopt () \ | ||||
|   { \ | ||||
|     flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ | ||||
|   }; \ | ||||
|   for flg in $$sane_makeflags; do \ | ||||
|     test $$skip_next = yes && { skip_next=no; continue; }; \ | ||||
|     case $$flg in \ | ||||
|       *=*|--*) continue;; \ | ||||
|         -*I) strip_trailopt 'I'; skip_next=yes;; \ | ||||
|       -*I?*) strip_trailopt 'I';; \ | ||||
|         -*O) strip_trailopt 'O'; skip_next=yes;; \ | ||||
|       -*O?*) strip_trailopt 'O';; \ | ||||
|         -*l) strip_trailopt 'l'; skip_next=yes;; \ | ||||
|       -*l?*) strip_trailopt 'l';; \ | ||||
|       -[dEDm]) skip_next=yes;; \ | ||||
|       -[JT]) skip_next=yes;; \ | ||||
|     esac; \ | ||||
|     case $$flg in \ | ||||
|       *$$target_option*) has_opt=yes; break;; \ | ||||
|     esac; \ | ||||
|   done; \ | ||||
|   test $$has_opt = yes | ||||
| am__make_dryrun = (target_option=n; $(am__make_running_with_option)) | ||||
| am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) | ||||
| pkgdatadir = $(datadir)/@PACKAGE@ | ||||
| pkgincludedir = $(includedir)/@PACKAGE@ | ||||
| pkglibdir = $(libdir)/@PACKAGE@ | ||||
| pkglibexecdir = $(libexecdir)/@PACKAGE@ | ||||
| am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd | ||||
| install_sh_DATA = $(install_sh) -c -m 644 | ||||
| install_sh_PROGRAM = $(install_sh) -c | ||||
| install_sh_SCRIPT = $(install_sh) -c | ||||
| INSTALL_HEADER = $(INSTALL_DATA) | ||||
| transform = $(program_transform_name) | ||||
| NORMAL_INSTALL = : | ||||
| PRE_INSTALL = : | ||||
| POST_INSTALL = : | ||||
| NORMAL_UNINSTALL = : | ||||
| PRE_UNINSTALL = : | ||||
| POST_UNINSTALL = : | ||||
| subdir = doc | ||||
| ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | ||||
| am__aclocal_m4_deps = $(top_srcdir)/configure.ac | ||||
| am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ | ||||
| 	$(ACLOCAL_M4) | ||||
| DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) | ||||
| mkinstalldirs = $(install_sh) -d | ||||
| CONFIG_HEADER = $(top_builddir)/config.h | ||||
| CONFIG_CLEAN_FILES = Doxyfile | ||||
| CONFIG_CLEAN_VPATH_FILES = | ||||
| AM_V_P = $(am__v_P_@AM_V@) | ||||
| am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) | ||||
| am__v_P_0 = false | ||||
| am__v_P_1 = : | ||||
| AM_V_GEN = $(am__v_GEN_@AM_V@) | ||||
| am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) | ||||
| am__v_GEN_0 = @echo "  GEN     " $@; | ||||
| am__v_GEN_1 =  | ||||
| AM_V_at = $(am__v_at_@AM_V@) | ||||
| am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) | ||||
| am__v_at_0 = @ | ||||
| am__v_at_1 =  | ||||
| SOURCES = | ||||
| DIST_SOURCES = | ||||
| am__can_run_installinfo = \ | ||||
|   case $$AM_UPDATE_INFO_DIR in \ | ||||
|     n|no|NO) false;; \ | ||||
|     *) (install-info --version) >/dev/null 2>&1;; \ | ||||
|   esac | ||||
| am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) | ||||
| am__DIST_COMMON = $(srcdir)/Doxyfile.in $(srcdir)/Makefile.in | ||||
| DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | ||||
| ACLOCAL = @ACLOCAL@ | ||||
| AMTAR = @AMTAR@ | ||||
| AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ | ||||
| AUTOCONF = @AUTOCONF@ | ||||
| AUTOHEADER = @AUTOHEADER@ | ||||
| AUTOMAKE = @AUTOMAKE@ | ||||
| AWK = @AWK@ | ||||
| CC = @CC@ | ||||
| CCDEPMODE = @CCDEPMODE@ | ||||
| CFLAGS = @CFLAGS@ | ||||
| CPPFLAGS = @CPPFLAGS@ | ||||
| CYGPATH_W = @CYGPATH_W@ | ||||
| DEFS = @DEFS@ | ||||
| DEPDIR = @DEPDIR@ | ||||
| DOXYGEN = @DOXYGEN@ | ||||
| ECHO_C = @ECHO_C@ | ||||
| ECHO_N = @ECHO_N@ | ||||
| ECHO_T = @ECHO_T@ | ||||
| EXEEXT = @EXEEXT@ | ||||
| INSTALL = @INSTALL@ | ||||
| INSTALL_DATA = @INSTALL_DATA@ | ||||
| INSTALL_PROGRAM = @INSTALL_PROGRAM@ | ||||
| INSTALL_SCRIPT = @INSTALL_SCRIPT@ | ||||
| INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ | ||||
| LDFLAGS = @LDFLAGS@ | ||||
| LIBOBJS = @LIBOBJS@ | ||||
| LIBS = @LIBS@ | ||||
| LTLIBOBJS = @LTLIBOBJS@ | ||||
| MAKEINFO = @MAKEINFO@ | ||||
| MKDIR_P = @MKDIR_P@ | ||||
| OBJEXT = @OBJEXT@ | ||||
| PACKAGE = @PACKAGE@ | ||||
| PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ | ||||
| PACKAGE_NAME = @PACKAGE_NAME@ | ||||
| PACKAGE_STRING = @PACKAGE_STRING@ | ||||
| PACKAGE_TARNAME = @PACKAGE_TARNAME@ | ||||
| PACKAGE_URL = @PACKAGE_URL@ | ||||
| PACKAGE_VERSION = @PACKAGE_VERSION@ | ||||
| PATH_SEPARATOR = @PATH_SEPARATOR@ | ||||
| RANLIB = @RANLIB@ | ||||
| SET_MAKE = @SET_MAKE@ | ||||
| SHELL = @SHELL@ | ||||
| STRIP = @STRIP@ | ||||
| VERSION = @VERSION@ | ||||
| abs_builddir = @abs_builddir@ | ||||
| abs_srcdir = @abs_srcdir@ | ||||
| abs_top_builddir = @abs_top_builddir@ | ||||
| abs_top_srcdir = @abs_top_srcdir@ | ||||
| ac_ct_CC = @ac_ct_CC@ | ||||
| am__include = @am__include@ | ||||
| am__leading_dot = @am__leading_dot@ | ||||
| am__quote = @am__quote@ | ||||
| am__tar = @am__tar@ | ||||
| am__untar = @am__untar@ | ||||
| bindir = @bindir@ | ||||
| build_alias = @build_alias@ | ||||
| builddir = @builddir@ | ||||
| datadir = @datadir@ | ||||
| datarootdir = @datarootdir@ | ||||
| docdir = @docdir@ | ||||
| dvidir = @dvidir@ | ||||
| exec_prefix = @exec_prefix@ | ||||
| host_alias = @host_alias@ | ||||
| htmldir = @htmldir@ | ||||
| includedir = @includedir@ | ||||
| infodir = @infodir@ | ||||
| install_sh = @install_sh@ | ||||
| libdir = @libdir@ | ||||
| libexecdir = @libexecdir@ | ||||
| localedir = @localedir@ | ||||
| localstatedir = @localstatedir@ | ||||
| mandir = @mandir@ | ||||
| mkdir_p = @mkdir_p@ | ||||
| oldincludedir = @oldincludedir@ | ||||
| pdfdir = @pdfdir@ | ||||
| prefix = @prefix@ | ||||
| program_transform_name = @program_transform_name@ | ||||
| psdir = @psdir@ | ||||
| runstatedir = @runstatedir@ | ||||
| sbindir = @sbindir@ | ||||
| sharedstatedir = @sharedstatedir@ | ||||
| srcdir = @srcdir@ | ||||
| sysconfdir = @sysconfdir@ | ||||
| target_alias = @target_alias@ | ||||
| top_build_prefix = @top_build_prefix@ | ||||
| top_builddir = @top_builddir@ | ||||
| top_srcdir = @top_srcdir@ | ||||
| @HAVE_DOXYGEN_TRUE@CLEANFILES = doxyfile.stamp *~ | ||||
| all: all-am | ||||
|  | ||||
| .SUFFIXES: | ||||
| $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps) | ||||
| 	@for dep in $?; do \ | ||||
| 	  case '$(am__configure_deps)' in \ | ||||
| 	    *$$dep*) \ | ||||
| 	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ | ||||
| 	        && { if test -f $@; then exit 0; else break; fi; }; \ | ||||
| 	      exit 1;; \ | ||||
| 	  esac; \ | ||||
| 	done; \ | ||||
| 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ | ||||
| 	$(am__cd) $(top_srcdir) && \ | ||||
| 	  $(AUTOMAKE) --gnu doc/Makefile | ||||
| Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | ||||
| 	@case '$?' in \ | ||||
| 	  *config.status*) \ | ||||
| 	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ | ||||
| 	  *) \ | ||||
| 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ | ||||
| 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ | ||||
| 	esac; | ||||
|  | ||||
| $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) | ||||
| 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||||
|  | ||||
| $(top_srcdir)/configure:  $(am__configure_deps) | ||||
| 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||||
| $(ACLOCAL_M4):  $(am__aclocal_m4_deps) | ||||
| 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||||
| $(am__aclocal_m4_deps): | ||||
| @HAVE_DOXYGEN_TRUE@Doxyfile: $(top_builddir)/config.status $(srcdir)/Doxyfile.in | ||||
| @HAVE_DOXYGEN_TRUE@	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ | ||||
| tags TAGS: | ||||
|  | ||||
| ctags CTAGS: | ||||
|  | ||||
| cscope cscopelist: | ||||
|  | ||||
|  | ||||
| distdir: $(BUILT_SOURCES) | ||||
| 	$(MAKE) $(AM_MAKEFLAGS) distdir-am | ||||
|  | ||||
| distdir-am: $(DISTFILES) | ||||
| 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | ||||
| 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | ||||
| 	list='$(DISTFILES)'; \ | ||||
| 	  dist_files=`for file in $$list; do echo $$file; done | \ | ||||
| 	  sed -e "s|^$$srcdirstrip/||;t" \ | ||||
| 	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | ||||
| 	case $$dist_files in \ | ||||
| 	  */*) $(MKDIR_P) `echo "$$dist_files" | \ | ||||
| 			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | ||||
| 			   sort -u` ;; \ | ||||
| 	esac; \ | ||||
| 	for file in $$dist_files; do \ | ||||
| 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | ||||
| 	  if test -d $$d/$$file; then \ | ||||
| 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | ||||
| 	    if test -d "$(distdir)/$$file"; then \ | ||||
| 	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | ||||
| 	    fi; \ | ||||
| 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | ||||
| 	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | ||||
| 	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | ||||
| 	    fi; \ | ||||
| 	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | ||||
| 	  else \ | ||||
| 	    test -f "$(distdir)/$$file" \ | ||||
| 	    || cp -p $$d/$$file "$(distdir)/$$file" \ | ||||
| 	    || exit 1; \ | ||||
| 	  fi; \ | ||||
| 	done | ||||
| check-am: all-am | ||||
| check: check-am | ||||
| @HAVE_DOXYGEN_FALSE@all-local: | ||||
| all-am: Makefile all-local | ||||
| installdirs: | ||||
| install: install-am | ||||
| install-exec: install-exec-am | ||||
| install-data: install-data-am | ||||
| uninstall: uninstall-am | ||||
|  | ||||
| install-am: all-am | ||||
| 	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am | ||||
|  | ||||
| installcheck: installcheck-am | ||||
| install-strip: | ||||
| 	if test -z '$(STRIP)'; then \ | ||||
| 	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | ||||
| 	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | ||||
| 	      install; \ | ||||
| 	else \ | ||||
| 	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | ||||
| 	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | ||||
| 	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ | ||||
| 	fi | ||||
| mostlyclean-generic: | ||||
|  | ||||
| clean-generic: | ||||
| 	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) | ||||
|  | ||||
| distclean-generic: | ||||
| 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) | ||||
| 	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) | ||||
|  | ||||
| maintainer-clean-generic: | ||||
| 	@echo "This command is intended for maintainers to use" | ||||
| 	@echo "it deletes files that may require special tools to rebuild." | ||||
| @HAVE_DOXYGEN_FALSE@clean-local: | ||||
| clean: clean-am | ||||
|  | ||||
| clean-am: clean-generic clean-local mostlyclean-am | ||||
|  | ||||
| distclean: distclean-am | ||||
| 	-rm -f Makefile | ||||
| distclean-am: clean-am distclean-generic | ||||
|  | ||||
| dvi: dvi-am | ||||
|  | ||||
| dvi-am: | ||||
|  | ||||
| html: html-am | ||||
|  | ||||
| html-am: | ||||
|  | ||||
| info: info-am | ||||
|  | ||||
| info-am: | ||||
|  | ||||
| install-data-am: | ||||
|  | ||||
| install-dvi: install-dvi-am | ||||
|  | ||||
| install-dvi-am: | ||||
|  | ||||
| install-exec-am: | ||||
|  | ||||
| install-html: install-html-am | ||||
|  | ||||
| install-html-am: | ||||
|  | ||||
| install-info: install-info-am | ||||
|  | ||||
| install-info-am: | ||||
|  | ||||
| install-man: | ||||
|  | ||||
| install-pdf: install-pdf-am | ||||
|  | ||||
| install-pdf-am: | ||||
|  | ||||
| install-ps: install-ps-am | ||||
|  | ||||
| install-ps-am: | ||||
|  | ||||
| installcheck-am: | ||||
|  | ||||
| maintainer-clean: maintainer-clean-am | ||||
| 	-rm -f Makefile | ||||
| maintainer-clean-am: distclean-am maintainer-clean-generic | ||||
|  | ||||
| mostlyclean: mostlyclean-am | ||||
|  | ||||
| mostlyclean-am: mostlyclean-generic | ||||
|  | ||||
| pdf: pdf-am | ||||
|  | ||||
| pdf-am: | ||||
|  | ||||
| ps: ps-am | ||||
|  | ||||
| ps-am: | ||||
|  | ||||
| uninstall-am: | ||||
|  | ||||
| .MAKE: install-am install-strip | ||||
|  | ||||
| .PHONY: all all-am all-local check check-am clean clean-generic \ | ||||
| 	clean-local cscopelist-am ctags-am distclean distclean-generic \ | ||||
| 	distdir dvi dvi-am html html-am info info-am install \ | ||||
| 	install-am install-data install-data-am install-dvi \ | ||||
| 	install-dvi-am install-exec install-exec-am install-html \ | ||||
| 	install-html-am install-info install-info-am install-man \ | ||||
| 	install-pdf install-pdf-am install-ps install-ps-am \ | ||||
| 	install-strip installcheck installcheck-am installdirs \ | ||||
| 	maintainer-clean maintainer-clean-generic mostlyclean \ | ||||
| 	mostlyclean-generic pdf pdf-am ps ps-am tags-am uninstall \ | ||||
| 	uninstall-am | ||||
|  | ||||
| .PRECIOUS: Makefile | ||||
|  | ||||
|  | ||||
| @HAVE_DOXYGEN_TRUE@doxyfile.stamp: ../src/bcm2835.h | ||||
| @HAVE_DOXYGEN_TRUE@	$(DOXYGEN) Doxyfile | ||||
| @HAVE_DOXYGEN_TRUE@	echo Timestamp > doxyfile.stamp | ||||
|  | ||||
| @HAVE_DOXYGEN_TRUE@all-local: doxyfile.stamp | ||||
|  | ||||
| @HAVE_DOXYGEN_TRUE@clean-local: | ||||
| @HAVE_DOXYGEN_TRUE@	rm -rf html | ||||
|  | ||||
| # Tell versions [3.59,3.63) of GNU make to not export all variables. | ||||
| # Otherwise a system limit (for SysV at least) may be exceeded. | ||||
| .NOEXPORT: | ||||
| @@ -0,0 +1,55 @@ | ||||
| // blink.c | ||||
| // | ||||
| // Example program for bcm2835 library | ||||
| // Blinks a pin on an off every 0.5 secs | ||||
| // | ||||
| // After installing bcm2835, you can build this  | ||||
| // with something like: | ||||
| // gcc -o blink blink.c -l bcm2835 | ||||
| // sudo ./blink | ||||
| // | ||||
| // Or you can test it before installing with: | ||||
| // gcc -o blink -I ../../src ../../src/bcm2835.c blink.c | ||||
| // sudo ./blink | ||||
| // | ||||
| // Author: Mike McCauley | ||||
| // Copyright (C) 2011 Mike McCauley | ||||
| // $Id: RF22.h,v 1.21 2012/05/30 01:51:25 mikem Exp $ | ||||
|  | ||||
| #include <bcm2835.h> | ||||
| #include <stdio.h> | ||||
|  | ||||
| // Blinks on RPi Plug P1 pin 11 (which is GPIO pin 17) | ||||
| #define PIN RPI_GPIO_P1_11 | ||||
|  | ||||
| int main(int argc, char **argv) | ||||
| { | ||||
|     // If you call this, it will not actually access the GPIO | ||||
|     // Use for testing | ||||
| //    bcm2835_set_debug(1); | ||||
|  | ||||
|     if (!bcm2835_init()) | ||||
|       return 1; | ||||
|  | ||||
|     // Set the pin to be an output | ||||
|     bcm2835_gpio_fsel(PIN, BCM2835_GPIO_FSEL_OUTP); | ||||
|  | ||||
|     // Blink | ||||
|     while (1) | ||||
|     { | ||||
| 	// Turn it on | ||||
| 	bcm2835_gpio_write(PIN, HIGH); | ||||
| 	 | ||||
| 	// wait a bit | ||||
| 	bcm2835_delay(500); | ||||
| 	 | ||||
| 	// turn it off | ||||
| 	bcm2835_gpio_write(PIN, LOW); | ||||
| 	 | ||||
| 	// wait a bit | ||||
| 	bcm2835_delay(500); | ||||
|     } | ||||
|     bcm2835_close(); | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| @@ -0,0 +1,57 @@ | ||||
| // event.c | ||||
| // | ||||
| // Example program for bcm2835 library | ||||
| // Event detection of an input pin | ||||
| // | ||||
| // After installing bcm2835, you can build this  | ||||
| // with something like: | ||||
| // gcc -o event event.c -l bcm2835  | ||||
| // sudo ./event | ||||
| // | ||||
| // Or you can test it before installing with: | ||||
| // gcc -o event -I ../../src ../../src/bcm2835.c event.c | ||||
| // sudo ./event | ||||
| // | ||||
| // Author: Mike McCauley | ||||
| // Copyright (C) 2011 Mike McCauley | ||||
| // $Id: RF22.h,v 1.21 2012/05/30 01:51:25 mikem Exp $ | ||||
|  | ||||
| #include <bcm2835.h> | ||||
| #include <stdio.h> | ||||
|  | ||||
| // Input on RPi pin GPIO 15 | ||||
| #define PIN RPI_GPIO_P1_15 | ||||
|  | ||||
| int main(int argc, char **argv) | ||||
| { | ||||
|     // If you call this, it will not actually access the GPIO | ||||
|     // Use for testing | ||||
| //    bcm2835_set_debug(1); | ||||
|  | ||||
|     if (!bcm2835_init()) | ||||
| 	return 1; | ||||
|  | ||||
|     // Set RPI pin P1-15 to be an input | ||||
|     bcm2835_gpio_fsel(PIN, BCM2835_GPIO_FSEL_INPT); | ||||
|     //  with a pullup | ||||
|     bcm2835_gpio_set_pud(PIN, BCM2835_GPIO_PUD_UP); | ||||
|     // And a low detect enable | ||||
|     bcm2835_gpio_len(PIN); | ||||
|  | ||||
|     while (1) | ||||
|     { | ||||
| 	if (bcm2835_gpio_eds(PIN)) | ||||
| 	{ | ||||
| 	    // Now clear the eds flag by setting it to 1 | ||||
| 	    bcm2835_gpio_set_eds(PIN); | ||||
| 	    printf("low event detect for pin 15\n"); | ||||
| 	} | ||||
|  | ||||
| 	// wait a bit | ||||
| 	delay(500); | ||||
|     } | ||||
|  | ||||
|     bcm2835_close(); | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| @@ -0,0 +1,346 @@ | ||||
| /******************************************************************************* | ||||
| * | ||||
| *   gpio.c | ||||
| * | ||||
| *   Copyright (c) 2013 Shahrooz Shahparnia | ||||
| * | ||||
| *   Description: | ||||
| *   gpio is a command-line utility for executing gpio commands with the  | ||||
| *   Broadcom bcm2835.  It was developed and tested on a Raspberry Pi single-board | ||||
| *   computer model B.  The utility is based on the bcm2835 C library developed | ||||
| *   by Mike McCauley of Open System Consultants, http://www.open.com.au/mikem/bcm2835/. | ||||
| * | ||||
| *   Invoking "gpio" results in a read, set of clear of a GPIO.   | ||||
| *   Options include GPIO read/set/clear  | ||||
| *   of a single GPIO pin, enabling or disabling pull up and pull downs as well as  | ||||
| *   resetting all GPIOs to a default input state.   | ||||
| *   The command usage and command-line parameters are described below | ||||
| *   in the showusage function, which prints the usage if no command-line parameters | ||||
| *   are included or if there are any command-line parameter errors.  Invoking gpio  | ||||
| *   requires root privilege. | ||||
| * | ||||
| *   This file contains the main function as well as functions for displaying | ||||
| *   usage and for parsing the command line. | ||||
| * | ||||
| *   Open Source Licensing GNU GPLv3 | ||||
| * | ||||
| *   Building: | ||||
| * After installing bcm2835, you can build this  | ||||
| * with something like: | ||||
| * gcc -o gpio gpio.c -l bcm2835 | ||||
| * sudo ./gpio | ||||
| * | ||||
| * Or you can test it before installing with: | ||||
| * gcc -o gpio -I ../../src ../../src/bcm2835.c gpio.c | ||||
| * sudo ./gpio | ||||
| * | ||||
| * | ||||
| *   History: | ||||
| *   11/10    VERSION 1.0.0: Original | ||||
| * | ||||
| *      User input parsing (comparse) and showusage\ | ||||
| *      have been adapted from: http://ipsolutionscorp.com/raspberry-pi-spi-utility/ | ||||
| *      mostly to keep consistence with the spincl tool usage. | ||||
| * | ||||
| *      Compile with: gcc -o gpio gpio.c bcm2835.c | ||||
| * | ||||
| *      Examples: | ||||
| *            Clear pin 5: sudo ./gpio -ib -dc -pn -n5   | ||||
| *            Reset all GPIOs to inputs and disable all pull up/downs: sudo ./gpio -ie | ||||
| *            Read pin 10: sudo ./gpio -ib -dr -pn -n10 | ||||
| *            Read pin 10 in debug mode with verbose output: sudo ./gpio -ib -dr -pn -n10 -b | ||||
| *            Read pin 10 and set pin as input with pull down: sudo ./gpio -ib -di -pd -n10 | ||||
| * | ||||
| *            Note: Pin numbers match the Raspberry Pie connector pin numbers | ||||
| ********************************************************************************/ | ||||
|  | ||||
| #include <bcm2835.h> | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
| #include <string.h> | ||||
| #include <stdint.h> | ||||
|  | ||||
| #define MODE_READ 0 | ||||
| #define MODE_SET 1 | ||||
| #define MODE_CLR 2 | ||||
| #define MODE_INPUT_READ 3 | ||||
|  | ||||
| #define PULL_UP 0 | ||||
| #define PULL_DOWN 1 | ||||
| #define NO_PULL 2 | ||||
|  | ||||
| #define GPIO_BEGIN 0 | ||||
| #define GPIO_END 1 | ||||
| #define NO_ACTION 2 | ||||
|  | ||||
| #define NO_PIN 40 // Some big number that's beyond the connector's pin count | ||||
| #define DEBUG_OFF 0 | ||||
| #define DEBUG_ON 1 | ||||
|  | ||||
| uint8_t  init = NO_ACTION; | ||||
| uint8_t  pull = NO_PULL; | ||||
| uint8_t  mode = MODE_READ; | ||||
| uint8_t  pin_number = NO_PIN; | ||||
|  | ||||
| uint8_t i, len; | ||||
| uint8_t data, pin, debug_mode = DEBUG_OFF; | ||||
|  | ||||
| //******************************************************************************* | ||||
| //  comparse: Parse the command line and return EXIT_SUCCESS or EXIT_FAILURE | ||||
| //    argc: number of command-line arguments | ||||
| //    argv: array of command-line argument strings | ||||
| //******************************************************************************* | ||||
|  | ||||
| void gpio_reset(void); | ||||
|  | ||||
| int comparse(int argc, char **argv) { | ||||
|     int argnum, i, xmitnum; | ||||
| 	 | ||||
|     if (argc < 2) {  // must have at least program name and len arguments | ||||
|                      // or -ie (GPIO_END) or -ib (GPIO_BEGIN) | ||||
|         fprintf(stderr, "Insufficient command line arguments\n"); | ||||
|         return EXIT_FAILURE; | ||||
|     } | ||||
|      | ||||
|     argnum = 1; | ||||
|     while (argnum < argc && argv[argnum][0] == '-') { | ||||
|  | ||||
|         switch (argv[argnum][1]) { | ||||
|  | ||||
|             case 'i':  // GPIO init | ||||
|                 switch (argv[argnum][2]) { | ||||
|                     case 'b': init = GPIO_BEGIN; break; | ||||
|                     case 'e': init = GPIO_END; break; | ||||
|                     default: | ||||
|                         fprintf(stderr, "%c is not a valid init option\n", argv[argnum][2]); | ||||
|                         return EXIT_FAILURE; | ||||
|                 } | ||||
|                 break; | ||||
|  | ||||
|             case 'd':  // Set/Clear/Read Mode | ||||
|                 switch (argv[argnum][2]) { | ||||
|                     case 'r': mode = MODE_READ; break; | ||||
|                     case 's': mode = MODE_SET; break; | ||||
|                     case 'c': mode = MODE_CLR; break; | ||||
| 		    case 'i': mode = MODE_INPUT_READ; break; | ||||
| 		    default: | ||||
|                         fprintf(stderr, "%c is not a valid init option\n", argv[argnum][2]); | ||||
|                         return EXIT_FAILURE; | ||||
|                 } | ||||
|                 break; | ||||
| 		 | ||||
|             case 'p':  // Pull up, down and no pull Mode | ||||
|                 switch (argv[argnum][2]) { | ||||
|                     case 'u': pull = PULL_UP; break; | ||||
|                     case 'd': pull = PULL_DOWN; break; | ||||
|                     case 'n': pull = NO_PULL; break; | ||||
| 		    default: | ||||
|                         fprintf(stderr, "%c is not a valid init option\n", argv[argnum][2]); | ||||
|                         return EXIT_FAILURE; | ||||
|                 } | ||||
|                 break;		 | ||||
|  | ||||
|             case 'n':  // pin number | ||||
| 	         pin_number = atoi(argv[argnum]+2); | ||||
|                  break; | ||||
|  | ||||
|             case 'b':  // debug mode | ||||
| 		 debug_mode = DEBUG_ON; | ||||
|                  break; | ||||
|  | ||||
|             default: | ||||
|                 fprintf(stderr, "%c is not a valid option\n", argv[argnum][1]); | ||||
|                 return EXIT_FAILURE; | ||||
|         } | ||||
|  | ||||
|         argnum++;   // advance the argument number | ||||
|  | ||||
|     } | ||||
|  | ||||
|     if (argnum == argc && init != NO_ACTION) // no further arguments are needed | ||||
|         return EXIT_SUCCESS; | ||||
|    | ||||
|     return EXIT_SUCCESS; | ||||
| } | ||||
|  | ||||
| //******************************************************************************* | ||||
| //  showusage: Print the usage statement and return errcode. | ||||
| //******************************************************************************* | ||||
|  | ||||
| int showusage(int errcode) { | ||||
|     printf("gpio \n"); | ||||
|     printf("Usage: \n"); | ||||
|     printf("  gpio [options]\n"); | ||||
|     printf("\n"); | ||||
|     printf("  Invoking gpio to set or reset a GPIO, enable disable pull up or pull down. Initialize or release a GPIO.\n"); | ||||
|     printf("\n"); | ||||
|     printf("  The following are the options, which must be a single letter\n"); | ||||
|     printf("    preceded by a '-' and followed by another character.\n"); | ||||
|     printf("    -ix where x is the GPIO init option, b[egin] or e[nd]\n"); | ||||
|     printf("      The begin option must be executed before any transfer can happen.\n"); | ||||
|     printf("      The end option will return the GPIO to inputs and turn off all pull up and pull downs.\n"); | ||||
|     printf("      It may be included with a transfer.\n"); | ||||
|     printf("    -dx where x is 'c' for clear, 's' is for set, 'r' for read and 'i' for read and set as input.\n"); | ||||
|     printf("    -px where x is the GPIO pull up or down option. 'u' for pull up, 'd' for pull down and 'n' for none.\n");   | ||||
|     printf("    -nx where x is the pin number.\n"); | ||||
|     printf("\n"); | ||||
|     return errcode; | ||||
| } | ||||
|  | ||||
| int main(int argc, char **argv) { | ||||
|  | ||||
|     printf("Running ... \n"); | ||||
|      | ||||
|     // parse the command line | ||||
|     if (comparse(argc, argv) == EXIT_FAILURE) return showusage (EXIT_FAILURE); | ||||
|  | ||||
|     if (!bcm2835_init()) return 1; | ||||
|        | ||||
|     // GPIO begin if specified     | ||||
|     if (init == GPIO_BEGIN) ; | ||||
|  | ||||
|  | ||||
|     // If len is 0, no need to continue, but do GPIO end if specified | ||||
|     // if (len == 0) { | ||||
|     //     if (init == GPIO_END) ; | ||||
|     //	 printf("Zero length ... error!\n"); | ||||
|     //     return EXIT_SUCCESS; | ||||
|     // } | ||||
|     switch (pin_number) { | ||||
|             case 3: | ||||
| 	       pin = RPI_V2_GPIO_P1_03; | ||||
| 	    break; | ||||
|             case 5: | ||||
| 	       pin = RPI_V2_GPIO_P1_05; | ||||
| 	    break;	     | ||||
|             case 7: | ||||
| 	       pin = RPI_V2_GPIO_P1_07; | ||||
| 	    break; | ||||
|             case 26: | ||||
| 	       pin = RPI_V2_GPIO_P1_26; | ||||
| 	    break; | ||||
|             case 24: | ||||
| 	       pin = RPI_V2_GPIO_P1_24; | ||||
| 	    break; | ||||
|             case 21: | ||||
| 	       pin = RPI_V2_GPIO_P1_21; | ||||
| 	    break; | ||||
|             case 19: | ||||
| 	       pin = RPI_V2_GPIO_P1_19; | ||||
| 	    break; | ||||
|             case 23: | ||||
| 	       pin = RPI_V2_GPIO_P1_23; | ||||
| 	    break; | ||||
|             case 10: | ||||
| 	       pin = RPI_V2_GPIO_P1_10; | ||||
| 	    break; | ||||
|             case 11: | ||||
| 	       pin = RPI_V2_GPIO_P1_11; | ||||
| 	    break; | ||||
|             case 12: | ||||
| 	       pin = RPI_V2_GPIO_P1_12; | ||||
| 	    break; | ||||
|             case 13: | ||||
| 	       pin = RPI_V2_GPIO_P1_13; | ||||
| 	    break; | ||||
|             case 15: | ||||
| 	       pin = RPI_V2_GPIO_P1_15; | ||||
| 	    break; | ||||
|             case 16: | ||||
| 	       pin = RPI_V2_GPIO_P1_16; | ||||
| 	    break; | ||||
|             case 18: | ||||
| 	       pin = RPI_V2_GPIO_P1_18; | ||||
| 	    break; | ||||
|             case 22: | ||||
| 	       pin = RPI_V2_GPIO_P1_22; | ||||
| 	    break; | ||||
| 	    default: | ||||
| 	      pin = NO_PIN; | ||||
|     } | ||||
|  | ||||
|     switch (pull) { | ||||
|     	    case PULL_UP: | ||||
| 		bcm2835_gpio_set_pud(pin, BCM2835_GPIO_PUD_UP); | ||||
| 	    break; | ||||
|     	    case PULL_DOWN: | ||||
| 		bcm2835_gpio_set_pud(pin, BCM2835_GPIO_PUD_DOWN); | ||||
| 	    break; | ||||
|     	    case NO_PULL: | ||||
| 		bcm2835_gpio_set_pud(pin, BCM2835_GPIO_PUD_OFF); | ||||
| 	    break; | ||||
|     	    default: | ||||
| 		bcm2835_gpio_set_pud(pin, BCM2835_GPIO_PUD_OFF);	     | ||||
|     } | ||||
|  | ||||
|     switch (mode) { | ||||
|     	    case MODE_READ: | ||||
| 	       data = bcm2835_gpio_lev(pin); | ||||
| 	       printf("Reading pin: %d\n", data); | ||||
| 	    break; | ||||
|     	    case MODE_INPUT_READ: | ||||
| 	       bcm2835_gpio_fsel(pin, BCM2835_GPIO_FSEL_INPT); | ||||
| 	       data = bcm2835_gpio_lev(pin); | ||||
| 	       printf("Reading pin: %d\n", data); | ||||
| 	    break;  | ||||
|     	    case MODE_SET: | ||||
| 	       bcm2835_gpio_fsel(pin, BCM2835_GPIO_FSEL_OUTP); | ||||
| 	       bcm2835_gpio_set(pin); | ||||
| 	    break; | ||||
|     	    case MODE_CLR: | ||||
| 	       bcm2835_gpio_fsel(pin, BCM2835_GPIO_FSEL_OUTP); | ||||
| 	       bcm2835_gpio_clr(pin); | ||||
| 	    break; | ||||
| 	    default: | ||||
| 	       printf("Wrong mode ...!\n"); | ||||
|     } | ||||
|  | ||||
|     if (debug_mode == DEBUG_ON) {     | ||||
|     	printf("Init %d\n", init);     | ||||
|     	printf("Mode %d\n", mode); | ||||
|     	printf("Pull %d\n", pull); | ||||
|     	printf("Pin Number %d\n", pin_number); | ||||
|     	printf("Pin %d\n", pin); | ||||
|     }    | ||||
|         | ||||
|     if (init == GPIO_END) gpio_reset();        | ||||
|     bcm2835_close(); | ||||
|     printf("... done!\n"); | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| void gpio_reset(void) { | ||||
| 	bcm2835_gpio_set_pud(RPI_V2_GPIO_P1_03, BCM2835_GPIO_PUD_OFF); | ||||
| 	bcm2835_gpio_set_pud(RPI_V2_GPIO_P1_05, BCM2835_GPIO_PUD_OFF); | ||||
| 	bcm2835_gpio_set_pud(RPI_V2_GPIO_P1_07, BCM2835_GPIO_PUD_OFF); | ||||
| 	bcm2835_gpio_set_pud(RPI_V2_GPIO_P1_26, BCM2835_GPIO_PUD_OFF); | ||||
| 	bcm2835_gpio_set_pud(RPI_V2_GPIO_P1_24, BCM2835_GPIO_PUD_OFF); | ||||
| 	bcm2835_gpio_set_pud(RPI_V2_GPIO_P1_21, BCM2835_GPIO_PUD_OFF); | ||||
| 	bcm2835_gpio_set_pud(RPI_V2_GPIO_P1_19, BCM2835_GPIO_PUD_OFF); | ||||
| 	bcm2835_gpio_set_pud(RPI_V2_GPIO_P1_23, BCM2835_GPIO_PUD_OFF); | ||||
| 	bcm2835_gpio_set_pud(RPI_V2_GPIO_P1_10, BCM2835_GPIO_PUD_OFF); | ||||
| 	bcm2835_gpio_set_pud(RPI_V2_GPIO_P1_11, BCM2835_GPIO_PUD_OFF); | ||||
| 	bcm2835_gpio_set_pud(RPI_V2_GPIO_P1_12, BCM2835_GPIO_PUD_OFF); | ||||
| 	bcm2835_gpio_set_pud(RPI_V2_GPIO_P1_13, BCM2835_GPIO_PUD_OFF); | ||||
| 	bcm2835_gpio_set_pud(RPI_V2_GPIO_P1_15, BCM2835_GPIO_PUD_OFF); | ||||
| 	bcm2835_gpio_set_pud(RPI_V2_GPIO_P1_16, BCM2835_GPIO_PUD_OFF); | ||||
| 	bcm2835_gpio_set_pud(RPI_V2_GPIO_P1_18, BCM2835_GPIO_PUD_OFF); | ||||
| 	bcm2835_gpio_set_pud(RPI_V2_GPIO_P1_22, BCM2835_GPIO_PUD_OFF); | ||||
|  | ||||
| 	bcm2835_gpio_fsel(RPI_V2_GPIO_P1_03, BCM2835_GPIO_FSEL_INPT); | ||||
| 	bcm2835_gpio_fsel(RPI_V2_GPIO_P1_05, BCM2835_GPIO_FSEL_INPT); | ||||
| 	bcm2835_gpio_fsel(RPI_V2_GPIO_P1_07, BCM2835_GPIO_FSEL_INPT); | ||||
| 	bcm2835_gpio_fsel(RPI_V2_GPIO_P1_26, BCM2835_GPIO_FSEL_INPT); | ||||
| 	bcm2835_gpio_fsel(RPI_V2_GPIO_P1_24, BCM2835_GPIO_FSEL_INPT); | ||||
| 	bcm2835_gpio_fsel(RPI_V2_GPIO_P1_21, BCM2835_GPIO_FSEL_INPT); | ||||
| 	bcm2835_gpio_fsel(RPI_V2_GPIO_P1_19, BCM2835_GPIO_FSEL_INPT); | ||||
| 	bcm2835_gpio_fsel(RPI_V2_GPIO_P1_23, BCM2835_GPIO_FSEL_INPT); | ||||
| 	bcm2835_gpio_fsel(RPI_V2_GPIO_P1_10, BCM2835_GPIO_FSEL_INPT); | ||||
| 	bcm2835_gpio_fsel(RPI_V2_GPIO_P1_11, BCM2835_GPIO_FSEL_INPT); | ||||
| 	bcm2835_gpio_fsel(RPI_V2_GPIO_P1_12, BCM2835_GPIO_FSEL_INPT); | ||||
| 	bcm2835_gpio_fsel(RPI_V2_GPIO_P1_13, BCM2835_GPIO_FSEL_INPT); | ||||
| 	bcm2835_gpio_fsel(RPI_V2_GPIO_P1_15, BCM2835_GPIO_FSEL_INPT); | ||||
| 	bcm2835_gpio_fsel(RPI_V2_GPIO_P1_16, BCM2835_GPIO_FSEL_INPT); | ||||
| 	bcm2835_gpio_fsel(RPI_V2_GPIO_P1_18, BCM2835_GPIO_FSEL_INPT); | ||||
| 	bcm2835_gpio_fsel(RPI_V2_GPIO_P1_22, BCM2835_GPIO_FSEL_INPT); | ||||
| } | ||||
| @@ -0,0 +1,278 @@ | ||||
| /******************************************************************************* | ||||
| * | ||||
| *   i2c.c | ||||
| * | ||||
| *   Copyright (c) 2013 Shahrooz Shahparnia (sshahrooz@gmail.com) | ||||
| * | ||||
| *   Description: | ||||
| *   i2c is a command-line utility for executing i2c commands with the  | ||||
| *   Broadcom bcm2835.  It was developed and tested on a Raspberry Pi single-board | ||||
| *   computer model B.  The utility is based on the bcm2835 C library developed | ||||
| *   by Mike McCauley of Open System Consultants, http://www.open.com.au/mikem/bcm2835/. | ||||
| * | ||||
| *   Invoking spincl results in a read or write I2C transfer.  Options include the | ||||
| *   the I2C clock frequency, read/write, address, and port initialization/closing | ||||
| *   procedures.  The command usage and command-line parameters are described below | ||||
| *   in the showusage function, which prints the usage if no command-line parameters | ||||
| *   are included or if there are any command-line parameter errors.  Invoking i2c  | ||||
| *   requires root privilege. | ||||
| * | ||||
| *   This file contains the main function as well as functions for displaying | ||||
| *   usage and for parsing the command line. | ||||
| * | ||||
| *   Open Source Licensing GNU GPLv3 | ||||
| * | ||||
| *   Building: | ||||
| * After installing bcm2835, you can build this  | ||||
| * with something like: | ||||
| * gcc -o i2c i2c.c -l bcm2835 | ||||
| * sudo ./i2c | ||||
| * | ||||
| * Or you can test it before installing with: | ||||
| * gcc -o i2c -I ../../src ../../src/bcm2835.c i2c.c | ||||
| * sudo ./i2c | ||||
| * | ||||
| *   History: | ||||
| *   11/05    VERSION 1.0.0: Original | ||||
| * | ||||
| *      User input parsing (comparse) and showusage\ | ||||
| *      have been adapted from: http://ipsolutionscorp.com/raspberry-pi-spi-utility/ | ||||
| *      mostly to keep consistence with the spincl tool usage. | ||||
| * | ||||
| *      Compile with: gcc -o i2c i2c.c bcm2835.c | ||||
| * | ||||
| *      Examples: | ||||
| * | ||||
| *           Set up ADC (Arduino: ADC1015) | ||||
| *           sudo ./i2c -s72 -dw -ib 3 0x01 0x44 0x00 (select config register, setup mux, etc.) | ||||
| *           sudo ./i2c -s72 -dw -ib 1 0x00 (select ADC data register) | ||||
| * | ||||
| *           Bias DAC (Arduino: MCP4725) at some voltage | ||||
| *           sudo ./i2c -s99 -dw -ib 3 0x60 0x7F 0xF0 (FS output is with 0xFF 0xF0) | ||||
| *           Read ADC convergence result | ||||
| *           sudo ./i2c -s72 -dr -ib 2 (FS output is 0x7FF0 with PGA1 = 1) | ||||
| *   | ||||
| *      In a DAC to ADC loop back typical results are: | ||||
| * | ||||
| *      DAC    VOUT   ADC | ||||
| *      7FFh   1.6V   677h                    Note ratio is FS_ADC*PGA_GAIN/FS_DAC = 4.096/3.3 = 1.23 | ||||
| *      5FFh   1.2V   4DCh | ||||
| *      8F0h   1.8V   745h | ||||
| *      9D0h   2V     7EAh | ||||
| *      000h   10mV   004h | ||||
| * | ||||
| ********************************************************************************/ | ||||
|  | ||||
| #include <bcm2835.h> | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
| #include <string.h> | ||||
| #include <stdint.h> | ||||
|  | ||||
| #define MODE_READ 0 | ||||
| #define MODE_WRITE 1 | ||||
|  | ||||
| #define MAX_LEN 32 | ||||
|  | ||||
| char wbuf[MAX_LEN]; | ||||
|  | ||||
| typedef enum { | ||||
|     NO_ACTION, | ||||
|     I2C_BEGIN, | ||||
|     I2C_END | ||||
| } i2c_init; | ||||
|  | ||||
| uint8_t  init = NO_ACTION; | ||||
| uint16_t clk_div = BCM2835_I2C_CLOCK_DIVIDER_148; | ||||
| uint8_t slave_address = 0x00; | ||||
| uint32_t len = 0; | ||||
| uint8_t  mode = MODE_READ; | ||||
|  | ||||
| //******************************************************************************* | ||||
| //  comparse: Parse the command line and return EXIT_SUCCESS or EXIT_FAILURE | ||||
| //    argc: number of command-line arguments | ||||
| //    argv: array of command-line argument strings | ||||
| //******************************************************************************* | ||||
|  | ||||
| int comparse(int argc, char **argv) { | ||||
|     int argnum, i, xmitnum; | ||||
| 	 | ||||
|     if (argc < 2) {  // must have at least program name and len arguments | ||||
|                      // or -ie (I2C_END) or -ib (I2C_BEGIN) | ||||
|         fprintf(stderr, "Insufficient command line arguments\n"); | ||||
|         return EXIT_FAILURE; | ||||
|     } | ||||
|      | ||||
|     argnum = 1; | ||||
|     while (argnum < argc && argv[argnum][0] == '-') { | ||||
|  | ||||
|         switch (argv[argnum][1]) { | ||||
|  | ||||
|             case 'i':  // I2C init | ||||
|                 switch (argv[argnum][2]) { | ||||
|                     case 'b': init = I2C_BEGIN; break; | ||||
|                     case 'e': init = I2C_END; break; | ||||
|                     default: | ||||
|                         fprintf(stderr, "%c is not a valid init option\n", argv[argnum][2]); | ||||
|                         return EXIT_FAILURE; | ||||
|                 } | ||||
|                 break; | ||||
|  | ||||
|             case 'd':  // Read/Write Mode | ||||
|                 switch (argv[argnum][2]) { | ||||
|                     case 'r': mode = MODE_READ; break; | ||||
|                     case 'w': mode = MODE_WRITE; break; | ||||
|                     default: | ||||
|                         fprintf(stderr, "%c is not a valid init option\n", argv[argnum][2]); | ||||
|                         return EXIT_FAILURE; | ||||
|                 } | ||||
|                 break; | ||||
|  | ||||
|             case 'c':  // Clock divider | ||||
|                 clk_div = atoi(argv[argnum]+2); | ||||
|                 break; | ||||
|  | ||||
|             case 's':  // Slave address | ||||
|                 slave_address = atoi(argv[argnum]+2); | ||||
|                 break; | ||||
|  | ||||
|             default: | ||||
|                 fprintf(stderr, "%c is not a valid option\n", argv[argnum][1]); | ||||
|                 return EXIT_FAILURE; | ||||
|         } | ||||
|  | ||||
|         argnum++;   // advance the argument number | ||||
|  | ||||
|     } | ||||
|  | ||||
|     // If command is used for I2C_END or I2C_BEGIN only | ||||
|     if (argnum == argc && init != NO_ACTION) // no further arguments are needed | ||||
|         return EXIT_SUCCESS; | ||||
| 	 | ||||
|     // Get len | ||||
|     if (strspn(argv[argnum], "0123456789") != strlen(argv[argnum])) { | ||||
|         fprintf(stderr, "Invalid number of bytes specified\n"); | ||||
|         return EXIT_FAILURE; | ||||
|     } | ||||
|      | ||||
|     len = atoi(argv[argnum]); | ||||
|  | ||||
|     if (len > MAX_LEN) { | ||||
|     	fprintf(stderr, "Invalid number of bytes specified\n"); | ||||
|         return EXIT_FAILURE; | ||||
|     } | ||||
|      | ||||
|     argnum++;   // advance the argument number | ||||
|  | ||||
|     xmitnum = argc - argnum;    // number of xmit bytes | ||||
|  | ||||
|     memset(wbuf, 0, sizeof(wbuf)); | ||||
|  | ||||
|     for (i = 0; i < xmitnum; i++) { | ||||
|         if (strspn(argv[argnum + i], "0123456789abcdefABCDEFxX") != strlen(argv[argnum + i])) { | ||||
|             fprintf(stderr, "Invalid data: "); | ||||
| 	    fprintf(stderr, "%d \n", xmitnum); | ||||
|             return EXIT_FAILURE; | ||||
|         } | ||||
|         wbuf[i] = (char)strtoul(argv[argnum + i], NULL, 0); | ||||
|     } | ||||
|  | ||||
|     return EXIT_SUCCESS; | ||||
| } | ||||
|  | ||||
| //******************************************************************************* | ||||
| //  showusage: Print the usage statement and return errcode. | ||||
| //******************************************************************************* | ||||
| int showusage(int errcode) { | ||||
|     printf("i2c \n"); | ||||
|     printf("Usage: \n"); | ||||
|     printf("  i2c [options] len [rcv/xmit bytes]\n"); | ||||
|     printf("\n"); | ||||
|     printf("  Invoking i2c results in an I2C transfer of a specified\n"); | ||||
|     printf("    number of bytes.  Additionally, it can be used to set the appropriate\n"); | ||||
|     printf("    GPIO pins to their respective I2C configurations or return them\n"); | ||||
|     printf("    to GPIO input configuration.  Options include the I2C clock frequency,\n"); | ||||
|     printf("    initialization option (i2c_begin and i2c_end).  i2c must be invoked\n"); | ||||
|     printf("    with root privileges.\n"); | ||||
|     printf("\n"); | ||||
|     printf("  The following are the options, which must be a single letter\n"); | ||||
|     printf("    preceded by a '-' and followed by another character.\n"); | ||||
|     printf("    -dx where x is 'w' for write and 'r' is for read.\n"); | ||||
|     printf("    -ix where x is the I2C init option, b[egin] or e[nd]\n"); | ||||
|     printf("      The begin option must be executed before any transfer can happen.\n"); | ||||
|     printf("        It may be included with a transfer.\n"); | ||||
|     printf("      The end option will return the I2C pins to GPIO inputs.\n"); | ||||
|     printf("        It may be included with a transfer.\n"); | ||||
|     printf("    -cx where x is the clock divider from 250MHz. Allowed values\n"); | ||||
|     printf("      are 150 through 2500.\n"); | ||||
|     printf("      Corresponding frequencies are specified in bcm2835.h.\n"); | ||||
|     printf("\n"); | ||||
|     printf("    len: The number of bytes to be transmitted or received.\n"); | ||||
|     printf("    The maximum number of bytes allowed is %d\n", MAX_LEN); | ||||
|     printf("\n"); | ||||
|     printf("\n"); | ||||
|     printf("\n"); | ||||
|     return errcode; | ||||
| } | ||||
|  | ||||
| char buf[MAX_LEN]; | ||||
| int i; | ||||
| uint8_t data; | ||||
|  | ||||
| int main(int argc, char **argv) { | ||||
|  | ||||
|     printf("Running ... \n"); | ||||
|      | ||||
|     // parse the command line | ||||
|     if (comparse(argc, argv) == EXIT_FAILURE) return showusage (EXIT_FAILURE); | ||||
|  | ||||
|     if (!bcm2835_init()) | ||||
|     { | ||||
|       printf("bcm2835_init failed. Are you running as root??\n"); | ||||
|       return 1; | ||||
|     } | ||||
|        | ||||
|     // I2C begin if specified     | ||||
|     if (init == I2C_BEGIN) | ||||
|     { | ||||
|       if (!bcm2835_i2c_begin()) | ||||
|       { | ||||
|         printf("bcm2835_i2c_begin failed. Are you running as root??\n"); | ||||
| 	return 1; | ||||
|       } | ||||
|     } | ||||
| 	   | ||||
|  | ||||
|     // If len is 0, no need to continue, but do I2C end if specified | ||||
|     if (len == 0) { | ||||
|          if (init == I2C_END) bcm2835_i2c_end(); | ||||
| 	 printf("... done!\n"); | ||||
|          return EXIT_SUCCESS; | ||||
|     } | ||||
|  | ||||
|     bcm2835_i2c_setSlaveAddress(slave_address); | ||||
|     bcm2835_i2c_setClockDivider(clk_div); | ||||
|     fprintf(stderr, "Clock divider set to: %d\n", clk_div); | ||||
|     fprintf(stderr, "len set to: %d\n", len); | ||||
|     fprintf(stderr, "Slave address set to: %d\n", slave_address);    | ||||
|      | ||||
|     if (mode == MODE_READ) { | ||||
|     	for (i=0; i<MAX_LEN; i++) buf[i] = 'n'; | ||||
|     	data = bcm2835_i2c_read(buf, len); | ||||
|     	printf("Read Result = %d\n", data);    | ||||
|     	for (i=0; i<MAX_LEN; i++) { | ||||
|     		if(buf[i] != 'n') printf("Read Buf[%d] = %x\n", i, buf[i]); | ||||
| 	}     | ||||
|     } | ||||
|     if (mode == MODE_WRITE) { | ||||
|     	data = bcm2835_i2c_write(wbuf, len); | ||||
|     	printf("Write Result = %d\n", data); | ||||
|     }    | ||||
|  | ||||
|     // This I2C end is done after a transfer if specified | ||||
|     if (init == I2C_END) bcm2835_i2c_end();    | ||||
|     bcm2835_close(); | ||||
|     printf("... done!\n"); | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| @@ -0,0 +1,53 @@ | ||||
| // input.c | ||||
| // | ||||
| // Example program for bcm2835 library | ||||
| // Reads and prints the state of an input pin | ||||
| // | ||||
| // After installing bcm2835, you can build this  | ||||
| // with something like: | ||||
| // gcc -o input input.c -l bcm2835 | ||||
| // sudo ./input | ||||
| // | ||||
| // Or you can test it before installing with: | ||||
| // gcc -o input -I ../../src ../../src/bcm2835.c input.c | ||||
| // sudo ./input | ||||
| // | ||||
| // Author: Mike McCauley | ||||
| // Copyright (C) 2011 Mike McCauley | ||||
| // $Id: RF22.h,v 1.21 2012/05/30 01:51:25 mikem Exp $ | ||||
|  | ||||
| #include <bcm2835.h> | ||||
| #include <stdio.h> | ||||
|  | ||||
| // Input on RPi pin GPIO 15 | ||||
| #define PIN RPI_GPIO_P1_15 | ||||
|  | ||||
| int main(int argc, char **argv) | ||||
| { | ||||
|     // If you call this, it will not actually access the GPIO | ||||
|     // Use for testing | ||||
| //    bcm2835_set_debug(1); | ||||
|  | ||||
|     if (!bcm2835_init()) | ||||
| 	return 1; | ||||
|  | ||||
|     // Set RPI pin P1-15 to be an input | ||||
|     bcm2835_gpio_fsel(PIN, BCM2835_GPIO_FSEL_INPT); | ||||
|     //  with a pullup | ||||
|     bcm2835_gpio_set_pud(PIN, BCM2835_GPIO_PUD_UP); | ||||
|  | ||||
|     // Blink | ||||
|     while (1) | ||||
|     { | ||||
| 	// Read some data | ||||
| 	uint8_t value = bcm2835_gpio_lev(PIN); | ||||
| 	printf("read from pin 15: %d\n", value); | ||||
| 	 | ||||
| 	// wait a bit | ||||
| 	delay(500); | ||||
|     } | ||||
|  | ||||
|     bcm2835_close(); | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| @@ -0,0 +1,66 @@ | ||||
| // pwm.c | ||||
| // | ||||
| // Example program for bcm2835 library | ||||
| // Shows how to use PWM to control GPIO pins | ||||
| // | ||||
| // After installing bcm2835, you can build this  | ||||
| // with something like: | ||||
| // gcc -o pwm pwm.c -l bcm2835  | ||||
| // sudo ./pwm | ||||
| // | ||||
| // Or you can test it before installing with: | ||||
| // gcc -o pwm -I ../../src ../../src/bcm2835.c pwm.c | ||||
| // sudo ./pwm | ||||
| // | ||||
| // Connect an LED between GPIO18 (pin 12) and GND to observe the LED changing in brightness | ||||
| // | ||||
| // Author: Mike McCauley | ||||
| // Copyright (C) 2013 Mike McCauley | ||||
| // $Id: RF22.h,v 1.21 2012/05/30 01:51:25 mikem Exp $ | ||||
|  | ||||
| #include <bcm2835.h> | ||||
| #include <stdio.h> | ||||
|  | ||||
| // PWM output on RPi Plug P1 pin 12 (which is GPIO pin 18) | ||||
| // in alt fun 5. | ||||
| // Note that this is the _only_ PWM pin available on the RPi IO headers | ||||
| #define PIN RPI_GPIO_P1_12 | ||||
| // and it is controlled by PWM channel 0 | ||||
| #define PWM_CHANNEL 0 | ||||
| // This controls the max range of the PWM signal | ||||
| #define RANGE 1024 | ||||
|  | ||||
| int main(int argc, char **argv) | ||||
| { | ||||
|     if (!bcm2835_init()) | ||||
| 	return 1; | ||||
|  | ||||
|     // Set the output pin to Alt Fun 5, to allow PWM channel 0 to be output there | ||||
|     bcm2835_gpio_fsel(PIN, BCM2835_GPIO_FSEL_ALT5); | ||||
|  | ||||
|     // Clock divider is set to 16. | ||||
|     // With a divider of 16 and a RANGE of 1024, in MARKSPACE mode, | ||||
|     // the pulse repetition frequency will be | ||||
|     // 1.2MHz/1024 = 1171.875Hz, suitable for driving a DC motor with PWM | ||||
|     bcm2835_pwm_set_clock(BCM2835_PWM_CLOCK_DIVIDER_16); | ||||
|     bcm2835_pwm_set_mode(PWM_CHANNEL, 1, 1); | ||||
|     bcm2835_pwm_set_range(PWM_CHANNEL, RANGE); | ||||
|  | ||||
|     // Vary the PWM m/s ratio between 1/RANGE and (RANGE-1)/RANGE | ||||
|     // over the course of a a few seconds | ||||
|     int direction = 1; // 1 is increase, -1 is decrease | ||||
|     int data = 1; | ||||
|     while (1) | ||||
|     { | ||||
| 	if (data == 1) | ||||
| 	    direction = 1;   // Switch to increasing | ||||
| 	else if (data == RANGE-1) | ||||
| 	    direction = -1;  // Switch to decreasing | ||||
| 	data += direction; | ||||
| 	bcm2835_pwm_set_data(PWM_CHANNEL, data); | ||||
| 	bcm2835_delay(1); | ||||
|     } | ||||
|  | ||||
|     bcm2835_close(); | ||||
|     return 0; | ||||
| } | ||||
| @@ -0,0 +1,56 @@ | ||||
| // spi.c | ||||
| // | ||||
| // Example program for bcm2835 library | ||||
| // Shows how to interface with SPI to transfer a byte to and from an SPI device | ||||
| // | ||||
| // After installing bcm2835, you can build this  | ||||
| // with something like: | ||||
| // gcc -o spi spi.c -l bcm2835 | ||||
| // sudo ./spi | ||||
| // | ||||
| // Or you can test it before installing with: | ||||
| // gcc -o spi -I ../../src ../../src/bcm2835.c spi.c | ||||
| // sudo ./spi | ||||
| // | ||||
| // Author: Mike McCauley | ||||
| // Copyright (C) 2012 Mike McCauley | ||||
| // $Id: RF22.h,v 1.21 2012/05/30 01:51:25 mikem Exp $ | ||||
|  | ||||
| #include <bcm2835.h> | ||||
| #include <stdio.h> | ||||
|  | ||||
| int main(int argc, char **argv) | ||||
| { | ||||
|     // If you call this, it will not actually access the GPIO | ||||
| // Use for testing | ||||
| //        bcm2835_set_debug(1); | ||||
|  | ||||
|     if (!bcm2835_init()) | ||||
|     { | ||||
|       printf("bcm2835_init failed. Are you running as root??\n"); | ||||
|       return 1; | ||||
|     } | ||||
|  | ||||
|     if (!bcm2835_spi_begin()) | ||||
|     { | ||||
|       printf("bcm2835_spi_begin failed. Are you running as root??\n"); | ||||
|       return 1; | ||||
|     } | ||||
|     bcm2835_spi_setBitOrder(BCM2835_SPI_BIT_ORDER_MSBFIRST);      // The default | ||||
|     bcm2835_spi_setDataMode(BCM2835_SPI_MODE0);                   // The default | ||||
|     bcm2835_spi_setClockDivider(BCM2835_SPI_CLOCK_DIVIDER_65536); // The default | ||||
|     bcm2835_spi_chipSelect(BCM2835_SPI_CS0);                      // The default | ||||
|     bcm2835_spi_setChipSelectPolarity(BCM2835_SPI_CS0, LOW);      // the default | ||||
|      | ||||
|     // Send a byte to the slave and simultaneously read a byte back from the slave | ||||
|     // If you tie MISO to MOSI, you should read back what was sent | ||||
|     uint8_t send_data = 0x23; | ||||
|     uint8_t read_data = bcm2835_spi_transfer(send_data); | ||||
|     printf("Sent to SPI: 0x%02X. Read back from SPI: 0x%02X.\n", send_data, read_data); | ||||
|     if (send_data != read_data) | ||||
|       printf("Do you have the loopback from MOSI to MISO connected?\n"); | ||||
|     bcm2835_spi_end(); | ||||
|     bcm2835_close(); | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| @@ -0,0 +1,63 @@ | ||||
| // spin.c | ||||
| // | ||||
| // Example program for bcm2835 library | ||||
| // Shows how to interface with SPI to transfer a number of bytes to and from an SPI device | ||||
| // | ||||
| // After installing bcm2835, you can build this  | ||||
| // with something like: | ||||
| // gcc -o spin spin.c -l bcm2835 | ||||
| // sudo ./spin | ||||
| // | ||||
| // Or you can test it before installing with: | ||||
| // gcc -o spin -I ../../src ../../src/bcm2835.c spin.c | ||||
| // sudo ./spin | ||||
| // | ||||
| // Author: Mike McCauley | ||||
| // Copyright (C) 2012 Mike McCauley | ||||
| // $Id: RF22.h,v 1.21 2012/05/30 01:51:25 mikem Exp $ | ||||
|  | ||||
| #include <bcm2835.h> | ||||
| #include <stdio.h> | ||||
|  | ||||
| int main(int argc, char **argv) | ||||
| { | ||||
|     // If you call this, it will not actually access the GPIO | ||||
| // Use for testing | ||||
| //        bcm2835_set_debug(1); | ||||
|      | ||||
|     if (!bcm2835_init()) | ||||
|     { | ||||
|       printf("bcm2835_init failed. Are you running as root??\n"); | ||||
|       return 1; | ||||
|     } | ||||
|  | ||||
|     if (!bcm2835_spi_begin()) | ||||
|     { | ||||
|       printf("bcm2835_spi_begin failed. Are you running as root??\n"); | ||||
|       return 1; | ||||
|     } | ||||
|     bcm2835_spi_begin(); | ||||
|     bcm2835_spi_setBitOrder(BCM2835_SPI_BIT_ORDER_MSBFIRST);      // The default | ||||
|     bcm2835_spi_setDataMode(BCM2835_SPI_MODE0);                   // The default | ||||
|     bcm2835_spi_setClockDivider(BCM2835_SPI_CLOCK_DIVIDER_65536); // The default | ||||
|     bcm2835_spi_chipSelect(BCM2835_SPI_CS0);                      // The default | ||||
|     bcm2835_spi_setChipSelectPolarity(BCM2835_SPI_CS0, LOW);      // the default | ||||
|      | ||||
|     // Send a some bytes to the slave and simultaneously read  | ||||
|     // some bytes back from the slave | ||||
|     // Most SPI devices expect one or 2 bytes of command, after which they will send back | ||||
|     // some data. In such a case you will have the command bytes first in the buffer, | ||||
|     // followed by as many 0 bytes as you expect returned data bytes. After the transfer, you  | ||||
|     // Can the read the reply bytes from the buffer. | ||||
|     // If you tie MISO to MOSI, you should read back what was sent. | ||||
|      | ||||
|     char buf[] = { 0x01, 0x02, 0x11, 0x33 }; // Data to send | ||||
|     bcm2835_spi_transfern(buf, sizeof(buf)); | ||||
|     // buf will now be filled with the data that was read from the slave | ||||
|     printf("Read from SPI: %02X  %02X  %02X  %02X \n", buf[0], buf[1], buf[2], buf[3]); | ||||
|      | ||||
|     bcm2835_spi_end(); | ||||
|     bcm2835_close(); | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| @@ -0,0 +1,92 @@ | ||||
| // spiram.c | ||||
| // | ||||
| // Little library for accessing  SPI RAM such as 23K256-I/P | ||||
| // using bcm2835 library on Raspberry Pi | ||||
| // | ||||
| // Author: Mike McCauley | ||||
| // Copyright (C) 2018 Mike McCauley | ||||
| // This software is part of the bcm2835 library and is licensed under the same conditions | ||||
| // $Id:  $ | ||||
|  | ||||
| #include <bcm2835.h> | ||||
| #include <string.h> // memcpy | ||||
| #include "spiram.h" | ||||
|  | ||||
| static uint8_t _mode = SPIRAM_MODE_INVALID; | ||||
|  | ||||
| uint8_t spiram_read_sr() | ||||
| { | ||||
|   uint8_t command[] = { SPIRAM_OPCODE_READ_SR, 0}; | ||||
|   bcm2835_spi_transfern(command, sizeof(command)); | ||||
|   return command[1]; | ||||
| } | ||||
|  | ||||
| bool spiram_write_sr(uint8_t value) | ||||
| { | ||||
|   uint8_t command[] = { SPIRAM_OPCODE_WRITE_SR, value}; | ||||
|   bcm2835_spi_transfern(command, sizeof(command)); | ||||
|   return true; | ||||
| } | ||||
|  | ||||
| bool spiram_set_mode(uint8_t mode) | ||||
| { | ||||
|   if (mode != _mode) | ||||
|     { | ||||
|       spiram_write_sr(mode); | ||||
|       _mode = mode; | ||||
|     } | ||||
|   return true; | ||||
| } | ||||
|  | ||||
| bool spiram_begin() | ||||
| { | ||||
|   _mode = SPIRAM_MODE_BYTE; | ||||
|    | ||||
|   bcm2835_spi_setBitOrder(BCM2835_SPI_BIT_ORDER_MSBFIRST);      // The default | ||||
|   bcm2835_spi_setDataMode(BCM2835_SPI_MODE0);                   // The default | ||||
|   bcm2835_spi_setClockDivider(BCM2835_SPI_CLOCK_DIVIDER_65536); // The default | ||||
|   bcm2835_spi_chipSelect(BCM2835_SPI_CS0);                      // The default | ||||
|   bcm2835_spi_setChipSelectPolarity(BCM2835_SPI_CS0, LOW);      // the default | ||||
|   return true; | ||||
| } | ||||
|  | ||||
| bool spiram_end() | ||||
| { | ||||
|   bcm2835_spi_end(); | ||||
|   return true; | ||||
| } | ||||
|  | ||||
|  | ||||
| uint8_t spiram_read_byte(uint16_t address) | ||||
| { | ||||
|   spiram_set_mode(SPIRAM_MODE_BYTE); | ||||
|   uint8_t command[] = { SPIRAM_OPCODE_READ, (address >> 8) & 0xff, address & 0xff, 0xff }; | ||||
|   bcm2835_spi_transfern(command, sizeof(command)); | ||||
|   uint8_t ret = command[3]; | ||||
| } | ||||
|  | ||||
| bool spiram_write_byte(uint16_t address, uint8_t value) | ||||
| { | ||||
|   spiram_set_mode(SPIRAM_MODE_BYTE); | ||||
|   uint8_t command[] = { SPIRAM_OPCODE_WRITE, (address >> 8) & 0xff, address & 0xff, value }; | ||||
|   bcm2835_spi_writenb(command, sizeof(command)); | ||||
|   return true; | ||||
| } | ||||
|  | ||||
| bool spiram_read_page(uint16_t address, uint8_t *buf) | ||||
| { | ||||
|   spiram_set_mode(SPIRAM_MODE_PAGE); | ||||
|   uint8_t command[3 + SPIRAM_PAGE_SIZE] = { SPIRAM_OPCODE_READ, (address >> 8) & 0xff, address & 0xff }; | ||||
|   bcm2835_spi_transfern(command, sizeof(command)); | ||||
|   memcpy(buf, command + 3, SPIRAM_PAGE_SIZE); | ||||
|   return true; | ||||
| } | ||||
|  | ||||
| bool spiram_write_page(uint16_t address, uint8_t *buf) | ||||
| { | ||||
|   spiram_set_mode(SPIRAM_MODE_PAGE); | ||||
|   uint8_t command[3 + SPIRAM_PAGE_SIZE] = { SPIRAM_OPCODE_WRITE, (address >> 8) & 0xff, address & 0xff }; | ||||
|   memcpy(command + 3, buf, SPIRAM_PAGE_SIZE);; | ||||
|   bcm2835_spi_writenb(command, sizeof(command)); | ||||
|   return true; | ||||
| } | ||||
| @@ -0,0 +1,102 @@ | ||||
| // spiram.h | ||||
| // | ||||
| // Header for a Little Library for accessing SPI RAM chips such as 23K256-I/P | ||||
| // using bcm2835 library on Raspberry Pi | ||||
| // | ||||
| // Author: Mike McCauley | ||||
| // Copyright (C) 2018 Mike McCauley | ||||
| // This software is part of the bcm2835 library and is licensed under the same conditions | ||||
| // $Id:  $ | ||||
|  | ||||
| #include <stdbool.h> // bool, true, false | ||||
|  | ||||
| #ifndef SPIRAM_h | ||||
| #define SPIRAM_h | ||||
|  | ||||
| #define SPIRAM_HOLD_DISABLE     0x1 | ||||
| #define SPIRAM_MODE_BYTE       (0x00 | SPIRAM_HOLD_DISABLE) | ||||
| #define SPIRAM_MODE_PAGE       (0x80 | SPIRAM_HOLD_DISABLE) | ||||
| #define SPIRAM_MODE_STREAM     (0x40 | SPIRAM_HOLD_DISABLE) | ||||
| #define SPIRAM_MODE_INVALID    0xff | ||||
| #define SPIRAM_OPCODE_READ_SR  0x05 | ||||
| #define SPIRAM_OPCODE_WRITE_SR 0x01 | ||||
| #define SPIRAM_OPCODE_READ     0x03 | ||||
| #define SPIRAM_OPCODE_WRITE    0x02 | ||||
|  | ||||
| /* Size of a page in 23K256 */ | ||||
| #define SPIRAM_PAGE_SIZE       32 | ||||
|  | ||||
| /* | ||||
|  * This library allows you to read and write data from an external SPI interfaced static ram (SRAM) | ||||
|  * such as 23K256 (256kbit = 32kByte) | ||||
|  * Byte and POage modes are supported. | ||||
|  * Valid addresses are from 0x0000 to 0x7fff | ||||
|  * Tested on RPI 3 Model B, Raspbian Jessie | ||||
|  */ | ||||
|  | ||||
| /* | ||||
|  * Initialise the spiram library, enables SPI with default divider of  | ||||
|  * BCM2835_SPI_CLOCK_DIVIDER_65536 = 6.1035156kHz on RPI3. | ||||
|  * You can change the SPI speed after calling this by calling bcm2835_spi_setClockDivider() | ||||
|  * Returns true on success, false otherwise | ||||
|  */ | ||||
| bool spiram_begin(); | ||||
|  | ||||
| /* | ||||
|  * Stops using the RPI SPI functions and returns the GPIO pins to their default behaviour. | ||||
|  * Call this when you have finished using SPI forever, or at the end of your program | ||||
|  * Returns true on success, false otherwise | ||||
|  */ | ||||
| bool spiram_end(); | ||||
|  | ||||
| /* | ||||
|  * Read and returns the current value of the SRAM status register | ||||
|  */ | ||||
| uint8_t spiram_read_sr(); | ||||
|  | ||||
| /* | ||||
|  * Write a new value to the SRAM status register,  | ||||
|  * usually one of SPIRAM_MODE_* | ||||
|  * You should never need to call this directly. Used internally. | ||||
|  * Returns true on success, false otherwise | ||||
|  */ | ||||
| bool spiram_write_sr(uint8_t value); | ||||
|  | ||||
| /* | ||||
|  * Set the operating mode of the SRAM. | ||||
|  * Mode is one of  SPIRAM_MODE_*. THis is done automatically  | ||||
|  * by the spiram_write_* and spiram_read_* functions, so you would not normally | ||||
|  * need to call this directly. | ||||
|  * Returns true on success, false otherwise | ||||
|  */ | ||||
| bool spiram_set_mode(uint8_t mode); | ||||
|  | ||||
| /* | ||||
|  * Reads a single byte from the given address and returns it. | ||||
|  */ | ||||
| uint8_t spiram_read_byte(uint16_t address); | ||||
|  | ||||
| /* | ||||
|  * Writes a single byte to the given address. | ||||
|  * Returns true on success, false otherwise | ||||
|  */ | ||||
| bool spiram_write_byte(uint16_t address, uint8_t value); | ||||
|  | ||||
| /* | ||||
|  * Reads a whole page of data (32 bytes) from the page starting at the given address. | ||||
|  * The read data is placed in buf. Be sure that there is enough rom there for it. | ||||
|  * Caution: if the starting address is not on a page boundary,  | ||||
|  * it will wrap back to the beginning of the page. | ||||
|  * Returns true on success, false otherwise | ||||
|  */ | ||||
| bool spiram_read_page(uint16_t address, uint8_t *buf); | ||||
|  | ||||
| /* | ||||
|  * Writes a whole page of data (32 bytes) to the page starting at the given address. | ||||
|  * Caution: if the starting address is not on a page boundary,  | ||||
|  * it will wrap back to the beginning of the page. | ||||
|  * Returns true on success, false otherwise | ||||
|  */ | ||||
| bool spiram_write_page(uint16_t address, uint8_t *buf); | ||||
|  | ||||
| #endif | ||||
| @@ -0,0 +1,99 @@ | ||||
| // spiram_test.c | ||||
| // | ||||
| // Example program for bcm2835  | ||||
| // Shows how to interface with SPI RAM such as 23K256-I/P | ||||
| // using the spiram little library | ||||
| // | ||||
| // Tested on RPI 3 Model B, Raspbian Jessie | ||||
| // Tested at full speed over many hours with no errors. | ||||
| // | ||||
| // Connect RPi 3 B to 23K256-I/P like this: | ||||
| // RPi pin    Function     23K256-I/P pin (name) | ||||
| // J1-6       GND          4 (VSS) | ||||
| // J1-1       3.3V         8 (VCC) | ||||
| //                    and  7 (/HOLD) | ||||
| // J1-19      SPI0_MOSI    5 (SI) | ||||
| // J1-21      SPI0_MISO    2 (SO) | ||||
| // J1-23      SPI0_SCLK    6 (SCK) | ||||
| // J1-24      SPI0_CE0_N   1 (/CS) | ||||
| // | ||||
| // After installing bcm2835, you can build this | ||||
| // with something like: | ||||
| // gcc -o spiram_test spiram.c spiram_test.c -l bcm2835 | ||||
| // sudo ./spiram_test | ||||
| // | ||||
| // Or you can test it before installing with: | ||||
| // gcc -o spiram_test -I ../../src ../../src/bcm2835.c spiram.c spiram_test.c | ||||
| // sudo ./spiram_test | ||||
| // | ||||
| // Author: Mike McCauley | ||||
| // Copyright (C) 2018 Mike McCauley | ||||
| // $Id:  $ | ||||
|  | ||||
| #include <bcm2835.h> | ||||
| #include <stdio.h> | ||||
| #include <string.h> // memcmp | ||||
| #include "spiram.h" | ||||
|  | ||||
| int main(int argc, char **argv) | ||||
| { | ||||
|   if (!bcm2835_init()) | ||||
|     { | ||||
|       printf("bcm2835_init failed. Are you running as root??\n"); | ||||
|       return 1; | ||||
|     } | ||||
|  | ||||
|   if (!bcm2835_spi_begin()) | ||||
|     { | ||||
|       printf("bcm2835_spi_begin failed. Are you running as root??\n"); | ||||
|       return 1; | ||||
|     } | ||||
|   if (!spiram_begin()) | ||||
|     { | ||||
|       printf("spiram_begin failed.\n"); | ||||
|       return 1; | ||||
|     } | ||||
|   /* You can speed things up by selecting a faster SPI speed | ||||
|   // after spiram_begin, which defaults to BCM2835_SPI_CLOCK_DIVIDER_65536 = 6.1035156kHz on RPI3 | ||||
|   */ | ||||
|   bcm2835_spi_setClockDivider(BCM2835_SPI_CLOCK_DIVIDER_64); // 6.25MHz on RPI3 | ||||
|  | ||||
|   uint8_t value = 0; | ||||
|   uint16_t address = 0x0000; | ||||
|   while (1) | ||||
|     { | ||||
|       uint8_t ret; | ||||
|  | ||||
|       /*      ret = spiram_read_sr();*/ | ||||
|       spiram_write_byte(address, value); | ||||
|       ret = spiram_read_byte(address); | ||||
|       if (ret != value) | ||||
| 	printf("ERROR: spiram_read_byte address %04x got %02x, expected %02x\n", address, ret, value); | ||||
| #if 0 | ||||
|       printf("spiram_read_byte at address %04x got %02x\n", address, ret); | ||||
| #endif | ||||
|        | ||||
|       uint8_t write_page_buf[SPIRAM_PAGE_SIZE] = { 0, value, value, value }; | ||||
|       uint8_t read_page_buf[SPIRAM_PAGE_SIZE]; | ||||
|       spiram_write_page(address, write_page_buf); | ||||
|      | ||||
|       spiram_read_page(address, read_page_buf); | ||||
|       if (memcmp(write_page_buf, read_page_buf, SPIRAM_PAGE_SIZE) != 0) | ||||
| 	printf("ERROR: spiram_read_page at address %04x\n", address); | ||||
| #if 0 | ||||
|       printf("spiram_read_page address %04x got ", address); | ||||
|       int i; | ||||
|       for (i = 0; i < SPIRAM_PAGE_SIZE; i++) | ||||
| 	printf("%02x ", read_page_buf[i]); | ||||
|       printf("\n"); | ||||
| #endif | ||||
|       /* sleep(1); */ | ||||
|       value++; | ||||
|       address++; | ||||
|     } | ||||
|    | ||||
|   spiram_end(); | ||||
|   bcm2835_close(); | ||||
|   return 0; | ||||
| } | ||||
|  | ||||
							
								
								
									
										520
									
								
								inkycal/display/drivers/parallel_drivers/bcm2835-1.68/install-sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,520 @@ | ||||
| #!/bin/sh | ||||
| # install - install a program, script, or datafile | ||||
|  | ||||
| scriptversion=2009-04-28.21; # UTC | ||||
|  | ||||
| # This originates from X11R5 (mit/util/scripts/install.sh), which was | ||||
| # later released in X11R6 (xc/config/util/install.sh) with the | ||||
| # following copyright and license. | ||||
| # | ||||
| # Copyright (C) 1994 X Consortium | ||||
| # | ||||
| # Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
| # of this software and associated documentation files (the "Software"), to | ||||
| # deal in the Software without restriction, including without limitation the | ||||
| # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or | ||||
| # sell copies of the Software, and to permit persons to whom the Software is | ||||
| # furnished to do so, subject to the following conditions: | ||||
| # | ||||
| # The above copyright notice and this permission notice shall be included in | ||||
| # all copies or substantial portions of the Software. | ||||
| # | ||||
| # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE | ||||
| # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN | ||||
| # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- | ||||
| # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||||
| # | ||||
| # Except as contained in this notice, the name of the X Consortium shall not | ||||
| # be used in advertising or otherwise to promote the sale, use or other deal- | ||||
| # ings in this Software without prior written authorization from the X Consor- | ||||
| # tium. | ||||
| # | ||||
| # | ||||
| # FSF changes to this file are in the public domain. | ||||
| # | ||||
| # Calling this script install-sh is preferred over install.sh, to prevent | ||||
| # `make' implicit rules from creating a file called install from it | ||||
| # when there is no Makefile. | ||||
| # | ||||
| # This script is compatible with the BSD install script, but was written | ||||
| # from scratch. | ||||
|  | ||||
| nl=' | ||||
| ' | ||||
| IFS=" ""	$nl" | ||||
|  | ||||
| # set DOITPROG to echo to test this script | ||||
|  | ||||
| # Don't use :- since 4.3BSD and earlier shells don't like it. | ||||
| doit=${DOITPROG-} | ||||
| if test -z "$doit"; then | ||||
|   doit_exec=exec | ||||
| else | ||||
|   doit_exec=$doit | ||||
| fi | ||||
|  | ||||
| # Put in absolute file names if you don't have them in your path; | ||||
| # or use environment vars. | ||||
|  | ||||
| chgrpprog=${CHGRPPROG-chgrp} | ||||
| chmodprog=${CHMODPROG-chmod} | ||||
| chownprog=${CHOWNPROG-chown} | ||||
| cmpprog=${CMPPROG-cmp} | ||||
| cpprog=${CPPROG-cp} | ||||
| mkdirprog=${MKDIRPROG-mkdir} | ||||
| mvprog=${MVPROG-mv} | ||||
| rmprog=${RMPROG-rm} | ||||
| stripprog=${STRIPPROG-strip} | ||||
|  | ||||
| posix_glob='?' | ||||
| initialize_posix_glob=' | ||||
|   test "$posix_glob" != "?" || { | ||||
|     if (set -f) 2>/dev/null; then | ||||
|       posix_glob= | ||||
|     else | ||||
|       posix_glob=: | ||||
|     fi | ||||
|   } | ||||
| ' | ||||
|  | ||||
| posix_mkdir= | ||||
|  | ||||
| # Desired mode of installed file. | ||||
| mode=0755 | ||||
|  | ||||
| chgrpcmd= | ||||
| chmodcmd=$chmodprog | ||||
| chowncmd= | ||||
| mvcmd=$mvprog | ||||
| rmcmd="$rmprog -f" | ||||
| stripcmd= | ||||
|  | ||||
| src= | ||||
| dst= | ||||
| dir_arg= | ||||
| dst_arg= | ||||
|  | ||||
| copy_on_change=false | ||||
| no_target_directory= | ||||
|  | ||||
| usage="\ | ||||
| Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE | ||||
|    or: $0 [OPTION]... SRCFILES... DIRECTORY | ||||
|    or: $0 [OPTION]... -t DIRECTORY SRCFILES... | ||||
|    or: $0 [OPTION]... -d DIRECTORIES... | ||||
|  | ||||
| In the 1st form, copy SRCFILE to DSTFILE. | ||||
| In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. | ||||
| In the 4th, create DIRECTORIES. | ||||
|  | ||||
| Options: | ||||
|      --help     display this help and exit. | ||||
|      --version  display version info and exit. | ||||
|  | ||||
|   -c            (ignored) | ||||
|   -C            install only if different (preserve the last data modification time) | ||||
|   -d            create directories instead of installing files. | ||||
|   -g GROUP      $chgrpprog installed files to GROUP. | ||||
|   -m MODE       $chmodprog installed files to MODE. | ||||
|   -o USER       $chownprog installed files to USER. | ||||
|   -s            $stripprog installed files. | ||||
|   -t DIRECTORY  install into DIRECTORY. | ||||
|   -T            report an error if DSTFILE is a directory. | ||||
|  | ||||
| Environment variables override the default commands: | ||||
|   CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG | ||||
|   RMPROG STRIPPROG | ||||
| " | ||||
|  | ||||
| while test $# -ne 0; do | ||||
|   case $1 in | ||||
|     -c) ;; | ||||
|  | ||||
|     -C) copy_on_change=true;; | ||||
|  | ||||
|     -d) dir_arg=true;; | ||||
|  | ||||
|     -g) chgrpcmd="$chgrpprog $2" | ||||
| 	shift;; | ||||
|  | ||||
|     --help) echo "$usage"; exit $?;; | ||||
|  | ||||
|     -m) mode=$2 | ||||
| 	case $mode in | ||||
| 	  *' '* | *'	'* | *' | ||||
| '*	  | *'*'* | *'?'* | *'['*) | ||||
| 	    echo "$0: invalid mode: $mode" >&2 | ||||
| 	    exit 1;; | ||||
| 	esac | ||||
| 	shift;; | ||||
|  | ||||
|     -o) chowncmd="$chownprog $2" | ||||
| 	shift;; | ||||
|  | ||||
|     -s) stripcmd=$stripprog;; | ||||
|  | ||||
|     -t) dst_arg=$2 | ||||
| 	shift;; | ||||
|  | ||||
|     -T) no_target_directory=true;; | ||||
|  | ||||
|     --version) echo "$0 $scriptversion"; exit $?;; | ||||
|  | ||||
|     --)	shift | ||||
| 	break;; | ||||
|  | ||||
|     -*)	echo "$0: invalid option: $1" >&2 | ||||
| 	exit 1;; | ||||
|  | ||||
|     *)  break;; | ||||
|   esac | ||||
|   shift | ||||
| done | ||||
|  | ||||
| if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then | ||||
|   # When -d is used, all remaining arguments are directories to create. | ||||
|   # When -t is used, the destination is already specified. | ||||
|   # Otherwise, the last argument is the destination.  Remove it from $@. | ||||
|   for arg | ||||
|   do | ||||
|     if test -n "$dst_arg"; then | ||||
|       # $@ is not empty: it contains at least $arg. | ||||
|       set fnord "$@" "$dst_arg" | ||||
|       shift # fnord | ||||
|     fi | ||||
|     shift # arg | ||||
|     dst_arg=$arg | ||||
|   done | ||||
| fi | ||||
|  | ||||
| if test $# -eq 0; then | ||||
|   if test -z "$dir_arg"; then | ||||
|     echo "$0: no input file specified." >&2 | ||||
|     exit 1 | ||||
|   fi | ||||
|   # It's OK to call `install-sh -d' without argument. | ||||
|   # This can happen when creating conditional directories. | ||||
|   exit 0 | ||||
| fi | ||||
|  | ||||
| if test -z "$dir_arg"; then | ||||
|   trap '(exit $?); exit' 1 2 13 15 | ||||
|  | ||||
|   # Set umask so as not to create temps with too-generous modes. | ||||
|   # However, 'strip' requires both read and write access to temps. | ||||
|   case $mode in | ||||
|     # Optimize common cases. | ||||
|     *644) cp_umask=133;; | ||||
|     *755) cp_umask=22;; | ||||
|  | ||||
|     *[0-7]) | ||||
|       if test -z "$stripcmd"; then | ||||
| 	u_plus_rw= | ||||
|       else | ||||
| 	u_plus_rw='% 200' | ||||
|       fi | ||||
|       cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; | ||||
|     *) | ||||
|       if test -z "$stripcmd"; then | ||||
| 	u_plus_rw= | ||||
|       else | ||||
| 	u_plus_rw=,u+rw | ||||
|       fi | ||||
|       cp_umask=$mode$u_plus_rw;; | ||||
|   esac | ||||
| fi | ||||
|  | ||||
| for src | ||||
| do | ||||
|   # Protect names starting with `-'. | ||||
|   case $src in | ||||
|     -*) src=./$src;; | ||||
|   esac | ||||
|  | ||||
|   if test -n "$dir_arg"; then | ||||
|     dst=$src | ||||
|     dstdir=$dst | ||||
|     test -d "$dstdir" | ||||
|     dstdir_status=$? | ||||
|   else | ||||
|  | ||||
|     # Waiting for this to be detected by the "$cpprog $src $dsttmp" command | ||||
|     # might cause directories to be created, which would be especially bad | ||||
|     # if $src (and thus $dsttmp) contains '*'. | ||||
|     if test ! -f "$src" && test ! -d "$src"; then | ||||
|       echo "$0: $src does not exist." >&2 | ||||
|       exit 1 | ||||
|     fi | ||||
|  | ||||
|     if test -z "$dst_arg"; then | ||||
|       echo "$0: no destination specified." >&2 | ||||
|       exit 1 | ||||
|     fi | ||||
|  | ||||
|     dst=$dst_arg | ||||
|     # Protect names starting with `-'. | ||||
|     case $dst in | ||||
|       -*) dst=./$dst;; | ||||
|     esac | ||||
|  | ||||
|     # If destination is a directory, append the input filename; won't work | ||||
|     # if double slashes aren't ignored. | ||||
|     if test -d "$dst"; then | ||||
|       if test -n "$no_target_directory"; then | ||||
| 	echo "$0: $dst_arg: Is a directory" >&2 | ||||
| 	exit 1 | ||||
|       fi | ||||
|       dstdir=$dst | ||||
|       dst=$dstdir/`basename "$src"` | ||||
|       dstdir_status=0 | ||||
|     else | ||||
|       # Prefer dirname, but fall back on a substitute if dirname fails. | ||||
|       dstdir=` | ||||
| 	(dirname "$dst") 2>/dev/null || | ||||
| 	expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ | ||||
| 	     X"$dst" : 'X\(//\)[^/]' \| \ | ||||
| 	     X"$dst" : 'X\(//\)$' \| \ | ||||
| 	     X"$dst" : 'X\(/\)' \| . 2>/dev/null || | ||||
| 	echo X"$dst" | | ||||
| 	    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ | ||||
| 		   s//\1/ | ||||
| 		   q | ||||
| 		 } | ||||
| 		 /^X\(\/\/\)[^/].*/{ | ||||
| 		   s//\1/ | ||||
| 		   q | ||||
| 		 } | ||||
| 		 /^X\(\/\/\)$/{ | ||||
| 		   s//\1/ | ||||
| 		   q | ||||
| 		 } | ||||
| 		 /^X\(\/\).*/{ | ||||
| 		   s//\1/ | ||||
| 		   q | ||||
| 		 } | ||||
| 		 s/.*/./; q' | ||||
|       ` | ||||
|  | ||||
|       test -d "$dstdir" | ||||
|       dstdir_status=$? | ||||
|     fi | ||||
|   fi | ||||
|  | ||||
|   obsolete_mkdir_used=false | ||||
|  | ||||
|   if test $dstdir_status != 0; then | ||||
|     case $posix_mkdir in | ||||
|       '') | ||||
| 	# Create intermediate dirs using mode 755 as modified by the umask. | ||||
| 	# This is like FreeBSD 'install' as of 1997-10-28. | ||||
| 	umask=`umask` | ||||
| 	case $stripcmd.$umask in | ||||
| 	  # Optimize common cases. | ||||
| 	  *[2367][2367]) mkdir_umask=$umask;; | ||||
| 	  .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; | ||||
|  | ||||
| 	  *[0-7]) | ||||
| 	    mkdir_umask=`expr $umask + 22 \ | ||||
| 	      - $umask % 100 % 40 + $umask % 20 \ | ||||
| 	      - $umask % 10 % 4 + $umask % 2 | ||||
| 	    `;; | ||||
| 	  *) mkdir_umask=$umask,go-w;; | ||||
| 	esac | ||||
|  | ||||
| 	# With -d, create the new directory with the user-specified mode. | ||||
| 	# Otherwise, rely on $mkdir_umask. | ||||
| 	if test -n "$dir_arg"; then | ||||
| 	  mkdir_mode=-m$mode | ||||
| 	else | ||||
| 	  mkdir_mode= | ||||
| 	fi | ||||
|  | ||||
| 	posix_mkdir=false | ||||
| 	case $umask in | ||||
| 	  *[123567][0-7][0-7]) | ||||
| 	    # POSIX mkdir -p sets u+wx bits regardless of umask, which | ||||
| 	    # is incompatible with FreeBSD 'install' when (umask & 300) != 0. | ||||
| 	    ;; | ||||
| 	  *) | ||||
| 	    tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ | ||||
| 	    trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 | ||||
|  | ||||
| 	    if (umask $mkdir_umask && | ||||
| 		exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 | ||||
| 	    then | ||||
| 	      if test -z "$dir_arg" || { | ||||
| 		   # Check for POSIX incompatibilities with -m. | ||||
| 		   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or | ||||
| 		   # other-writeable bit of parent directory when it shouldn't. | ||||
| 		   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. | ||||
| 		   ls_ld_tmpdir=`ls -ld "$tmpdir"` | ||||
| 		   case $ls_ld_tmpdir in | ||||
| 		     d????-?r-*) different_mode=700;; | ||||
| 		     d????-?--*) different_mode=755;; | ||||
| 		     *) false;; | ||||
| 		   esac && | ||||
| 		   $mkdirprog -m$different_mode -p -- "$tmpdir" && { | ||||
| 		     ls_ld_tmpdir_1=`ls -ld "$tmpdir"` | ||||
| 		     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" | ||||
| 		   } | ||||
| 		 } | ||||
| 	      then posix_mkdir=: | ||||
| 	      fi | ||||
| 	      rmdir "$tmpdir/d" "$tmpdir" | ||||
| 	    else | ||||
| 	      # Remove any dirs left behind by ancient mkdir implementations. | ||||
| 	      rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null | ||||
| 	    fi | ||||
| 	    trap '' 0;; | ||||
| 	esac;; | ||||
|     esac | ||||
|  | ||||
|     if | ||||
|       $posix_mkdir && ( | ||||
| 	umask $mkdir_umask && | ||||
| 	$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" | ||||
|       ) | ||||
|     then : | ||||
|     else | ||||
|  | ||||
|       # The umask is ridiculous, or mkdir does not conform to POSIX, | ||||
|       # or it failed possibly due to a race condition.  Create the | ||||
|       # directory the slow way, step by step, checking for races as we go. | ||||
|  | ||||
|       case $dstdir in | ||||
| 	/*) prefix='/';; | ||||
| 	-*) prefix='./';; | ||||
| 	*)  prefix='';; | ||||
|       esac | ||||
|  | ||||
|       eval "$initialize_posix_glob" | ||||
|  | ||||
|       oIFS=$IFS | ||||
|       IFS=/ | ||||
|       $posix_glob set -f | ||||
|       set fnord $dstdir | ||||
|       shift | ||||
|       $posix_glob set +f | ||||
|       IFS=$oIFS | ||||
|  | ||||
|       prefixes= | ||||
|  | ||||
|       for d | ||||
|       do | ||||
| 	test -z "$d" && continue | ||||
|  | ||||
| 	prefix=$prefix$d | ||||
| 	if test -d "$prefix"; then | ||||
| 	  prefixes= | ||||
| 	else | ||||
| 	  if $posix_mkdir; then | ||||
| 	    (umask=$mkdir_umask && | ||||
| 	     $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break | ||||
| 	    # Don't fail if two instances are running concurrently. | ||||
| 	    test -d "$prefix" || exit 1 | ||||
| 	  else | ||||
| 	    case $prefix in | ||||
| 	      *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; | ||||
| 	      *) qprefix=$prefix;; | ||||
| 	    esac | ||||
| 	    prefixes="$prefixes '$qprefix'" | ||||
| 	  fi | ||||
| 	fi | ||||
| 	prefix=$prefix/ | ||||
|       done | ||||
|  | ||||
|       if test -n "$prefixes"; then | ||||
| 	# Don't fail if two instances are running concurrently. | ||||
| 	(umask $mkdir_umask && | ||||
| 	 eval "\$doit_exec \$mkdirprog $prefixes") || | ||||
| 	  test -d "$dstdir" || exit 1 | ||||
| 	obsolete_mkdir_used=true | ||||
|       fi | ||||
|     fi | ||||
|   fi | ||||
|  | ||||
|   if test -n "$dir_arg"; then | ||||
|     { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && | ||||
|     { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && | ||||
|     { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || | ||||
|       test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 | ||||
|   else | ||||
|  | ||||
|     # Make a couple of temp file names in the proper directory. | ||||
|     dsttmp=$dstdir/_inst.$$_ | ||||
|     rmtmp=$dstdir/_rm.$$_ | ||||
|  | ||||
|     # Trap to clean up those temp files at exit. | ||||
|     trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 | ||||
|  | ||||
|     # Copy the file name to the temp name. | ||||
|     (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && | ||||
|  | ||||
|     # and set any options; do chmod last to preserve setuid bits. | ||||
|     # | ||||
|     # If any of these fail, we abort the whole thing.  If we want to | ||||
|     # ignore errors from any of these, just make sure not to ignore | ||||
|     # errors from the above "$doit $cpprog $src $dsttmp" command. | ||||
|     # | ||||
|     { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && | ||||
|     { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && | ||||
|     { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && | ||||
|     { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && | ||||
|  | ||||
|     # If -C, don't bother to copy if it wouldn't change the file. | ||||
|     if $copy_on_change && | ||||
|        old=`LC_ALL=C ls -dlL "$dst"	2>/dev/null` && | ||||
|        new=`LC_ALL=C ls -dlL "$dsttmp"	2>/dev/null` && | ||||
|  | ||||
|        eval "$initialize_posix_glob" && | ||||
|        $posix_glob set -f && | ||||
|        set X $old && old=:$2:$4:$5:$6 && | ||||
|        set X $new && new=:$2:$4:$5:$6 && | ||||
|        $posix_glob set +f && | ||||
|  | ||||
|        test "$old" = "$new" && | ||||
|        $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 | ||||
|     then | ||||
|       rm -f "$dsttmp" | ||||
|     else | ||||
|       # Rename the file to the real destination. | ||||
|       $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || | ||||
|  | ||||
|       # The rename failed, perhaps because mv can't rename something else | ||||
|       # to itself, or perhaps because mv is so ancient that it does not | ||||
|       # support -f. | ||||
|       { | ||||
| 	# Now remove or move aside any old file at destination location. | ||||
| 	# We try this two ways since rm can't unlink itself on some | ||||
| 	# systems and the destination file might be busy for other | ||||
| 	# reasons.  In this case, the final cleanup might fail but the new | ||||
| 	# file should still install successfully. | ||||
| 	{ | ||||
| 	  test ! -f "$dst" || | ||||
| 	  $doit $rmcmd -f "$dst" 2>/dev/null || | ||||
| 	  { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && | ||||
| 	    { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } | ||||
| 	  } || | ||||
| 	  { echo "$0: cannot unlink or rename $dst" >&2 | ||||
| 	    (exit 1); exit 1 | ||||
| 	  } | ||||
| 	} && | ||||
|  | ||||
| 	# Now rename the file to the real destination. | ||||
| 	$doit $mvcmd "$dsttmp" "$dst" | ||||
|       } | ||||
|     fi || exit 1 | ||||
|  | ||||
|     trap '' 0 | ||||
|   fi | ||||
| done | ||||
|  | ||||
| # Local variables: | ||||
| # eval: (add-hook 'write-file-hooks 'time-stamp) | ||||
| # time-stamp-start: "scriptversion=" | ||||
| # time-stamp-format: "%:y-%02m-%02d.%02H" | ||||
| # time-stamp-time-zone: "UTC" | ||||
| # time-stamp-end: "; # UTC" | ||||
| # End: | ||||
							
								
								
									
										9636
									
								
								inkycal/display/drivers/parallel_drivers/bcm2835-1.68/ltmain.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										215
									
								
								inkycal/display/drivers/parallel_drivers/bcm2835-1.68/missing
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,215 @@ | ||||
| #! /bin/sh | ||||
| # Common wrapper for a few potentially missing GNU programs. | ||||
|  | ||||
| scriptversion=2012-06-26.16; # UTC | ||||
|  | ||||
| # Copyright (C) 1996-2013 Free Software Foundation, Inc. | ||||
| # Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. | ||||
|  | ||||
| # 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, 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, see <http://www.gnu.org/licenses/>. | ||||
|  | ||||
| # As a special exception to the GNU General Public License, if you | ||||
| # distribute this file as part of a program that contains a | ||||
| # configuration script generated by Autoconf, you may include it under | ||||
| # the same distribution terms that you use for the rest of that program. | ||||
|  | ||||
| if test $# -eq 0; then | ||||
|   echo 1>&2 "Try '$0 --help' for more information" | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| case $1 in | ||||
|  | ||||
|   --is-lightweight) | ||||
|     # Used by our autoconf macros to check whether the available missing | ||||
|     # script is modern enough. | ||||
|     exit 0 | ||||
|     ;; | ||||
|  | ||||
|   --run) | ||||
|     # Back-compat with the calling convention used by older automake. | ||||
|     shift | ||||
|     ;; | ||||
|  | ||||
|   -h|--h|--he|--hel|--help) | ||||
|     echo "\ | ||||
| $0 [OPTION]... PROGRAM [ARGUMENT]... | ||||
|  | ||||
| Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due | ||||
| to PROGRAM being missing or too old. | ||||
|  | ||||
| Options: | ||||
|   -h, --help      display this help and exit | ||||
|   -v, --version   output version information and exit | ||||
|  | ||||
| Supported PROGRAM values: | ||||
|   aclocal   autoconf  autoheader   autom4te  automake  makeinfo | ||||
|   bison     yacc      flex         lex       help2man | ||||
|  | ||||
| Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and | ||||
| 'g' are ignored when checking the name. | ||||
|  | ||||
| Send bug reports to <bug-automake@gnu.org>." | ||||
|     exit $? | ||||
|     ;; | ||||
|  | ||||
|   -v|--v|--ve|--ver|--vers|--versi|--versio|--version) | ||||
|     echo "missing $scriptversion (GNU Automake)" | ||||
|     exit $? | ||||
|     ;; | ||||
|  | ||||
|   -*) | ||||
|     echo 1>&2 "$0: unknown '$1' option" | ||||
|     echo 1>&2 "Try '$0 --help' for more information" | ||||
|     exit 1 | ||||
|     ;; | ||||
|  | ||||
| esac | ||||
|  | ||||
| # Run the given program, remember its exit status. | ||||
| "$@"; st=$? | ||||
|  | ||||
| # If it succeeded, we are done. | ||||
| test $st -eq 0 && exit 0 | ||||
|  | ||||
| # Also exit now if we it failed (or wasn't found), and '--version' was | ||||
| # passed; such an option is passed most likely to detect whether the | ||||
| # program is present and works. | ||||
| case $2 in --version|--help) exit $st;; esac | ||||
|  | ||||
| # Exit code 63 means version mismatch.  This often happens when the user | ||||
| # tries to use an ancient version of a tool on a file that requires a | ||||
| # minimum version. | ||||
| if test $st -eq 63; then | ||||
|   msg="probably too old" | ||||
| elif test $st -eq 127; then | ||||
|   # Program was missing. | ||||
|   msg="missing on your system" | ||||
| else | ||||
|   # Program was found and executed, but failed.  Give up. | ||||
|   exit $st | ||||
| fi | ||||
|  | ||||
| perl_URL=http://www.perl.org/ | ||||
| flex_URL=http://flex.sourceforge.net/ | ||||
| gnu_software_URL=http://www.gnu.org/software | ||||
|  | ||||
| program_details () | ||||
| { | ||||
|   case $1 in | ||||
|     aclocal|automake) | ||||
|       echo "The '$1' program is part of the GNU Automake package:" | ||||
|       echo "<$gnu_software_URL/automake>" | ||||
|       echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" | ||||
|       echo "<$gnu_software_URL/autoconf>" | ||||
|       echo "<$gnu_software_URL/m4/>" | ||||
|       echo "<$perl_URL>" | ||||
|       ;; | ||||
|     autoconf|autom4te|autoheader) | ||||
|       echo "The '$1' program is part of the GNU Autoconf package:" | ||||
|       echo "<$gnu_software_URL/autoconf/>" | ||||
|       echo "It also requires GNU m4 and Perl in order to run:" | ||||
|       echo "<$gnu_software_URL/m4/>" | ||||
|       echo "<$perl_URL>" | ||||
|       ;; | ||||
|   esac | ||||
| } | ||||
|  | ||||
| give_advice () | ||||
| { | ||||
|   # Normalize program name to check for. | ||||
|   normalized_program=`echo "$1" | sed ' | ||||
|     s/^gnu-//; t | ||||
|     s/^gnu//; t | ||||
|     s/^g//; t'` | ||||
|  | ||||
|   printf '%s\n' "'$1' is $msg." | ||||
|  | ||||
|   configure_deps="'configure.ac' or m4 files included by 'configure.ac'" | ||||
|   case $normalized_program in | ||||
|     autoconf*) | ||||
|       echo "You should only need it if you modified 'configure.ac'," | ||||
|       echo "or m4 files included by it." | ||||
|       program_details 'autoconf' | ||||
|       ;; | ||||
|     autoheader*) | ||||
|       echo "You should only need it if you modified 'acconfig.h' or" | ||||
|       echo "$configure_deps." | ||||
|       program_details 'autoheader' | ||||
|       ;; | ||||
|     automake*) | ||||
|       echo "You should only need it if you modified 'Makefile.am' or" | ||||
|       echo "$configure_deps." | ||||
|       program_details 'automake' | ||||
|       ;; | ||||
|     aclocal*) | ||||
|       echo "You should only need it if you modified 'acinclude.m4' or" | ||||
|       echo "$configure_deps." | ||||
|       program_details 'aclocal' | ||||
|       ;; | ||||
|    autom4te*) | ||||
|       echo "You might have modified some maintainer files that require" | ||||
|       echo "the 'automa4te' program to be rebuilt." | ||||
|       program_details 'autom4te' | ||||
|       ;; | ||||
|     bison*|yacc*) | ||||
|       echo "You should only need it if you modified a '.y' file." | ||||
|       echo "You may want to install the GNU Bison package:" | ||||
|       echo "<$gnu_software_URL/bison/>" | ||||
|       ;; | ||||
|     lex*|flex*) | ||||
|       echo "You should only need it if you modified a '.l' file." | ||||
|       echo "You may want to install the Fast Lexical Analyzer package:" | ||||
|       echo "<$flex_URL>" | ||||
|       ;; | ||||
|     help2man*) | ||||
|       echo "You should only need it if you modified a dependency" \ | ||||
|            "of a man page." | ||||
|       echo "You may want to install the GNU Help2man package:" | ||||
|       echo "<$gnu_software_URL/help2man/>" | ||||
|     ;; | ||||
|     makeinfo*) | ||||
|       echo "You should only need it if you modified a '.texi' file, or" | ||||
|       echo "any other file indirectly affecting the aspect of the manual." | ||||
|       echo "You might want to install the Texinfo package:" | ||||
|       echo "<$gnu_software_URL/texinfo/>" | ||||
|       echo "The spurious makeinfo call might also be the consequence of" | ||||
|       echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" | ||||
|       echo "want to install GNU make:" | ||||
|       echo "<$gnu_software_URL/make/>" | ||||
|       ;; | ||||
|     *) | ||||
|       echo "You might have modified some files without having the proper" | ||||
|       echo "tools for further handling them.  Check the 'README' file, it" | ||||
|       echo "often tells you about the needed prerequisites for installing" | ||||
|       echo "this package.  You may also peek at any GNU archive site, in" | ||||
|       echo "case some other package contains this missing '$1' program." | ||||
|       ;; | ||||
|   esac | ||||
| } | ||||
|  | ||||
| give_advice "$1" | sed -e '1s/^/WARNING: /' \ | ||||
|                        -e '2,$s/^/         /' >&2 | ||||
|  | ||||
| # Propagate the correct exit status (expected to be 127 for a program | ||||
| # not found, 63 for a program that failed due to version mismatch). | ||||
| exit $st | ||||
|  | ||||
| # Local variables: | ||||
| # eval: (add-hook 'write-file-hooks 'time-stamp) | ||||
| # time-stamp-start: "scriptversion=" | ||||
| # time-stamp-format: "%:y-%02m-%02d.%02H" | ||||
| # time-stamp-time-zone: "UTC" | ||||
| # time-stamp-end: "; # UTC" | ||||
| # End: | ||||
| @@ -0,0 +1,234 @@ | ||||
| bcm2835.o: bcm2835.c /usr/include/stdc-predef.h /usr/include/stdlib.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/libc-header-start.h \ | ||||
|  /usr/include/features.h /usr/include/arm-linux-gnueabihf/sys/cdefs.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/wordsize.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/long-double.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/gnu/stubs.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/gnu/stubs-hard.h \ | ||||
|  /usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/waitflags.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/waitstatus.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/floatn.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/floatn-common.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/sys/types.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/typesizes.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types/clock_t.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types/clockid_t.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types/time_t.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types/timer_t.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/stdint-intn.h \ | ||||
|  /usr/include/endian.h /usr/include/arm-linux-gnueabihf/bits/endian.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/byteswap.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/uintn-identity.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/sys/select.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/select.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types/sigset_t.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types/__sigset_t.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types/struct_timeval.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types/struct_timespec.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/pthreadtypes.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/thread-shared-types.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/pthreadtypes-arch.h \ | ||||
|  /usr/include/alloca.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/stdlib-bsearch.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/stdlib-float.h \ | ||||
|  /usr/include/stdio.h /usr/lib/gcc/arm-linux-gnueabihf/8/include/stdarg.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types/__fpos_t.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types/__mbstate_t.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types/__fpos64_t.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types/__FILE.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types/FILE.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types/struct_FILE.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/stdio_lim.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/sys_errlist.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/stdio.h /usr/include/errno.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/errno.h /usr/include/linux/errno.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/asm/errno.h \ | ||||
|  /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ | ||||
|  /usr/include/fcntl.h /usr/include/arm-linux-gnueabihf/bits/fcntl.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/fcntl-linux.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/stat.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/sys/mman.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/mman.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/mman-linux.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/mman-shared.h \ | ||||
|  /usr/include/string.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types/locale_t.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types/__locale_t.h \ | ||||
|  /usr/include/strings.h /usr/include/time.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/time.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types/struct_tm.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types/struct_itimerspec.h \ | ||||
|  /usr/include/unistd.h /usr/include/arm-linux-gnueabihf/bits/posix_opt.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/environments.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/confname.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/getopt_posix.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/getopt_core.h bcm2835.h \ | ||||
|  /usr/lib/gcc/arm-linux-gnueabihf/8/include/stdint.h \ | ||||
|  /usr/include/stdint.h /usr/include/arm-linux-gnueabihf/bits/wchar.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/stdint-uintn.h | ||||
|  | ||||
| /usr/include/stdc-predef.h: | ||||
|  | ||||
| /usr/include/stdlib.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/libc-header-start.h: | ||||
|  | ||||
| /usr/include/features.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/sys/cdefs.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/wordsize.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/long-double.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/gnu/stubs.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/gnu/stubs-hard.h: | ||||
|  | ||||
| /usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/waitflags.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/waitstatus.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/floatn.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/floatn-common.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/sys/types.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/typesizes.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types/clock_t.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types/clockid_t.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types/time_t.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types/timer_t.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/stdint-intn.h: | ||||
|  | ||||
| /usr/include/endian.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/endian.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/byteswap.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/uintn-identity.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/sys/select.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/select.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types/sigset_t.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types/__sigset_t.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types/struct_timeval.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types/struct_timespec.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/pthreadtypes.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/thread-shared-types.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/pthreadtypes-arch.h: | ||||
|  | ||||
| /usr/include/alloca.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/stdlib-bsearch.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/stdlib-float.h: | ||||
|  | ||||
| /usr/include/stdio.h: | ||||
|  | ||||
| /usr/lib/gcc/arm-linux-gnueabihf/8/include/stdarg.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types/__fpos_t.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types/__mbstate_t.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types/__fpos64_t.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types/__FILE.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types/FILE.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types/struct_FILE.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/stdio_lim.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/sys_errlist.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/stdio.h: | ||||
|  | ||||
| /usr/include/errno.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/errno.h: | ||||
|  | ||||
| /usr/include/linux/errno.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/asm/errno.h: | ||||
|  | ||||
| /usr/include/asm-generic/errno.h: | ||||
|  | ||||
| /usr/include/asm-generic/errno-base.h: | ||||
|  | ||||
| /usr/include/fcntl.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/fcntl.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/fcntl-linux.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/stat.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/sys/mman.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/mman.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/mman-linux.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/mman-shared.h: | ||||
|  | ||||
| /usr/include/string.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types/locale_t.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types/__locale_t.h: | ||||
|  | ||||
| /usr/include/strings.h: | ||||
|  | ||||
| /usr/include/time.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/time.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types/struct_tm.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types/struct_itimerspec.h: | ||||
|  | ||||
| /usr/include/unistd.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/posix_opt.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/environments.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/confname.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/getopt_posix.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/getopt_core.h: | ||||
|  | ||||
| bcm2835.h: | ||||
|  | ||||
| /usr/lib/gcc/arm-linux-gnueabihf/8/include/stdint.h: | ||||
|  | ||||
| /usr/include/stdint.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/wchar.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/stdint-uintn.h: | ||||
| @@ -0,0 +1,175 @@ | ||||
| test.o: test.c /usr/include/stdc-predef.h bcm2835.h \ | ||||
|  /usr/lib/gcc/arm-linux-gnueabihf/8/include/stdint.h \ | ||||
|  /usr/include/stdint.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/libc-header-start.h \ | ||||
|  /usr/include/features.h /usr/include/arm-linux-gnueabihf/sys/cdefs.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/wordsize.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/long-double.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/gnu/stubs.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/gnu/stubs-hard.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/typesizes.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/wchar.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/stdint-intn.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/stdint-uintn.h \ | ||||
|  /usr/include/stdlib.h \ | ||||
|  /usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/waitflags.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/waitstatus.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/floatn.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/floatn-common.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/sys/types.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types/clock_t.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types/clockid_t.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types/time_t.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types/timer_t.h \ | ||||
|  /usr/include/endian.h /usr/include/arm-linux-gnueabihf/bits/endian.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/byteswap.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/uintn-identity.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/sys/select.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/select.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types/sigset_t.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types/__sigset_t.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types/struct_timeval.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types/struct_timespec.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/pthreadtypes.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/thread-shared-types.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/pthreadtypes-arch.h \ | ||||
|  /usr/include/alloca.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/stdlib-bsearch.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/stdlib-float.h \ | ||||
|  /usr/include/stdio.h /usr/lib/gcc/arm-linux-gnueabihf/8/include/stdarg.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types/__fpos_t.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types/__mbstate_t.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types/__fpos64_t.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types/__FILE.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types/FILE.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/types/struct_FILE.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/stdio_lim.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/sys_errlist.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/stdio.h /usr/include/unistd.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/posix_opt.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/environments.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/confname.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/getopt_posix.h \ | ||||
|  /usr/include/arm-linux-gnueabihf/bits/getopt_core.h | ||||
|  | ||||
| /usr/include/stdc-predef.h: | ||||
|  | ||||
| bcm2835.h: | ||||
|  | ||||
| /usr/lib/gcc/arm-linux-gnueabihf/8/include/stdint.h: | ||||
|  | ||||
| /usr/include/stdint.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/libc-header-start.h: | ||||
|  | ||||
| /usr/include/features.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/sys/cdefs.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/wordsize.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/long-double.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/gnu/stubs.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/gnu/stubs-hard.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/typesizes.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/wchar.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/stdint-intn.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/stdint-uintn.h: | ||||
|  | ||||
| /usr/include/stdlib.h: | ||||
|  | ||||
| /usr/lib/gcc/arm-linux-gnueabihf/8/include/stddef.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/waitflags.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/waitstatus.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/floatn.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/floatn-common.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/sys/types.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types/clock_t.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types/clockid_t.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types/time_t.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types/timer_t.h: | ||||
|  | ||||
| /usr/include/endian.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/endian.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/byteswap.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/uintn-identity.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/sys/select.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/select.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types/sigset_t.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types/__sigset_t.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types/struct_timeval.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types/struct_timespec.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/pthreadtypes.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/thread-shared-types.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/pthreadtypes-arch.h: | ||||
|  | ||||
| /usr/include/alloca.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/stdlib-bsearch.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/stdlib-float.h: | ||||
|  | ||||
| /usr/include/stdio.h: | ||||
|  | ||||
| /usr/lib/gcc/arm-linux-gnueabihf/8/include/stdarg.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types/__fpos_t.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types/__mbstate_t.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types/__fpos64_t.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types/__FILE.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types/FILE.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/types/struct_FILE.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/stdio_lim.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/sys_errlist.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/stdio.h: | ||||
|  | ||||
| /usr/include/unistd.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/posix_opt.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/environments.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/confname.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/getopt_posix.h: | ||||
|  | ||||
| /usr/include/arm-linux-gnueabihf/bits/getopt_core.h: | ||||
| @@ -0,0 +1,987 @@ | ||||
| # Makefile.in generated by automake 1.16.1 from Makefile.am. | ||||
| # src/Makefile.  Generated from Makefile.in by configure. | ||||
|  | ||||
| # Copyright (C) 1994-2018 Free Software Foundation, Inc. | ||||
|  | ||||
| # This Makefile.in is free software; the Free Software Foundation | ||||
| # gives unlimited permission to copy and/or distribute it, | ||||
| # with or without modifications, as long as this notice is preserved. | ||||
|  | ||||
| # This program is distributed in the hope that it will be useful, | ||||
| # but WITHOUT ANY WARRANTY, to the extent permitted by law; without | ||||
| # even the implied warranty of MERCHANTABILITY or FITNESS FOR A | ||||
| # PARTICULAR PURPOSE. | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| am__is_gnu_make = { \ | ||||
|   if test -z '$(MAKELEVEL)'; then \ | ||||
|     false; \ | ||||
|   elif test -n '$(MAKE_HOST)'; then \ | ||||
|     true; \ | ||||
|   elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ | ||||
|     true; \ | ||||
|   else \ | ||||
|     false; \ | ||||
|   fi; \ | ||||
| } | ||||
| am__make_running_with_option = \ | ||||
|   case $${target_option-} in \ | ||||
|       ?) ;; \ | ||||
|       *) echo "am__make_running_with_option: internal error: invalid" \ | ||||
|               "target option '$${target_option-}' specified" >&2; \ | ||||
|          exit 1;; \ | ||||
|   esac; \ | ||||
|   has_opt=no; \ | ||||
|   sane_makeflags=$$MAKEFLAGS; \ | ||||
|   if $(am__is_gnu_make); then \ | ||||
|     sane_makeflags=$$MFLAGS; \ | ||||
|   else \ | ||||
|     case $$MAKEFLAGS in \ | ||||
|       *\\[\ \	]*) \ | ||||
|         bs=\\; \ | ||||
|         sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | ||||
|           | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \ | ||||
|     esac; \ | ||||
|   fi; \ | ||||
|   skip_next=no; \ | ||||
|   strip_trailopt () \ | ||||
|   { \ | ||||
|     flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ | ||||
|   }; \ | ||||
|   for flg in $$sane_makeflags; do \ | ||||
|     test $$skip_next = yes && { skip_next=no; continue; }; \ | ||||
|     case $$flg in \ | ||||
|       *=*|--*) continue;; \ | ||||
|         -*I) strip_trailopt 'I'; skip_next=yes;; \ | ||||
|       -*I?*) strip_trailopt 'I';; \ | ||||
|         -*O) strip_trailopt 'O'; skip_next=yes;; \ | ||||
|       -*O?*) strip_trailopt 'O';; \ | ||||
|         -*l) strip_trailopt 'l'; skip_next=yes;; \ | ||||
|       -*l?*) strip_trailopt 'l';; \ | ||||
|       -[dEDm]) skip_next=yes;; \ | ||||
|       -[JT]) skip_next=yes;; \ | ||||
|     esac; \ | ||||
|     case $$flg in \ | ||||
|       *$$target_option*) has_opt=yes; break;; \ | ||||
|     esac; \ | ||||
|   done; \ | ||||
|   test $$has_opt = yes | ||||
| am__make_dryrun = (target_option=n; $(am__make_running_with_option)) | ||||
| am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) | ||||
| pkgdatadir = $(datadir)/bcm2835 | ||||
| pkgincludedir = $(includedir)/bcm2835 | ||||
| pkglibdir = $(libdir)/bcm2835 | ||||
| pkglibexecdir = $(libexecdir)/bcm2835 | ||||
| am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd | ||||
| install_sh_DATA = $(install_sh) -c -m 644 | ||||
| install_sh_PROGRAM = $(install_sh) -c | ||||
| install_sh_SCRIPT = $(install_sh) -c | ||||
| INSTALL_HEADER = $(INSTALL_DATA) | ||||
| transform = $(program_transform_name) | ||||
| NORMAL_INSTALL = : | ||||
| PRE_INSTALL = : | ||||
| POST_INSTALL = : | ||||
| NORMAL_UNINSTALL = : | ||||
| PRE_UNINSTALL = : | ||||
| POST_UNINSTALL = : | ||||
| check_PROGRAMS = test$(EXEEXT) | ||||
| subdir = src | ||||
| ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | ||||
| am__aclocal_m4_deps = $(top_srcdir)/configure.ac | ||||
| am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ | ||||
| 	$(ACLOCAL_M4) | ||||
| DIST_COMMON = $(srcdir)/Makefile.am $(include_HEADERS) \ | ||||
| 	$(am__DIST_COMMON) | ||||
| mkinstalldirs = $(install_sh) -d | ||||
| CONFIG_HEADER = $(top_builddir)/config.h | ||||
| CONFIG_CLEAN_FILES = | ||||
| CONFIG_CLEAN_VPATH_FILES = | ||||
| am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; | ||||
| am__vpath_adj = case $$p in \ | ||||
|     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ | ||||
|     *) f=$$p;; \ | ||||
|   esac; | ||||
| am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; | ||||
| am__install_max = 40 | ||||
| am__nobase_strip_setup = \ | ||||
|   srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` | ||||
| am__nobase_strip = \ | ||||
|   for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" | ||||
| am__nobase_list = $(am__nobase_strip_setup); \ | ||||
|   for p in $$list; do echo "$$p $$p"; done | \ | ||||
|   sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ | ||||
|   $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ | ||||
|     if (++n[$$2] == $(am__install_max)) \ | ||||
|       { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ | ||||
|     END { for (dir in files) print dir, files[dir] }' | ||||
| am__base_list = \ | ||||
|   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ | ||||
|   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | ||||
| am__uninstall_files_from_dir = { \ | ||||
|   test -z "$$files" \ | ||||
|     || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ | ||||
|     || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ | ||||
|          $(am__cd) "$$dir" && rm -f $$files; }; \ | ||||
|   } | ||||
| am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" | ||||
| LIBRARIES = $(lib_LIBRARIES) | ||||
| AR = ar | ||||
| ARFLAGS = cru | ||||
| AM_V_AR = $(am__v_AR_$(V)) | ||||
| am__v_AR_ = $(am__v_AR_$(AM_DEFAULT_VERBOSITY)) | ||||
| am__v_AR_0 = @echo "  AR      " $@; | ||||
| am__v_AR_1 =  | ||||
| libbcm2835_a_AR = $(AR) $(ARFLAGS) | ||||
| libbcm2835_a_LIBADD = | ||||
| am_libbcm2835_a_OBJECTS = bcm2835.$(OBJEXT) | ||||
| libbcm2835_a_OBJECTS = $(am_libbcm2835_a_OBJECTS) | ||||
| am_test_OBJECTS = test.$(OBJEXT) | ||||
| test_OBJECTS = $(am_test_OBJECTS) | ||||
| test_DEPENDENCIES = ./libbcm2835.a | ||||
| AM_V_P = $(am__v_P_$(V)) | ||||
| am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY)) | ||||
| am__v_P_0 = false | ||||
| am__v_P_1 = : | ||||
| AM_V_GEN = $(am__v_GEN_$(V)) | ||||
| am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) | ||||
| am__v_GEN_0 = @echo "  GEN     " $@; | ||||
| am__v_GEN_1 =  | ||||
| AM_V_at = $(am__v_at_$(V)) | ||||
| am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) | ||||
| am__v_at_0 = @ | ||||
| am__v_at_1 =  | ||||
| DEFAULT_INCLUDES = -I. -I$(top_builddir) | ||||
| depcomp = $(SHELL) $(top_srcdir)/depcomp | ||||
| am__maybe_remake_depfiles = depfiles | ||||
| am__depfiles_remade = ./$(DEPDIR)/bcm2835.Po ./$(DEPDIR)/test.Po | ||||
| am__mv = mv -f | ||||
| COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ | ||||
| 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) | ||||
| AM_V_CC = $(am__v_CC_$(V)) | ||||
| am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) | ||||
| am__v_CC_0 = @echo "  CC      " $@; | ||||
| am__v_CC_1 =  | ||||
| CCLD = $(CC) | ||||
| LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ | ||||
| AM_V_CCLD = $(am__v_CCLD_$(V)) | ||||
| am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) | ||||
| am__v_CCLD_0 = @echo "  CCLD    " $@; | ||||
| am__v_CCLD_1 =  | ||||
| SOURCES = $(libbcm2835_a_SOURCES) $(test_SOURCES) | ||||
| DIST_SOURCES = $(libbcm2835_a_SOURCES) $(test_SOURCES) | ||||
| am__can_run_installinfo = \ | ||||
|   case $$AM_UPDATE_INFO_DIR in \ | ||||
|     n|no|NO) false;; \ | ||||
|     *) (install-info --version) >/dev/null 2>&1;; \ | ||||
|   esac | ||||
| HEADERS = $(include_HEADERS) | ||||
| am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) | ||||
| # Read a list of newline-separated strings from the standard input, | ||||
| # and print each of them once, without duplicates.  Input order is | ||||
| # *not* preserved. | ||||
| am__uniquify_input = $(AWK) '\ | ||||
|   BEGIN { nonempty = 0; } \ | ||||
|   { items[$$0] = 1; nonempty = 1; } \ | ||||
|   END { if (nonempty) { for (i in items) print i; }; } \ | ||||
| ' | ||||
| # Make sure the list of sources is unique.  This is necessary because, | ||||
| # e.g., the same source file might be shared among _SOURCES variables | ||||
| # for different programs/libraries. | ||||
| am__define_uniq_tagged_files = \ | ||||
|   list='$(am__tagged_files)'; \ | ||||
|   unique=`for i in $$list; do \ | ||||
|     if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | ||||
|   done | $(am__uniquify_input)` | ||||
| ETAGS = etags | ||||
| CTAGS = ctags | ||||
| am__tty_colors_dummy = \ | ||||
|   mgn= red= grn= lgn= blu= brg= std=; \ | ||||
|   am__color_tests=no | ||||
| am__tty_colors = { \ | ||||
|   $(am__tty_colors_dummy); \ | ||||
|   if test "X$(AM_COLOR_TESTS)" = Xno; then \ | ||||
|     am__color_tests=no; \ | ||||
|   elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ | ||||
|     am__color_tests=yes; \ | ||||
|   elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ | ||||
|     am__color_tests=yes; \ | ||||
|   fi; \ | ||||
|   if test $$am__color_tests = yes; then \ | ||||
|     red='[0;31m'; \ | ||||
|     grn='[0;32m'; \ | ||||
|     lgn='[1;32m'; \ | ||||
|     blu='[1;34m'; \ | ||||
|     mgn='[0;35m'; \ | ||||
|     brg='[1m'; \ | ||||
|     std='[m'; \ | ||||
|   fi; \ | ||||
| } | ||||
| am__recheck_rx = ^[ 	]*:recheck:[ 	]* | ||||
| am__global_test_result_rx = ^[ 	]*:global-test-result:[ 	]* | ||||
| am__copy_in_global_log_rx = ^[ 	]*:copy-in-global-log:[ 	]* | ||||
| # A command that, given a newline-separated list of test names on the | ||||
| # standard input, print the name of the tests that are to be re-run | ||||
| # upon "make recheck". | ||||
| am__list_recheck_tests = $(AWK) '{ \ | ||||
|   recheck = 1; \ | ||||
|   while ((rc = (getline line < ($$0 ".trs"))) != 0) \ | ||||
|     { \ | ||||
|       if (rc < 0) \ | ||||
|         { \ | ||||
|           if ((getline line2 < ($$0 ".log")) < 0) \ | ||||
| 	    recheck = 0; \ | ||||
|           break; \ | ||||
|         } \ | ||||
|       else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ | ||||
|         { \ | ||||
|           recheck = 0; \ | ||||
|           break; \ | ||||
|         } \ | ||||
|       else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ | ||||
|         { \ | ||||
|           break; \ | ||||
|         } \ | ||||
|     }; \ | ||||
|   if (recheck) \ | ||||
|     print $$0; \ | ||||
|   close ($$0 ".trs"); \ | ||||
|   close ($$0 ".log"); \ | ||||
| }' | ||||
| # A command that, given a newline-separated list of test names on the | ||||
| # standard input, create the global log from their .trs and .log files. | ||||
| am__create_global_log = $(AWK) ' \ | ||||
| function fatal(msg) \ | ||||
| { \ | ||||
|   print "fatal: making $@: " msg | "cat >&2"; \ | ||||
|   exit 1; \ | ||||
| } \ | ||||
| function rst_section(header) \ | ||||
| { \ | ||||
|   print header; \ | ||||
|   len = length(header); \ | ||||
|   for (i = 1; i <= len; i = i + 1) \ | ||||
|     printf "="; \ | ||||
|   printf "\n\n"; \ | ||||
| } \ | ||||
| { \ | ||||
|   copy_in_global_log = 1; \ | ||||
|   global_test_result = "RUN"; \ | ||||
|   while ((rc = (getline line < ($$0 ".trs"))) != 0) \ | ||||
|     { \ | ||||
|       if (rc < 0) \ | ||||
|          fatal("failed to read from " $$0 ".trs"); \ | ||||
|       if (line ~ /$(am__global_test_result_rx)/) \ | ||||
|         { \ | ||||
|           sub("$(am__global_test_result_rx)", "", line); \ | ||||
|           sub("[ 	]*$$", "", line); \ | ||||
|           global_test_result = line; \ | ||||
|         } \ | ||||
|       else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ | ||||
|         copy_in_global_log = 0; \ | ||||
|     }; \ | ||||
|   if (copy_in_global_log) \ | ||||
|     { \ | ||||
|       rst_section(global_test_result ": " $$0); \ | ||||
|       while ((rc = (getline line < ($$0 ".log"))) != 0) \ | ||||
|       { \ | ||||
|         if (rc < 0) \ | ||||
|           fatal("failed to read from " $$0 ".log"); \ | ||||
|         print line; \ | ||||
|       }; \ | ||||
|       printf "\n"; \ | ||||
|     }; \ | ||||
|   close ($$0 ".trs"); \ | ||||
|   close ($$0 ".log"); \ | ||||
| }' | ||||
| # Restructured Text title. | ||||
| am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } | ||||
| # Solaris 10 'make', and several other traditional 'make' implementations, | ||||
| # pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it | ||||
| # by disabling -e (using the XSI extension "set +e") if it's set. | ||||
| am__sh_e_setup = case $$- in *e*) set +e;; esac | ||||
| # Default flags passed to test drivers. | ||||
| am__common_driver_flags = \ | ||||
|   --color-tests "$$am__color_tests" \ | ||||
|   --enable-hard-errors "$$am__enable_hard_errors" \ | ||||
|   --expect-failure "$$am__expect_failure" | ||||
| # To be inserted before the command running the test.  Creates the | ||||
| # directory for the log if needed.  Stores in $dir the directory | ||||
| # containing $f, in $tst the test, in $log the log.  Executes the | ||||
| # developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and | ||||
| # passes TESTS_ENVIRONMENT.  Set up options for the wrapper that | ||||
| # will run the test scripts (or their associated LOG_COMPILER, if | ||||
| # thy have one). | ||||
| am__check_pre = \ | ||||
| $(am__sh_e_setup);					\ | ||||
| $(am__vpath_adj_setup) $(am__vpath_adj)			\ | ||||
| $(am__tty_colors);					\ | ||||
| srcdir=$(srcdir); export srcdir;			\ | ||||
| case "$@" in						\ | ||||
|   */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;	\ | ||||
|     *) am__odir=.;; 					\ | ||||
| esac;							\ | ||||
| test "x$$am__odir" = x"." || test -d "$$am__odir" 	\ | ||||
|   || $(MKDIR_P) "$$am__odir" || exit $$?;		\ | ||||
| if test -f "./$$f"; then dir=./;			\ | ||||
| elif test -f "$$f"; then dir=;				\ | ||||
| else dir="$(srcdir)/"; fi;				\ | ||||
| tst=$$dir$$f; log='$@'; 				\ | ||||
| if test -n '$(DISABLE_HARD_ERRORS)'; then		\ | ||||
|   am__enable_hard_errors=no; 				\ | ||||
| else							\ | ||||
|   am__enable_hard_errors=yes; 				\ | ||||
| fi; 							\ | ||||
| case " $(XFAIL_TESTS) " in				\ | ||||
|   *[\ \	]$$f[\ \	]* | *[\ \	]$$dir$$f[\ \	]*) \ | ||||
|     am__expect_failure=yes;;				\ | ||||
|   *)							\ | ||||
|     am__expect_failure=no;;				\ | ||||
| esac; 							\ | ||||
| $(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) | ||||
| # A shell command to get the names of the tests scripts with any registered | ||||
| # extension removed (i.e., equivalently, the names of the test logs, with | ||||
| # the '.log' extension removed).  The result is saved in the shell variable | ||||
| # '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly, | ||||
| # we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", | ||||
| # since that might cause problem with VPATH rewrites for suffix-less tests. | ||||
| # See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. | ||||
| am__set_TESTS_bases = \ | ||||
|   bases='$(TEST_LOGS)'; \ | ||||
|   bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ | ||||
|   bases=`echo $$bases` | ||||
| RECHECK_LOGS = $(TEST_LOGS) | ||||
| AM_RECURSIVE_TARGETS = check recheck | ||||
| TEST_SUITE_LOG = test-suite.log | ||||
| TEST_EXTENSIONS =  .test | ||||
| LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver | ||||
| LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) | ||||
| am__set_b = \ | ||||
|   case '$@' in \ | ||||
|     */*) \ | ||||
|       case '$*' in \ | ||||
|         */*) b='$*';; \ | ||||
|           *) b=`echo '$@' | sed 's/\.log$$//'`; \ | ||||
|        esac;; \ | ||||
|     *) \ | ||||
|       b='$*';; \ | ||||
|   esac | ||||
| am__test_logs1 = $(TESTS:=.log) | ||||
| am__test_logs2 = $(am__test_logs1:.log=.log) | ||||
| TEST_LOGS = $(am__test_logs2:.test.log=.log) | ||||
| TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver | ||||
| TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ | ||||
| 	$(TEST_LOG_FLAGS) | ||||
| am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp \ | ||||
| 	$(top_srcdir)/test-driver | ||||
| DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | ||||
| ACLOCAL = ${SHELL} /home/pi/InkycalVenv/inkycal/display/drivers/7_in_8_drivers/bcm2835-1.68/missing aclocal-1.16 | ||||
| AMTAR = $${TAR-tar} | ||||
| AM_DEFAULT_VERBOSITY = 1 | ||||
| AUTOCONF = ${SHELL} /home/pi/InkycalVenv/inkycal/display/drivers/7_in_8_drivers/bcm2835-1.68/missing autoconf | ||||
| AUTOHEADER = ${SHELL} /home/pi/InkycalVenv/inkycal/display/drivers/7_in_8_drivers/bcm2835-1.68/missing autoheader | ||||
| AUTOMAKE = ${SHELL} /home/pi/InkycalVenv/inkycal/display/drivers/7_in_8_drivers/bcm2835-1.68/missing automake-1.16 | ||||
| AWK = mawk | ||||
| CC = gcc | ||||
| CCDEPMODE = depmode=gcc3 | ||||
| CFLAGS = -g -O2 | ||||
| CPPFLAGS =  | ||||
| CYGPATH_W = echo | ||||
| DEFS = -DHAVE_CONFIG_H | ||||
| DEPDIR = .deps | ||||
| DOXYGEN =  | ||||
| ECHO_C =  | ||||
| ECHO_N = -n | ||||
| ECHO_T =  | ||||
| EXEEXT =  | ||||
| INSTALL = /usr/bin/install -c | ||||
| INSTALL_DATA = ${INSTALL} -m 644 | ||||
| INSTALL_PROGRAM = ${INSTALL} | ||||
| INSTALL_SCRIPT = ${INSTALL} | ||||
| INSTALL_STRIP_PROGRAM = $(install_sh) -c -s | ||||
| LDFLAGS =  | ||||
| LIBOBJS =  | ||||
| LIBS = -lrt  | ||||
| LTLIBOBJS =  | ||||
| MAKEINFO = ${SHELL} /home/pi/InkycalVenv/inkycal/display/drivers/7_in_8_drivers/bcm2835-1.68/missing makeinfo | ||||
| MKDIR_P = /bin/mkdir -p | ||||
| OBJEXT = o | ||||
| PACKAGE = bcm2835 | ||||
| PACKAGE_BUGREPORT = mikem@airspayce.com | ||||
| PACKAGE_NAME = bcm2835 | ||||
| PACKAGE_STRING = bcm2835 1.68 | ||||
| PACKAGE_TARNAME = bcm2835 | ||||
| PACKAGE_URL =  | ||||
| PACKAGE_VERSION = 1.68 | ||||
| PATH_SEPARATOR = : | ||||
| RANLIB = ranlib | ||||
| SET_MAKE =  | ||||
| SHELL = /bin/bash | ||||
| STRIP =  | ||||
| VERSION = 1.68 | ||||
| abs_builddir = /home/pi/InkycalVenv/inkycal/display/drivers/7_in_8_drivers/bcm2835-1.68/src | ||||
| abs_srcdir = /home/pi/InkycalVenv/inkycal/display/drivers/7_in_8_drivers/bcm2835-1.68/src | ||||
| abs_top_builddir = /home/pi/InkycalVenv/inkycal/display/drivers/7_in_8_drivers/bcm2835-1.68 | ||||
| abs_top_srcdir = /home/pi/InkycalVenv/inkycal/display/drivers/7_in_8_drivers/bcm2835-1.68 | ||||
| ac_ct_CC = gcc | ||||
| am__include = include | ||||
| am__leading_dot = . | ||||
| am__quote =  | ||||
| am__tar = $${TAR-tar} chof - "$$tardir" | ||||
| am__untar = $${TAR-tar} xf - | ||||
| bindir = ${exec_prefix}/bin | ||||
| build_alias =  | ||||
| builddir = . | ||||
| datadir = ${datarootdir} | ||||
| datarootdir = ${prefix}/share | ||||
| docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} | ||||
| dvidir = ${docdir} | ||||
| exec_prefix = ${prefix} | ||||
| host_alias =  | ||||
| htmldir = ${docdir} | ||||
| includedir = ${prefix}/include | ||||
| infodir = ${datarootdir}/info | ||||
| install_sh = ${SHELL} /home/pi/InkycalVenv/inkycal/display/drivers/7_in_8_drivers/bcm2835-1.68/install-sh | ||||
| libdir = ${exec_prefix}/lib | ||||
| libexecdir = ${exec_prefix}/libexec | ||||
| localedir = ${datarootdir}/locale | ||||
| localstatedir = ${prefix}/var | ||||
| mandir = ${datarootdir}/man | ||||
| mkdir_p = $(MKDIR_P) | ||||
| oldincludedir = /usr/include | ||||
| pdfdir = ${docdir} | ||||
| prefix = /usr/local | ||||
| program_transform_name = s,x,x, | ||||
| psdir = ${docdir} | ||||
| runstatedir = ${localstatedir}/run | ||||
| sbindir = ${exec_prefix}/sbin | ||||
| sharedstatedir = ${prefix}/com | ||||
| srcdir = . | ||||
| sysconfdir = ${prefix}/etc | ||||
| target_alias =  | ||||
| top_build_prefix = ../ | ||||
| top_builddir = .. | ||||
| top_srcdir = .. | ||||
| lib_LIBRARIES = libbcm2835.a | ||||
| libbcm2835_a_SOURCES = bcm2835.c | ||||
| include_HEADERS = bcm2835.h | ||||
| test_SOURCES = test.c | ||||
| test_LDADD = ./libbcm2835.a | ||||
| TESTS = $(check_PROGRAMS) | ||||
| CLEANFILES = *~ | ||||
| all: all-am | ||||
|  | ||||
| .SUFFIXES: | ||||
| .SUFFIXES: .c .log .o .obj .test .test$(EXEEXT) .trs | ||||
| $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps) | ||||
| 	@for dep in $?; do \ | ||||
| 	  case '$(am__configure_deps)' in \ | ||||
| 	    *$$dep*) \ | ||||
| 	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ | ||||
| 	        && { if test -f $@; then exit 0; else break; fi; }; \ | ||||
| 	      exit 1;; \ | ||||
| 	  esac; \ | ||||
| 	done; \ | ||||
| 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ | ||||
| 	$(am__cd) $(top_srcdir) && \ | ||||
| 	  $(AUTOMAKE) --gnu src/Makefile | ||||
| Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | ||||
| 	@case '$?' in \ | ||||
| 	  *config.status*) \ | ||||
| 	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ | ||||
| 	  *) \ | ||||
| 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ | ||||
| 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ | ||||
| 	esac; | ||||
|  | ||||
| $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) | ||||
| 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||||
|  | ||||
| $(top_srcdir)/configure:  $(am__configure_deps) | ||||
| 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||||
| $(ACLOCAL_M4):  $(am__aclocal_m4_deps) | ||||
| 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||||
| $(am__aclocal_m4_deps): | ||||
|  | ||||
| clean-checkPROGRAMS: | ||||
| 	-test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS) | ||||
| install-libLIBRARIES: $(lib_LIBRARIES) | ||||
| 	@$(NORMAL_INSTALL) | ||||
| 	@list='$(lib_LIBRARIES)'; test -n "$(libdir)" || list=; \ | ||||
| 	list2=; for p in $$list; do \ | ||||
| 	  if test -f $$p; then \ | ||||
| 	    list2="$$list2 $$p"; \ | ||||
| 	  else :; fi; \ | ||||
| 	done; \ | ||||
| 	test -z "$$list2" || { \ | ||||
| 	  echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ | ||||
| 	  $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ | ||||
| 	  echo " $(INSTALL_DATA) $$list2 '$(DESTDIR)$(libdir)'"; \ | ||||
| 	  $(INSTALL_DATA) $$list2 "$(DESTDIR)$(libdir)" || exit $$?; } | ||||
| 	@$(POST_INSTALL) | ||||
| 	@list='$(lib_LIBRARIES)'; test -n "$(libdir)" || list=; \ | ||||
| 	for p in $$list; do \ | ||||
| 	  if test -f $$p; then \ | ||||
| 	    $(am__strip_dir) \ | ||||
| 	    echo " ( cd '$(DESTDIR)$(libdir)' && $(RANLIB) $$f )"; \ | ||||
| 	    ( cd "$(DESTDIR)$(libdir)" && $(RANLIB) $$f ) || exit $$?; \ | ||||
| 	  else :; fi; \ | ||||
| 	done | ||||
|  | ||||
| uninstall-libLIBRARIES: | ||||
| 	@$(NORMAL_UNINSTALL) | ||||
| 	@list='$(lib_LIBRARIES)'; test -n "$(libdir)" || list=; \ | ||||
| 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ | ||||
| 	dir='$(DESTDIR)$(libdir)'; $(am__uninstall_files_from_dir) | ||||
|  | ||||
| clean-libLIBRARIES: | ||||
| 	-test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES) | ||||
|  | ||||
| libbcm2835.a: $(libbcm2835_a_OBJECTS) $(libbcm2835_a_DEPENDENCIES) $(EXTRA_libbcm2835_a_DEPENDENCIES)  | ||||
| 	$(AM_V_at)-rm -f libbcm2835.a | ||||
| 	$(AM_V_AR)$(libbcm2835_a_AR) libbcm2835.a $(libbcm2835_a_OBJECTS) $(libbcm2835_a_LIBADD) | ||||
| 	$(AM_V_at)$(RANLIB) libbcm2835.a | ||||
|  | ||||
| test$(EXEEXT): $(test_OBJECTS) $(test_DEPENDENCIES) $(EXTRA_test_DEPENDENCIES)  | ||||
| 	@rm -f test$(EXEEXT) | ||||
| 	$(AM_V_CCLD)$(LINK) $(test_OBJECTS) $(test_LDADD) $(LIBS) | ||||
|  | ||||
| mostlyclean-compile: | ||||
| 	-rm -f *.$(OBJEXT) | ||||
|  | ||||
| distclean-compile: | ||||
| 	-rm -f *.tab.c | ||||
|  | ||||
| include ./$(DEPDIR)/bcm2835.Po # am--include-marker | ||||
| include ./$(DEPDIR)/test.Po # am--include-marker | ||||
|  | ||||
| $(am__depfiles_remade): | ||||
| 	@$(MKDIR_P) $(@D) | ||||
| 	@echo '# dummy' >$@-t && $(am__mv) $@-t $@ | ||||
|  | ||||
| am--depfiles: $(am__depfiles_remade) | ||||
|  | ||||
| .c.o: | ||||
| 	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< | ||||
| 	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po | ||||
| #	$(AM_V_CC)source='$<' object='$@' libtool=no \ | ||||
| #	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ | ||||
| #	$(AM_V_CC_no)$(COMPILE) -c -o $@ $< | ||||
|  | ||||
| .c.obj: | ||||
| 	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` | ||||
| 	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po | ||||
| #	$(AM_V_CC)source='$<' object='$@' libtool=no \ | ||||
| #	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ | ||||
| #	$(AM_V_CC_no)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` | ||||
| install-includeHEADERS: $(include_HEADERS) | ||||
| 	@$(NORMAL_INSTALL) | ||||
| 	@list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ | ||||
| 	if test -n "$$list"; then \ | ||||
| 	  echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ | ||||
| 	  $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ | ||||
| 	fi; \ | ||||
| 	for p in $$list; do \ | ||||
| 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ | ||||
| 	  echo "$$d$$p"; \ | ||||
| 	done | $(am__base_list) | \ | ||||
| 	while read files; do \ | ||||
| 	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ | ||||
| 	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ | ||||
| 	done | ||||
|  | ||||
| uninstall-includeHEADERS: | ||||
| 	@$(NORMAL_UNINSTALL) | ||||
| 	@list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ | ||||
| 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ | ||||
| 	dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) | ||||
|  | ||||
| ID: $(am__tagged_files) | ||||
| 	$(am__define_uniq_tagged_files); mkid -fID $$unique | ||||
| tags: tags-am | ||||
| TAGS: tags | ||||
|  | ||||
| tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) | ||||
| 	set x; \ | ||||
| 	here=`pwd`; \ | ||||
| 	$(am__define_uniq_tagged_files); \ | ||||
| 	shift; \ | ||||
| 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ | ||||
| 	  test -n "$$unique" || unique=$$empty_fix; \ | ||||
| 	  if test $$# -gt 0; then \ | ||||
| 	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ | ||||
| 	      "$$@" $$unique; \ | ||||
| 	  else \ | ||||
| 	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ | ||||
| 	      $$unique; \ | ||||
| 	  fi; \ | ||||
| 	fi | ||||
| ctags: ctags-am | ||||
|  | ||||
| CTAGS: ctags | ||||
| ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) | ||||
| 	$(am__define_uniq_tagged_files); \ | ||||
| 	test -z "$(CTAGS_ARGS)$$unique" \ | ||||
| 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ | ||||
| 	     $$unique | ||||
|  | ||||
| GTAGS: | ||||
| 	here=`$(am__cd) $(top_builddir) && pwd` \ | ||||
| 	  && $(am__cd) $(top_srcdir) \ | ||||
| 	  && gtags -i $(GTAGS_ARGS) "$$here" | ||||
| cscopelist: cscopelist-am | ||||
|  | ||||
| cscopelist-am: $(am__tagged_files) | ||||
| 	list='$(am__tagged_files)'; \ | ||||
| 	case "$(srcdir)" in \ | ||||
| 	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ | ||||
| 	  *) sdir=$(subdir)/$(srcdir) ;; \ | ||||
| 	esac; \ | ||||
| 	for i in $$list; do \ | ||||
| 	  if test -f "$$i"; then \ | ||||
| 	    echo "$(subdir)/$$i"; \ | ||||
| 	  else \ | ||||
| 	    echo "$$sdir/$$i"; \ | ||||
| 	  fi; \ | ||||
| 	done >> $(top_builddir)/cscope.files | ||||
|  | ||||
| distclean-tags: | ||||
| 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | ||||
|  | ||||
| # Recover from deleted '.trs' file; this should ensure that | ||||
| # "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create | ||||
| # both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells | ||||
| # to avoid problems with "make -n". | ||||
| .log.trs: | ||||
| 	rm -f $< $@ | ||||
| 	$(MAKE) $(AM_MAKEFLAGS) $< | ||||
|  | ||||
| # Leading 'am--fnord' is there to ensure the list of targets does not | ||||
| # expand to empty, as could happen e.g. with make check TESTS=''. | ||||
| am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) | ||||
| am--force-recheck: | ||||
| 	@: | ||||
|  | ||||
| $(TEST_SUITE_LOG): $(TEST_LOGS) | ||||
| 	@$(am__set_TESTS_bases); \ | ||||
| 	am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ | ||||
| 	redo_bases=`for i in $$bases; do \ | ||||
| 	              am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ | ||||
| 	            done`; \ | ||||
| 	if test -n "$$redo_bases"; then \ | ||||
| 	  redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ | ||||
| 	  redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ | ||||
| 	  if $(am__make_dryrun); then :; else \ | ||||
| 	    rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ | ||||
| 	  fi; \ | ||||
| 	fi; \ | ||||
| 	if test -n "$$am__remaking_logs"; then \ | ||||
| 	  echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ | ||||
| 	       "recursion detected" >&2; \ | ||||
| 	elif test -n "$$redo_logs"; then \ | ||||
| 	  am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ | ||||
| 	fi; \ | ||||
| 	if $(am__make_dryrun); then :; else \ | ||||
| 	  st=0;  \ | ||||
| 	  errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ | ||||
| 	  for i in $$redo_bases; do \ | ||||
| 	    test -f $$i.trs && test -r $$i.trs \ | ||||
| 	      || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ | ||||
| 	    test -f $$i.log && test -r $$i.log \ | ||||
| 	      || { echo "$$errmsg $$i.log" >&2; st=1; }; \ | ||||
| 	  done; \ | ||||
| 	  test $$st -eq 0 || exit 1; \ | ||||
| 	fi | ||||
| 	@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ | ||||
| 	ws='[ 	]'; \ | ||||
| 	results=`for b in $$bases; do echo $$b.trs; done`; \ | ||||
| 	test -n "$$results" || results=/dev/null; \ | ||||
| 	all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \ | ||||
| 	pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \ | ||||
| 	fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \ | ||||
| 	skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \ | ||||
| 	xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ | ||||
| 	xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ | ||||
| 	error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ | ||||
| 	if test `expr $$fail + $$xpass + $$error` -eq 0; then \ | ||||
| 	  success=true; \ | ||||
| 	else \ | ||||
| 	  success=false; \ | ||||
| 	fi; \ | ||||
| 	br='==================='; br=$$br$$br$$br$$br; \ | ||||
| 	result_count () \ | ||||
| 	{ \ | ||||
| 	    if test x"$$1" = x"--maybe-color"; then \ | ||||
| 	      maybe_colorize=yes; \ | ||||
| 	    elif test x"$$1" = x"--no-color"; then \ | ||||
| 	      maybe_colorize=no; \ | ||||
| 	    else \ | ||||
| 	      echo "$@: invalid 'result_count' usage" >&2; exit 4; \ | ||||
| 	    fi; \ | ||||
| 	    shift; \ | ||||
| 	    desc=$$1 count=$$2; \ | ||||
| 	    if test $$maybe_colorize = yes && test $$count -gt 0; then \ | ||||
| 	      color_start=$$3 color_end=$$std; \ | ||||
| 	    else \ | ||||
| 	      color_start= color_end=; \ | ||||
| 	    fi; \ | ||||
| 	    echo "$${color_start}# $$desc $$count$${color_end}"; \ | ||||
| 	}; \ | ||||
| 	create_testsuite_report () \ | ||||
| 	{ \ | ||||
| 	  result_count $$1 "TOTAL:" $$all   "$$brg"; \ | ||||
| 	  result_count $$1 "PASS: " $$pass  "$$grn"; \ | ||||
| 	  result_count $$1 "SKIP: " $$skip  "$$blu"; \ | ||||
| 	  result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ | ||||
| 	  result_count $$1 "FAIL: " $$fail  "$$red"; \ | ||||
| 	  result_count $$1 "XPASS:" $$xpass "$$red"; \ | ||||
| 	  result_count $$1 "ERROR:" $$error "$$mgn"; \ | ||||
| 	}; \ | ||||
| 	{								\ | ||||
| 	  echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |	\ | ||||
| 	    $(am__rst_title);						\ | ||||
| 	  create_testsuite_report --no-color;				\ | ||||
| 	  echo;								\ | ||||
| 	  echo ".. contents:: :depth: 2";				\ | ||||
| 	  echo;								\ | ||||
| 	  for b in $$bases; do echo $$b; done				\ | ||||
| 	    | $(am__create_global_log);					\ | ||||
| 	} >$(TEST_SUITE_LOG).tmp || exit 1;				\ | ||||
| 	mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);			\ | ||||
| 	if $$success; then						\ | ||||
| 	  col="$$grn";							\ | ||||
| 	 else								\ | ||||
| 	  col="$$red";							\ | ||||
| 	  test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);		\ | ||||
| 	fi;								\ | ||||
| 	echo "$${col}$$br$${std}"; 					\ | ||||
| 	echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";	\ | ||||
| 	echo "$${col}$$br$${std}"; 					\ | ||||
| 	create_testsuite_report --maybe-color;				\ | ||||
| 	echo "$$col$$br$$std";						\ | ||||
| 	if $$success; then :; else					\ | ||||
| 	  echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";		\ | ||||
| 	  if test -n "$(PACKAGE_BUGREPORT)"; then			\ | ||||
| 	    echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}";	\ | ||||
| 	  fi;								\ | ||||
| 	  echo "$$col$$br$$std";					\ | ||||
| 	fi;								\ | ||||
| 	$$success || exit 1 | ||||
|  | ||||
| check-TESTS: $(check_PROGRAMS) | ||||
| 	@list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list | ||||
| 	@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list | ||||
| 	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) | ||||
| 	@set +e; $(am__set_TESTS_bases); \ | ||||
| 	log_list=`for i in $$bases; do echo $$i.log; done`; \ | ||||
| 	trs_list=`for i in $$bases; do echo $$i.trs; done`; \ | ||||
| 	log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ | ||||
| 	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ | ||||
| 	exit $$?; | ||||
| recheck: all $(check_PROGRAMS) | ||||
| 	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) | ||||
| 	@set +e; $(am__set_TESTS_bases); \ | ||||
| 	bases=`for i in $$bases; do echo $$i; done \ | ||||
| 	         | $(am__list_recheck_tests)` || exit 1; \ | ||||
| 	log_list=`for i in $$bases; do echo $$i.log; done`; \ | ||||
| 	log_list=`echo $$log_list`; \ | ||||
| 	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ | ||||
| 	        am__force_recheck=am--force-recheck \ | ||||
| 	        TEST_LOGS="$$log_list"; \ | ||||
| 	exit $$? | ||||
| test.log: test$(EXEEXT) | ||||
| 	@p='test$(EXEEXT)'; \ | ||||
| 	b='test'; \ | ||||
| 	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ | ||||
| 	--log-file $$b.log --trs-file $$b.trs \ | ||||
| 	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ | ||||
| 	"$$tst" $(AM_TESTS_FD_REDIRECT) | ||||
| .test.log: | ||||
| 	@p='$<'; \ | ||||
| 	$(am__set_b); \ | ||||
| 	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ | ||||
| 	--log-file $$b.log --trs-file $$b.trs \ | ||||
| 	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ | ||||
| 	"$$tst" $(AM_TESTS_FD_REDIRECT) | ||||
| #.test$(EXEEXT).log: | ||||
| #	@p='$<'; \ | ||||
| #	$(am__set_b); \ | ||||
| #	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ | ||||
| #	--log-file $$b.log --trs-file $$b.trs \ | ||||
| #	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ | ||||
| #	"$$tst" $(AM_TESTS_FD_REDIRECT) | ||||
|  | ||||
| distdir: $(BUILT_SOURCES) | ||||
| 	$(MAKE) $(AM_MAKEFLAGS) distdir-am | ||||
|  | ||||
| distdir-am: $(DISTFILES) | ||||
| 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | ||||
| 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | ||||
| 	list='$(DISTFILES)'; \ | ||||
| 	  dist_files=`for file in $$list; do echo $$file; done | \ | ||||
| 	  sed -e "s|^$$srcdirstrip/||;t" \ | ||||
| 	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | ||||
| 	case $$dist_files in \ | ||||
| 	  */*) $(MKDIR_P) `echo "$$dist_files" | \ | ||||
| 			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | ||||
| 			   sort -u` ;; \ | ||||
| 	esac; \ | ||||
| 	for file in $$dist_files; do \ | ||||
| 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | ||||
| 	  if test -d $$d/$$file; then \ | ||||
| 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | ||||
| 	    if test -d "$(distdir)/$$file"; then \ | ||||
| 	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | ||||
| 	    fi; \ | ||||
| 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | ||||
| 	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | ||||
| 	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | ||||
| 	    fi; \ | ||||
| 	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | ||||
| 	  else \ | ||||
| 	    test -f "$(distdir)/$$file" \ | ||||
| 	    || cp -p $$d/$$file "$(distdir)/$$file" \ | ||||
| 	    || exit 1; \ | ||||
| 	  fi; \ | ||||
| 	done | ||||
| check-am: all-am | ||||
| 	$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) | ||||
| 	$(MAKE) $(AM_MAKEFLAGS) check-TESTS | ||||
| check: check-am | ||||
| all-am: Makefile $(LIBRARIES) $(HEADERS) | ||||
| installdirs: | ||||
| 	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)"; do \ | ||||
| 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \ | ||||
| 	done | ||||
| install: install-am | ||||
| install-exec: install-exec-am | ||||
| install-data: install-data-am | ||||
| uninstall: uninstall-am | ||||
|  | ||||
| install-am: all-am | ||||
| 	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am | ||||
|  | ||||
| installcheck: installcheck-am | ||||
| install-strip: | ||||
| 	if test -z '$(STRIP)'; then \ | ||||
| 	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | ||||
| 	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | ||||
| 	      install; \ | ||||
| 	else \ | ||||
| 	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | ||||
| 	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | ||||
| 	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ | ||||
| 	fi | ||||
| mostlyclean-generic: | ||||
| 	-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) | ||||
| 	-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) | ||||
| 	-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) | ||||
|  | ||||
| clean-generic: | ||||
| 	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) | ||||
|  | ||||
| distclean-generic: | ||||
| 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) | ||||
| 	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) | ||||
|  | ||||
| maintainer-clean-generic: | ||||
| 	@echo "This command is intended for maintainers to use" | ||||
| 	@echo "it deletes files that may require special tools to rebuild." | ||||
| clean: clean-am | ||||
|  | ||||
| clean-am: clean-checkPROGRAMS clean-generic clean-libLIBRARIES \ | ||||
| 	mostlyclean-am | ||||
|  | ||||
| distclean: distclean-am | ||||
| 		-rm -f ./$(DEPDIR)/bcm2835.Po | ||||
| 	-rm -f ./$(DEPDIR)/test.Po | ||||
| 	-rm -f Makefile | ||||
| distclean-am: clean-am distclean-compile distclean-generic \ | ||||
| 	distclean-tags | ||||
|  | ||||
| dvi: dvi-am | ||||
|  | ||||
| dvi-am: | ||||
|  | ||||
| html: html-am | ||||
|  | ||||
| html-am: | ||||
|  | ||||
| info: info-am | ||||
|  | ||||
| info-am: | ||||
|  | ||||
| install-data-am: install-includeHEADERS | ||||
|  | ||||
| install-dvi: install-dvi-am | ||||
|  | ||||
| install-dvi-am: | ||||
|  | ||||
| install-exec-am: install-libLIBRARIES | ||||
|  | ||||
| install-html: install-html-am | ||||
|  | ||||
| install-html-am: | ||||
|  | ||||
| install-info: install-info-am | ||||
|  | ||||
| install-info-am: | ||||
|  | ||||
| install-man: | ||||
|  | ||||
| install-pdf: install-pdf-am | ||||
|  | ||||
| install-pdf-am: | ||||
|  | ||||
| install-ps: install-ps-am | ||||
|  | ||||
| install-ps-am: | ||||
|  | ||||
| installcheck-am: | ||||
|  | ||||
| maintainer-clean: maintainer-clean-am | ||||
| 		-rm -f ./$(DEPDIR)/bcm2835.Po | ||||
| 	-rm -f ./$(DEPDIR)/test.Po | ||||
| 	-rm -f Makefile | ||||
| maintainer-clean-am: distclean-am maintainer-clean-generic | ||||
|  | ||||
| mostlyclean: mostlyclean-am | ||||
|  | ||||
| mostlyclean-am: mostlyclean-compile mostlyclean-generic | ||||
|  | ||||
| pdf: pdf-am | ||||
|  | ||||
| pdf-am: | ||||
|  | ||||
| ps: ps-am | ||||
|  | ||||
| ps-am: | ||||
|  | ||||
| uninstall-am: uninstall-includeHEADERS uninstall-libLIBRARIES | ||||
|  | ||||
| .MAKE: check-am install-am install-strip | ||||
|  | ||||
| .PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ | ||||
| 	check-am clean clean-checkPROGRAMS clean-generic \ | ||||
| 	clean-libLIBRARIES cscopelist-am ctags ctags-am distclean \ | ||||
| 	distclean-compile distclean-generic distclean-tags distdir dvi \ | ||||
| 	dvi-am html html-am info info-am install install-am \ | ||||
| 	install-data install-data-am install-dvi install-dvi-am \ | ||||
| 	install-exec install-exec-am install-html install-html-am \ | ||||
| 	install-includeHEADERS install-info install-info-am \ | ||||
| 	install-libLIBRARIES install-man install-pdf install-pdf-am \ | ||||
| 	install-ps install-ps-am install-strip installcheck \ | ||||
| 	installcheck-am installdirs maintainer-clean \ | ||||
| 	maintainer-clean-generic mostlyclean mostlyclean-compile \ | ||||
| 	mostlyclean-generic pdf pdf-am ps ps-am recheck tags tags-am \ | ||||
| 	uninstall uninstall-am uninstall-includeHEADERS \ | ||||
| 	uninstall-libLIBRARIES | ||||
|  | ||||
| .PRECIOUS: Makefile | ||||
|  | ||||
|  | ||||
| # Tell versions [3.59,3.63) of GNU make to not export all variables. | ||||
| # Otherwise a system limit (for SysV at least) may be exceeded. | ||||
| .NOEXPORT: | ||||
| @@ -0,0 +1,9 @@ | ||||
| lib_LIBRARIES = libbcm2835.a | ||||
| libbcm2835_a_SOURCES = bcm2835.c | ||||
| include_HEADERS = bcm2835.h | ||||
| check_PROGRAMS = test | ||||
| test_SOURCES = test.c | ||||
| test_LDADD = ./libbcm2835.a | ||||
| TESTS = $(check_PROGRAMS) | ||||
| CLEANFILES = *~ | ||||
|  | ||||
| @@ -0,0 +1,987 @@ | ||||
| # Makefile.in generated by automake 1.16.1 from Makefile.am. | ||||
| # @configure_input@ | ||||
|  | ||||
| # Copyright (C) 1994-2018 Free Software Foundation, Inc. | ||||
|  | ||||
| # This Makefile.in is free software; the Free Software Foundation | ||||
| # gives unlimited permission to copy and/or distribute it, | ||||
| # with or without modifications, as long as this notice is preserved. | ||||
|  | ||||
| # This program is distributed in the hope that it will be useful, | ||||
| # but WITHOUT ANY WARRANTY, to the extent permitted by law; without | ||||
| # even the implied warranty of MERCHANTABILITY or FITNESS FOR A | ||||
| # PARTICULAR PURPOSE. | ||||
|  | ||||
| @SET_MAKE@ | ||||
|  | ||||
|  | ||||
| VPATH = @srcdir@ | ||||
| am__is_gnu_make = { \ | ||||
|   if test -z '$(MAKELEVEL)'; then \ | ||||
|     false; \ | ||||
|   elif test -n '$(MAKE_HOST)'; then \ | ||||
|     true; \ | ||||
|   elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ | ||||
|     true; \ | ||||
|   else \ | ||||
|     false; \ | ||||
|   fi; \ | ||||
| } | ||||
| am__make_running_with_option = \ | ||||
|   case $${target_option-} in \ | ||||
|       ?) ;; \ | ||||
|       *) echo "am__make_running_with_option: internal error: invalid" \ | ||||
|               "target option '$${target_option-}' specified" >&2; \ | ||||
|          exit 1;; \ | ||||
|   esac; \ | ||||
|   has_opt=no; \ | ||||
|   sane_makeflags=$$MAKEFLAGS; \ | ||||
|   if $(am__is_gnu_make); then \ | ||||
|     sane_makeflags=$$MFLAGS; \ | ||||
|   else \ | ||||
|     case $$MAKEFLAGS in \ | ||||
|       *\\[\ \	]*) \ | ||||
|         bs=\\; \ | ||||
|         sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | ||||
|           | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \ | ||||
|     esac; \ | ||||
|   fi; \ | ||||
|   skip_next=no; \ | ||||
|   strip_trailopt () \ | ||||
|   { \ | ||||
|     flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ | ||||
|   }; \ | ||||
|   for flg in $$sane_makeflags; do \ | ||||
|     test $$skip_next = yes && { skip_next=no; continue; }; \ | ||||
|     case $$flg in \ | ||||
|       *=*|--*) continue;; \ | ||||
|         -*I) strip_trailopt 'I'; skip_next=yes;; \ | ||||
|       -*I?*) strip_trailopt 'I';; \ | ||||
|         -*O) strip_trailopt 'O'; skip_next=yes;; \ | ||||
|       -*O?*) strip_trailopt 'O';; \ | ||||
|         -*l) strip_trailopt 'l'; skip_next=yes;; \ | ||||
|       -*l?*) strip_trailopt 'l';; \ | ||||
|       -[dEDm]) skip_next=yes;; \ | ||||
|       -[JT]) skip_next=yes;; \ | ||||
|     esac; \ | ||||
|     case $$flg in \ | ||||
|       *$$target_option*) has_opt=yes; break;; \ | ||||
|     esac; \ | ||||
|   done; \ | ||||
|   test $$has_opt = yes | ||||
| am__make_dryrun = (target_option=n; $(am__make_running_with_option)) | ||||
| am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) | ||||
| pkgdatadir = $(datadir)/@PACKAGE@ | ||||
| pkgincludedir = $(includedir)/@PACKAGE@ | ||||
| pkglibdir = $(libdir)/@PACKAGE@ | ||||
| pkglibexecdir = $(libexecdir)/@PACKAGE@ | ||||
| am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd | ||||
| install_sh_DATA = $(install_sh) -c -m 644 | ||||
| install_sh_PROGRAM = $(install_sh) -c | ||||
| install_sh_SCRIPT = $(install_sh) -c | ||||
| INSTALL_HEADER = $(INSTALL_DATA) | ||||
| transform = $(program_transform_name) | ||||
| NORMAL_INSTALL = : | ||||
| PRE_INSTALL = : | ||||
| POST_INSTALL = : | ||||
| NORMAL_UNINSTALL = : | ||||
| PRE_UNINSTALL = : | ||||
| POST_UNINSTALL = : | ||||
| check_PROGRAMS = test$(EXEEXT) | ||||
| subdir = src | ||||
| ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | ||||
| am__aclocal_m4_deps = $(top_srcdir)/configure.ac | ||||
| am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ | ||||
| 	$(ACLOCAL_M4) | ||||
| DIST_COMMON = $(srcdir)/Makefile.am $(include_HEADERS) \ | ||||
| 	$(am__DIST_COMMON) | ||||
| mkinstalldirs = $(install_sh) -d | ||||
| CONFIG_HEADER = $(top_builddir)/config.h | ||||
| CONFIG_CLEAN_FILES = | ||||
| CONFIG_CLEAN_VPATH_FILES = | ||||
| am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; | ||||
| am__vpath_adj = case $$p in \ | ||||
|     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ | ||||
|     *) f=$$p;; \ | ||||
|   esac; | ||||
| am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; | ||||
| am__install_max = 40 | ||||
| am__nobase_strip_setup = \ | ||||
|   srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` | ||||
| am__nobase_strip = \ | ||||
|   for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" | ||||
| am__nobase_list = $(am__nobase_strip_setup); \ | ||||
|   for p in $$list; do echo "$$p $$p"; done | \ | ||||
|   sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ | ||||
|   $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ | ||||
|     if (++n[$$2] == $(am__install_max)) \ | ||||
|       { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ | ||||
|     END { for (dir in files) print dir, files[dir] }' | ||||
| am__base_list = \ | ||||
|   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ | ||||
|   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | ||||
| am__uninstall_files_from_dir = { \ | ||||
|   test -z "$$files" \ | ||||
|     || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ | ||||
|     || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ | ||||
|          $(am__cd) "$$dir" && rm -f $$files; }; \ | ||||
|   } | ||||
| am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" | ||||
| LIBRARIES = $(lib_LIBRARIES) | ||||
| AR = ar | ||||
| ARFLAGS = cru | ||||
| AM_V_AR = $(am__v_AR_@AM_V@) | ||||
| am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) | ||||
| am__v_AR_0 = @echo "  AR      " $@; | ||||
| am__v_AR_1 =  | ||||
| libbcm2835_a_AR = $(AR) $(ARFLAGS) | ||||
| libbcm2835_a_LIBADD = | ||||
| am_libbcm2835_a_OBJECTS = bcm2835.$(OBJEXT) | ||||
| libbcm2835_a_OBJECTS = $(am_libbcm2835_a_OBJECTS) | ||||
| am_test_OBJECTS = test.$(OBJEXT) | ||||
| test_OBJECTS = $(am_test_OBJECTS) | ||||
| test_DEPENDENCIES = ./libbcm2835.a | ||||
| AM_V_P = $(am__v_P_@AM_V@) | ||||
| am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) | ||||
| am__v_P_0 = false | ||||
| am__v_P_1 = : | ||||
| AM_V_GEN = $(am__v_GEN_@AM_V@) | ||||
| am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) | ||||
| am__v_GEN_0 = @echo "  GEN     " $@; | ||||
| am__v_GEN_1 =  | ||||
| AM_V_at = $(am__v_at_@AM_V@) | ||||
| am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) | ||||
| am__v_at_0 = @ | ||||
| am__v_at_1 =  | ||||
| DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) | ||||
| depcomp = $(SHELL) $(top_srcdir)/depcomp | ||||
| am__maybe_remake_depfiles = depfiles | ||||
| am__depfiles_remade = ./$(DEPDIR)/bcm2835.Po ./$(DEPDIR)/test.Po | ||||
| am__mv = mv -f | ||||
| COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ | ||||
| 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) | ||||
| AM_V_CC = $(am__v_CC_@AM_V@) | ||||
| am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) | ||||
| am__v_CC_0 = @echo "  CC      " $@; | ||||
| am__v_CC_1 =  | ||||
| CCLD = $(CC) | ||||
| LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ | ||||
| AM_V_CCLD = $(am__v_CCLD_@AM_V@) | ||||
| am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) | ||||
| am__v_CCLD_0 = @echo "  CCLD    " $@; | ||||
| am__v_CCLD_1 =  | ||||
| SOURCES = $(libbcm2835_a_SOURCES) $(test_SOURCES) | ||||
| DIST_SOURCES = $(libbcm2835_a_SOURCES) $(test_SOURCES) | ||||
| am__can_run_installinfo = \ | ||||
|   case $$AM_UPDATE_INFO_DIR in \ | ||||
|     n|no|NO) false;; \ | ||||
|     *) (install-info --version) >/dev/null 2>&1;; \ | ||||
|   esac | ||||
| HEADERS = $(include_HEADERS) | ||||
| am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) | ||||
| # Read a list of newline-separated strings from the standard input, | ||||
| # and print each of them once, without duplicates.  Input order is | ||||
| # *not* preserved. | ||||
| am__uniquify_input = $(AWK) '\ | ||||
|   BEGIN { nonempty = 0; } \ | ||||
|   { items[$$0] = 1; nonempty = 1; } \ | ||||
|   END { if (nonempty) { for (i in items) print i; }; } \ | ||||
| ' | ||||
| # Make sure the list of sources is unique.  This is necessary because, | ||||
| # e.g., the same source file might be shared among _SOURCES variables | ||||
| # for different programs/libraries. | ||||
| am__define_uniq_tagged_files = \ | ||||
|   list='$(am__tagged_files)'; \ | ||||
|   unique=`for i in $$list; do \ | ||||
|     if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | ||||
|   done | $(am__uniquify_input)` | ||||
| ETAGS = etags | ||||
| CTAGS = ctags | ||||
| am__tty_colors_dummy = \ | ||||
|   mgn= red= grn= lgn= blu= brg= std=; \ | ||||
|   am__color_tests=no | ||||
| am__tty_colors = { \ | ||||
|   $(am__tty_colors_dummy); \ | ||||
|   if test "X$(AM_COLOR_TESTS)" = Xno; then \ | ||||
|     am__color_tests=no; \ | ||||
|   elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ | ||||
|     am__color_tests=yes; \ | ||||
|   elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ | ||||
|     am__color_tests=yes; \ | ||||
|   fi; \ | ||||
|   if test $$am__color_tests = yes; then \ | ||||
|     red='[0;31m'; \ | ||||
|     grn='[0;32m'; \ | ||||
|     lgn='[1;32m'; \ | ||||
|     blu='[1;34m'; \ | ||||
|     mgn='[0;35m'; \ | ||||
|     brg='[1m'; \ | ||||
|     std='[m'; \ | ||||
|   fi; \ | ||||
| } | ||||
| am__recheck_rx = ^[ 	]*:recheck:[ 	]* | ||||
| am__global_test_result_rx = ^[ 	]*:global-test-result:[ 	]* | ||||
| am__copy_in_global_log_rx = ^[ 	]*:copy-in-global-log:[ 	]* | ||||
| # A command that, given a newline-separated list of test names on the | ||||
| # standard input, print the name of the tests that are to be re-run | ||||
| # upon "make recheck". | ||||
| am__list_recheck_tests = $(AWK) '{ \ | ||||
|   recheck = 1; \ | ||||
|   while ((rc = (getline line < ($$0 ".trs"))) != 0) \ | ||||
|     { \ | ||||
|       if (rc < 0) \ | ||||
|         { \ | ||||
|           if ((getline line2 < ($$0 ".log")) < 0) \ | ||||
| 	    recheck = 0; \ | ||||
|           break; \ | ||||
|         } \ | ||||
|       else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ | ||||
|         { \ | ||||
|           recheck = 0; \ | ||||
|           break; \ | ||||
|         } \ | ||||
|       else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ | ||||
|         { \ | ||||
|           break; \ | ||||
|         } \ | ||||
|     }; \ | ||||
|   if (recheck) \ | ||||
|     print $$0; \ | ||||
|   close ($$0 ".trs"); \ | ||||
|   close ($$0 ".log"); \ | ||||
| }' | ||||
| # A command that, given a newline-separated list of test names on the | ||||
| # standard input, create the global log from their .trs and .log files. | ||||
| am__create_global_log = $(AWK) ' \ | ||||
| function fatal(msg) \ | ||||
| { \ | ||||
|   print "fatal: making $@: " msg | "cat >&2"; \ | ||||
|   exit 1; \ | ||||
| } \ | ||||
| function rst_section(header) \ | ||||
| { \ | ||||
|   print header; \ | ||||
|   len = length(header); \ | ||||
|   for (i = 1; i <= len; i = i + 1) \ | ||||
|     printf "="; \ | ||||
|   printf "\n\n"; \ | ||||
| } \ | ||||
| { \ | ||||
|   copy_in_global_log = 1; \ | ||||
|   global_test_result = "RUN"; \ | ||||
|   while ((rc = (getline line < ($$0 ".trs"))) != 0) \ | ||||
|     { \ | ||||
|       if (rc < 0) \ | ||||
|          fatal("failed to read from " $$0 ".trs"); \ | ||||
|       if (line ~ /$(am__global_test_result_rx)/) \ | ||||
|         { \ | ||||
|           sub("$(am__global_test_result_rx)", "", line); \ | ||||
|           sub("[ 	]*$$", "", line); \ | ||||
|           global_test_result = line; \ | ||||
|         } \ | ||||
|       else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ | ||||
|         copy_in_global_log = 0; \ | ||||
|     }; \ | ||||
|   if (copy_in_global_log) \ | ||||
|     { \ | ||||
|       rst_section(global_test_result ": " $$0); \ | ||||
|       while ((rc = (getline line < ($$0 ".log"))) != 0) \ | ||||
|       { \ | ||||
|         if (rc < 0) \ | ||||
|           fatal("failed to read from " $$0 ".log"); \ | ||||
|         print line; \ | ||||
|       }; \ | ||||
|       printf "\n"; \ | ||||
|     }; \ | ||||
|   close ($$0 ".trs"); \ | ||||
|   close ($$0 ".log"); \ | ||||
| }' | ||||
| # Restructured Text title. | ||||
| am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } | ||||
| # Solaris 10 'make', and several other traditional 'make' implementations, | ||||
| # pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it | ||||
| # by disabling -e (using the XSI extension "set +e") if it's set. | ||||
| am__sh_e_setup = case $$- in *e*) set +e;; esac | ||||
| # Default flags passed to test drivers. | ||||
| am__common_driver_flags = \ | ||||
|   --color-tests "$$am__color_tests" \ | ||||
|   --enable-hard-errors "$$am__enable_hard_errors" \ | ||||
|   --expect-failure "$$am__expect_failure" | ||||
| # To be inserted before the command running the test.  Creates the | ||||
| # directory for the log if needed.  Stores in $dir the directory | ||||
| # containing $f, in $tst the test, in $log the log.  Executes the | ||||
| # developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and | ||||
| # passes TESTS_ENVIRONMENT.  Set up options for the wrapper that | ||||
| # will run the test scripts (or their associated LOG_COMPILER, if | ||||
| # thy have one). | ||||
| am__check_pre = \ | ||||
| $(am__sh_e_setup);					\ | ||||
| $(am__vpath_adj_setup) $(am__vpath_adj)			\ | ||||
| $(am__tty_colors);					\ | ||||
| srcdir=$(srcdir); export srcdir;			\ | ||||
| case "$@" in						\ | ||||
|   */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;	\ | ||||
|     *) am__odir=.;; 					\ | ||||
| esac;							\ | ||||
| test "x$$am__odir" = x"." || test -d "$$am__odir" 	\ | ||||
|   || $(MKDIR_P) "$$am__odir" || exit $$?;		\ | ||||
| if test -f "./$$f"; then dir=./;			\ | ||||
| elif test -f "$$f"; then dir=;				\ | ||||
| else dir="$(srcdir)/"; fi;				\ | ||||
| tst=$$dir$$f; log='$@'; 				\ | ||||
| if test -n '$(DISABLE_HARD_ERRORS)'; then		\ | ||||
|   am__enable_hard_errors=no; 				\ | ||||
| else							\ | ||||
|   am__enable_hard_errors=yes; 				\ | ||||
| fi; 							\ | ||||
| case " $(XFAIL_TESTS) " in				\ | ||||
|   *[\ \	]$$f[\ \	]* | *[\ \	]$$dir$$f[\ \	]*) \ | ||||
|     am__expect_failure=yes;;				\ | ||||
|   *)							\ | ||||
|     am__expect_failure=no;;				\ | ||||
| esac; 							\ | ||||
| $(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) | ||||
| # A shell command to get the names of the tests scripts with any registered | ||||
| # extension removed (i.e., equivalently, the names of the test logs, with | ||||
| # the '.log' extension removed).  The result is saved in the shell variable | ||||
| # '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly, | ||||
| # we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", | ||||
| # since that might cause problem with VPATH rewrites for suffix-less tests. | ||||
| # See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. | ||||
| am__set_TESTS_bases = \ | ||||
|   bases='$(TEST_LOGS)'; \ | ||||
|   bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ | ||||
|   bases=`echo $$bases` | ||||
| RECHECK_LOGS = $(TEST_LOGS) | ||||
| AM_RECURSIVE_TARGETS = check recheck | ||||
| TEST_SUITE_LOG = test-suite.log | ||||
| TEST_EXTENSIONS = @EXEEXT@ .test | ||||
| LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver | ||||
| LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) | ||||
| am__set_b = \ | ||||
|   case '$@' in \ | ||||
|     */*) \ | ||||
|       case '$*' in \ | ||||
|         */*) b='$*';; \ | ||||
|           *) b=`echo '$@' | sed 's/\.log$$//'`; \ | ||||
|        esac;; \ | ||||
|     *) \ | ||||
|       b='$*';; \ | ||||
|   esac | ||||
| am__test_logs1 = $(TESTS:=.log) | ||||
| am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) | ||||
| TEST_LOGS = $(am__test_logs2:.test.log=.log) | ||||
| TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver | ||||
| TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ | ||||
| 	$(TEST_LOG_FLAGS) | ||||
| am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp \ | ||||
| 	$(top_srcdir)/test-driver | ||||
| DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | ||||
| ACLOCAL = @ACLOCAL@ | ||||
| AMTAR = @AMTAR@ | ||||
| AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ | ||||
| AUTOCONF = @AUTOCONF@ | ||||
| AUTOHEADER = @AUTOHEADER@ | ||||
| AUTOMAKE = @AUTOMAKE@ | ||||
| AWK = @AWK@ | ||||
| CC = @CC@ | ||||
| CCDEPMODE = @CCDEPMODE@ | ||||
| CFLAGS = @CFLAGS@ | ||||
| CPPFLAGS = @CPPFLAGS@ | ||||
| CYGPATH_W = @CYGPATH_W@ | ||||
| DEFS = @DEFS@ | ||||
| DEPDIR = @DEPDIR@ | ||||
| DOXYGEN = @DOXYGEN@ | ||||
| ECHO_C = @ECHO_C@ | ||||
| ECHO_N = @ECHO_N@ | ||||
| ECHO_T = @ECHO_T@ | ||||
| EXEEXT = @EXEEXT@ | ||||
| INSTALL = @INSTALL@ | ||||
| INSTALL_DATA = @INSTALL_DATA@ | ||||
| INSTALL_PROGRAM = @INSTALL_PROGRAM@ | ||||
| INSTALL_SCRIPT = @INSTALL_SCRIPT@ | ||||
| INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ | ||||
| LDFLAGS = @LDFLAGS@ | ||||
| LIBOBJS = @LIBOBJS@ | ||||
| LIBS = @LIBS@ | ||||
| LTLIBOBJS = @LTLIBOBJS@ | ||||
| MAKEINFO = @MAKEINFO@ | ||||
| MKDIR_P = @MKDIR_P@ | ||||
| OBJEXT = @OBJEXT@ | ||||
| PACKAGE = @PACKAGE@ | ||||
| PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ | ||||
| PACKAGE_NAME = @PACKAGE_NAME@ | ||||
| PACKAGE_STRING = @PACKAGE_STRING@ | ||||
| PACKAGE_TARNAME = @PACKAGE_TARNAME@ | ||||
| PACKAGE_URL = @PACKAGE_URL@ | ||||
| PACKAGE_VERSION = @PACKAGE_VERSION@ | ||||
| PATH_SEPARATOR = @PATH_SEPARATOR@ | ||||
| RANLIB = @RANLIB@ | ||||
| SET_MAKE = @SET_MAKE@ | ||||
| SHELL = @SHELL@ | ||||
| STRIP = @STRIP@ | ||||
| VERSION = @VERSION@ | ||||
| abs_builddir = @abs_builddir@ | ||||
| abs_srcdir = @abs_srcdir@ | ||||
| abs_top_builddir = @abs_top_builddir@ | ||||
| abs_top_srcdir = @abs_top_srcdir@ | ||||
| ac_ct_CC = @ac_ct_CC@ | ||||
| am__include = @am__include@ | ||||
| am__leading_dot = @am__leading_dot@ | ||||
| am__quote = @am__quote@ | ||||
| am__tar = @am__tar@ | ||||
| am__untar = @am__untar@ | ||||
| bindir = @bindir@ | ||||
| build_alias = @build_alias@ | ||||
| builddir = @builddir@ | ||||
| datadir = @datadir@ | ||||
| datarootdir = @datarootdir@ | ||||
| docdir = @docdir@ | ||||
| dvidir = @dvidir@ | ||||
| exec_prefix = @exec_prefix@ | ||||
| host_alias = @host_alias@ | ||||
| htmldir = @htmldir@ | ||||
| includedir = @includedir@ | ||||
| infodir = @infodir@ | ||||
| install_sh = @install_sh@ | ||||
| libdir = @libdir@ | ||||
| libexecdir = @libexecdir@ | ||||
| localedir = @localedir@ | ||||
| localstatedir = @localstatedir@ | ||||
| mandir = @mandir@ | ||||
| mkdir_p = @mkdir_p@ | ||||
| oldincludedir = @oldincludedir@ | ||||
| pdfdir = @pdfdir@ | ||||
| prefix = @prefix@ | ||||
| program_transform_name = @program_transform_name@ | ||||
| psdir = @psdir@ | ||||
| runstatedir = @runstatedir@ | ||||
| sbindir = @sbindir@ | ||||
| sharedstatedir = @sharedstatedir@ | ||||
| srcdir = @srcdir@ | ||||
| sysconfdir = @sysconfdir@ | ||||
| target_alias = @target_alias@ | ||||
| top_build_prefix = @top_build_prefix@ | ||||
| top_builddir = @top_builddir@ | ||||
| top_srcdir = @top_srcdir@ | ||||
| lib_LIBRARIES = libbcm2835.a | ||||
| libbcm2835_a_SOURCES = bcm2835.c | ||||
| include_HEADERS = bcm2835.h | ||||
| test_SOURCES = test.c | ||||
| test_LDADD = ./libbcm2835.a | ||||
| TESTS = $(check_PROGRAMS) | ||||
| CLEANFILES = *~ | ||||
| all: all-am | ||||
|  | ||||
| .SUFFIXES: | ||||
| .SUFFIXES: .c .log .o .obj .test .test$(EXEEXT) .trs | ||||
| $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps) | ||||
| 	@for dep in $?; do \ | ||||
| 	  case '$(am__configure_deps)' in \ | ||||
| 	    *$$dep*) \ | ||||
| 	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ | ||||
| 	        && { if test -f $@; then exit 0; else break; fi; }; \ | ||||
| 	      exit 1;; \ | ||||
| 	  esac; \ | ||||
| 	done; \ | ||||
| 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ | ||||
| 	$(am__cd) $(top_srcdir) && \ | ||||
| 	  $(AUTOMAKE) --gnu src/Makefile | ||||
| Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | ||||
| 	@case '$?' in \ | ||||
| 	  *config.status*) \ | ||||
| 	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ | ||||
| 	  *) \ | ||||
| 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ | ||||
| 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ | ||||
| 	esac; | ||||
|  | ||||
| $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) | ||||
| 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||||
|  | ||||
| $(top_srcdir)/configure:  $(am__configure_deps) | ||||
| 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||||
| $(ACLOCAL_M4):  $(am__aclocal_m4_deps) | ||||
| 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||||
| $(am__aclocal_m4_deps): | ||||
|  | ||||
| clean-checkPROGRAMS: | ||||
| 	-test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS) | ||||
| install-libLIBRARIES: $(lib_LIBRARIES) | ||||
| 	@$(NORMAL_INSTALL) | ||||
| 	@list='$(lib_LIBRARIES)'; test -n "$(libdir)" || list=; \ | ||||
| 	list2=; for p in $$list; do \ | ||||
| 	  if test -f $$p; then \ | ||||
| 	    list2="$$list2 $$p"; \ | ||||
| 	  else :; fi; \ | ||||
| 	done; \ | ||||
| 	test -z "$$list2" || { \ | ||||
| 	  echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ | ||||
| 	  $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ | ||||
| 	  echo " $(INSTALL_DATA) $$list2 '$(DESTDIR)$(libdir)'"; \ | ||||
| 	  $(INSTALL_DATA) $$list2 "$(DESTDIR)$(libdir)" || exit $$?; } | ||||
| 	@$(POST_INSTALL) | ||||
| 	@list='$(lib_LIBRARIES)'; test -n "$(libdir)" || list=; \ | ||||
| 	for p in $$list; do \ | ||||
| 	  if test -f $$p; then \ | ||||
| 	    $(am__strip_dir) \ | ||||
| 	    echo " ( cd '$(DESTDIR)$(libdir)' && $(RANLIB) $$f )"; \ | ||||
| 	    ( cd "$(DESTDIR)$(libdir)" && $(RANLIB) $$f ) || exit $$?; \ | ||||
| 	  else :; fi; \ | ||||
| 	done | ||||
|  | ||||
| uninstall-libLIBRARIES: | ||||
| 	@$(NORMAL_UNINSTALL) | ||||
| 	@list='$(lib_LIBRARIES)'; test -n "$(libdir)" || list=; \ | ||||
| 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ | ||||
| 	dir='$(DESTDIR)$(libdir)'; $(am__uninstall_files_from_dir) | ||||
|  | ||||
| clean-libLIBRARIES: | ||||
| 	-test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES) | ||||
|  | ||||
| libbcm2835.a: $(libbcm2835_a_OBJECTS) $(libbcm2835_a_DEPENDENCIES) $(EXTRA_libbcm2835_a_DEPENDENCIES)  | ||||
| 	$(AM_V_at)-rm -f libbcm2835.a | ||||
| 	$(AM_V_AR)$(libbcm2835_a_AR) libbcm2835.a $(libbcm2835_a_OBJECTS) $(libbcm2835_a_LIBADD) | ||||
| 	$(AM_V_at)$(RANLIB) libbcm2835.a | ||||
|  | ||||
| test$(EXEEXT): $(test_OBJECTS) $(test_DEPENDENCIES) $(EXTRA_test_DEPENDENCIES)  | ||||
| 	@rm -f test$(EXEEXT) | ||||
| 	$(AM_V_CCLD)$(LINK) $(test_OBJECTS) $(test_LDADD) $(LIBS) | ||||
|  | ||||
| mostlyclean-compile: | ||||
| 	-rm -f *.$(OBJEXT) | ||||
|  | ||||
| distclean-compile: | ||||
| 	-rm -f *.tab.c | ||||
|  | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bcm2835.Po@am__quote@ # am--include-marker | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test.Po@am__quote@ # am--include-marker | ||||
|  | ||||
| $(am__depfiles_remade): | ||||
| 	@$(MKDIR_P) $(@D) | ||||
| 	@echo '# dummy' >$@-t && $(am__mv) $@-t $@ | ||||
|  | ||||
| am--depfiles: $(am__depfiles_remade) | ||||
|  | ||||
| .c.o: | ||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< | ||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||||
| @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< | ||||
|  | ||||
| .c.obj: | ||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` | ||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||||
| @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` | ||||
| install-includeHEADERS: $(include_HEADERS) | ||||
| 	@$(NORMAL_INSTALL) | ||||
| 	@list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ | ||||
| 	if test -n "$$list"; then \ | ||||
| 	  echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ | ||||
| 	  $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ | ||||
| 	fi; \ | ||||
| 	for p in $$list; do \ | ||||
| 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ | ||||
| 	  echo "$$d$$p"; \ | ||||
| 	done | $(am__base_list) | \ | ||||
| 	while read files; do \ | ||||
| 	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ | ||||
| 	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ | ||||
| 	done | ||||
|  | ||||
| uninstall-includeHEADERS: | ||||
| 	@$(NORMAL_UNINSTALL) | ||||
| 	@list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ | ||||
| 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ | ||||
| 	dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) | ||||
|  | ||||
| ID: $(am__tagged_files) | ||||
| 	$(am__define_uniq_tagged_files); mkid -fID $$unique | ||||
| tags: tags-am | ||||
| TAGS: tags | ||||
|  | ||||
| tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) | ||||
| 	set x; \ | ||||
| 	here=`pwd`; \ | ||||
| 	$(am__define_uniq_tagged_files); \ | ||||
| 	shift; \ | ||||
| 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ | ||||
| 	  test -n "$$unique" || unique=$$empty_fix; \ | ||||
| 	  if test $$# -gt 0; then \ | ||||
| 	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ | ||||
| 	      "$$@" $$unique; \ | ||||
| 	  else \ | ||||
| 	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ | ||||
| 	      $$unique; \ | ||||
| 	  fi; \ | ||||
| 	fi | ||||
| ctags: ctags-am | ||||
|  | ||||
| CTAGS: ctags | ||||
| ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) | ||||
| 	$(am__define_uniq_tagged_files); \ | ||||
| 	test -z "$(CTAGS_ARGS)$$unique" \ | ||||
| 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ | ||||
| 	     $$unique | ||||
|  | ||||
| GTAGS: | ||||
| 	here=`$(am__cd) $(top_builddir) && pwd` \ | ||||
| 	  && $(am__cd) $(top_srcdir) \ | ||||
| 	  && gtags -i $(GTAGS_ARGS) "$$here" | ||||
| cscopelist: cscopelist-am | ||||
|  | ||||
| cscopelist-am: $(am__tagged_files) | ||||
| 	list='$(am__tagged_files)'; \ | ||||
| 	case "$(srcdir)" in \ | ||||
| 	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ | ||||
| 	  *) sdir=$(subdir)/$(srcdir) ;; \ | ||||
| 	esac; \ | ||||
| 	for i in $$list; do \ | ||||
| 	  if test -f "$$i"; then \ | ||||
| 	    echo "$(subdir)/$$i"; \ | ||||
| 	  else \ | ||||
| 	    echo "$$sdir/$$i"; \ | ||||
| 	  fi; \ | ||||
| 	done >> $(top_builddir)/cscope.files | ||||
|  | ||||
| distclean-tags: | ||||
| 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | ||||
|  | ||||
| # Recover from deleted '.trs' file; this should ensure that | ||||
| # "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create | ||||
| # both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells | ||||
| # to avoid problems with "make -n". | ||||
| .log.trs: | ||||
| 	rm -f $< $@ | ||||
| 	$(MAKE) $(AM_MAKEFLAGS) $< | ||||
|  | ||||
| # Leading 'am--fnord' is there to ensure the list of targets does not | ||||
| # expand to empty, as could happen e.g. with make check TESTS=''. | ||||
| am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) | ||||
| am--force-recheck: | ||||
| 	@: | ||||
|  | ||||
| $(TEST_SUITE_LOG): $(TEST_LOGS) | ||||
| 	@$(am__set_TESTS_bases); \ | ||||
| 	am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ | ||||
| 	redo_bases=`for i in $$bases; do \ | ||||
| 	              am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ | ||||
| 	            done`; \ | ||||
| 	if test -n "$$redo_bases"; then \ | ||||
| 	  redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ | ||||
| 	  redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ | ||||
| 	  if $(am__make_dryrun); then :; else \ | ||||
| 	    rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ | ||||
| 	  fi; \ | ||||
| 	fi; \ | ||||
| 	if test -n "$$am__remaking_logs"; then \ | ||||
| 	  echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ | ||||
| 	       "recursion detected" >&2; \ | ||||
| 	elif test -n "$$redo_logs"; then \ | ||||
| 	  am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ | ||||
| 	fi; \ | ||||
| 	if $(am__make_dryrun); then :; else \ | ||||
| 	  st=0;  \ | ||||
| 	  errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ | ||||
| 	  for i in $$redo_bases; do \ | ||||
| 	    test -f $$i.trs && test -r $$i.trs \ | ||||
| 	      || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ | ||||
| 	    test -f $$i.log && test -r $$i.log \ | ||||
| 	      || { echo "$$errmsg $$i.log" >&2; st=1; }; \ | ||||
| 	  done; \ | ||||
| 	  test $$st -eq 0 || exit 1; \ | ||||
| 	fi | ||||
| 	@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ | ||||
| 	ws='[ 	]'; \ | ||||
| 	results=`for b in $$bases; do echo $$b.trs; done`; \ | ||||
| 	test -n "$$results" || results=/dev/null; \ | ||||
| 	all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \ | ||||
| 	pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \ | ||||
| 	fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \ | ||||
| 	skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \ | ||||
| 	xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ | ||||
| 	xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ | ||||
| 	error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ | ||||
| 	if test `expr $$fail + $$xpass + $$error` -eq 0; then \ | ||||
| 	  success=true; \ | ||||
| 	else \ | ||||
| 	  success=false; \ | ||||
| 	fi; \ | ||||
| 	br='==================='; br=$$br$$br$$br$$br; \ | ||||
| 	result_count () \ | ||||
| 	{ \ | ||||
| 	    if test x"$$1" = x"--maybe-color"; then \ | ||||
| 	      maybe_colorize=yes; \ | ||||
| 	    elif test x"$$1" = x"--no-color"; then \ | ||||
| 	      maybe_colorize=no; \ | ||||
| 	    else \ | ||||
| 	      echo "$@: invalid 'result_count' usage" >&2; exit 4; \ | ||||
| 	    fi; \ | ||||
| 	    shift; \ | ||||
| 	    desc=$$1 count=$$2; \ | ||||
| 	    if test $$maybe_colorize = yes && test $$count -gt 0; then \ | ||||
| 	      color_start=$$3 color_end=$$std; \ | ||||
| 	    else \ | ||||
| 	      color_start= color_end=; \ | ||||
| 	    fi; \ | ||||
| 	    echo "$${color_start}# $$desc $$count$${color_end}"; \ | ||||
| 	}; \ | ||||
| 	create_testsuite_report () \ | ||||
| 	{ \ | ||||
| 	  result_count $$1 "TOTAL:" $$all   "$$brg"; \ | ||||
| 	  result_count $$1 "PASS: " $$pass  "$$grn"; \ | ||||
| 	  result_count $$1 "SKIP: " $$skip  "$$blu"; \ | ||||
| 	  result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ | ||||
| 	  result_count $$1 "FAIL: " $$fail  "$$red"; \ | ||||
| 	  result_count $$1 "XPASS:" $$xpass "$$red"; \ | ||||
| 	  result_count $$1 "ERROR:" $$error "$$mgn"; \ | ||||
| 	}; \ | ||||
| 	{								\ | ||||
| 	  echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |	\ | ||||
| 	    $(am__rst_title);						\ | ||||
| 	  create_testsuite_report --no-color;				\ | ||||
| 	  echo;								\ | ||||
| 	  echo ".. contents:: :depth: 2";				\ | ||||
| 	  echo;								\ | ||||
| 	  for b in $$bases; do echo $$b; done				\ | ||||
| 	    | $(am__create_global_log);					\ | ||||
| 	} >$(TEST_SUITE_LOG).tmp || exit 1;				\ | ||||
| 	mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);			\ | ||||
| 	if $$success; then						\ | ||||
| 	  col="$$grn";							\ | ||||
| 	 else								\ | ||||
| 	  col="$$red";							\ | ||||
| 	  test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);		\ | ||||
| 	fi;								\ | ||||
| 	echo "$${col}$$br$${std}"; 					\ | ||||
| 	echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";	\ | ||||
| 	echo "$${col}$$br$${std}"; 					\ | ||||
| 	create_testsuite_report --maybe-color;				\ | ||||
| 	echo "$$col$$br$$std";						\ | ||||
| 	if $$success; then :; else					\ | ||||
| 	  echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";		\ | ||||
| 	  if test -n "$(PACKAGE_BUGREPORT)"; then			\ | ||||
| 	    echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}";	\ | ||||
| 	  fi;								\ | ||||
| 	  echo "$$col$$br$$std";					\ | ||||
| 	fi;								\ | ||||
| 	$$success || exit 1 | ||||
|  | ||||
| check-TESTS: $(check_PROGRAMS) | ||||
| 	@list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list | ||||
| 	@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list | ||||
| 	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) | ||||
| 	@set +e; $(am__set_TESTS_bases); \ | ||||
| 	log_list=`for i in $$bases; do echo $$i.log; done`; \ | ||||
| 	trs_list=`for i in $$bases; do echo $$i.trs; done`; \ | ||||
| 	log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ | ||||
| 	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ | ||||
| 	exit $$?; | ||||
| recheck: all $(check_PROGRAMS) | ||||
| 	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) | ||||
| 	@set +e; $(am__set_TESTS_bases); \ | ||||
| 	bases=`for i in $$bases; do echo $$i; done \ | ||||
| 	         | $(am__list_recheck_tests)` || exit 1; \ | ||||
| 	log_list=`for i in $$bases; do echo $$i.log; done`; \ | ||||
| 	log_list=`echo $$log_list`; \ | ||||
| 	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ | ||||
| 	        am__force_recheck=am--force-recheck \ | ||||
| 	        TEST_LOGS="$$log_list"; \ | ||||
| 	exit $$? | ||||
| test.log: test$(EXEEXT) | ||||
| 	@p='test$(EXEEXT)'; \ | ||||
| 	b='test'; \ | ||||
| 	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ | ||||
| 	--log-file $$b.log --trs-file $$b.trs \ | ||||
| 	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ | ||||
| 	"$$tst" $(AM_TESTS_FD_REDIRECT) | ||||
| .test.log: | ||||
| 	@p='$<'; \ | ||||
| 	$(am__set_b); \ | ||||
| 	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ | ||||
| 	--log-file $$b.log --trs-file $$b.trs \ | ||||
| 	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ | ||||
| 	"$$tst" $(AM_TESTS_FD_REDIRECT) | ||||
| @am__EXEEXT_TRUE@.test$(EXEEXT).log: | ||||
| @am__EXEEXT_TRUE@	@p='$<'; \ | ||||
| @am__EXEEXT_TRUE@	$(am__set_b); \ | ||||
| @am__EXEEXT_TRUE@	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ | ||||
| @am__EXEEXT_TRUE@	--log-file $$b.log --trs-file $$b.trs \ | ||||
| @am__EXEEXT_TRUE@	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ | ||||
| @am__EXEEXT_TRUE@	"$$tst" $(AM_TESTS_FD_REDIRECT) | ||||
|  | ||||
| distdir: $(BUILT_SOURCES) | ||||
| 	$(MAKE) $(AM_MAKEFLAGS) distdir-am | ||||
|  | ||||
| distdir-am: $(DISTFILES) | ||||
| 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | ||||
| 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | ||||
| 	list='$(DISTFILES)'; \ | ||||
| 	  dist_files=`for file in $$list; do echo $$file; done | \ | ||||
| 	  sed -e "s|^$$srcdirstrip/||;t" \ | ||||
| 	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | ||||
| 	case $$dist_files in \ | ||||
| 	  */*) $(MKDIR_P) `echo "$$dist_files" | \ | ||||
| 			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | ||||
| 			   sort -u` ;; \ | ||||
| 	esac; \ | ||||
| 	for file in $$dist_files; do \ | ||||
| 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | ||||
| 	  if test -d $$d/$$file; then \ | ||||
| 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | ||||
| 	    if test -d "$(distdir)/$$file"; then \ | ||||
| 	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | ||||
| 	    fi; \ | ||||
| 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | ||||
| 	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | ||||
| 	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | ||||
| 	    fi; \ | ||||
| 	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | ||||
| 	  else \ | ||||
| 	    test -f "$(distdir)/$$file" \ | ||||
| 	    || cp -p $$d/$$file "$(distdir)/$$file" \ | ||||
| 	    || exit 1; \ | ||||
| 	  fi; \ | ||||
| 	done | ||||
| check-am: all-am | ||||
| 	$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) | ||||
| 	$(MAKE) $(AM_MAKEFLAGS) check-TESTS | ||||
| check: check-am | ||||
| all-am: Makefile $(LIBRARIES) $(HEADERS) | ||||
| installdirs: | ||||
| 	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)"; do \ | ||||
| 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \ | ||||
| 	done | ||||
| install: install-am | ||||
| install-exec: install-exec-am | ||||
| install-data: install-data-am | ||||
| uninstall: uninstall-am | ||||
|  | ||||
| install-am: all-am | ||||
| 	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am | ||||
|  | ||||
| installcheck: installcheck-am | ||||
| install-strip: | ||||
| 	if test -z '$(STRIP)'; then \ | ||||
| 	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | ||||
| 	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | ||||
| 	      install; \ | ||||
| 	else \ | ||||
| 	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | ||||
| 	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | ||||
| 	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ | ||||
| 	fi | ||||
| mostlyclean-generic: | ||||
| 	-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) | ||||
| 	-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) | ||||
| 	-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) | ||||
|  | ||||
| clean-generic: | ||||
| 	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) | ||||
|  | ||||
| distclean-generic: | ||||
| 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) | ||||
| 	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) | ||||
|  | ||||
| maintainer-clean-generic: | ||||
| 	@echo "This command is intended for maintainers to use" | ||||
| 	@echo "it deletes files that may require special tools to rebuild." | ||||
| clean: clean-am | ||||
|  | ||||
| clean-am: clean-checkPROGRAMS clean-generic clean-libLIBRARIES \ | ||||
| 	mostlyclean-am | ||||
|  | ||||
| distclean: distclean-am | ||||
| 		-rm -f ./$(DEPDIR)/bcm2835.Po | ||||
| 	-rm -f ./$(DEPDIR)/test.Po | ||||
| 	-rm -f Makefile | ||||
| distclean-am: clean-am distclean-compile distclean-generic \ | ||||
| 	distclean-tags | ||||
|  | ||||
| dvi: dvi-am | ||||
|  | ||||
| dvi-am: | ||||
|  | ||||
| html: html-am | ||||
|  | ||||
| html-am: | ||||
|  | ||||
| info: info-am | ||||
|  | ||||
| info-am: | ||||
|  | ||||
| install-data-am: install-includeHEADERS | ||||
|  | ||||
| install-dvi: install-dvi-am | ||||
|  | ||||
| install-dvi-am: | ||||
|  | ||||
| install-exec-am: install-libLIBRARIES | ||||
|  | ||||
| install-html: install-html-am | ||||
|  | ||||
| install-html-am: | ||||
|  | ||||
| install-info: install-info-am | ||||
|  | ||||
| install-info-am: | ||||
|  | ||||
| install-man: | ||||
|  | ||||
| install-pdf: install-pdf-am | ||||
|  | ||||
| install-pdf-am: | ||||
|  | ||||
| install-ps: install-ps-am | ||||
|  | ||||
| install-ps-am: | ||||
|  | ||||
| installcheck-am: | ||||
|  | ||||
| maintainer-clean: maintainer-clean-am | ||||
| 		-rm -f ./$(DEPDIR)/bcm2835.Po | ||||
| 	-rm -f ./$(DEPDIR)/test.Po | ||||
| 	-rm -f Makefile | ||||
| maintainer-clean-am: distclean-am maintainer-clean-generic | ||||
|  | ||||
| mostlyclean: mostlyclean-am | ||||
|  | ||||
| mostlyclean-am: mostlyclean-compile mostlyclean-generic | ||||
|  | ||||
| pdf: pdf-am | ||||
|  | ||||
| pdf-am: | ||||
|  | ||||
| ps: ps-am | ||||
|  | ||||
| ps-am: | ||||
|  | ||||
| uninstall-am: uninstall-includeHEADERS uninstall-libLIBRARIES | ||||
|  | ||||
| .MAKE: check-am install-am install-strip | ||||
|  | ||||
| .PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ | ||||
| 	check-am clean clean-checkPROGRAMS clean-generic \ | ||||
| 	clean-libLIBRARIES cscopelist-am ctags ctags-am distclean \ | ||||
| 	distclean-compile distclean-generic distclean-tags distdir dvi \ | ||||
| 	dvi-am html html-am info info-am install install-am \ | ||||
| 	install-data install-data-am install-dvi install-dvi-am \ | ||||
| 	install-exec install-exec-am install-html install-html-am \ | ||||
| 	install-includeHEADERS install-info install-info-am \ | ||||
| 	install-libLIBRARIES install-man install-pdf install-pdf-am \ | ||||
| 	install-ps install-ps-am install-strip installcheck \ | ||||
| 	installcheck-am installdirs maintainer-clean \ | ||||
| 	maintainer-clean-generic mostlyclean mostlyclean-compile \ | ||||
| 	mostlyclean-generic pdf pdf-am ps ps-am recheck tags tags-am \ | ||||
| 	uninstall uninstall-am uninstall-includeHEADERS \ | ||||
| 	uninstall-libLIBRARIES | ||||
|  | ||||
| .PRECIOUS: Makefile | ||||
|  | ||||
|  | ||||
| # Tell versions [3.59,3.63) of GNU make to not export all variables. | ||||
| # Otherwise a system limit (for SysV at least) may be exceeded. | ||||
| .NOEXPORT: | ||||
							
								
								
									
										2029
									
								
								inkycal/display/drivers/parallel_drivers/bcm2835-1.68/src/bcm2835.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										2029
									
								
								inkycal/display/drivers/parallel_drivers/bcm2835-1.68/src/bcm2835.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/bcm2835-1.68/src/test
									
									
									
									
									
										Executable file
									
								
							
							
						
						| @@ -0,0 +1,31 @@ | ||||
| // Test program for bcm2835 library | ||||
| // You can only expect this to run correctly | ||||
| // as root on Raspberry Pi hardware, but it will compile and run with little effect | ||||
| // on other hardware | ||||
| // | ||||
| // Author: Mike McCauley | ||||
| // Copyright (C) 2011-2013 Mike McCauley | ||||
| // $Id: test.c,v 1.6 2018/01/16 21:55:07 mikem Exp $ | ||||
|  | ||||
| #include <bcm2835.h> | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
| #include <unistd.h> | ||||
| #include <sys/types.h> | ||||
|  | ||||
| int main(int argc, char **argv) | ||||
| { | ||||
|     if (geteuid() == 0 && !getenv("FAKEROOTKEY")) | ||||
|     { | ||||
| 	if (!bcm2835_init()) | ||||
| 	    return 1; | ||||
| 	if (!bcm2835_close()) | ||||
| 	    return 1; | ||||
|     } | ||||
|     else | ||||
|     { | ||||
| 	fprintf(stderr, "****You need to be root to properly run this test program\n"); | ||||
| 	return 1; | ||||
|     } | ||||
|     return 0; | ||||
| } | ||||
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/bcm2835-1.68/src/test.o
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,4 @@ | ||||
| :test-result: PASS | ||||
| :global-test-result: PASS | ||||
| :recheck: no | ||||
| :copy-in-global-log: no | ||||
| @@ -0,0 +1 @@ | ||||
| timestamp for config.h | ||||
| @@ -0,0 +1,148 @@ | ||||
| #! /bin/sh | ||||
| # test-driver - basic testsuite driver script. | ||||
|  | ||||
| scriptversion=2018-03-07.03; # UTC | ||||
|  | ||||
| # Copyright (C) 2011-2018 Free Software Foundation, Inc. | ||||
| # | ||||
| # 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, 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, see <https://www.gnu.org/licenses/>. | ||||
|  | ||||
| # As a special exception to the GNU General Public License, if you | ||||
| # distribute this file as part of a program that contains a | ||||
| # configuration script generated by Autoconf, you may include it under | ||||
| # the same distribution terms that you use for the rest of that program. | ||||
|  | ||||
| # This file is maintained in Automake, please report | ||||
| # bugs to <bug-automake@gnu.org> or send patches to | ||||
| # <automake-patches@gnu.org>. | ||||
|  | ||||
| # Make unconditional expansion of undefined variables an error.  This | ||||
| # helps a lot in preventing typo-related bugs. | ||||
| set -u | ||||
|  | ||||
| usage_error () | ||||
| { | ||||
|   echo "$0: $*" >&2 | ||||
|   print_usage >&2 | ||||
|   exit 2 | ||||
| } | ||||
|  | ||||
| print_usage () | ||||
| { | ||||
|   cat <<END | ||||
| Usage: | ||||
|   test-driver --test-name=NAME --log-file=PATH --trs-file=PATH | ||||
|               [--expect-failure={yes|no}] [--color-tests={yes|no}] | ||||
|               [--enable-hard-errors={yes|no}] [--] | ||||
|               TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS] | ||||
| The '--test-name', '--log-file' and '--trs-file' options are mandatory. | ||||
| END | ||||
| } | ||||
|  | ||||
| test_name= # Used for reporting. | ||||
| log_file=  # Where to save the output of the test script. | ||||
| trs_file=  # Where to save the metadata of the test run. | ||||
| expect_failure=no | ||||
| color_tests=no | ||||
| enable_hard_errors=yes | ||||
| while test $# -gt 0; do | ||||
|   case $1 in | ||||
|   --help) print_usage; exit $?;; | ||||
|   --version) echo "test-driver $scriptversion"; exit $?;; | ||||
|   --test-name) test_name=$2; shift;; | ||||
|   --log-file) log_file=$2; shift;; | ||||
|   --trs-file) trs_file=$2; shift;; | ||||
|   --color-tests) color_tests=$2; shift;; | ||||
|   --expect-failure) expect_failure=$2; shift;; | ||||
|   --enable-hard-errors) enable_hard_errors=$2; shift;; | ||||
|   --) shift; break;; | ||||
|   -*) usage_error "invalid option: '$1'";; | ||||
|    *) break;; | ||||
|   esac | ||||
|   shift | ||||
| done | ||||
|  | ||||
| missing_opts= | ||||
| test x"$test_name" = x && missing_opts="$missing_opts --test-name" | ||||
| test x"$log_file"  = x && missing_opts="$missing_opts --log-file" | ||||
| test x"$trs_file"  = x && missing_opts="$missing_opts --trs-file" | ||||
| if test x"$missing_opts" != x; then | ||||
|   usage_error "the following mandatory options are missing:$missing_opts" | ||||
| fi | ||||
|  | ||||
| if test $# -eq 0; then | ||||
|   usage_error "missing argument" | ||||
| fi | ||||
|  | ||||
| if test $color_tests = yes; then | ||||
|   # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'. | ||||
|   red='[0;31m' # Red. | ||||
|   grn='[0;32m' # Green. | ||||
|   lgn='[1;32m' # Light green. | ||||
|   blu='[1;34m' # Blue. | ||||
|   mgn='[0;35m' # Magenta. | ||||
|   std='[m'     # No color. | ||||
| else | ||||
|   red= grn= lgn= blu= mgn= std= | ||||
| fi | ||||
|  | ||||
| do_exit='rm -f $log_file $trs_file; (exit $st); exit $st' | ||||
| trap "st=129; $do_exit" 1 | ||||
| trap "st=130; $do_exit" 2 | ||||
| trap "st=141; $do_exit" 13 | ||||
| trap "st=143; $do_exit" 15 | ||||
|  | ||||
| # Test script is run here. | ||||
| "$@" >$log_file 2>&1 | ||||
| estatus=$? | ||||
|  | ||||
| if test $enable_hard_errors = no && test $estatus -eq 99; then | ||||
|   tweaked_estatus=1 | ||||
| else | ||||
|   tweaked_estatus=$estatus | ||||
| fi | ||||
|  | ||||
| case $tweaked_estatus:$expect_failure in | ||||
|   0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; | ||||
|   0:*)   col=$grn res=PASS  recheck=no  gcopy=no;; | ||||
|   77:*)  col=$blu res=SKIP  recheck=no  gcopy=yes;; | ||||
|   99:*)  col=$mgn res=ERROR recheck=yes gcopy=yes;; | ||||
|   *:yes) col=$lgn res=XFAIL recheck=no  gcopy=yes;; | ||||
|   *:*)   col=$red res=FAIL  recheck=yes gcopy=yes;; | ||||
| esac | ||||
|  | ||||
| # Report the test outcome and exit status in the logs, so that one can | ||||
| # know whether the test passed or failed simply by looking at the '.log' | ||||
| # file, without the need of also peaking into the corresponding '.trs' | ||||
| # file (automake bug#11814). | ||||
| echo "$res $test_name (exit status: $estatus)" >>$log_file | ||||
|  | ||||
| # Report outcome to console. | ||||
| echo "${col}${res}${std}: $test_name" | ||||
|  | ||||
| # Register the test result, and other relevant metadata. | ||||
| echo ":test-result: $res" > $trs_file | ||||
| echo ":global-test-result: $res" >> $trs_file | ||||
| echo ":recheck: $recheck" >> $trs_file | ||||
| echo ":copy-in-global-log: $gcopy" >> $trs_file | ||||
|  | ||||
| # Local Variables: | ||||
| # mode: shell-script | ||||
| # sh-indentation: 2 | ||||
| # eval: (add-hook 'before-save-hook 'time-stamp) | ||||
| # time-stamp-start: "scriptversion=" | ||||
| # time-stamp-format: "%:y-%02m-%02d.%02H" | ||||
| # time-stamp-time-zone: "UTC0" | ||||
| # time-stamp-end: "; # UTC" | ||||
| # End: | ||||
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/bin/DEV_Config.o
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/bin/EPD_IT8951.o
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/bin/GUI_BMPfile.o
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/bin/GUI_Paint.o
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/bin/example.o
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/bin/font12.o
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/bin/font12CN.o
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/bin/font16.o
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/bin/font20.o
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/bin/font24.o
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/bin/font24CN.o
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/bin/font8.o
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/bin/main.o
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/epd
									
									
									
									
									
										Executable file
									
								
							
							
						
						
							
								
								
									
										891
									
								
								inkycal/display/drivers/parallel_drivers/examples/example.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,891 @@ | ||||
| #include "example.h" | ||||
|  | ||||
| #include <time.h>  | ||||
| #include <sys/types.h> | ||||
| #include <sys/stat.h> | ||||
| #include <unistd.h> | ||||
| #include <fcntl.h> | ||||
| #include <stdlib.h> | ||||
|  | ||||
| #include "../lib/e-Paper/EPD_IT8951.h" | ||||
| #include "../lib/GUI/GUI_Paint.h" | ||||
| #include "../lib/GUI/GUI_BMPfile.h" | ||||
| #include "../lib/Config/Debug.h" | ||||
|  | ||||
| UBYTE *Refresh_Frame_Buf = NULL; | ||||
|  | ||||
| UBYTE *Panel_Frame_Buf = NULL; | ||||
| UBYTE *Panel_Area_Frame_Buf = NULL; | ||||
|  | ||||
| bool Four_Byte_Align = false; | ||||
|  | ||||
| extern int epd_mode; | ||||
| extern UWORD VCOM; | ||||
| extern UBYTE isColor; | ||||
| /****************************************************************************** | ||||
| function: Change direction of display, Called after Paint_NewImage() | ||||
| parameter: | ||||
|     mode: display mode | ||||
| ******************************************************************************/ | ||||
| static void Epd_Mode(int mode) | ||||
| { | ||||
| 	if(mode == 3) { | ||||
| 		Paint_SetRotate(ROTATE_0); | ||||
| 		Paint_SetMirroring(MIRROR_NONE); | ||||
| 		isColor = 1; | ||||
| 	}else if(mode == 2) { | ||||
| 		Paint_SetRotate(ROTATE_0); | ||||
| 		Paint_SetMirroring(MIRROR_HORIZONTAL); | ||||
| 	}else if(mode == 1) { | ||||
| 		Paint_SetRotate(ROTATE_0); | ||||
| 		Paint_SetMirroring(MIRROR_HORIZONTAL); | ||||
| 	}else { | ||||
| 		Paint_SetRotate(ROTATE_0); | ||||
| 		Paint_SetMirroring(MIRROR_NONE); | ||||
| 	} | ||||
| } | ||||
|  | ||||
|  | ||||
| /****************************************************************************** | ||||
| function: Display_ColorPalette_Example | ||||
| parameter: | ||||
|     Panel_Width: Width of the panel | ||||
|     Panel_Height: Height of the panel | ||||
|     Init_Target_Memory_Addr: Memory address of IT8951 target memory address | ||||
| ******************************************************************************/ | ||||
| UBYTE Display_ColorPalette_Example(UWORD Panel_Width, UWORD Panel_Height, UDOUBLE Init_Target_Memory_Addr){ | ||||
|     UWORD In_4bp_Refresh_Area_Width; | ||||
|     if(Four_Byte_Align == true){ | ||||
|         In_4bp_Refresh_Area_Width = Panel_Width - (Panel_Width % 32); | ||||
|     }else{ | ||||
|         In_4bp_Refresh_Area_Width = Panel_Width; | ||||
|     } | ||||
|     UWORD In_4bp_Refresh_Area_Height = Panel_Height/16; | ||||
|  | ||||
|     UDOUBLE Imagesize; | ||||
|  | ||||
|     clock_t In_4bp_Refresh_Start, In_4bp_Refresh_Finish; | ||||
|     double In_4bp_Refresh_Duration; | ||||
|  | ||||
|     Imagesize  = ((In_4bp_Refresh_Area_Width*4 % 8 == 0)? (In_4bp_Refresh_Area_Width*4 / 8 ): (In_4bp_Refresh_Area_Width*4 / 8 + 1)) * In_4bp_Refresh_Area_Height; | ||||
|  | ||||
|     if((Refresh_Frame_Buf = (UBYTE *)malloc(Imagesize)) == NULL) { | ||||
|         Debug("Failed to apply for black memory...\r\n"); | ||||
|         return -1; | ||||
|     } | ||||
|  | ||||
|     Debug("Start to demostrate 4bpp palette example\r\n"); | ||||
|     In_4bp_Refresh_Start = clock(); | ||||
|  | ||||
|     UBYTE SixteenColorPattern[16] = {0xFF,0xEE,0xDD,0xCC,0xBB,0xAA,0x99,0x88,0x77,0x66,0x55,0x44,0x33,0x22,0x11,0x00}; | ||||
|  | ||||
|     for(int i=0; i < 16; i++){ | ||||
|         memset(Refresh_Frame_Buf, SixteenColorPattern[i], Imagesize); | ||||
|         EPD_IT8951_4bp_Refresh(Refresh_Frame_Buf, 0, i * In_4bp_Refresh_Area_Height, In_4bp_Refresh_Area_Width, In_4bp_Refresh_Area_Height, false, Init_Target_Memory_Addr, false); | ||||
|     } | ||||
|  | ||||
|     In_4bp_Refresh_Finish = clock(); | ||||
|     In_4bp_Refresh_Duration = (double)(In_4bp_Refresh_Finish - In_4bp_Refresh_Start) / CLOCKS_PER_SEC; | ||||
|     Debug( "Write and Show 4bp occupy %f second\n", In_4bp_Refresh_Duration ); | ||||
|  | ||||
|     if(Refresh_Frame_Buf != NULL){ | ||||
|         free(Refresh_Frame_Buf); | ||||
|         Refresh_Frame_Buf = NULL; | ||||
|     } | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
|  | ||||
| /****************************************************************************** | ||||
| function: Display_CharacterPattern_Example | ||||
| parameter: | ||||
|     Panel_Width: Width of the panel | ||||
|     Panel_Height: Height of the panel | ||||
|     Init_Target_Memory_Addr: Memory address of IT8951 target memory address | ||||
|     BitsPerPixel: Bits Per Pixel, 2^BitsPerPixel = grayscale | ||||
| ******************************************************************************/ | ||||
| UBYTE Display_CharacterPattern_Example(UWORD Panel_Width, UWORD Panel_Height, UDOUBLE Init_Target_Memory_Addr, UBYTE BitsPerPixel){ | ||||
|     UWORD Display_Area_Width; | ||||
|     if(Four_Byte_Align == true){ | ||||
|         Display_Area_Width = Panel_Width - (Panel_Width % 32); | ||||
|     }else{ | ||||
|         Display_Area_Width = Panel_Width; | ||||
|     } | ||||
|     UWORD Display_Area_Height = Panel_Height; | ||||
|  | ||||
|     UWORD Display_Area_Sub_Width = Display_Area_Width / 5; | ||||
|     UWORD Display_Area_Sub_Height = Display_Area_Height / 5; | ||||
|  | ||||
|     UDOUBLE Imagesize; | ||||
|  | ||||
|     Imagesize = ((Display_Area_Width * BitsPerPixel % 8 == 0)? (Display_Area_Width * BitsPerPixel / 8 ): (Display_Area_Width * BitsPerPixel / 8 + 1)) * Display_Area_Height; | ||||
|     if((Refresh_Frame_Buf = (UBYTE *)malloc(Imagesize)) == NULL) { | ||||
|         Debug("Failed to apply for image memory...\r\n"); | ||||
|         return -1; | ||||
|     } | ||||
|  | ||||
|     Paint_NewImage(Refresh_Frame_Buf, Display_Area_Width, Display_Area_Height, 0, BLACK); | ||||
|     Paint_SelectImage(Refresh_Frame_Buf); | ||||
| 	Epd_Mode(epd_mode); | ||||
|     Paint_SetBitsPerPixel(BitsPerPixel); | ||||
|     Paint_Clear(WHITE); | ||||
|      | ||||
|  | ||||
|     for(int y=20; y<Display_Area_Height - Display_Area_Sub_Height; y += Display_Area_Sub_Height )//To prevent arrays from going out of bounds | ||||
|     { | ||||
|         for(int  x=20; x<Display_Area_Width - Display_Area_Sub_Width; x += Display_Area_Sub_Width )//To prevent arrays from going out of bounds | ||||
|         { | ||||
|             //For color definition of all BitsPerPixel, you can refer to GUI_Paint.h | ||||
|             Paint_DrawPoint(x+Display_Area_Sub_Width*3/8, y+Display_Area_Sub_Height*3/8, 0x10, DOT_PIXEL_7X7, DOT_STYLE_DFT); | ||||
|             Paint_DrawPoint(x+Display_Area_Sub_Width*5/8, y+Display_Area_Sub_Height*3/8, 0x30, DOT_PIXEL_7X7, DOT_STYLE_DFT); | ||||
|             Paint_DrawLine(x+Display_Area_Sub_Width*3/8, y+Display_Area_Sub_Height*5/8, x+Display_Area_Sub_Width*5/8, y+Display_Area_Sub_Height*5/8, 0x50, DOT_PIXEL_3X3, LINE_STYLE_SOLID); | ||||
|             Paint_DrawRectangle(x, y, x+Display_Area_Sub_Width, y+Display_Area_Sub_Height, 0x00, DOT_PIXEL_3X3, DRAW_FILL_EMPTY); | ||||
|             Paint_DrawCircle(x + Display_Area_Sub_Width/2, y + Display_Area_Sub_Height/2, Display_Area_Sub_Height/2, 0x50, DOT_PIXEL_2X2, DRAW_FILL_EMPTY); | ||||
|             Paint_DrawNum(x+Display_Area_Sub_Width*3/10, y+Display_Area_Sub_Height*1/4, 1234567890, &Font16, 0x20, 0xE0); | ||||
|             Paint_DrawString_EN(x+Display_Area_Sub_Width*3/10, y+Display_Area_Sub_Height*3/4, "hello world", &Font16, 0x30, 0xD0); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|  | ||||
|     switch(BitsPerPixel){ | ||||
|         case BitsPerPixel_8:{ | ||||
|             EPD_IT8951_8bp_Refresh(Refresh_Frame_Buf, 0, 0, Display_Area_Width,  Display_Area_Height, false, Init_Target_Memory_Addr); | ||||
|             break; | ||||
|         } | ||||
|         case BitsPerPixel_4:{ | ||||
|             EPD_IT8951_4bp_Refresh(Refresh_Frame_Buf, 0, 0, Display_Area_Width,  Display_Area_Height, false, Init_Target_Memory_Addr,false); | ||||
|             break; | ||||
|         } | ||||
|         case BitsPerPixel_2:{ | ||||
|             EPD_IT8951_2bp_Refresh(Refresh_Frame_Buf, 0, 0, Display_Area_Width,  Display_Area_Height, false, Init_Target_Memory_Addr,false); | ||||
|             break; | ||||
|         } | ||||
|         case BitsPerPixel_1:{ | ||||
|             EPD_IT8951_1bp_Refresh(Refresh_Frame_Buf, 0, 0, Display_Area_Width,  Display_Area_Height, A2_Mode, Init_Target_Memory_Addr,false); | ||||
|             break; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     if(Refresh_Frame_Buf != NULL){ | ||||
|         free(Refresh_Frame_Buf); | ||||
|         Refresh_Frame_Buf = NULL; | ||||
|     } | ||||
|  | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| /****************************************************************************** | ||||
| function: Display_BMP_Example | ||||
| parameter: | ||||
|     Panel_Width: Width of the panel | ||||
|     Panel_Height: Height of the panel | ||||
|     Init_Target_Memory_Addr: Memory address of IT8951 target memory address | ||||
|     BitsPerPixel: Bits Per Pixel, 2^BitsPerPixel = grayscale | ||||
| ******************************************************************************/ | ||||
| UBYTE Display_BMP_Example(UWORD Panel_Width, UWORD Panel_Height, UDOUBLE Init_Target_Memory_Addr, UBYTE BitsPerPixel, char *Path){ | ||||
|     UWORD WIDTH; | ||||
|     if(Four_Byte_Align == true){ | ||||
|         WIDTH  = Panel_Width - (Panel_Width % 32); | ||||
|     }else{ | ||||
|         WIDTH = Panel_Width; | ||||
|     } | ||||
|     UWORD HEIGHT = Panel_Height; | ||||
|  | ||||
|     UDOUBLE Imagesize; | ||||
|  | ||||
|     Imagesize = ((WIDTH * BitsPerPixel % 8 == 0)? (WIDTH * BitsPerPixel / 8 ): (WIDTH * BitsPerPixel / 8 + 1)) * HEIGHT; | ||||
|     if((Refresh_Frame_Buf = (UBYTE *)malloc(Imagesize)) == NULL) { | ||||
|         Debug("Failed to apply for black memory...\r\n"); | ||||
|         return -1; | ||||
|     } | ||||
|  | ||||
|     Paint_NewImage(Refresh_Frame_Buf, WIDTH, HEIGHT, 0, BLACK); | ||||
|     Paint_SelectImage(Refresh_Frame_Buf); | ||||
| 	Epd_Mode(epd_mode); | ||||
|     Paint_SetBitsPerPixel(BitsPerPixel); | ||||
|     Paint_Clear(WHITE); | ||||
|  | ||||
|     // sprintf(Path,"./pic/%dx%d_0.bmp", WIDTH, HEIGHT); | ||||
|  | ||||
|     GUI_ReadBmp(Path, 0, 0); | ||||
|  | ||||
|     //you can draw your character and pattern on the image, for color definition of all BitsPerPixel, you can refer to GUI_Paint.h,  | ||||
|     //Paint_DrawRectangle(50, 50, WIDTH/2, HEIGHT/2, 0x30, DOT_PIXEL_3X3, DRAW_FILL_EMPTY); | ||||
|     //Paint_DrawCircle(WIDTH*3/4, HEIGHT/4, 100, 0xF0, DOT_PIXEL_2X2, DRAW_FILL_EMPTY); | ||||
|     //Paint_DrawNum(WIDTH/4, HEIGHT/5, 709, &Font20, 0x30, 0xB0); | ||||
|  | ||||
|     switch(BitsPerPixel){ | ||||
|         case BitsPerPixel_8:{ | ||||
|             Paint_DrawString_EN(10, 10, "8 bits per pixel 16 grayscale", &Font24, 0xF0, 0x00); | ||||
|             EPD_IT8951_8bp_Refresh(Refresh_Frame_Buf, 0, 0, WIDTH,  HEIGHT, false, Init_Target_Memory_Addr); | ||||
|             break; | ||||
|         } | ||||
|         case BitsPerPixel_4:{ | ||||
|             Paint_DrawString_EN(10, 10, "4 bits per pixel 16 grayscale", &Font24, 0xF0, 0x00); | ||||
|             EPD_IT8951_4bp_Refresh(Refresh_Frame_Buf, 0, 0, WIDTH,  HEIGHT, false, Init_Target_Memory_Addr,false); | ||||
|             break; | ||||
|         } | ||||
|         case BitsPerPixel_2:{ | ||||
|             Paint_DrawString_EN(10, 10, "2 bits per pixel 4 grayscale", &Font24, 0xC0, 0x00); | ||||
|             EPD_IT8951_2bp_Refresh(Refresh_Frame_Buf, 0, 0, WIDTH,  HEIGHT, false, Init_Target_Memory_Addr,false); | ||||
|             break; | ||||
|         } | ||||
|         case BitsPerPixel_1:{ | ||||
|             Paint_DrawString_EN(10, 10, "1 bit per pixel 2 grayscale", &Font24, 0x80, 0x00); | ||||
|             EPD_IT8951_1bp_Refresh(Refresh_Frame_Buf, 0, 0, WIDTH,  HEIGHT, A2_Mode, Init_Target_Memory_Addr,false); | ||||
|             break; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     if(Refresh_Frame_Buf != NULL){ | ||||
|         free(Refresh_Frame_Buf); | ||||
|         Refresh_Frame_Buf = NULL; | ||||
|     } | ||||
|  | ||||
|     DEV_Delay_ms(5000); | ||||
|  | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
|  | ||||
| /****************************************************************************** | ||||
| function: Dynamic_Refresh_Example | ||||
| parameter: | ||||
|     Dev_Info: Information structure read from IT8951 | ||||
|     Init_Target_Memory_Addr: Memory address of IT8951 target memory address | ||||
| ******************************************************************************/ | ||||
| UBYTE Dynamic_Refresh_Example(IT8951_Dev_Info Dev_Info, UDOUBLE Init_Target_Memory_Addr){ | ||||
|     UWORD Panel_Width = Dev_Info.Panel_W; | ||||
|     UWORD Panel_Height = Dev_Info.Panel_H; | ||||
|  | ||||
|     UWORD Dynamic_Area_Width = 96; | ||||
|     UWORD Dynamic_Area_Height = 48; | ||||
|  | ||||
|     UDOUBLE Imagesize; | ||||
|  | ||||
|     UWORD Start_X = 0,Start_Y = 0; | ||||
|  | ||||
|     UWORD Dynamic_Area_Count = 0; | ||||
|  | ||||
|     UWORD Repeat_Area_Times = 0; | ||||
|  | ||||
|     //malloc enough memory for 1bp picture first | ||||
|     Imagesize = ((Panel_Width * 1 % 8 == 0)? (Panel_Width * 1 / 8 ): (Panel_Width * 1 / 8 + 1)) * Panel_Height; | ||||
|     if((Refresh_Frame_Buf = (UBYTE *)malloc(Imagesize)) == NULL){ | ||||
|         Debug("Failed to apply for picture memory...\r\n"); | ||||
|         return -1; | ||||
|     } | ||||
|  | ||||
|     clock_t Dynamic_Area_Start, Dynamic_Area_Finish; | ||||
|     double Dynamic_Area_Duration;   | ||||
|  | ||||
|     while(1) | ||||
|     { | ||||
|         Dynamic_Area_Width = 128; | ||||
|         Dynamic_Area_Height = 96; | ||||
|  | ||||
|         Start_X = 0; | ||||
|         Start_Y = 0; | ||||
|  | ||||
|         Dynamic_Area_Count = 0; | ||||
|  | ||||
|         Dynamic_Area_Start = clock(); | ||||
|         Debug("Start to dynamic display...\r\n"); | ||||
|  | ||||
|         for(Dynamic_Area_Width = 96, Dynamic_Area_Height = 64; (Dynamic_Area_Width < Panel_Width - 32) && (Dynamic_Area_Height < Panel_Height - 24); Dynamic_Area_Width += 32, Dynamic_Area_Height += 24) | ||||
|         { | ||||
|  | ||||
|             Imagesize = ((Dynamic_Area_Width % 8 == 0)? (Dynamic_Area_Width / 8 ): (Dynamic_Area_Width / 8 + 1)) * Dynamic_Area_Height; | ||||
|             Paint_NewImage(Refresh_Frame_Buf, Dynamic_Area_Width, Dynamic_Area_Height, 0, BLACK); | ||||
|             Paint_SelectImage(Refresh_Frame_Buf); | ||||
| 			Epd_Mode(epd_mode); | ||||
|             Paint_SetBitsPerPixel(1); | ||||
|  | ||||
|            for(int y=Start_Y; y< Panel_Height - Dynamic_Area_Height; y += Dynamic_Area_Height) | ||||
|             { | ||||
|                 for(int x=Start_X; x< Panel_Width - Dynamic_Area_Width; x += Dynamic_Area_Width) | ||||
|                 { | ||||
|                     Paint_Clear(WHITE); | ||||
|  | ||||
|                     //For color definition of all BitsPerPixel, you can refer to GUI_Paint.h | ||||
|                     Paint_DrawRectangle(0, 0, Dynamic_Area_Width-1, Dynamic_Area_Height, 0x00, DOT_PIXEL_2X2, DRAW_FILL_EMPTY); | ||||
|  | ||||
|                     Paint_DrawCircle(Dynamic_Area_Width*3/4, Dynamic_Area_Height*3/4, 5, 0x00, DOT_PIXEL_1X1, DRAW_FILL_FULL); | ||||
|  | ||||
|                     Paint_DrawNum(Dynamic_Area_Width/4, Dynamic_Area_Height/4, ++Dynamic_Area_Count, &Font20, 0x00, 0xF0); | ||||
|  | ||||
| 					if(epd_mode == 2) | ||||
| 						EPD_IT8951_1bp_Refresh(Refresh_Frame_Buf, 1280-Dynamic_Area_Width-x, y, Dynamic_Area_Width,  Dynamic_Area_Height, A2_Mode, Init_Target_Memory_Addr, true); | ||||
| 					else if(epd_mode == 1) | ||||
| 						EPD_IT8951_1bp_Refresh(Refresh_Frame_Buf, Panel_Width-Dynamic_Area_Width-x-16, y, Dynamic_Area_Width,  Dynamic_Area_Height, A2_Mode, Init_Target_Memory_Addr, true); | ||||
|                     else | ||||
| 						EPD_IT8951_1bp_Refresh(Refresh_Frame_Buf, x, y, Dynamic_Area_Width,  Dynamic_Area_Height, A2_Mode, Init_Target_Memory_Addr, true); | ||||
|                 } | ||||
|             } | ||||
|             Start_X += 32; | ||||
|             Start_Y += 24; | ||||
|         } | ||||
|  | ||||
|         Dynamic_Area_Finish = clock(); | ||||
|         Dynamic_Area_Duration = (double)(Dynamic_Area_Finish - Dynamic_Area_Start) / CLOCKS_PER_SEC; | ||||
|         Debug( "Write and Show occupy %f second\n", Dynamic_Area_Duration ); | ||||
|  | ||||
|         Repeat_Area_Times ++; | ||||
|         if(Repeat_Area_Times > 0){ | ||||
|             break; | ||||
|         } | ||||
|     } | ||||
|     if(Refresh_Frame_Buf != NULL){ | ||||
|         free(Refresh_Frame_Buf); | ||||
|         Refresh_Frame_Buf = NULL; | ||||
|     } | ||||
|  | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
|  | ||||
| /****************************************************************************** | ||||
| function: Dynamic_GIF_Example | ||||
| parameter: | ||||
|     Panel_Width: Width of the panel | ||||
|     Panel_Height: Height of the panel | ||||
|     Init_Target_Memory_Addr: Memory address of IT8951 target memory address | ||||
|     BitsPerPixel: Bits Per Pixel, 2^BitsPerPixel = grayscale | ||||
| ******************************************************************************/ | ||||
| UBYTE Dynamic_GIF_Example(UWORD Panel_Width, UWORD Panel_Height, UDOUBLE Init_Target_Memory_Addr){ | ||||
|  | ||||
|     UWORD Animation_Start_X = 0; | ||||
|     UWORD Animation_Start_Y = 0; | ||||
|     UWORD Animation_Area_Width = 800; | ||||
|     UWORD Animation_Area_Height = 600; | ||||
|  | ||||
|     if(Animation_Area_Width > Panel_Width){ | ||||
|         return -1; | ||||
|     } | ||||
|     if(Animation_Area_Height > Panel_Height){ | ||||
|         return -1; | ||||
|     } | ||||
|  | ||||
|     UDOUBLE Imagesize; | ||||
|  | ||||
|     UBYTE Pic_Count = 0; | ||||
|     UBYTE Pic_Num = 7; | ||||
|     char Path[30]; | ||||
|  | ||||
|     UDOUBLE Basical_Memory_Addr = Init_Target_Memory_Addr; | ||||
|  | ||||
|     UDOUBLE Target_Memory_Addr = Basical_Memory_Addr; | ||||
|     UWORD Repeat_Animation_Times = 0; | ||||
|  | ||||
|     clock_t Animation_Test_Start, Animation_Test_Finish; | ||||
|     double Animation_Test_Duration; | ||||
|  | ||||
|     Imagesize = ((Animation_Area_Width * 1 % 8 == 0)? (Animation_Area_Width * 1 / 8 ): (Animation_Area_Width * 1 / 8 + 1)) * Animation_Area_Height; | ||||
|  | ||||
|     if((Refresh_Frame_Buf = (UBYTE *)malloc(Imagesize)) == NULL){ | ||||
|         Debug("Failed to apply for image memory...\r\n"); | ||||
|         return -1; | ||||
|     } | ||||
|  | ||||
|     Paint_NewImage(Refresh_Frame_Buf, Animation_Area_Width, Animation_Area_Height, 0, BLACK); | ||||
|     Paint_SelectImage(Refresh_Frame_Buf); | ||||
| 	Epd_Mode(epd_mode); | ||||
|     Paint_SetBitsPerPixel(1); | ||||
|  | ||||
|     Debug("Start to write a animation\r\n"); | ||||
|     Animation_Test_Start = clock(); | ||||
|     for(int i=0; i < Pic_Num; i += 1){ | ||||
|         Paint_Clear(WHITE); | ||||
|         sprintf(Path,"./pic/800x600_gif_%d.bmp",Pic_Count++); | ||||
|         GUI_ReadBmp(Path, 0, 0); | ||||
|         //For color definition of all BitsPerPixel, you can refer to GUI_Paint.h | ||||
|         Paint_DrawNum(10, 10, i+1, &Font16, 0x00, 0xF0); | ||||
| 		if(epd_mode == 2) | ||||
| 			EPD_IT8951_1bp_Multi_Frame_Write(Refresh_Frame_Buf, 1280-Animation_Area_Width+Animation_Start_X, Animation_Start_Y, Animation_Area_Width,  Animation_Area_Height, Target_Memory_Addr,false); | ||||
|         else if(epd_mode == 1) | ||||
| 			EPD_IT8951_1bp_Multi_Frame_Write(Refresh_Frame_Buf, Panel_Width-Animation_Area_Width+Animation_Start_X-16, Animation_Start_Y, Animation_Area_Width,  Animation_Area_Height, Target_Memory_Addr,false); | ||||
| 		else | ||||
| 			EPD_IT8951_1bp_Multi_Frame_Write(Refresh_Frame_Buf, Animation_Start_X, Animation_Start_Y, Animation_Area_Width,  Animation_Area_Height, Target_Memory_Addr,false); | ||||
|         Target_Memory_Addr += Imagesize; | ||||
|     } | ||||
|  | ||||
|     Animation_Test_Finish = clock(); | ||||
|     Animation_Test_Duration = (double)(Animation_Test_Finish - Animation_Test_Start) / CLOCKS_PER_SEC; | ||||
| 	Debug( "Write all frame occupy %f second\r\n", Animation_Test_Duration); | ||||
|  | ||||
|     Target_Memory_Addr = Basical_Memory_Addr; | ||||
|  | ||||
|     while(1){ | ||||
|         Debug("Start to show a animation\r\n"); | ||||
|         Animation_Test_Start = clock(); | ||||
|  | ||||
|         for(int i=0; i< Pic_Num; i += 1){ | ||||
| 			if(epd_mode == 2) | ||||
| 				EPD_IT8951_1bp_Multi_Frame_Refresh(Panel_Width-Animation_Area_Width+Animation_Start_X, Animation_Start_Y, Animation_Area_Width,  Animation_Area_Height, Target_Memory_Addr); | ||||
| 			else if(epd_mode == 1) | ||||
| 				EPD_IT8951_1bp_Multi_Frame_Refresh(Panel_Width-Animation_Area_Width+Animation_Start_X-16, Animation_Start_Y, Animation_Area_Width,  Animation_Area_Height, Target_Memory_Addr); | ||||
|             else | ||||
| 				EPD_IT8951_1bp_Multi_Frame_Refresh(Animation_Start_X, Animation_Start_Y, Animation_Area_Width,  Animation_Area_Height, Target_Memory_Addr); | ||||
|             Target_Memory_Addr += Imagesize; | ||||
|         } | ||||
|         Target_Memory_Addr = Basical_Memory_Addr; | ||||
|  | ||||
|         Animation_Test_Finish = clock(); | ||||
|         Animation_Test_Duration = (double)(Animation_Test_Finish - Animation_Test_Start) / CLOCKS_PER_SEC; | ||||
|         Debug( "Show all frame occupy %f second\r\n", Animation_Test_Duration ); | ||||
|  | ||||
|         Repeat_Animation_Times ++; | ||||
|         if(Repeat_Animation_Times >15){ | ||||
|             break; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     if(Refresh_Frame_Buf != NULL){ | ||||
|         free(Refresh_Frame_Buf); | ||||
|         Refresh_Frame_Buf = NULL; | ||||
|     } | ||||
|  | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| /****************************************************************************** | ||||
| function: Check_FrameRate_Example | ||||
| parameter: | ||||
|     Panel_Width: Width of the panel | ||||
|     Panel_Height: Height of the panel | ||||
|     Init_Target_Memory_Addr: Memory address of IT8951 target memory address | ||||
|     BitsPerPixel: Bits Per Pixel, 2^BitsPerPixel = grayscale | ||||
| ******************************************************************************/ | ||||
| UBYTE Check_FrameRate_Example(UWORD Panel_Width, UWORD Panel_Height, UDOUBLE Target_Memory_Addr, UBYTE BitsPerPixel){ | ||||
|     UWORD Frame_Rate_Test_Width; | ||||
|     if(Four_Byte_Align == true){ | ||||
|         Frame_Rate_Test_Width = Panel_Width - (Panel_Width % 32); | ||||
|     }else{ | ||||
|         Frame_Rate_Test_Width = Panel_Width; | ||||
|     } | ||||
|     UWORD Frame_Rate_Test_Height = Panel_Height; | ||||
|     UDOUBLE Imagesize; | ||||
|  | ||||
|     UBYTE *Refresh_FrameRate_Buf = NULL; | ||||
|  | ||||
|     UBYTE Count = 0; | ||||
|  | ||||
|     clock_t Frame_Rate_Test_Start, Frame_Rate_Test_Finish; | ||||
|     double Frame_Rate_Test_Duration; | ||||
|  | ||||
|     Imagesize = ((Frame_Rate_Test_Width * BitsPerPixel % 8 == 0)? (Frame_Rate_Test_Width * BitsPerPixel / 8 ): (Frame_Rate_Test_Width * BitsPerPixel / 8 + 1)) * Frame_Rate_Test_Height; | ||||
|  | ||||
|     if((Refresh_FrameRate_Buf = (UBYTE *)malloc(Imagesize)) == NULL) { | ||||
|         Debug("Failed to apply for image memory...\r\n"); | ||||
|         return -1; | ||||
|     } | ||||
|  | ||||
|     Paint_NewImage(Refresh_FrameRate_Buf, Frame_Rate_Test_Width, Frame_Rate_Test_Height, 0, BLACK); | ||||
|     Paint_SelectImage(Refresh_FrameRate_Buf); | ||||
| 	Epd_Mode(epd_mode); | ||||
|     Paint_SetBitsPerPixel(BitsPerPixel); | ||||
|  | ||||
|     Debug("Start to test Frame Rate\r\n"); | ||||
|     Frame_Rate_Test_Start = clock(); | ||||
|  | ||||
|     for(int i=0; i<10; i++){ | ||||
|  | ||||
|         Paint_Clear(WHITE); | ||||
|         //For color definition of all BitsPerPixel, you can refer to GUI_Paint.h | ||||
|         Paint_DrawRectangle(20, 20, Frame_Rate_Test_Width-20, Frame_Rate_Test_Height-20, 0x00, DOT_PIXEL_4X4, DRAW_FILL_EMPTY);//To prevent arrays from going out of bounds | ||||
|         Paint_DrawNum(Frame_Rate_Test_Width/2, Frame_Rate_Test_Height/2, ++Count, &Font24, 0x00, 0xF0); | ||||
|         Paint_DrawString_EN(Frame_Rate_Test_Width/2, Frame_Rate_Test_Height/4, "frame rate test", &Font20, 0xF0, 0x00); | ||||
|         Paint_DrawString_EN(Frame_Rate_Test_Width/2, Frame_Rate_Test_Height*3/4, "frame rate test", &Font20, 0xF0, 0x00); | ||||
|  | ||||
|         switch(BitsPerPixel){ | ||||
|             case 8:{ | ||||
| 				if(epd_mode == 2) | ||||
| 					EPD_IT8951_8bp_Refresh(Refresh_FrameRate_Buf, 1280-Frame_Rate_Test_Width, 0, Frame_Rate_Test_Width,  Frame_Rate_Test_Height, false, Target_Memory_Addr); | ||||
| 				else if(epd_mode == 1) | ||||
| 					EPD_IT8951_8bp_Refresh(Refresh_FrameRate_Buf, 1872-Frame_Rate_Test_Width-16, 0, Frame_Rate_Test_Width,  Frame_Rate_Test_Height, false, Target_Memory_Addr); | ||||
| 				else					 | ||||
| 					EPD_IT8951_8bp_Refresh(Refresh_FrameRate_Buf, 0, 0, Frame_Rate_Test_Width,  Frame_Rate_Test_Height, false, Target_Memory_Addr); | ||||
|                 break; | ||||
|             } | ||||
|             case 4:{ | ||||
| 				if(epd_mode == 2) | ||||
| 					EPD_IT8951_4bp_Refresh(Refresh_FrameRate_Buf, 1280-Frame_Rate_Test_Width, 0, Frame_Rate_Test_Width,  Frame_Rate_Test_Height, false, Target_Memory_Addr,false); | ||||
| 				else if(epd_mode == 1) | ||||
| 					EPD_IT8951_4bp_Refresh(Refresh_FrameRate_Buf, 1872-Frame_Rate_Test_Width-16, 0, Frame_Rate_Test_Width,  Frame_Rate_Test_Height, false, Target_Memory_Addr,false); | ||||
| 				else | ||||
| 					EPD_IT8951_4bp_Refresh(Refresh_FrameRate_Buf, 0, 0, Frame_Rate_Test_Width,  Frame_Rate_Test_Height, false, Target_Memory_Addr,false); | ||||
|                 break; | ||||
|             } | ||||
|             case 2:{ | ||||
| 				if(epd_mode == 2) | ||||
| 					EPD_IT8951_2bp_Refresh(Refresh_FrameRate_Buf, 1280-Frame_Rate_Test_Width, 0, Frame_Rate_Test_Width,  Frame_Rate_Test_Height, false, Target_Memory_Addr,false); | ||||
| 				else if(epd_mode == 1) | ||||
| 					EPD_IT8951_2bp_Refresh(Refresh_FrameRate_Buf, 1872-Frame_Rate_Test_Width-16, 0, Frame_Rate_Test_Width,  Frame_Rate_Test_Height, false, Target_Memory_Addr,false); | ||||
| 				else	 | ||||
| 					EPD_IT8951_2bp_Refresh(Refresh_FrameRate_Buf, 0, 0, Frame_Rate_Test_Width,  Frame_Rate_Test_Height, false, Target_Memory_Addr,false); | ||||
|                 break; | ||||
|             } | ||||
|             case 1:{ | ||||
| 				if(epd_mode == 2) | ||||
| 					EPD_IT8951_1bp_Refresh(Refresh_FrameRate_Buf, 1280-Frame_Rate_Test_Width, 0, Frame_Rate_Test_Width,  Frame_Rate_Test_Height, A2_Mode, Target_Memory_Addr,false); | ||||
| 				else if(epd_mode == 1) | ||||
| 					EPD_IT8951_1bp_Refresh(Refresh_FrameRate_Buf, 1872-Frame_Rate_Test_Width-16, 0, Frame_Rate_Test_Width,  Frame_Rate_Test_Height, A2_Mode, Target_Memory_Addr,false); | ||||
| 				else	 | ||||
| 					EPD_IT8951_1bp_Refresh(Refresh_FrameRate_Buf, 0, 0, Frame_Rate_Test_Width,  Frame_Rate_Test_Height, A2_Mode, Target_Memory_Addr,false); | ||||
|                 break; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     Frame_Rate_Test_Finish = clock(); | ||||
|     Frame_Rate_Test_Duration = (double)(Frame_Rate_Test_Finish - Frame_Rate_Test_Start) / CLOCKS_PER_SEC; | ||||
| 	Debug( "Write and Show 10 Frame occupy %f second\r\n", Frame_Rate_Test_Duration); | ||||
|     Debug( "The frame rate is: %lf fps\r\n", 10/Frame_Rate_Test_Duration); | ||||
|  | ||||
|     if(Refresh_FrameRate_Buf != NULL){ | ||||
|         free(Refresh_FrameRate_Buf); | ||||
|         Refresh_FrameRate_Buf = NULL; | ||||
|     } | ||||
|  | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| /****************************************************************************** | ||||
| function: TouchPanel_ePaper_Example | ||||
| parameter: | ||||
|     Panel_Width: Width of the panel | ||||
|     Panel_Height: Height of the panel | ||||
|     Init_Target_Memory_Addr: Memory address of IT8951 target memory address | ||||
| ******************************************************************************/ | ||||
| UBYTE TouchPanel_ePaper_Example(UWORD Panel_Width, UWORD Panel_Height, UDOUBLE Init_Target_Memory_Addr){ | ||||
|     int ret,fd; | ||||
|     UWORD Touch_Pannel_Area_Width; | ||||
|     if(Four_Byte_Align == true){ | ||||
|         Touch_Pannel_Area_Width = Panel_Width - (Panel_Width % 32); | ||||
|     }else{ | ||||
|         Touch_Pannel_Area_Width = Panel_Width; | ||||
|     } | ||||
|     UWORD Touch_Pannel_Area_Height = Panel_Height; | ||||
|  | ||||
|     UDOUBLE Imagesize; | ||||
|  | ||||
|     UWORD Touch_Point0[2]; | ||||
|     UWORD Touch_X = 0,Touch_Y = 0; | ||||
|     UWORD Touch_X_Old = 0,Touch_Y_Old = 0; | ||||
|  | ||||
|     UWORD Min_X = Panel_Width, Max_X = 0; | ||||
|     UWORD Min_Y = Panel_Height, Max_Y = 0; | ||||
|  | ||||
|     UWORD X_Start, X_End, Y_Start, Y_End, Width, Height; | ||||
|  | ||||
|     UBYTE First_Point_Flag = 1; | ||||
|  | ||||
|     UWORD Panel_Frame_Buf_WidthByte; | ||||
|     UWORD Panel_Area_Frame_Buf_WidthByte; | ||||
|  | ||||
| 	if(access("/home/pi/FIFO",F_OK)){ | ||||
| 		ret = mkfifo("/home/pi/FIFO",0777); | ||||
| 		if(ret == -1){ | ||||
| 			Debug("mkfifo error!\n"); | ||||
| 			exit(0); | ||||
| 		} | ||||
| 	} | ||||
|     fd = open("/home/pi/FIFO",O_RDWR|O_NONBLOCK); | ||||
|     if( fd == -1 ) | ||||
|     { | ||||
|         Debug("Open error\r\n"); | ||||
|         exit(0); | ||||
|     } | ||||
|  | ||||
|     Panel_Frame_Buf_WidthByte =  (Touch_Pannel_Area_Width * 1 % 8 == 0) ? (Touch_Pannel_Area_Width * 1 / 8 ): (Touch_Pannel_Area_Width * 1 / 8 + 1); | ||||
|  | ||||
|     Imagesize = ((Touch_Pannel_Area_Width * 1 % 8 == 0) ? (Touch_Pannel_Area_Width * 1 / 8 ): (Touch_Pannel_Area_Width *1 / 8 + 1)) * Touch_Pannel_Area_Height; | ||||
|  | ||||
|     if((Panel_Frame_Buf = (UBYTE *)malloc(Imagesize)) == NULL) { | ||||
|         Debug("Failed to apply for Panel_Frame_Buf memory...\r\n"); | ||||
|         return -1; | ||||
|     } | ||||
|  | ||||
|     //Assume the entire screen is refreshed | ||||
|     if((Panel_Area_Frame_Buf = (UBYTE *)malloc(Imagesize)) == NULL) { | ||||
|         Debug("Failed to apply for Panel_Area_Frame_Buf memory...\r\n"); | ||||
|         return -1; | ||||
|     } | ||||
|  | ||||
|     Paint_NewImage(Panel_Frame_Buf, Touch_Pannel_Area_Width, Touch_Pannel_Area_Height, 0, BLACK); | ||||
|     Paint_SelectImage(Panel_Frame_Buf); | ||||
| 	Epd_Mode(epd_mode); | ||||
|     Paint_SetBitsPerPixel(1); | ||||
|     Paint_Clear(WHITE); | ||||
|  | ||||
|     while(1) | ||||
|     { | ||||
|         Min_X = Panel_Width; | ||||
|         Max_X = 0; | ||||
|         Min_Y = Panel_Height; | ||||
|         Max_Y = 0; | ||||
|  | ||||
|         First_Point_Flag = 1; | ||||
|  | ||||
|         ret = read(fd,Touch_Point0,sizeof(Touch_Point0)); | ||||
|  | ||||
|         //Prepare the image | ||||
|         while(ret == 4){ | ||||
|             Touch_X = Touch_Point0[0]; | ||||
|             Touch_Y = Touch_Point0[1]; | ||||
|             Paint_NewImage(Panel_Frame_Buf, Touch_Pannel_Area_Width, Touch_Pannel_Area_Height, 0, BLACK); | ||||
|             Paint_SelectImage(Panel_Frame_Buf); | ||||
|             Paint_SetBitsPerPixel(1); | ||||
|  | ||||
|             if(First_Point_Flag == 0) | ||||
|             { | ||||
|                 //For color definition of all BitsPerPixel, you can refer to GUI_Paint.h | ||||
|                 Paint_DrawLine(Touch_X_Old, Touch_Y_Old, Touch_X, Touch_Y, 0x00, DOT_PIXEL_3X3, LINE_STYLE_SOLID); | ||||
|             } | ||||
|             Touch_X_Old = Touch_X; | ||||
|             Touch_Y_Old = Touch_Y; | ||||
|             First_Point_Flag = 0; | ||||
|  | ||||
|             if(Touch_X < Min_X){ | ||||
|                 Min_X = Touch_X; | ||||
|             } | ||||
|             if(Touch_X > Max_X){ | ||||
|                 Max_X = Touch_X; | ||||
|             } | ||||
|             if(Touch_Y < Min_Y){ | ||||
|                 Min_Y = Touch_Y; | ||||
|             } | ||||
|             if(Touch_Y > Max_Y){ | ||||
|                 Max_Y = Touch_Y; | ||||
|             } | ||||
|  | ||||
|             DEV_Delay_ms(15); | ||||
|  | ||||
|             Debug("Touch_X:%d\r\n",Touch_X); | ||||
|             Debug("Touch_Y:%d\r\n",Touch_Y); | ||||
|             ret = read(fd,Touch_Point0,sizeof(Touch_Point0)); | ||||
|             Debug("Stop ret:%d\r\n",ret); | ||||
|         } | ||||
|  | ||||
|         //If Min < Max, then Indicates that there is a refresh area | ||||
|         if( (Min_X<Max_X)||(Min_Y<Max_Y) ) | ||||
|         { | ||||
|             //----------Calculate Data, please be cautious that the width must be 32-bit aligned---------- | ||||
|             Debug("Min_X - Max_X Output:%d~%d\r\n",Min_X,Max_X); | ||||
|             Debug("Min_Y - Max_Y Output:%d~%d\r\n",Min_Y,Max_Y); | ||||
|  | ||||
|             X_Start = Min_X < 32 ? 0 : Min_X - (Min_X % 32); | ||||
|             Debug("X_Start:%d\r\n",X_Start); | ||||
|             X_End = ( Max_X + (32 - (Max_X % 32)) ) > Touch_Pannel_Area_Width ? ( Max_X - (Max_X % 32) )  : ( Max_X + (32 - (Max_X % 32)) ); | ||||
|             Debug("X_End:%d\r\n",X_End); | ||||
|             Y_Start = Min_Y; | ||||
|             Debug("Y_Start:%d\r\n",Y_Start); | ||||
|             Y_End = Max_Y; | ||||
|             Debug("Y_Start:%d\r\n",Y_End); | ||||
|  | ||||
|             Width = X_End - X_Start; | ||||
|             if(Width<=0){ | ||||
|                 Width = 32; | ||||
|             } | ||||
|             Debug("Width:%d\r\n",Width); | ||||
|             Height = Y_End-Y_Start; | ||||
|             if(Height<=0){ | ||||
|                 Height = 32; | ||||
|             } | ||||
|             Debug("Height:%d\r\n",Height); | ||||
|  | ||||
|             //----------Prepare Image---------- | ||||
|             Paint_NewImage(Panel_Area_Frame_Buf, Width, Height, 0, BLACK); | ||||
|             Paint_SelectImage(Panel_Area_Frame_Buf); | ||||
| 			Epd_Mode(epd_mode); | ||||
|             Paint_Clear(WHITE); | ||||
|  | ||||
|             Panel_Area_Frame_Buf_WidthByte = (Width % 8 == 0) ? (Width / 8 ): (Width / 8 + 1); | ||||
|  | ||||
|             for(int y = 0; y< Height; y++){ | ||||
|                 memcpy(Panel_Area_Frame_Buf + (y * Panel_Area_Frame_Buf_WidthByte), Panel_Frame_Buf + ((Y_Start + y) * Panel_Frame_Buf_WidthByte) + X_Start/8 , Panel_Area_Frame_Buf_WidthByte); | ||||
|             } | ||||
|  | ||||
|             //----------Display Image---------- | ||||
|             EPD_IT8951_1bp_Refresh(Panel_Area_Frame_Buf, X_Start, Y_Start, Width,  Height, A2_Mode, Init_Target_Memory_Addr, true); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     if( Panel_Area_Frame_Buf != NULL ){ | ||||
|         free(Panel_Area_Frame_Buf); | ||||
|         Panel_Area_Frame_Buf = NULL; | ||||
|     } | ||||
|  | ||||
|     if( Panel_Frame_Buf != NULL ){ | ||||
|         free(Panel_Frame_Buf); | ||||
|         Panel_Frame_Buf = NULL; | ||||
|     } | ||||
|  | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| static UBYTE BMP_Test(UWORD Panel_Width, UWORD Panel_Height, UDOUBLE Init_Target_Memory_Addr, UBYTE BitsPerPixel, UBYTE Pic_Count) | ||||
| { | ||||
|     UWORD WIDTH; | ||||
|  | ||||
|     if(Four_Byte_Align == true){ | ||||
|         WIDTH  = Panel_Width - (Panel_Width % 32); | ||||
|     }else{ | ||||
|         WIDTH = Panel_Width; | ||||
|     } | ||||
|     UWORD HEIGHT = Panel_Height; | ||||
|  | ||||
|     UDOUBLE Imagesize; | ||||
|  | ||||
|     Imagesize = ((WIDTH * BitsPerPixel % 8 == 0)? (WIDTH * BitsPerPixel / 8 ): (WIDTH * BitsPerPixel / 8 + 1)) * HEIGHT; | ||||
|     if((Refresh_Frame_Buf = (UBYTE *)malloc(Imagesize)) == NULL) { | ||||
|         Debug("Failed to apply for black memory...\r\n"); | ||||
|         return -1; | ||||
|     } | ||||
|  | ||||
|     Paint_NewImage(Refresh_Frame_Buf, WIDTH, HEIGHT, 0, BLACK); | ||||
|     Paint_SelectImage(Refresh_Frame_Buf); | ||||
| 	Epd_Mode(epd_mode); | ||||
|     Paint_SetBitsPerPixel(BitsPerPixel); | ||||
|     Paint_Clear(WHITE); | ||||
|  | ||||
|  | ||||
| 	char Path[30]; | ||||
| 	sprintf(Path,"./pic/%dx%d_%d.bmp", WIDTH, HEIGHT, Pic_Count); | ||||
| 	GUI_ReadBmp(Path, 0, 0); | ||||
|  | ||||
|     switch(BitsPerPixel){ | ||||
|         case BitsPerPixel_8:{ | ||||
|             Paint_DrawString_EN(10, 10, "8 bits per pixel 16 grayscale", &Font24, 0xF0, 0x00); | ||||
|             EPD_IT8951_8bp_Refresh(Refresh_Frame_Buf, 0, 0, WIDTH,  HEIGHT, false, Init_Target_Memory_Addr); | ||||
|             break; | ||||
|         } | ||||
|         case BitsPerPixel_4:{ | ||||
| 			Paint_DrawString_EN(10, 10, "4 bits per pixel 16 grayscale", &Font24, 0xF0, 0x00); | ||||
|             EPD_IT8951_4bp_Refresh(Refresh_Frame_Buf, 0, 0, WIDTH,  HEIGHT, false, Init_Target_Memory_Addr,false); | ||||
|             break; | ||||
|         } | ||||
|         case BitsPerPixel_2:{ | ||||
|             Paint_DrawString_EN(10, 10, "2 bits per pixel 4 grayscale", &Font24, 0xC0, 0x00); | ||||
|             EPD_IT8951_2bp_Refresh(Refresh_Frame_Buf, 0, 0, WIDTH,  HEIGHT, false, Init_Target_Memory_Addr,false); | ||||
|             break; | ||||
|         } | ||||
|         case BitsPerPixel_1:{ | ||||
|             Paint_DrawString_EN(10, 10, "1 bit per pixel 2 grayscale", &Font24, 0x80, 0x00); | ||||
|             EPD_IT8951_1bp_Refresh(Refresh_Frame_Buf, 0, 0, WIDTH,  HEIGHT, A2_Mode, Init_Target_Memory_Addr,false); | ||||
|             break; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     if(Refresh_Frame_Buf != NULL){ | ||||
|         free(Refresh_Frame_Buf); | ||||
|         Refresh_Frame_Buf = NULL; | ||||
|     } | ||||
|  | ||||
|     DEV_Delay_ms(5000); | ||||
|  | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| void Factory_Test_Only(IT8951_Dev_Info Dev_Info, UDOUBLE Init_Target_Memory_Addr) | ||||
| { | ||||
|     while(1) | ||||
|     { | ||||
|         for(int i=0; i < 4; i++){ | ||||
| 			EPD_IT8951_SystemRun(); | ||||
| 			 | ||||
| 			EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, GC16_Mode); | ||||
|             // BMP_Test(Dev_Info.Panel_W, Dev_Info.Panel_H, Init_Target_Memory_Addr, BitsPerPixel_1, i); | ||||
|             // BMP_Test(Dev_Info.Panel_W, Dev_Info.Panel_H, Init_Target_Memory_Addr, BitsPerPixel_2, i); | ||||
|             BMP_Test(Dev_Info.Panel_W, Dev_Info.Panel_H, Init_Target_Memory_Addr, BitsPerPixel_4, i); | ||||
|             // BMP_Test(Dev_Info.Panel_W, Dev_Info.Panel_H, Init_Target_Memory_Addr, BitsPerPixel_8, i); | ||||
| 			EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, GC16_Mode); | ||||
| 			 | ||||
| 			EPD_IT8951_Sleep(); | ||||
| 			DEV_Delay_ms(5000); | ||||
|         } | ||||
| 		EPD_IT8951_SystemRun(); | ||||
| 		 | ||||
| 		EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, A2_Mode); | ||||
|         Dynamic_Refresh_Example(Dev_Info,Init_Target_Memory_Addr); | ||||
| 		EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, A2_Mode); | ||||
| 		 | ||||
| 		if(isColor)  | ||||
| 			Color_Test(Dev_Info, Init_Target_Memory_Addr); | ||||
| 		 | ||||
| 		EPD_IT8951_Sleep(); | ||||
| 		DEV_Delay_ms(5000); | ||||
|     } | ||||
| } | ||||
|  | ||||
| void Color_Test(IT8951_Dev_Info Dev_Info, UDOUBLE Init_Target_Memory_Addr) | ||||
| { | ||||
| 	PAINT_TIME Time = {2020, 9, 30, 18, 10, 34}; | ||||
| 	 | ||||
| 	while(1)  | ||||
| 	{ | ||||
| 		UWORD Panel_Width = Dev_Info.Panel_W; | ||||
| 		UWORD Panel_Height = Dev_Info.Panel_H; | ||||
|  | ||||
| 		UDOUBLE Imagesize; | ||||
|  | ||||
| 		//malloc enough memory for 1bp picture first | ||||
| 		Imagesize = ((Panel_Width * 1 % 8 == 0)? (Panel_Width * 1 / 8 ): (Panel_Width * 1 / 8 + 1)) * Panel_Height; | ||||
| 		if((Refresh_Frame_Buf = (UBYTE *)malloc(Imagesize*4)) == NULL) { | ||||
| 			Debug("Failed to apply for picture memory...\r\n"); | ||||
| 		} | ||||
|  | ||||
| 		Paint_NewImage(Refresh_Frame_Buf, Panel_Width, Panel_Height, 0, BLACK); | ||||
| 		Paint_SelectImage(Refresh_Frame_Buf); | ||||
| 		Epd_Mode(epd_mode); | ||||
| 		Paint_SetBitsPerPixel(4); | ||||
| 		Paint_Clear(WHITE); | ||||
|  | ||||
| 		if(0) { | ||||
| 			Paint_DrawRectangle(100, 100, 300, 300, 0x0f00, DOT_PIXEL_1X1, DRAW_FILL_FULL);	//Red | ||||
| 			Paint_DrawRectangle(100, 400, 300, 600, 0x00f0, DOT_PIXEL_1X1, DRAW_FILL_FULL);	//Green | ||||
| 			Paint_DrawRectangle(100, 700, 300, 900, 0x000f, DOT_PIXEL_1X1, DRAW_FILL_FULL);	//Bule | ||||
| 			 | ||||
| 			Paint_DrawCircle(500, 200, 100, 0x00ff, DOT_PIXEL_1X1, DRAW_FILL_FULL); | ||||
| 			Paint_DrawCircle(500, 500, 100, 0x0f0f, DOT_PIXEL_1X1, DRAW_FILL_FULL); | ||||
| 			Paint_DrawCircle(500, 800, 100, 0x0ff0, DOT_PIXEL_1X1, DRAW_FILL_FULL); | ||||
| 			 | ||||
| 			Paint_DrawLine(1000, 200, 1100, 200, 0x055a, 10, LINE_STYLE_SOLID); | ||||
| 			Paint_DrawLine(1000, 300, 1100, 300, 0x05a5, 20, LINE_STYLE_SOLID); | ||||
| 			Paint_DrawLine(1000, 400, 1100, 400, 0x0a55, 30, LINE_STYLE_SOLID); | ||||
|  | ||||
| 			Paint_DrawString_EN(1000, 500, "Hello, World!", &Font24, 0x0aa5, 0x0fff); | ||||
| 			Paint_DrawString_EN(1000, 600, "Hello, World!", &Font24, 0x0a5a, 0x0fff); | ||||
| 			Paint_DrawString_EN(1000, 700, "Hello, World!", &Font24, 0x05aa, 0x0fff); | ||||
|  | ||||
| 			Paint_DrawString_CN(700, 400, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ѩ<CEA2><D1A9><EFBFBD><EFBFBD>", &Font24CN, 0x00fa, 0x0000); | ||||
| 			Paint_DrawNum(700, 500, 123456789, &Font24, 0x0a0f, 0x0fff); | ||||
| 			Paint_DrawTime(700, 600, &Time, &Font24, 0x0fa0, 0x0fff); | ||||
| 		}else { | ||||
| 			for(UWORD j=0; j<14; j++) { | ||||
| 				for(UWORD i=0; i<19; i++) { | ||||
| 					Paint_DrawRectangle(i*72, j*72+1, (i+1)*72-1, (j+1)*72, (i+j*19)*15, DOT_PIXEL_1X1, DRAW_FILL_FULL); | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		EPD_IT8951_4bp_Refresh(Refresh_Frame_Buf, 0, 0, Panel_Width,  Panel_Height, false, Init_Target_Memory_Addr, false); | ||||
| 		 | ||||
| 		if(Refresh_Frame_Buf != NULL) { | ||||
| 			free(Refresh_Frame_Buf); | ||||
| 			Refresh_Frame_Buf = NULL; | ||||
| 		} | ||||
|  | ||||
| 		DEV_Delay_ms(5000); | ||||
| 		break; | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										44
									
								
								inkycal/display/drivers/parallel_drivers/examples/example.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,44 @@ | ||||
| #ifndef __EXAMPLE__ | ||||
| #define __EXAMPLE__ | ||||
|  | ||||
| #include "../lib/e-Paper/EPD_IT8951.h" | ||||
| #include "../lib/Config/DEV_Config.h" | ||||
|  | ||||
|  | ||||
| // 1 bit per pixel, which is 2 grayscale | ||||
| #define BitsPerPixel_1 1 | ||||
| // 2 bit per pixel, which is 4 grayscale  | ||||
| #define BitsPerPixel_2 2 | ||||
| // 4 bit per pixel, which is 16 grayscale | ||||
| #define BitsPerPixel_4 4 | ||||
| // 8 bit per pixel, which is 256 grayscale, but will automatically reduce by hardware to 4bpp, which is 16 grayscale | ||||
| #define BitsPerPixel_8 8 | ||||
|  | ||||
|  | ||||
| //For all refresh fram buf except touch panel | ||||
| extern UBYTE *Refresh_Frame_Buf; | ||||
|  | ||||
| //Only for touch panel | ||||
| extern UBYTE *Panel_Frame_Buf; | ||||
| extern UBYTE *Panel_Area_Frame_Buf; | ||||
|  | ||||
| extern bool Four_Byte_Align; | ||||
|  | ||||
| UBYTE Display_ColorPalette_Example(UWORD Panel_Width, UWORD Panel_Height, UDOUBLE Init_Target_Memory_Addr); | ||||
|  | ||||
| UBYTE Display_CharacterPattern_Example(UWORD Panel_Width, UWORD Panel_Height, UDOUBLE Init_Target_Memory_Addr, UBYTE BitsPerPixel); | ||||
|  | ||||
| UBYTE Display_BMP_Example(UWORD Panel_Width, UWORD Panel_Height, UDOUBLE Init_Target_Memory_Addr, UBYTE BitsPerPixel, char *Path); | ||||
|  | ||||
| UBYTE Dynamic_Refresh_Example(IT8951_Dev_Info Dev_Info, UDOUBLE Init_Target_Memory_Addr); | ||||
|  | ||||
| UBYTE Dynamic_GIF_Example(UWORD Panel_Width, UWORD Panel_Height, UDOUBLE Init_Target_Memory_Addr); | ||||
|  | ||||
| UBYTE Check_FrameRate_Example(UWORD Panel_Width, UWORD Panel_Height, UDOUBLE Target_Memory_Addr, UBYTE BitsPerPixel); | ||||
|  | ||||
| UBYTE TouchPanel_ePaper_Example(UWORD Panel_Width, UWORD Panel_Height, UDOUBLE Init_Target_Memory_Addr); | ||||
|  | ||||
| void Factory_Test_Only(IT8951_Dev_Info Dev_Info, UDOUBLE Init_Target_Memory_Addr); | ||||
| void Color_Test(IT8951_Dev_Info Dev_Info, UDOUBLE Init_Target_Memory_Addr); | ||||
|  | ||||
| #endif | ||||
							
								
								
									
										177
									
								
								inkycal/display/drivers/parallel_drivers/examples/main.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,177 @@ | ||||
| #include "../lib/Config/DEV_Config.h" | ||||
| #include "example.h" | ||||
| #include "../lib/GUI/GUI_BMPfile.h" | ||||
|  | ||||
| #include <math.h> | ||||
|  | ||||
| #include <stdlib.h>     //exit() | ||||
| #include <signal.h>     //signal() | ||||
|  | ||||
|  | ||||
| #define USE_Normal_Demo false | ||||
| #define SHOW_BMP true | ||||
|  | ||||
| UWORD VCOM = 2510; | ||||
|  | ||||
| IT8951_Dev_Info Dev_Info; | ||||
| UWORD Panel_Width; | ||||
| UWORD Panel_Height; | ||||
| UDOUBLE Init_Target_Memory_Addr; | ||||
| int epd_mode = 0;	//0: no rotate, no mirror | ||||
| 					//1: no rotate, horizontal mirror, for 10.3inch | ||||
| 					//2: no totate, horizontal mirror, for 5.17inch | ||||
| 					//3: no rotate, no mirror, isColor, for 6inch color | ||||
| 					 | ||||
| void  Handler(int signo){ | ||||
|     Debug("\r\nHandler:exit\r\n"); | ||||
|     if(Refresh_Frame_Buf != NULL){ | ||||
|         free(Refresh_Frame_Buf); | ||||
|         Debug("free Refresh_Frame_Buf\r\n"); | ||||
|         Refresh_Frame_Buf = NULL; | ||||
|     } | ||||
|     if(Panel_Frame_Buf != NULL){ | ||||
|         free(Panel_Frame_Buf); | ||||
|         Debug("free Panel_Frame_Buf\r\n"); | ||||
|         Panel_Frame_Buf = NULL; | ||||
|     } | ||||
|     if(Panel_Area_Frame_Buf != NULL){ | ||||
|         free(Panel_Area_Frame_Buf); | ||||
|         Debug("free Panel_Area_Frame_Buf\r\n"); | ||||
|         Panel_Area_Frame_Buf = NULL; | ||||
|     } | ||||
|     if(bmp_src_buf != NULL){ | ||||
|         free(bmp_src_buf); | ||||
|         Debug("free bmp_src_buf\r\n"); | ||||
|         bmp_src_buf = NULL; | ||||
|     } | ||||
|     if(bmp_dst_buf != NULL){ | ||||
|         free(bmp_dst_buf); | ||||
|         Debug("free bmp_dst_buf\r\n"); | ||||
|         bmp_dst_buf = NULL; | ||||
|     } | ||||
|     Debug("Going to sleep\r\n"); | ||||
|     EPD_IT8951_Sleep(); | ||||
|     DEV_Module_Exit(); | ||||
|     exit(0); | ||||
| } | ||||
|  | ||||
|  | ||||
| int main(int argc, char *argv[]) | ||||
| { | ||||
|     //Exception handling:ctrl + c | ||||
|     signal(SIGINT, Handler); | ||||
|  | ||||
|     if (argc < 2){ | ||||
|         Debug("Please input VCOM value on FPC cable!\r\n"); | ||||
|         Debug("Example: sudo ./epd -2.51\r\n"); | ||||
|         exit(1); | ||||
|     } | ||||
| 	if (argc != 3){ | ||||
| 		Debug("Please input e-Paper display mode!\r\n"); | ||||
| 		Debug("Example: sudo ./epd -2.51 0 or sudo ./epd -2.51 1\r\n"); | ||||
| 		Debug("Now, 10.3 inch glass panle is mode1, else is mode0\r\n"); | ||||
| 		Debug("If you don't know what to type in just type 0 \r\n"); | ||||
| 		exit(1); | ||||
|     } | ||||
|  | ||||
|     //Init the BCM2835 Device | ||||
|     if(DEV_Module_Init()!=0){ | ||||
|         return -1; | ||||
|     } | ||||
|  | ||||
|     double temp; | ||||
|     sscanf(argv[1],"%lf",&temp); | ||||
|     VCOM = (UWORD)(fabs(temp)*1000); | ||||
|     Debug("VCOM value:%d\r\n", VCOM); | ||||
| 	sscanf(argv[2],"%d",&epd_mode); | ||||
|     Debug("Display mode:%d\r\n", epd_mode); | ||||
|     Dev_Info = EPD_IT8951_Init(VCOM); | ||||
|  | ||||
|     //get some important info from Dev_Info structure | ||||
|     Panel_Width = Dev_Info.Panel_W; | ||||
|     Panel_Height = Dev_Info.Panel_H; | ||||
|     Init_Target_Memory_Addr = Dev_Info.Memory_Addr_L | (Dev_Info.Memory_Addr_H << 16); | ||||
|     char* LUT_Version = (char*)Dev_Info.LUT_Version; | ||||
|     if( strcmp(LUT_Version, "M641") == 0 ){ | ||||
|         //6inch e-Paper HAT(800,600), 6inch HD e-Paper HAT(1448,1072), 6inch HD touch e-Paper HAT(1448,1072) | ||||
|         A2_Mode = 4; | ||||
|         Four_Byte_Align = true; | ||||
|     }else if( strcmp(LUT_Version, "M841_TFAB512") == 0 ){ | ||||
|         //Another firmware version for 6inch HD e-Paper HAT(1448,1072), 6inch HD touch e-Paper HAT(1448,1072) | ||||
|         A2_Mode = 6; | ||||
|         Four_Byte_Align = true; | ||||
|     }else if( strcmp(LUT_Version, "M841") == 0 ){ | ||||
|         //9.7inch e-Paper HAT(1200,825) | ||||
|         A2_Mode = 6; | ||||
|     }else if( strcmp(LUT_Version, "M841_TFA2812") == 0 ){ | ||||
|         //7.8inch e-Paper HAT(1872,1404) | ||||
|         A2_Mode = 6; | ||||
|     }else if( strcmp(LUT_Version, "M841_TFA5210") == 0 ){ | ||||
|         //10.3inch e-Paper HAT(1872,1404) | ||||
|         A2_Mode = 6; | ||||
|     }else{ | ||||
|         //default set to 6 as A2 Mode | ||||
|         A2_Mode = 6; | ||||
|     } | ||||
|     Debug("A2 Mode:%d\r\n", A2_Mode); | ||||
|  | ||||
| 	EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, INIT_Mode); | ||||
|  | ||||
|  | ||||
| #if(SHOW_BMP) | ||||
|     //Show a bmp file | ||||
|     //1bp use A2 mode by default, before used it, refresh the screen with WHITE | ||||
|     Display_BMP_Example(Panel_Width, Panel_Height, Init_Target_Memory_Addr, BitsPerPixel_4, "/home/pi/InkycalVenv/inkycal/display/drivers/7_in_8_drivers/pic/1872x1404_2.bmp"); | ||||
|     EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, GC16_Mode); | ||||
| #endif | ||||
|  | ||||
| #if(USE_Normal_Demo) | ||||
| /* | ||||
|     //Show 16 grayscale | ||||
|     Display_ColorPalette_Example(Panel_Width, Panel_Height, Init_Target_Memory_Addr); | ||||
| 	EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, GC16_Mode); | ||||
|  | ||||
|     //Show some character and pattern | ||||
|     Display_CharacterPattern_Example(Panel_Width, Panel_Height, Init_Target_Memory_Addr, BitsPerPixel_4); | ||||
|     EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, GC16_Mode); | ||||
|  | ||||
|     //Show a bmp file | ||||
|     //1bp use A2 mode by default, before used it, refresh the screen with WHITE | ||||
|     Display_BMP_Example(Panel_Width, Panel_Height, Init_Target_Memory_Addr, BitsPerPixel_1); | ||||
|     Display_BMP_Example(Panel_Width, Panel_Height, Init_Target_Memory_Addr, BitsPerPixel_2); | ||||
|     Display_BMP_Example(Panel_Width, Panel_Height, Init_Target_Memory_Addr, BitsPerPixel_4); | ||||
|     EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, GC16_Mode); | ||||
|      | ||||
|     //Show A2 mode refresh effect | ||||
|     EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, A2_Mode); | ||||
|     Dynamic_Refresh_Example(Dev_Info,Init_Target_Memory_Addr); | ||||
|     EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, A2_Mode); | ||||
|     EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, GC16_Mode); | ||||
| 	 | ||||
|     //Show how to display a gif, not works well on 6inch e-Paper HAT, 9.7inch e-Paper HAT, others work well | ||||
|     EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, A2_Mode); | ||||
|     Dynamic_GIF_Example(Panel_Width, Panel_Height, Init_Target_Memory_Addr); | ||||
|     EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, A2_Mode); | ||||
|     EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, GC16_Mode); | ||||
|  | ||||
|     //Show how to test frame rate, test it individually,which is related to refresh area size and refresh mode | ||||
|     EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, A2_Mode); | ||||
|     Check_FrameRate_Example(800, 600, Init_Target_Memory_Addr, BitsPerPixel_1); | ||||
|     EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, A2_Mode); | ||||
|     EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, GC16_Mode); | ||||
|     * */ | ||||
| #endif | ||||
|  | ||||
|  | ||||
|     //We recommended refresh the panel to white color before storing in the warehouse. | ||||
|     EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, INIT_Mode); | ||||
|  | ||||
|     //EPD_IT8951_Standby(); | ||||
|     EPD_IT8951_Sleep(); | ||||
|  | ||||
|     //In case RPI is transmitting image in no hold mode, which requires at most 10s | ||||
|     DEV_Delay_ms(5000); | ||||
|  | ||||
|     DEV_Module_Exit(); | ||||
|     return 0; | ||||
| } | ||||
							
								
								
									
										31
									
								
								inkycal/display/drivers/parallel_drivers/install.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,31 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| # Unzip C++ SPI library and driver files | ||||
| echo "Unzipping files" | ||||
| unzip bcm2835-1.68.zip | ||||
| unzip IT8951.zip | ||||
| rm bcm2835-1.68.zip | ||||
| rm IT8951.zip | ||||
|  | ||||
| # Install C++ SPI library for Raspberry | ||||
| echo "Installing C++ SPI library" | ||||
| cd bcm2835-1.68 | ||||
| chmod +x configure | ||||
| ./configure | ||||
| make | ||||
| sudo make check | ||||
| sudo make install | ||||
|  | ||||
| # Install 7.8" E-Paper drivers | ||||
| echo "Installing 7.8 inch E-Paper drivers" | ||||
| cd .. | ||||
| cd IT8951 | ||||
| sudo make clean | ||||
| sudo make -j4 | ||||
|  | ||||
| # Show image to check if it works | ||||
| echo "Showing demo image" | ||||
| sudo ./IT8951 0 0 pika.bmp | ||||
|  | ||||
| echo "If you see a pikachu on the E-Paper, the install" | ||||
| echo "was successfull. If not, please report this issue." | ||||
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/pic/1200x825_0.bmp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 2.8 MiB | 
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/pic/1200x825_1.bmp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 2.8 MiB | 
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/pic/1200x825_2.bmp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 2.8 MiB | 
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/pic/1200x825_3.bmp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 2.8 MiB | 
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/pic/1280x720_0.bmp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 2.6 MiB | 
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/pic/1280x720_1.bmp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 2.6 MiB | 
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/pic/1280x720_2.bmp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 2.6 MiB | 
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/pic/1280x720_3.bmp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 2.6 MiB | 
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/pic/1440x1072_0.bmp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 4.4 MiB | 
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/pic/1440x1072_1.bmp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 4.4 MiB | 
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/pic/1440x1072_2.bmp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 4.4 MiB | 
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/pic/1440x1072_3.bmp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 4.4 MiB | 
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/pic/1600x1200_0.bmp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 5.5 MiB | 
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/pic/1600x1200_1.bmp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 5.5 MiB | 
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/pic/1600x1200_2.bmp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 5.5 MiB | 
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/pic/1600x1200_3.bmp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 5.5 MiB | 
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/pic/1872x1404_0.bmp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 7.5 MiB | 
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/pic/1872x1404_1.bmp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 7.5 MiB | 
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/pic/1872x1404_2.bmp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 7.5 MiB | 
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/pic/1872x1404_3.bmp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 7.5 MiB | 
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/pic/800x600_0.bmp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 1.4 MiB | 
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/pic/800x600_1.bmp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 1.4 MiB | 
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/pic/800x600_2.bmp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 1.4 MiB | 
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/pic/800x600_3.bmp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 1.4 MiB | 
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/pic/800x600_gif_0.bmp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 59 KiB | 
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/pic/800x600_gif_1.bmp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 59 KiB | 
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/pic/800x600_gif_2.bmp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 59 KiB | 
							
								
								
									
										
											BIN
										
									
								
								inkycal/display/drivers/parallel_drivers/pic/800x600_gif_3.bmp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 59 KiB |