diff --git a/manual/luatex-backend.tex b/manual/luatex-backend.tex index b825d10f24b4dd03e12fa99d945355b2a7d740e4..0ec9be9b0f7229f214b6f0614d643328bec488dd 100644 --- a/manual/luatex-backend.tex +++ b/manual/luatex-backend.tex @@ -6,7 +6,7 @@ \startchapter[reference=backend,title={The backend libraries}] -\section{The \type {pdf} library} +\startsection[title={The \type {pdf} library}][library=pdf] \topicindex{backend} \topicindex{\PDF} @@ -15,7 +15,7 @@ This library contains variables and functions that are related to the \PDF\ backend. You can find more details about the expected values to setters in \in {section} [backendprimitives]. -\subsection{\type {mapfile}, \type {mapline}} +\startsubsection[title={\type {mapfile}, \type {mapline}}] \topicindex{map files} \topicindex{files+map} @@ -29,134 +29,205 @@ These two functions can be used to replace primitives \orm {pdfmapfile} and \orm {pdfmapline} inherited from \PDFTEX. They expect a string as only parameter and have no return value. The first character in a map line can be \type {-}, \type {+} or \type {=} which means as much as remove, add or replace -this line. +this line. They are not state setters but act immediately. -\subsection {\type {[set|get][catalog|info|names|trailer]}} +\stopsubsection + +\startsubsection[title={\type {[set|get][catalog|info|names|trailer]}}] \topicindex{\PDF+trailer} \topicindex{\PDF+catalog} \topicindex{\PDF+info} +\libindex{setcatalog} \libindex{getcatalog} +\libindex{setinfo} \libindex{getinfo} +\libindex{setnames} \libindex{getnames} +\libindex{settrailer} \libindex{gettrailer} + These functions complement the corresponding \PDF\ backend token lists dealing -with metadata. The value types are strings and they are written out to the \PDF\ -file directly after the token registers. +with metadata. The value types are strings and they are written to the \PDF\ +file directly after the token registers set at the \TEX\ end are written. + +\stopsubsection -\subsection {\type {[set|get][pageattributes|pageresources|pagesattributes]}} +\startsubsection[title={\type {[set|get][pageattributes|pageresources|pagesattributes]}}] + +\libindex{setpageattributes} \libindex{getpageattributes} +\libindex{setpageresources} \libindex{getpageresources} +\libindex{setpagesattributes} \libindex{getpagesattributes} \topicindex{\PDF+page attributes} \topicindex{\PDF+page resources} These functions complement the corresponding \PDF\ backend token lists dealing with page resources. The variables have no interaction with the corresponding \PDF\ -backend token register. They are written out to the \PDF\ file directly after the -token registers. +backend token register. They are written to the \PDF\ file directly after the +token registers set at the \TEX\ end are written. + +\stopsubsection + +\startsubsection[title={\type {[set|get][xformattributes|xformresources]}}] -\subsection{\type {[set|get][xformattributes|xformresources]}} +\libindex{setxformattributes} \libindex{getxformattributes} +\libindex{setxformresources} \libindex{getxformresources} \topicindex{\PDF+xform attributes} \topicindex{\PDF+xform resources} These functions complement the corresponding \PDF\ backend token lists dealing with reuseable boxes and images. The variables have no interaction with the -corresponding \PDF\ backend token register. They are written out to the \PDF\ -file directly after the token registers. +corresponding \PDF\ backend token register. They are written to the \PDF\ +file directly after the token registers set at the \TEX\ end are written. -\subsection{\type {getversion} and \type {[set|get]minorversion}} +\stopsubsection + +\startsubsection[title={\type {[set|get][major|minor]version}}] \topicindex{\PDF+version} -The version is frozen in the binary but you can set the minor version. What minor -version you set depends on what \PDF\ features you use. This is out of control -of \LUATEX. +\libindex{getmajorversion} \libindex{setmajorversion} +\libindex{getminorversion} \libindex{setminorversion} + +You can set both the major and minor version of the output. The major version is +normally~1 but when set to~2 some data will not be written to the file in order +to comply with the standard. What minor version you set depends on what \PDF\ +features you use. This is out of control of \LUATEX. + +\stopsubsection -\subsection{\type {getcreationdate}} +\startsubsection[title={\type {getcreationdate}}] \topicindex{\PDF+date} +\libindex{getcreationdate} + This function returns a string with the date in the format that ends up in the \PDF\ file, in this case it's: {\tttf \cldcontext{pdf.getcreationdate()}}. -\subsection{\type {[set|get]inclusionerrorlevel}, \type {[set|get]ignoreunknownimages}} +\stopsubsection + +\startsubsection[title={\type {[set|get]inclusionerrorlevel} and \type {[set|get]ignoreunknownimages}}] \topicindex{\PDF+options} +\libindex{getinclusionerrorlevel} \libindex{setinclusionerrorlevel} +\libindex{getignoreunknownimages} \libindex{setignoreunknownimages} + These variable control how error in included image are treated. They are modeled after the \PDFTEX\ equivalents. -\subsection{\type {[set|get]suppressoptionalinfo}} +\stopsubsection + +\startsubsection[title={\type {[set|get]suppressoptionalinfo}, \type {[set|get]trailerid} +and \type {[set|get]omitcidset}}] \topicindex{\PDF+options} +\topicindex{\PDF+trailer} -This bitset determines what kind of info gets flushes. By default we flush all. +\libindex{getsuppressoptionalinfo} \libindex{setsuppressoptionalinfo} +\libindex{gettrailerid} \libindex{settrailerid} +\libindex{getomitcidset} \libindex{setomitcidset} +\libindex{getomitcharset} \libindex{setomitcharset} -\subsection{\type {[set|get]trailerid}} +The optional info bitset (a number) determines what kind of info gets flushed. +By default we flush all. See \in {section} [sec:pdfextensions] for more details. -\topicindex{\PDF+trailer} +You can set your own trailer id. This has to be string containing valid \PDF\ +array content with checksums. + +The cidset and charset flags (numbers) disables inclusion of a so called \type +{CIDSet} and \type {CharSet} entries, which can be handy when aiming at some of +the many \PDF\ substandards. -You can set your own trailer id. This has to be a valid array string -with checksums. +\stopsubsection -\subsection{\type {[set|get]compresslevel}} +\startsubsection[title={\type {[set|get][obj|]compresslevel} and \type {[set|get]recompress}}] \topicindex{\PDF+compression} -These two functions set the level of compression. The minimum value is~0, -the maximum is~9. +\libindex{getcompresslevel} \libindex{setcompresslevel} +\libindex{getobjcompresslevel} \libindex{setobjcompresslevel} +\libindex{getrecompress} \libindex{setrecompress} -\subsection{\type {[set|get]objcompresslevel}} +These functions set the level stream compression. When object compression is +enabled multiple objects will be packed in a compressed stream which saves space. +The minimum values are~0, the maxima are~9. -\topicindex{\PDF+compression} +When recompression is to~1 compressed objects will be decompressed and when +compresslevel is larger than zero they will then be recompressed. This is mostly +a debugging feature and should not be relied upon. -These two functions set the level of compression. The minimum value is~0, -the maximum is~9. +\stopsubsection -\subsection{\type {[set|get]gentounicode}} +\startsubsection[title={\type {[set|get]gentounicode}}] \topicindex{\PDF+unicode} -This flag enables tounicode generation (like in \PDFTEX). - -\subsection{\type {[set|get]omitcidset}} +\libindex{getgentounicode} \libindex{setgentounicode} -\topicindex{\PDF+options} +This flag enables tounicode generation (like in \PDFTEX). Normally the values are +provided by the font loader. -This flag disables inclusion of a so called CIDSet which can be handy when aiming -at some of the many \PDF\ substandards. +\stopsubsection -\subsection{\type {[set|get]decimaldigits}} +\startsubsection[title={\type {[set|get]decimaldigits}}] \topicindex{\PDF+precision} +\libindex{getdecimaldigits} \libindex{setdecimaldigits} + These two functions set the accuracy of floats written to the \PDF file. You can set any value but the backend will not go below~3 and above~6. -\subsection{\type {[set|get]pkresolution}} +\stopsubsection + +\startsubsection[title={\type {[set|get]pkresolution}}] \topicindex{\PDF+resolution} +\libindex{getpkresolution} \libindex{setpkresolution} + These setter takes two arguments: the resolution and an optional zero or one that indicates if this is a fixed one. The getter returns these two values. -\subsection{\type {getlast[obj|link|annot]} and \type {getretval}} +\stopsubsection + +\startsubsection[title={\type {getlast[obj|link|annot]} and \type {getretval}}] \topicindex{\PDF+objects} \topicindex{\PDF+annotations} +\libindex{getlastobj} \libindex{setlastobj} +\libindex{getlastlink} \libindex{setlastlink} +\libindex{getlastannot} \libindex{setlastannot} +\libindex{getretval} + These status variables are similar to the ones traditionally used in the backend interface at the \TEX\ end. -\subsection{\type {maxobjnum} and \type {objtype}, \type {fontname}, \type {fontobjnum}, -\type {fontsize}, \type {xformname}}. +\stopsubsection + +\startsubsection[title={\type {getmaxobjnum} and \type {getobjtype}, \type {getfontname}, +\type {getfontobjnum}, \type {getfontsize}, \type {getxformname}}] + +\libindex{getmaxobjnum} +\libindex{getobjtype} +\libindex{getfontname} +\libindex{getfontobjnum} +\libindex{getfontsize} +\libindex{getxformname} -These (and some other) introspective helpers were moved from the the \type {tex} -namespace to the \type {pdf} namespace but kept their original names. They are -mostly used when you construct \PDF\ objects yourself and need for instance -information about a (to be) embedded font. +These introspective helpers are mostly used when you construct \PDF\ objects +yourself and need for instance information about a (to be) embedded font. -\subsection{\type {[set|get]origin}} +\stopsubsection + +\startsubsection[title={\type {[set|get]origin}}] \topicindex{\PDF+positioning} +\libindex{setorigin} \libindex{getorigin} + This one is used to set the horizonal and|/|or vertical offset, a traditional backend property. @@ -168,35 +239,57 @@ pdf.setorigin(tex.sp("1in"),tex.sp("1in")) The counterpart of this function returns two values. -\subsection{\type {[set|get]imageresolution}} +\stopsubsection + +\startsubsection[title={\type {[set|get]imageresolution}}] \topicindex{\PDF+resolution} +\libindex{setimageresolution} \libindex{getimageresolution} + These two functions relate to the imageresolution that is used when the image itself doesn't provide a non|-|zero x or y resolution. -\subsection {\type {[set|get][link|dest|thread|xform]margin}} +\stopsubsection + +\startsubsection[title={\type {[set|get][link|dest|thread|xform]margin}}] \topicindex{\PDF+margins} +\libindex{getlinkmargin} \libindex{setlinkmargin} +\libindex{getdestmargin} \libindex{setdestmargin} +\libindex{getthreadmargin} \libindex{setthreadmargin} +\libindex{getxformmargin} \libindex{setxformmargin} +\libindex{getmarginmargin} \libindex{setmarginmargin} + These functions can be used to set and retrieve the margins that are added to the natural bounding boxes of the respective objects. -\subsection {\type {get[pos|hpos|vpos]}} +\stopsubsection + +\startsubsection[title={\type {get[pos|hpos|vpos]}}] \topicindex{\PDF+positions} -These function get current location on the output page, measured from its lower +\libindex{getpos} +\libindex{gethpos} +\libindex{getvpos} + +These functions get current location on the output page, measured from its lower left corner. The values return scaled points as units. \starttyping local h, v = pdf.getpos() \stoptyping -\subsection {\type {[has|get]matrix}} +\stopsubsection + +\startsubsection[title={\type {[has|get]matrix}}] \topicindex{\PDF+matrix} +\libindex{getmatrix} \libindex{hasmatrix} + The current matrix transformation is available via the \type {getmatrix} command, which returns 6 values: \type {sx}, \type {rx}, \type {ry}, \type {sy}, \type {tx}, and \type {ty}. The \type {hasmatrix} function returns \type {true} when a @@ -209,13 +302,17 @@ if pdf.hasmatrix() then end \stoptyping -\subsection {\type {print}} +\stopsubsection + +\startsubsection[title={\type {print}}] \topicindex{\PDF+print to} -You can print string to the \PDF\ document from within a within a \lpr {latelua} -call. This function is not to be used inside \prm {directlua} unless you know -{\it exactly} what you are doing. +\libindex{print} + +You can print a string to the \PDF\ document from within a \lpr {latelua} call. +This function is not to be used inside \prm {directlua} unless you know {\it +exactly} what you are doing. \startfunctioncall pdf.print(<string> s) @@ -225,10 +322,14 @@ pdf.print(<string> type, <string> s) The optional parameter can be used to mimic the behavior of \PDF\ literals: the \type {type} is \type {direct} or \type {page}. -\subsection {\type {immediateobj}} +\stopsubsection + +\startsubsection[title={\type {immediateobj}}] \topicindex{\PDF+objects} +\libindex{immediateobj} + This function creates a \PDF\ object and immediately writes it to the \PDF\ file. It is modelled after \PDFTEX's \prm {immediate} \orm {pdfobj} primitives. All function variants return the object number of the newly generated object. @@ -246,7 +347,7 @@ function variants return the object number of the newly generated object. The first version puts the \type {objtext} raw into an object. Only the object wrapper is automatically generated, but any internal structure (like \type {<< ->>} dictionary markers) needs to provided by the user. The second version with +>>} dictionary markers) needs to be provided by the user. The second version with keyword \type {file} as first argument puts the contents of the file with name \type {filename} raw into the object. The third version with keyword \type {stream} creates a stream object and puts the \type {streamtext} raw into the @@ -269,10 +370,14 @@ reserved \PDF\ object. pdf.immediateobj(<integer> n, "streamfile", <string> filename, <string> attrtext) \stopfunctioncall -\subsection{\type{obj}} +\stopsubsection + +\startsubsection[title={\type{obj}}] \topicindex{\PDF+objects} +\libindex{obj} + This function creates a \PDF\ object, which is written to the \PDF\ file only when referenced, e.g., by \type {refobj()}. @@ -310,29 +415,36 @@ The second mode accepts a single argument table with key--value pairs. \startfunctioncall <number> n = pdf.obj { type = <string>, - immmediate = <boolean>, + immediate = <boolean>, objnum = <number>, attr = <string>, compresslevel = <number>, objcompression = <boolean>, file = <string>, - string = <string> + string = <string>, + nolength = <boolean>, } \stopfunctioncall The \type {type} field can have the values \type {raw} and \type {stream}, this -field is required, the others are optional (within constraints). +field is required, the others are optional (within constraints). When \type +{nolength} is set, there will be no \type {/Length} entry added to the +dictionary. Note: this mode makes \type{obj} look more flexible than it actually is: the constraints from the separate parameter version still apply, so for example you can't have both \type {string} and \type {file} at the same time. -\subsection {\type {refobj}} +\stopsubsection + +\startsubsection[title={\type {refobj}}] \topicindex{\PDF+objects} +\libindex{refobj} + This function, the \LUA\ version of the \orm {pdfrefobj} primitive, references an -object by its object number, so that the object will be written out. +object by its object number, so that the object will be written to the \PDF\ file. \startfunctioncall pdf.refobj(<integer> n) @@ -341,15 +453,19 @@ pdf.refobj(<integer> n) This function works in both the \prm {directlua} and \lpr {latelua} environment. Inside \prm {directlua} a new whatsit node \quote {pdf_refobj} is created, which will be marked for flushing during page output and the object is then written -directly after the page, when also the resources objects are written out. Inside -\lpr {latelua} the object will be marked for flushing. +directly after the page, when also the resources objects are written to the \PDF\ +file. Inside \lpr {latelua} the object will be marked for flushing. This function has no return values. -\subsection {\type {reserveobj}} +\stopsubsection + +\startsubsection[title={\type {reserveobj}}] \topicindex{\PDF+objects} +\libindex{reserveobj} + This function creates an empty \PDF\ object and returns its number. \startfunctioncall @@ -357,7 +473,28 @@ This function creates an empty \PDF\ object and returns its number. <number> n = pdf.reserveobj("annot") \stopfunctioncall -\subsection {\type {registerannot}} +\stopsubsection + +\startsubsection[title={\type {getpageref}}] + +\topicindex{\PDF+pages} + +\libindex{getpageref} + +The object number of a page can be fetched with this function. This can be a +forward reference so when you ask for a future page, you do get a number back. + +\startfunctioncall +<number> n = pdf.getpageref(123) +\stopfunctioncall + +\stopsubsection + +\startsubsection[title={\type {registerannot}}] + +\topicindex{\PDF+annotations} + +\libindex{registerannot} This function adds an object number to the \type {/Annots} array for the current page without doing anything else. This function can only be used from within @@ -367,10 +504,14 @@ page without doing anything else. This function can only be used from within pdf.registerannot (<number> objnum) \stopfunctioncall -\subsection {\type {newcolorstack}} +\stopsubsection + +\startsubsection[title={\type {newcolorstack}}] \topicindex{\PDF+color stack} +\libindex{newcolorstack} + This function allocates a new color stack and returns it's id. The arguments are the same as for the similar backend extension primitive. @@ -378,10 +519,14 @@ are the same as for the similar backend extension primitive. pdf.newcolorstack("0 g","page",true) -- page|direct|origin \stopfunctioncall -\subsection {\type {setfontattributes}} +\stopsubsection + +\startsubsection[title={\type {setfontattributes}}] \topicindex{\PDF+fonts} +\libindex{setfontattributes} + This function will force some additional code into the font resource. It can for instance be used to add a custom \type {ToUnicode} vector to a bitmap file. @@ -389,631 +534,355 @@ instance be used to add a custom \type {ToUnicode} vector to a bitmap file. pdf.setfontattributes(<number> font id, <string> pdf code) \stopfunctioncall -\section {The \type {pdfscanner} library} +\stopsubsection -\topicindex{\PDF+scanner} +\stopsection -The \type {pdfscanner} library allows interpretation of \PDF\ content streams and -\type {/ToUnicode} (cmap) streams. You can get those streams from the \type -{epdf} library, as explained in an earlier section. There is only a single -top|-|level function in this library: +\startsection[title={The \type {pdfe} library}][library=pdfe] -\startfunctioncall -pdfscanner.scan (<Object> stream, <table> operatortable, <table> info) -\stopfunctioncall +\startsubsection[title={Introduction}] -The first argument, \type {stream}, should be either a \PDF\ stream object, or a -\PDF\ array of \PDF\ stream objects (those options comprise the possible return -values of \type {<Page>:getContents()} and \type {<Object>:getStream()} in the -\type {epdf} library). +\topicindex{\PDF+objects} -The second argument, \type {operatortable}, should be a \LUA\ table where the -keys are \PDF\ operator name strings and the values are \LUA\ functions (defined -by you) that are used to process those operators. The functions are called -whenever the scanner finds one of these \PDF\ operators in the content stream(s). -The functions are called with two arguments: the \type {scanner} object itself, -and the \type {info} table that was passed are the third argument to \type -{pdfscanner.scan}. +\topicindex{\PDF+analyze} +\topicindex{\PDF+\type{pdfe}} -Internally, \type {pdfscanner.scan} loops over the \PDF\ operators in the -stream(s), collecting operands on an internal stack until it finds a \PDF\ -operator. If that \PDF\ operator's name exists in \type {operatortable}, then the -associated function is executed. After the function has run (or when there is no -function to execute) the internal operand stack is cleared in preparation for the -next operator, and processing continues. +The \type {pdfe} library replaces the \type {epdf} library and provides an +interface to \PDF\ files. It uses the same code as is used for \PDF\ image +inclusion. The \type {pplib} library by Paweł Jackowski replaces the \type +{poppler} (derived from \type {xpdf}) library. -The \type {scanner} argument to the processing functions is needed because it -offers various methods to get the actual operands from the internal operand -stack. +A \PDF\ file is basically a tree of objects and one descends into the tree via +dictionaries (key/value) and arrays (index/value). There are a few topmost +dictionaries that start at root that are accessed more directly. -A simple example of processing a \PDF's document stream could look like this: +Although everything in \PDF\ is basically an object we only wrap a few in so +called userdata \LUA\ objects. -\starttyping -function Do (scanner, info) - local val = scanner:pop() - local name = val[2] -- val[1] == 'name' - local resources = info.resources - local xobject = resources:lookup("XObject"):getDict():lookup(name) - print (info.space ..'Use XObject '.. name) - if xobject and xobject:isStream() then - local dict = xobject:getStream():getDict() - if dict then - local name = dict:lookup("Subtype") - if name:getName() == "Form" then - local newinfo = { - space = info.space .. " " , - resources = dict:lookup("Resources"):getDict() - } - pdfscanner.scan(xobject, operatortable, newinfo) - end - end - end -end +\starttabulate +\BC \PDF \BC \LUA \NC \NR +\NC null \NC nil \NC \NR +\NC boolean \NC boolean \NC \NR +\NC integer \NC integer \NC \NR +\NC float \NC number \NC \NR +\NC name \NC string \NC \NR +\NC string \NC string \NC \NR +\NC array \NC array userdatum \NC \NR +\NC dictionary \NC dictionary userdatum \NC \NR +\NC stream \NC stream userdatum (with related dictionary) \NC \NR +\NC reference \NC reference userdatum \NC \NR +\stoptabulate -operatortable = { Do = Do } +The regular getters return these \LUA\ data types but one can also get more +detailed information. -doc = epdf.open(arg[1]) -pagenum = 1 +\stopsubsection -while pagenum <= doc:getNumPages() do - local page = doc:getCatalog():getPage(pagenum) - local info = { - space = " " , - resources = page:getResourceDict() - } - print('Page ' .. pagenum) - pdfscanner.scan(page:getContents(), operatortable, info) - pagenum = pagenum + 1 -end -\stoptyping +\startsubsection[title={\type {open}, \type {new}, \type {status}, \type {close}, \type {unencrypt}}] -This example iterates over all the actual content in the \PDF, and prints out the -found \type {XObject} names. While the code demonstrates quite some of the \type -{epdf} functions, let's focus on the type \type {pdfscanner} specific code -instead. +\libindex {open} +\libindex {new} +\libindex {new} +\libindex {status} +\libindex {close} +\libindex {unencrypt} -From the bottom up, the following line runs the scanner with the \PDF\ page's -top-level content. +A document is loaded from a file or string \starttyping - pdfscanner.scan(page:getContents(), operatortable, info) +<pdfe document> = pdfe.open(filename) +<pdfe document> = pdfe.new(somestring,somelength) \stoptyping -The third argument, \type {info}, contains two entries: \type {space} is used to -indent the printed output, and \type {resources} is needed so that embedded \type -{XForms} can find their own content. +Such a document is closed with: -The second argument, \type {operatortable} defines a processing function for a -single \PDF\ operator, \type {Do}. +\starttyping +pdfe.close(<pdfe document>) +\stoptyping -The function \type {Do} prints the name of the current \type {XObject}, and then -starts a new scanner for that object's content stream, under the condition that -the \type {XObject} is in fact a \type {/Form}. That nested scanner is called -with new \type {info} argument with an updated \type {space} value so that the -indentation of the output nicely nests, and with an new \type {resources} field -to help the next iteration down to properly process any other, embedded \type -{XObject}s. +You can check if a document opened well by: -Of course, this is not a very useful example in practise, but for the purpose of -demonstrating \type {pdfscanner}, it is just long enough. It makes use of only -one \type {scanner} method: \type {scanner:pop()}. That function pops the top -operand of the internal stack, and returns a \LUA\ table where the object at index -one is a string representing the type of the operand, and object two is its -value. +\starttyping +pdfe.status(<pdfe document>) +\stoptyping -The list of possible operand types and associated \LUA\ value types is: +The returned codes are: -\starttabulate[|l|c|] -\DB types \BC type \NC \NR +\starttabulate[|c|l|] +\DB value \BC explanation \NC \NR \TB -\NC \type{integer} \NC <number> \NC \NR -\NC \type{real} \NC <number> \NC \NR -\NC \type{boolean} \NC <boolean> \NC \NR -\NC \type{name} \NC <string> \NC \NR -\NC \type{operator} \NC <string> \NC \NR -\NC \type{string} \NC <string> \NC \NR -\NC \type{array} \NC <table> \NC \NR -\NC \type{dict} \NC <table> \NC \NR +\NC \type {-2} \NC the document failed to open \NC \NR +\NC \type {-1} \NC the document is (still) protected \NC \NR +\NC \type {0} \NC the document is not encrypted \NC \NR +\NC \type {2} \NC the document has been unencrypted \NC \NR \LL \stoptabulate -In case of \type {integer} or \type {real}, the value is always a \LUA\ (floating -point) number. In case of \type {name}, the leading slash is always stripped. +An encrypted document can be unencrypted by the next command where instead of +either password you can give \type {nil}: -In case of \type {string}, please bear in mind that \PDF\ actually supports -different types of strings (with different encodings) in different parts of the -\PDF\ document, so may need to reencode some of the results; \type {pdfscanner} -always outputs the byte stream without reencoding anything. \type {pdfscanner} -does not differentiate between literal strings and hexadecimal strings (the -hexadecimal values are decoded), and it treats the stream data for inline images -as a string that is the single operand for \type {EI}. +\starttyping +pdfe.unencrypt(<pdfe document>,userpassword,ownerpassword) +\stoptyping -In case of \type {array}, the table content is a list of \type {pop} return -values and in case of \type {dict}, the table keys are \PDF\ name strings and the -values are \type {pop} return values. +\stopsubsection -There are few more methods defined that you can ask \type {scanner}: +\startsubsection[title={\type {size}, \type {version}, \type {getnofobjects}, \type {getnofpages}}] -\starttabulate[|l|p|] -\DB method \BC explanation \NC \NR -\TB -\NC \type{pop} \NC see above \NC \NR -\NC \type{popNumber} \NC return only the value of a \type {real} or \type {integer} \NC \NR -\NC \type{popName} \NC return only the value of a \type {name} \NC \NR -\NC \type{popString} \NC return only the value of a \type {string} \NC \NR -\NC \type{popArray} \NC return only the value of a \type {array} \NC \NR -\NC \type{popDict} \NC return only the value of a \type {dict} \NC \NR -\NC \type{popBool} \NC return only the value of a \type {boolean} \NC \NR -\NC \type{done} \NC abort further processing of this \type {scan()} call \NC \NR -\LL -\stoptabulate +\libindex {size} +\libindex {version} +\libindex {getnofobjects} +\libindex {getnofpages} -The \type {popXXX} are convenience functions, and come in handy when you know the -type of the operands beforehand (which you usually do, in \PDF). For example, the -\type {Do} function could have used \type {local name = scanner:popName()} -instead, because the single operand to the \type {Do} operator is always a \PDF\ -name object. +A successfully opened document can provide some information: -The \type {done} function allows you to abort processing of a stream once you -have learned everything you want to learn. This comes in handy while parsing -\type {/ToUnicode}, because there usually is trailing garbage that you are not -interested in. Without \type {done}, processing only end at the end of the -stream, possibly wasting \CPU\ cycles. +\starttyping +bytes = size(<pdfe document>) +major, minor = version(<pdfe document>) +n = getnofobjects(<pdfe document>) +n = getnofpages(<pdfe document>) +bytes, waste = getnofpages(<pdfe document>) +\stoptyping -\section{The \type {epdf} library} +\stopsubsection -\topicindex{\PDF+analyze} -\topicindex{\PDF+\type{epdf}} +\startsubsection[title={\type {get[catalog|trailer|info]}}] -The \type {epdf} library provides \LUA\ bindings to many \PDF\ access functions -that are defined by the poppler \PDF\ viewer library (written in C$+{}+$ by -Kristian H\o gsberg, based on xpdf by Derek Noonburg). Within \LUATEX\ xpdf -functionality is being used since long time to embed \PDF\ files. The \type -{epdf} library allows to scrutinize an external \PDF\ file. It gives access to -its document structure: catalog, cross|-|reference table, individual pages, -objects, annotations, info, and metadata. The \type {epdf} library only provides -read|-|only access. At some point we might decide to limit the interface to a -reasonable subset. +\libindex {getcatalog} +\libindex {gettrailer} +\libindex {getinfo} -For a start, a \PDF\ file is opened by \type {epdf.open()} with file name, e.g.: +For accessing the document structure you start with the so called catalog, a +dictionary: \starttyping -doc = epdf.open("foo.pdf") +<pdfe dictionary> = pdfe.getcatalog(<pdfe document>) \stoptyping -This normally returns a \type {PDFDoc} userdata variable; but if the file could -not be opened successfully, instead of a fatal error just the value \type {nil} is -returned. - -All \LUA\ functions in the \type {epdf} library are named after the poppler -functions listed in the poppler header files for the various classes, e.g., files -\type {PDFDoc.h}, \type {Dict.h}, and \type {Array.h}. These files can be found -in the poppler subdirectory within the \LUATEX\ sources. Which functions are -already implemented in the \type {epdf} library can be found in the \LUATEX\ -source file \type {lepdflib.cc}. For using the \type {epdf} library, knowledge of -the \PDF\ file architecture is indispensable. - -There are many different userdata types defined by the \type {epdf} library, -currently these are \type {AnnotBorderStyle}, \type {AnnotBorder}, \type -{Annots}, \type {Annot}, \type {Array}, \type {Attribute}, \type {Catalog}, \type -{Dict}, \type {EmbFile}, \type {GString}, \type {LinkDest}, \type {Links}, \type -{Link}, \type {ObjectStream}, \type {Object}, \type {PDFDoc}, \type -{PDFRectangle}, \type {Page}, \type {Ref}, \type {Stream}, \type {StructElement}, -\type {StructTreeRoot} \type {TextSpan}, \type {XRefEntry} and \type {XRef}. - -All these userdata names and the \LUA\ access functions closely resemble the -classes naming from the poppler header files, including the choice of mixed upper -and lower case letters. The \LUA\ function calls use object|-|oriented syntax, -e.g., the following calls return the \type {Page} object for page~1: +The other two root dictionaries are accessed with: \starttyping -pageref = doc:getCatalog():getPageRef(1) -pageobj = doc:getXRef():fetch(pageref.num, pageref.gen) +<pdfe dictionary> = pdfe.gettrailer(<pdfe document>) +<pdfe dictionary> = pdfe.getinfo(<pdfe document>) \stoptyping -But writing such chained calls is risky, as an intermediate function may return -\type {nil} on error. Therefore between function calls there should be \LUA\ type -checks (e.g., against \type {nil}) done. If a non|-|object item is requested (for -instance a \type {Dict} item by calling \type {page:getPieceInfo()}, cf.~\type -{Page.h}) but not available, the \LUA\ functions return \type {nil} (without -error). If a function should return an \type {Object}, but it's not existing, a -\type {Null} object is returned instead, also without error. This is in|-|line -with poppler behavior. +\stopsubsection -All library objects have a \type {__gc} metamethod for garbage collection. The -\type {__tostring} metamethod gives the type name for each object. +\startsubsection[title={\type {getpage}, \type {getbox}}] -These are the object constructors: +\libindex {getpage} +\libindex {getbox} -\startfunctioncall -<PDFDoc> = epdf.open(<string> PDF filename) -<PDFDoc> = epdf.openMemStream(<string> PDF code) -\stopfunctioncall +A specific page can conveniently be reached with the next command, which +returns a dictionary. The first argument is to be a page dictionary. -The functions \type {StructElement_Type}, \type {Attribute_Type} and \type -{AttributeOwner_Type} return a hash table \type {{<string>,<integer>}}. +\starttyping +<pdfe dictionary> = pdfe.getpage(<pdfe dictionary>,pagenumber) +\stoptyping -\type {Annot} methods: +Another convenience command gives you the (bounding) box of a (normally page) +which can be inheritted from the document itself. An example of a valid box name +is \type {MediaBox}. -\startfunctioncall -<boolean> = <Annot>:isOK() -<boolean> = <Annot>:match(<Ref>) -<Object> = <Annot>:getAppearance() -- gone -<AnnotBorder> = <Annot>:getBorder() -- gone -\stopfunctioncall +\starttyping +pages = pdfe.getbox(<pdfe document>,boxname) +\stoptyping -\type {AnnotBorderStyle} methods (gone): +\stopsubsection -\startfunctioncall -<number> = <AnnotBorderStyle>:getWidth() -- gone -\stopfunctioncall +\startsubsection[title={\type {get[string|integer|number|boolean|name]}}] -\type {Annots} methods: +\libindex {getstring} +\libindex {getinteger} +\libindex {getnumber} +\libindex {getboolean} +\libindex {getname} -\startfunctioncall -<integer> = <Annots>:getNumAnnots() -<Annot> = <Annots>:getAnnot(<integer>) -\stopfunctioncall +Common values in dictionaries and arrays are strings, integers, floats, booleans +and names (which are also strings) and these are also normal \LUA\ objects: -\type {Array} methods: +\starttyping +s = getstring (<pdfe array|dictionary>,index|key) +i = getinteger(<pdfe array|dictionary>,index|key) +n = getnumber (<pdfe array|dictionary>,index|key) +b = getboolean(<pdfe array|dictionary>,index|key) +n = getname (<pdfe array|dictionary>,index|key) +\stoptyping -\startfunctioncall -<integer> = <Array>:getLength() -<Object> = <Array>:get(<integer>) -<Object> = <Array>:getNF(<integer>) -<string> = <Array>:getString(<integer>) -\stopfunctioncall +\stopsubsection -\type {Attribute} methods: +\startsubsection[title={\type {get[from][dictionary|array|stream]}}] -\startfunctioncall -<boolean> = <Attribute>:isOk() -<integer> = <Attribute>:getType() -<integer> = <Attribute>:getOwner() -<string> = <Attribute>:getTypeName() -<string> = <Attribute>:getOwnerName() -<Object> = <Attribute>:getValue() -<Object> = <Attribute>:getDefaultValue -<string> = <Attribute>:getName() -<integer> = <Attribute>:getRevision() -<boolean> = <Attribute>:isHidden() -<string> = <Attribute>:getFormattedValue() -\stopfunctioncall +\libindex {getdictionary} \libindex {getfromdictionary} +\libindex {getarray} \libindex {getfromarray} +\libindex {getstream} \libindex {getfromstream} -\type {Catalog} methods: +Normally you will use an index in an array and key in a dictionary but dictionaries +also accept an index. The size of an array or dictionary is available with the +usual \type {#} operator. -\startfunctioncall -<boolean> = <Catalog>:isOK() -<integer> = <Catalog>:getNumPages() -<Page> = <Catalog>:getPage(<integer>) -<Ref> = <Catalog>:getPageRef(<integer>) -<string> = <Catalog>:getBaseURI() -<string> = <Catalog>:readMetadata() -<Object> = <Catalog>:getStructTreeRoot() -<integer> = <Catalog>:findPage(<integer> object number, <integer> object generation) -<LinkDest> = <Catalog>:findDest(<string> name) -<Object> = <Catalog>:getDests() -<integer> = <Catalog>:numEmbeddedFiles() -<EmbFile> = <Catalog>:embeddedFile(<integer>) -<integer> = <Catalog>:numJS() -<string> = <Catalog>:getJS(<integer>) -<Object> = <Catalog>:getOutline() -<Object> = <Catalog>:getAcroForm() -\stopfunctioncall +\starttyping +<pdfe dictionary> = getdictionary(<pdfe array|dictionary>,index|key) +<pdfe array> = getarray (<pdfe array|dictionary>,index|key) +<pdfe stream>, +<pdfe dictionary> = getstream (<pdfe array|dictionary>,index|key) +\stoptyping -\type {EmbFile} methods: +These commands return dictionaries, arrays and streams, which are dictionaries +with a blob of data attached. -\startfunctioncall -<integer> = <EmbFile>:size() -<string> = <EmbFile>:modDate() -<string> = <EmbFile>:createDate() -<string> = <EmbFile>:checksum() -<string> = <EmbFile>:mimeType() -<boolean> = <EmbFile>:isOk() -<string> = <EmbFile>:name() -- not (yet) implemented -<string> = <EmbFile>:description() -- not (yet) implemented -<Object> = <EmbFile>:streamObject() -- not (yet) implemented -<boolean> = <EmbFile>:save() -- will go -\stopfunctioncall +Before we come to an alternative access mode, we mention that the objects provide +access in a different way too, for instance this is valid: -\type {FileSpec} methods: +\starttyping +print(pdfe.open("foo.pdf").Catalog.Type) +\stoptyping -\startfunctioncall -<boolean> = <FileSpec>:isOk() -<string> = <FileSpec>:getFileName() -<string> = <FileSpec>:getFileNameForPlatform() -<string> = <FileSpec>:getDescription() -<EmbFile> = <FileSpec>:getEmbeddedFile() -\stopfunctioncall +At the topmost level there are \type {Catalog}, \type {Info}, \type {Trailer} +and \type {Pages}, so this is also okay: -\type {Dict} methods: +\starttyping +print(pdfe.open("foo.pdf").Pages[1]) +\stoptyping -\startfunctioncall -<integer> = <Dict>:getLength() -<boolean> = <Dict>:is(<string>) -<Object> = <Dict>:lookup(<string>) -<Object> = <Dict>:lookupNF(<string>) -<integer> = <Dict>:lookupInt(<string>, <string>) -<string> = <Dict>:getKey(<integer>) -<Object> = <Dict>:getVal(<integer>) -<Object> = <Dict>:getValNF(<integer>) -<boolean> = <Dict>:hasKey(<string>) -\stopfunctioncall +\stopsubsection -% \type {Link} methods: +\startsubsection[title={\type {[open|close|readfrom][whole|]stream}}] -% \startfunctioncall -% <boolean> = <Link>:isOK() -% <boolean> = <Link>:inRect(<number>, <number>) -% \stopfunctioncall +\libindex {openstream} +\libindex {closestream} +\libindex {readfromstream} +\libindex {readfromwholestream} -\type {LinkDest} methods: +Streams are sort of special. When your index or key hits a stream you get back a +stream object and dictionary object. The dictionary you can access in the usual +way and for the stream there are the following methods: -\startfunctioncall -<boolean> = <LinkDest>:isOK() -<integer> = <LinkDest>:getKind() -<string> = <LinkDest>:getKindName() -<boolean> = <LinkDest>:isPageRef() -<integer> = <LinkDest>:getPageNum() -<Ref> = <LinkDest>:getPageRef() -<number> = <LinkDest>:getLeft() -<number> = <LinkDest>:getBottom() -<number> = <LinkDest>:getRight() -<number> = <LinkDest>:getTop() -<number> = <LinkDest>:getZoom() -<boolean> = <LinkDest>:getChangeLeft() -<boolean> = <LinkDest>:getChangeTop() -<boolean> = <LinkDest>:getChangeZoom() -\stopfunctioncall +\starttyping +okay = openstream(<pdfe stream>,[decode]) + closestream(<pdfe stream>) +str, n = readfromstream(<pdfe stream>) +str, n = readwholestream(<pdfe stream>,[decode]) +\stoptyping -\type {Links} methods: +You either read in chunks, or you ask for the whole. When reading in chunks, you +need to open and close the stream yourself. The \type {n} value indicates the +length read. The \type {decode} parameter controls if the stream data gets +uncompressed. -% <Link> = <Links>:getLink(<integer>) +As with dictionaries, you can access fields in a stream dictionary in the usual +\LUA\ way too. You get the content when you \quote {call} the stream. You can +pass a boolean that indicates if the stream has to be decompressed. -\startfunctioncall -<integer> = <Links>:getNumLinks() -\stopfunctioncall +% pdfe.objectcodes = objectcodes +% pdfe.stringcodes = stringcodes +% pdfe.encryptioncodes = encryptioncodes -\type {Object} methods: +\stopsubsection -\startfunctioncall -<Object> = <Object>:fetch(<XRef>) -<integer> = <Object>:getType() -<string> = <Object>:getTypeName() -<boolean> = <Object>:isBool() -<boolean> = <Object>:isInt() -<boolean> = <Object>:isReal() -<boolean> = <Object>:isNum() -<boolean> = <Object>:isString() -<boolean> = <Object>:isName() -<boolean> = <Object>:isNull() -<boolean> = <Object>:isArray() -<boolean> = <Object>:isDict() -<boolean> = <Object>:isStream() -<boolean> = <Object>:isRef() -<boolean> = <Object>:isCmd() -<boolean> = <Object>:isError() -<boolean> = <Object>:isEOF() -<boolean> = <Object>:isNone() -<boolean> = <Object>:getBool() -<integer> = <Object>:getInt() -<number> = <Object>:getReal() -<number> = <Object>:getNum() -<string> = <Object>:getString() -<string> = <Object>:getName() -<Array> = <Object>:getArray() -<Dict> = <Object>:getDict() -<Stream> = <Object>:getStream() -<Ref> = <Object>:getRef() -<integer> = <Object>:getRefNum() -<integer> = <Object>:getRefGen() -<string> = <Object>:getCmd() -<integer> = <Object>:arrayGetLength() -<Object> = <Object>:arrayGet(<integer>) -<Object> = <Object>:arrayGetNF(<integer>) -<integer> = <Object>:dictGetLength(<integer>) -<Object> = <Object>:dictLookup(<string>) -<Object> = <Object>:dictLookupNF(<string>) -<string> = <Object>:dictgetKey(<integer>) -<Object> = <Object>:dictgetVal(<integer>) -<Object> = <Object>:dictgetValNF(<integer>) -<boolean> = <Object>:streamIs(<string>) - = <Object>:streamReset() -<integer> = <Object>:streamGetChar() -<integer> = <Object>:streamLookChar() -<integer> = <Object>:streamGetPos() - = <Object>:streamSetPos(<integer>) -<Dict> = <Object>:streamGetDict() -\stopfunctioncall +\startsubsection[title={\type {getfrom[dictionary|array]}}] -\type {Page} methods: +\libindex {getfromdictionary} +\libindex {getfromarray} -\startfunctioncall -<boolean> = <Page>:isOk() -<integer> = <Page>:getNum() -<PDFRectangle> = <Page>:getMediaBox() -<PDFRectangle> = <Page>:getCropBox() -<boolean> = <Page>:isCropped() -<number> = <Page>:getMediaWidth() -<number> = <Page>:getMediaHeight() -<number> = <Page>:getCropWidth() -<number> = <Page>:getCropHeight() -<PDFRectangle> = <Page>:getBleedBox() -<PDFRectangle> = <Page>:getTrimBox() -<PDFRectangle> = <Page>:getArtBox() -<integer> = <Page>:getRotate() -<string> = <Page>:getLastModified() -<Dict> = <Page>:getBoxColorInfo() -<Dict> = <Page>:getGroup() -<Stream> = <Page>:getMetadata() -<Dict> = <Page>:getPieceInfo() -<Dict> = <Page>:getSeparationInfo() -<Dict> = <Page>:getResourceDict() -<Object> = <Page>:getAnnots() -<Links> = <Page>:getLinks(<Catalog>) -<Object> = <Page>:getContents() -\stopfunctioncall +In addition to the interface described before, there is also a bit lower level +interface available. -\type {PDFDoc} methods: +\starttyping +key, type, value, detail = getfromdictionary(<pdfe dictionary>,index) +type, value, detail = getfromarray(<pdfe array>,index) +\stoptyping -\startfunctioncall -<boolean> = <PDFDoc>:isOk() -<integer> = <PDFDoc>:getErrorCode() -<string> = <PDFDoc>:getErrorCodeName() -<string> = <PDFDoc>:getFileName() -<XRef> = <PDFDoc>:getXRef() -<Catalog> = <PDFDoc>:getCatalog() -<number> = <PDFDoc>:getPageMediaWidth() -<number> = <PDFDoc>:getPageMediaHeight() -<number> = <PDFDoc>:getPageCropWidth() -<number> = <PDFDoc>:getPageCropHeight() -<integer> = <PDFDoc>:getNumPages() -<string> = <PDFDoc>:readMetadata() -<Object> = <PDFDoc>:getStructTreeRoot() -<integer> = <PDFDoc>:findPage(<integer> object number, - <integer> object generation) -<Links> = <PDFDoc>:getLinks(<integer>) -<LinkDest> = <PDFDoc>:findDest(<string>) -<boolean> = <PDFDoc>:isEncrypted() -<boolean> = <PDFDoc>:okToPrint() -<boolean> = <PDFDoc>:okToChange() -<boolean> = <PDFDoc>:okToCopy() -<boolean> = <PDFDoc>:okToAddNotes() -<boolean> = <PDFDoc>:isLinearized() -<Object> = <PDFDoc>:getDocInfo() -<Object> = <PDFDoc>:getDocInfoNF() -<integer> = <PDFDoc>:getPDFMajorVersion() -<integer> = <PDFDoc>:getPDFMinorVersion() -\stopfunctioncall +\starttabulate[|c|l|l|l|] +\DB type \BC meaning \BC value \BC detail \NC \NR +\NC \type {0} \NC none \NC nil \NC \NC \NR +\NC \type {1} \NC null \NC nil \NC \NC \NR +\NC \type {2} \NC boolean \NC boolean \NC \NC \NR +\NC \type {3} \NC boolean \NC integer \NC \NC \NR +\NC \type {4} \NC number \NC float \NC \NC \NR +\NC \type {5} \NC name \NC string \NC \NC \NR +\NC \type {6} \NC string \NC string \NC hex \NC \NR +\NC \type {7} \NC array \NC arrayobject \NC size \NC \NR +\NC \type {8} \NC dictionary \NC dictionaryobject \NC size \NC \NR +\NC \type {9} \NC stream \NC streamobject \NC dictionary size \NC \NR +\NC \type {10} \NC reference \NC integer \NC \NC \NR +\LL +\stoptabulate -\type {PDFRectangle} methods: +A \type {hex} string is (in the \PDF\ file) surrounded by \type {<>} while plain +strings are bounded by \type {<>}. -\startfunctioncall -<boolean> = <PDFRectangle>:isValid() -- setindex/newindex will go -\stopfunctioncall +\stopsubsection -%\type {Ref} methods: -% -%\startfunctioncall -%\stopfunctioncall +\startsubsection[title={\type {[dictionary|array]totable}}] -\type {Stream} methods: +\libindex {dictionarytotable} +\libindex {arraytotable} -\startfunctioncall -<integer> = <Stream>:getKind() -<string> = <Stream>:getKindName() - = <Stream>:reset() - = <Stream>:close() -<integer> = <Stream>:getChar() -<integer> = <Stream>:lookChar() -<integer> = <Stream>:getRawChar() -<integer> = <Stream>:getUnfilteredChar() - = <Stream>:unfilteredReset() -<integer> = <Stream>:getPos() -<boolean> = <Stream>:isBinary() -<Stream> = <Stream>:getUndecodedStream() -<Dict> = <Stream>:getDict() -\stopfunctioncall +All entries in a dictionary or table can be fetched with the following commands +where the return values are a hashed or indexed table. -\type {StructElement} methods: +\starttyping +hash = dictionarytotable(<pdfe dictionary>) +list = arraytotable(<pdfe array>) +\stoptyping -\startfunctioncall -<string> = <StructElement>:getTypeName() -<integer> = <StructElement>:getType() -<boolean> = <StructElement>:isOk() -<boolean> = <StructElement>:isBlock() -<boolean> = <StructElement>:isInline() -<boolean> = <StructElement>:isGrouping() -<boolean> = <StructElement>:isContent() -<boolean> = <StructElement>:isObjectRef() -<integer> = <StructElement>:getMCID() -<Ref> = <StructElement>:getObjectRef() -<Ref> = <StructElement>:getParentRef() -<boolean> = <StructElement>:hasPageRef() -<Ref> = <StructElement>:getPageRef() -<StructTreeRoot> = <StructElement>:getStructTreeRoot() -<string> = <StructElement>:getID() -<string> = <StructElement>:getLanguage() -<integer> = <StructElement>:getRevision() -<string> = <StructElement>:getTitle() -<string> = <StructElement>:getExpandedAbbr() -<integer> = <StructElement>:getNumChildren() -<StructElement> = <StructElement>:getChild() -<integer> = <StructElement>:getNumAttributes() -<Attribute> = <StructElement>:getAttribute(<integer>) -<string> = <StructElement>:appendAttribute(<Attribute>) -- will go -<Attribute> = <StructElement>:findAttribute(<Attribute::Type>, - boolean,Attribute::Owner) -<string> = <StructElement>:getAltText() -<string> = <StructElement>:getActualText() -<string> = <StructElement>:getText(<boolean>) -<table> = <StructElement>:getTextSpans() -\stopfunctioncall +You can get a list of pages with: + +\starttyping +{ { <pdfe dictionary>, size, objnum }, ... } = pagestotable(<pdfe document>) +\stoptyping -\type {StructTreeRoot} methods: +\stopsubsection -\startfunctioncall -<StructElement> = <StructTreeRoot>:findParentElement -<PDFDoc> = <StructTreeRoot>:getDoc -<Dict> = <StructTreeRoot>:getRoleMap -<Dict> = <StructTreeRoot>:getClassMap -<integer> = <StructTreeRoot>:getNumChildren -<StructElement> = <StructTreeRoot>:getChild -<StructElement> = <StructTreeRoot>:findParentElement -\stopfunctioncall +\startsubsection[title={\type {getfromreference}}] -\type {TextSpan} han only one method: +\libindex {getfromreference} -\startfunctioncall -<string> = <TestSpan>:getText() -\stopfunctioncall +Because you can have unresolved references, a reference object can be resolved +with: -\type {XRef} methods: +\starttyping +<pdfe dictionary|array|stream> = getfromreference(<pdfe reference>) +\stoptyping -\startfunctioncall -<boolean> = <XRef>:isOk() -<integer> = <XRef>:getErrorCode() -<boolean> = <XRef>:isEncrypted() -<boolean> = <XRef>:okToPrint() -<boolean> = <XRef>:okToPrintHighRes() -<boolean> = <XRef>:okToChange() -<boolean> = <XRef>:okToCopy() -<boolean> = <XRef>:okToAddNotes() -<boolean> = <XRef>:okToFillForm() -<boolean> = <XRef>:okToAccessibility() -<boolean> = <XRef>:okToAssemble() -<Object> = <XRef>:getCatalog() -<Object> = <XRef>:fetch(<integer> object number, - <integer> object generation) -<Object> = <XRef>:getDocInfo() -<Object> = <XRef>:getDocInfoNF() -<integer> = <XRef>:getNumObjects() -<integer> = <XRef>:getRootNum() -<integer> = <XRef>:getRootGen() -<integer> = <XRef>:getSize() -<Object> = <XRef>:getTrailerDict() -\stopfunctioncall +So, you get back a new \type {pdfe} userdata object that you can query. + +\stopsubsection + +\stopsection + +\startsection[title={Memory streams}][library=pdfe] \topicindex{\PDF+memory streams} -There is an experimental function \type {epdf.openMemStream} that takes three -arguments: +\libindex {new} + +The \type {pdfe.new} that takes three arguments: \starttabulate \DB value \BC explanation \NC \NR \TB \NC \type {stream} \NC this is a (in low level \LUA\ speak) light userdata object, i.e.\ a pointer to a sequence of bytes \NC \NR -\NC \type {length} \NC this is the length of the stream in bytes \NC \NR -\NC \type {name} \NC this is a unique identifier that is used for hashing the - stream, so that multiple doesn't use more memory \NC \NR +\NC \type {length} \NC this is the length of the stream in bytes (the stream can + have embedded zeros) \NC \NR +\NC \type {name} \NC optional, this is a unique identifier that is used for + hashing the stream, so that multiple doesn't use more + memory \NC \NR \LL \stoptabulate -Instead of a light userdata stream you can also pass a \LUA\ string, in which -case the given length is (at most) the string length. +The third argument is optional. When it is not given the function will return an +\type {pdfe} document object as with a regular file, otherwise it will return a +filename that can be used elsewhere (e.g.\ in the image library) to reference the +stream as pseudo file. -The function returns a \type{epdf} object and a string. The string can be used in +Instead of a light userdata stream (which is actually fragile but handy when you +come from a library) you can also pass a \LUA\ string, in which case the given +length is (at most) the string length. + +The function returns an \type {pdfe} object and a string. The string can be used in the \type {img} library instead of a filename. You need to prevent garbage collection of the object when you use it as image (for instance by storing it somewhere). @@ -1025,6 +894,191 @@ permits conversion in memory and passing the result directly to the backend. Thi might save some runtime in one|-|pass workflows. This feature is currently not meant for production and we might come up with a better implementation. +\stopsection + +\startsection[title={The \type {pdfscanner} library}][library=pdfscanner] + +\topicindex{\PDF+scanner} + +\libindex {scan} + +The \type {pdfscanner} library allows interpretation of \PDF\ content streams and +\type {/ToUnicode} (cmap) streams. You can get those streams from the \type +{pdfe} library, as explained in an earlier section. There is only a single +top|-|level function in this library: + +\startfunctioncall +pdfscanner.scan (<pdfe stream>, <table> operatortable, <table> info) +pdfscanner.scan (<pdfe array>, <table> operatortable, <table> info) +pdfscanner.scan (<string>, <table> operatortable, <table> info) +\stopfunctioncall + +The first argument should be a \LUA\ string or a stream or array onject coming +from the \type {pdfe} library. The second argument, \type {operatortable}, should +be a \LUA\ table where the keys are \PDF\ operator name strings and the values +are \LUA\ functions (defined by you) that are used to process those operators. +The functions are called whenever the scanner finds one of these \PDF\ operators +in the content stream(s). The functions are called with two arguments: the \type +{scanner} object itself, and the \type {info} table that was passed are the third +argument to \type {pdfscanner.scan}. + +Internally, \type {pdfscanner.scan} loops over the \PDF\ operators in the +stream(s), collecting operands on an internal stack until it finds a \PDF\ +operator. If that \PDF\ operator's name exists in \type {operatortable}, then the +associated function is executed. After the function has run (or when there is no +function to execute) the internal operand stack is cleared in preparation for the +next operator, and processing continues. + +The \type {scanner} argument to the processing functions is needed because it +offers various methods to get the actual operands from the internal operand +stack. + +A simple example of processing a \PDF's document stream could look like this: + +\starttyping +local operatortable = { } + +operatortable.Do = function(scanner,info) + local resources = info.resources + if resources then + local val = scanner:pop() + local name = val[2] + local xobject = resources.XObject + print(info.space .. "Uses XObject " .. name) + local resources = xobject.Resources + if resources then + local newinfo = { + space = info.space .. " ", + resources = resources, + } + pdfscanner.scan(entry, operatortable, newinfo) + end + end +end + +local function Analyze(filename) + local doc = pdfe.open(filename) + if doc then + local pages = doc.Pages + for i=1,#pages do + local page = pages[i] + local info = { + space = " " , + resources = page.Resources, + } + print("Page " .. i) + -- pdfscanner.scan(page.Contents,operatortable,info) + pdfscanner.scan(page.Contents(),operatortable,info) + end + end +end + +Analyze("foo.pdf") +\stoptyping + +This example iterates over all the actual content in the \PDF, and prints out the +found \type {XObject} names. While the code demonstrates quite some of the \type +{pdfe} functions, let's focus on the type \type {pdfscanner} specific code +instead. + +From the bottom up, the following line runs the scanner with the \PDF\ page's +top|-|level content given in the first argument. + +The third argument, \type {info}, contains two entries: \type {space} is used to +indent the printed output, and \type {resources} is needed so that embedded \type +{XForms} can find their own content. + +The second argument, \type {operatortable} defines a processing function for a +single \PDF\ operator, \type {Do}. + +The function \type {Do} prints the name of the current \type {XObject}, and then +starts a new scanner for that object's content stream, under the condition that +the \type {XObject} is in fact a \type {/Form}. That nested scanner is called +with new \type {info} argument with an updated \type {space} value so that the +indentation of the output nicely nests, and with a new \type {resources} field +to help the next iteration down to properly process any other, embedded \type +{XObject}s. + +Of course, this is not a very useful example in practice, but for the purpose of +demonstrating \type {pdfscanner}, it is just long enough. It makes use of only +one \type {scanner} method: \type {scanner:pop()}. That function pops the top +operand of the internal stack, and returns a \LUA\ table where the object at index +one is a string representing the type of the operand, and object two is its +value. + +The list of possible operand types and associated \LUA\ value types is: + +\starttabulate[|l|l|] +\DB types \BC type \NC \NR +\TB +\NC \type{integer} \NC <number> \NC \NR +\NC \type{real} \NC <number> \NC \NR +\NC \type{boolean} \NC <boolean> \NC \NR +\NC \type{name} \NC <string> \NC \NR +\NC \type{operator} \NC <string> \NC \NR +\NC \type{string} \NC <string> \NC \NR +\NC \type{array} \NC <table> \NC \NR +\NC \type{dict} \NC <table> \NC \NR +\LL +\stoptabulate + +In case of \type {integer} or \type {real}, the value is always a \LUA\ (floating +point) number. In case of \type {name}, the leading slash is always stripped. + +In case of \type {string}, please bear in mind that \PDF\ actually supports +different types of strings (with different encodings) in different parts of the +\PDF\ document, so you may need to reencode some of the results; \type {pdfscanner} +always outputs the byte stream without reencoding anything. \type {pdfscanner} +does not differentiate between literal strings and hexadecimal strings (the +hexadecimal values are decoded), and it treats the stream data for inline images +as a string that is the single operand for \type {EI}. + +In case of \type {array}, the table content is a list of \type {pop} return +values and in case of \type {dict}, the table keys are \PDF\ name strings and the +values are \type {pop} return values. + +\libindex{pop} +\libindex{popnumber} +\libindex{popname} +\libindex{popstring} +\libindex{poparray} +\libindex{popdictionary} +\libindex{popboolean} +\libindex{done} + +There are a few more methods defined that you can ask \type {scanner}: + +\starttabulate[|l|p|] +\DB method \BC explanation \NC \NR +\TB +\NC \type{pop} \NC see above \NC \NR +\NC \type{popnumber} \NC return only the value of a \type {real} or \type {integer} \NC \NR +\NC \type{popname} \NC return only the value of a \type {name} \NC \NR +\NC \type{popstring} \NC return only the value of a \type {string} \NC \NR +\NC \type{poparray} \NC return only the value of a \type {array} \NC \NR +\NC \type{popdictionary} \NC return only the value of a \type {dict} \NC \NR +\NC \type{popboolean} \NC return only the value of a \type {boolean} \NC \NR +\NC \type{done} \NC abort further processing of this \type {scan()} call \NC \NR +\LL +\stoptabulate + +The \type {pop*} are convenience functions, and come in handy when you know the +type of the operands beforehand (which you usually do, in \PDF). For example, the +\type {Do} function could have used \type {local name = scanner:popname()} +instead, because the single operand to the \type {Do} operator is always a \PDF\ +name object. + +The \type {done} function allows you to abort processing of a stream once you +have learned everything you want to learn. This comes in handy while parsing +\type {/ToUnicode}, because there usually is trailing garbage that you are not +interested in. Without \type {done}, processing only ends at the end of the +stream, possibly wasting \CPU\ cycles. + +{\em We keep the older names \type {popNumber}, \type {popName}, \type +{popString}, \type {popArray}, \type {popDict} and \type {popBool} around.} + +\stopsection + \stopchapter \stopcomponent diff --git a/manual/luatex-callbacks.tex b/manual/luatex-callbacks.tex index 672bb26f0e8c480d696d32971ddc8bf7d44d2687..b2b706ea9139c452a6c8af2e0b0d4137062e5761 100644 --- a/manual/luatex-callbacks.tex +++ b/manual/luatex-callbacks.tex @@ -4,12 +4,16 @@ \startcomponent luatex-callbacks -\startchapter[reference=callbacks,title={\LUATEX\ \LUA\ callbacks}] +\startchapter[reference=callbacks,title={\LUA\ callbacks}] -\section {Registering callbacks} +\startsection[title={Registering callbacks}][library=callback] \topicindex{callbacks} +\libindex{register} +\libindex{list} +\libindex{find} + This library has functions that register, find and list callbacks. Callbacks are \LUA\ functions that are called in well defined places. There are two kind of callbacks: those that mix with existing functionality, and those that (when @@ -25,11 +29,11 @@ The first thing you need to do is registering a callback: \startfunctioncall id, error = - callback.register (<string> callback_name, <function> func) + callback.register(<string> callback_name, <function> func) id, error = - callback.register (<string> callback_name, nil) + callback.register(<string> callback_name, nil) id, error = - callback.register (<string> callback_name, false) + callback.register(<string> callback_name, false) \stopfunctioncall Here the \syntax {callback_name} is a predefined callback name, see below. The @@ -58,12 +62,14 @@ The keys in the table are the known callback names, the value is a boolean where \type {true} means that the callback is currently set (active). \startfunctioncall -<function> f = callback.find (callback_name) +<function> f = callback.find(callback_name) \stopfunctioncall -If the callback is not set, \type {callback.find} returns \type {nil}. +If the callback is not set, \type {find} returns \type {nil}. + +\stopsection -\section{File discovery callbacks} +\startsection[title={File discovery callbacks}][library=callback] The behaviour documented in this subsection is considered stable in the sense that there will not be backward|-|incompatible changes any more. @@ -340,7 +346,9 @@ The length of the \type {data}, in bytes. \stopitemize Return an empty string and zero if the file was found but there was a -reading problem. The list of functions is: +reading problem. + +The list of functions is: \starttabulate[|l|p|] \DB function \BC usage \NC \NR @@ -357,7 +365,9 @@ reading problem. The list of functions is: \LL \stoptabulate -\section{Data processing callbacks} +\stopsection + +\startsection[title={Data processing callbacks}][library=callback] \subsection{\cbk {process_input_buffer}} @@ -414,7 +424,9 @@ inside this function or infinite recursion may occur. If you return \type {nil}, \LUATEX\ will pretend your callback never happened. This callback does not replace any internal code. -\section{Node list processing callbacks} +\stopsection + +\startsection[title={Node list processing callbacks}][library=callback] The description of nodes and node lists is in~\in{chapter}[nodes]. @@ -827,7 +839,9 @@ penalties have to be inserted in this list, \type {false} otherwise. Setting this callback to \type {false} is bad, it will almost certainly result in an endless loop. -\section{Information reporting callbacks} +\stopsection + +\startsection[title={Information reporting callbacks}][library=callback] \subsection{\cbk {pre_dump}} @@ -991,7 +1005,9 @@ after a run when native synctex is not enabled). This callback is called after the \PDF\ and log files are closed. Use it at your own risk. -\section{PDF-related callbacks} +\stopsection + +\startsection[title={\PDF\ related callbacks}][library=callback] \subsection{\cbk {finish_pdffile}} @@ -1020,7 +1036,62 @@ end This callback is called after the \PDF\ page stream has been assembled and before the page object gets finalized. -\section{Font-related callbacks} +\subsection{\cbk {page_objnum_provider}} + +\topicindex{callbacks+\PDF\ file} + +This is one that experts can use to juggle the page tree, a data structure +that determines the order in a \PDF\ file: + +\startfunctioncall +function(objnum) + return objnum +end +\stopfunctioncall + +We can for instance swap the first and last page: + +\starttyping +local n = 0 +callback.register("page_objnum_provider",function(objnum) + n = n + 1 + if n == 1 then + return pdf.getpageref(tex.count[0]) + elseif n == tex.count[0] then + return pdf.getpageref(1) + else + return objnum + end +end) +\stoptyping + +When you mess things up \unknown\ don't complain. + +\subsection{\cbk {process_pdf_image_content}} + +\topicindex{callbacks+image content} + +When a page from a \PDF\ file is embedded its page stream as well as related +objects are copied to the target file. However, it can be that the page stream +has operators that assume additional resources, for instance marked text. You can +decide to filter that for which \LUATEX\ provides a callback. Here is a simple +demonstration of use: + +\starttyping +pdf.setrecompress(1) + +callback.register("process_pdf_image_content",function(s) + print(s) + return s +end) +\stoptyping + +You need to explicitly enable recompression because otherwise the content stream +gets just passed on in its original compressed form. + +\stopsection + +\startsection[title={Font-related callbacks}][library=callback] \subsection{\cbk {define_font}} @@ -1071,6 +1142,8 @@ function(<number> id, <number> char) end \stopfunctioncall +\stopsection + \stopchapter \stopcomponent diff --git a/manual/luatex-enhancements.tex b/manual/luatex-enhancements.tex index f7d47fcd05d3262ac57608f5b77e56cc42f07445..b04a6e29cfe51e50532c49bbac9f5dd0ddf7d907 100644 --- a/manual/luatex-enhancements.tex +++ b/manual/luatex-enhancements.tex @@ -6,12 +6,14 @@ \startchapter[reference=enhancements,title={Basic \TEX\ enhancements}] -\section{Introduction} +\startsection[title={Introduction}] + +\startsubsection[title={Primitive behaviour}] From day one, \LUATEX\ has offered extra features compared to the superset of -\PDFTEX\ and \ALEPH. This has not been limited to the possibility to execute -\LUA\ code via \prm {directlua}, but \LUATEX\ also adds functionality via new -\TEX|-|side primitives or extensions to existing ones. +\PDFTEX, which includes \ETEX, and \ALEPH. This has not been limited to the +possibility to execute \LUA\ code via \prm {directlua}, but \LUATEX\ also adds +functionality via new \TEX|-|side primitives or extensions to existing ones. When \LUATEX\ starts up in \quote {iniluatex} mode (\type {luatex -ini}), it defines only the primitive commands known by \TEX82 and the one extra command @@ -39,28 +41,33 @@ assumes that you have executed the \prm {directlua} command as given above. The startup behaviour documented above is considered stable in the sense that there will not be backward|-|incompatible changes any more. We have promoted some -rather generic \PDFTEX\ primitives to core \LUATEX\ ones, and the ones inherited -frome \ALEPH\ (\OMEGA) are also promoted. Effectively this means that we now only -have the \type {tex}, \type {etex} and \type {luatex} sets left. +rather generic \PDFTEX\ primitives to core \LUATEX\ ones, and the few that we +inherited from \ALEPH\ (\OMEGA) are also promoted. Effectively this means that we +now only have the \type {tex}, \type {etex} and \type {luatex} sets left. In \in {Chapter} [modifications] we discuss several primitives that are derived from \PDFTEX\ and \ALEPH\ (\OMEGA). Here we stick to real new ones. In the chapters on fonts and math we discuss a few more new ones. -\section{Version information} +\stopsubsection + +\startsubsection[title={Version information}] -\subsection {\lpr {luatexbanner}, \lpr {luatexversion} and \lpr {luatexrevision}} +\startsubsubsection[title={\lpr {luatexbanner}, \lpr {luatexversion} and \lpr {luatexrevision}}] \topicindex{version} \topicindex{banner} There are three new primitives to test the version of \LUATEX: +\unexpanded\def\VersionHack#1% otherwise different luatex and luajittex runs + {\cldcontext{(string.gsub(string.match("\luatexbanner","(.+)\letterpercent("),"jit",""))}} + \starttabulate[|l|l|pl|] \DB primitive \BC value \BC explanation \NC \NR \TB -\NC \lpr {luatexbanner} \NC \cldcontext{string.match("\luatexbanner","(.+)\letterpercent(")} +\NC \lpr {luatexbanner} \NC \VersionHack{\luatexbanner} \NC the banner reported on the command line \NC \NR \NC \lpr {luatexversion} \NC \the\luatexversion \NC a combination of major and minor number \NC \NR @@ -78,10 +85,10 @@ The official \LUATEX\ version is defined as follows: its use with \prm {the} depending on the context. \stopitem \startitem - The minor version is the two-digit result of \lpr {luatexversion} modulo 100. + The minor version is the two|-|digit result of \lpr {luatexversion} modulo 100. \stopitem \startitem - The revision is the given by \lpr {luatexrevision}. This primitive expands to + The revision is reported by \lpr {luatexrevision}. This primitive expands to a positive integer. \stopitem \startitem @@ -90,7 +97,9 @@ The official \LUATEX\ version is defined as follows: \stopitem \stopitemize -\subsection{\lpr {formatname}} +\stopsubsubsection + +\startsubsubsection[title={\lpr {formatname}}] \topicindex{format} @@ -99,9 +108,15 @@ expansion is empty. Otherwise, the expansion is the value that \prm {jobname} ha during the \INITEX\ run that dumped the currently loaded format. You can use this token list to provide your own version info. -\section{\UNICODE\ text support} +\stopsubsubsection + +\stopsubsection + +\stopsection + +\startsection[title={\UNICODE\ text support}] -\subsection {Extended ranges} +\startsubsection[title={Extended ranges}] \topicindex{\UNICODE} @@ -113,7 +128,7 @@ always converted to a suitable graphic representation of that character in a specific font. However, while processing a list of to|-|be|-|typeset nodes, its contents may still be seen as a character. Inside \LUATEX\ there is no clear separation between the two concepts. Because the subtype of a glyph node can be -changed in \LUA\ it is up to the user: subtypes larger than 255 indicate that +changed in \LUA\ it is up to the user. Subtypes larger than 255 indicate that font processing has happened. A few primitives are affected by this, all in a similar fashion: each of them has @@ -121,16 +136,17 @@ to accommodate for a larger range of acceptable numbers. For instance, \prm {char} now accepts values between~0 and $1{,}114{,}111$. This should not be a problem for well|-|behaved input files, but it could create incompatibilities for input that would have generated an error when processed by older \TEX|-|based -engines. The affected commands with an altered initial (left of the equals sign) -or secondary (right of the equals sign) value are: \prm {char}, \prm {lccode}, +engines. The affected commands with an altered initial (left of the equal sign) +or secondary (right of the equal sign) value are: \prm {char}, \prm {lccode}, \prm {uccode}, \lpr {hjcode}, \prm {catcode}, \prm {sfcode}, \lpr {efcode}, \lpr {lpcode}, \lpr {rpcode}, \prm {chardef}. As far as the core engine is concerned, all input and output to text files is \UTF-8 encoded. Input files can be pre|-|processed using the \type {reader} callback. This will be explained in \in {section} [iocallback]. Normalization of -the \UNICODE\ input is on purpose not built|-|in can be handled by a macro -package during callback processing. +the \UNICODE\ input is on purpose not built|-|in and can be handled by a macro +package during callback processing. We have made some practical choices and the +user has to live with those. Output in byte|-|sized chunks can be achieved by using characters just outside of the valid \UNICODE\ range, starting at the value $1{,}114{,}112$ (0x110000). When @@ -143,14 +159,18 @@ are considered \quote {safe} and therefore printed as|-|is. You can disable escaping with \type {texio.setescape(false)} in which case you get the normal characters on the console. -\subsection{\lpr {Uchar}} +\stopsubsection + +\startsubsection[title={\lpr {Uchar}}] \topicindex{\UNICODE} The expandable command \lpr {Uchar} reads a number between~0 and $1{,}114{,}111$ and expands to the associated \UNICODE\ character. -\section{Extended tables} +\stopsubsection + +\startsubsection[title={Extended tables}] All traditional \TEX\ and \ETEX\ registers can be 16-bit numbers. The affected commands are: @@ -184,42 +204,18 @@ commands are: \stopfourcolumns Because font memory management has been rewritten, character properties in fonts -are no longer shared among fonts instances that originate from the same metric -file. - -\section{Attributes} - -\subsection{Attribute registers} - -\topicindex {attributes} +are no longer shared among font instances that originate from the same metric +file. Of course we share fonts in the backend when possible so that the resulting +\PDF\ file is as efficient as possible, but for instance also expansion and +protrusion no longer use copies as in \PDFTEX. -Attributes are a completely new concept in \LUATEX. Syntactically, they behave a -lot like counters: attributes obey \TEX's nesting stack and can be used after -\prm {the} etc.\ just like the normal \prm {count} registers. - -\startsyntax -\attribute <16-bit number> <optional equals> <32-bit number>!crlf -\attributedef <csname> <optional equals> <16-bit number> -\stopsyntax - -Conceptually, an attribute is either \quote {set} or \quote {unset}. Unset -attributes have a special negative value to indicate that they are unset, that -value is the lowest legal value: \type {-"7FFFFFFF} in hexadecimal, a.k.a. -$-2147483647$ in decimal. It follows that the value \type {-"7FFFFFFF} cannot be -used as a legal attribute value, but you {\it can\/} assign \type {-"7FFFFFFF} to -\quote {unset} an attribute. All attributes start out in this \quote {unset} -state in \INITEX. +\stopsubsection -Attributes can be used as extra counter values, but their usefulness comes mostly -from the fact that the numbers and values of all \quote {set} attributes are -attached to all nodes created in their scope. These can then be queried from any -\LUA\ code that deals with node processing. Further information about how to use -attributes for node list processing from \LUA\ is given in~\in {chapter}[nodes]. +\stopsection -Attributes are stored in a sorted (sparse) linked list that are shared when -possible. This permits efficient testing and updating. +\startsection[title={Attributes}] -\subsection{Nodes} +\startsubsection[title={Nodes}] \topicindex {nodes} @@ -246,10 +242,53 @@ constructed explicitly or can be the result of subprocesses. For instance, when lines are broken into paragraphs, the lines are a linked list of \nod {hlist} nodes. -We will see more of these nodes later on but for now that should be enough to be -able to follow the rest oof this chapter. +So, to summarize: all that you enter as content eventually becomes a node, often +as part of a (nested) list structure. They have a relative small memory footprint +and carry only the minimal amount of information needed. In traditional \TEX\ a +character node only held the font and slot number, in \LUATEX\ we also store some +language related information, the expansion factor, etc. Now that we have access +to these nodes from \LUA\ it makes sense to be able to carry more information +with an node and this is where attributes kick in. + +\stopsubsection + +\startsubsection[title={Attribute registers}] + +\topicindex {attributes} + +Attributes are a completely new concept in \LUATEX. Syntactically, they behave a +lot like counters: attributes obey \TEX's nesting stack and can be used after +\prm {the} etc.\ just like the normal \prm {count} registers. + +\startsyntax +\attribute <16-bit number> <optional equals> <32-bit number>!crlf +\attributedef <csname> <optional equals> <16-bit number> +\stopsyntax + +Conceptually, an attribute is either \quote {set} or \quote {unset}. Unset +attributes have a special negative value to indicate that they are unset, that +value is the lowest legal value: \type {-"7FFFFFFF} in hexadecimal, a.k.a. +$-2147483647$ in decimal. It follows that the value \type {-"7FFFFFFF} cannot be +used as a legal attribute value, but you {\it can\/} assign \type {-"7FFFFFFF} to +\quote {unset} an attribute. All attributes start out in this \quote {unset} +state in \INITEX. + +Attributes can be used as extra counter values, but their usefulness comes mostly +from the fact that the numbers and values of all \quote {set} attributes are +attached to all nodes created in their scope. These can then be queried from any +\LUA\ code that deals with node processing. Further information about how to use +attributes for node list processing from \LUA\ is given in~\in {chapter}[nodes]. + +Attributes are stored in a sorted (sparse) linked list that are shared when +possible. This permits efficient testing and updating. You can define many +thousands of attributes but normally such a large number makes no sense and is +also not that efficient because each node carries a (possibly shared) link to a +list of currently set attributes. But they are a convenient extension and one of +the first extensions we implemented in \LUATEX. + +\stopsubsection -\subsection{Box attributes} +\startsubsection[title={Box attributes}] \topicindex {attributes} \topicindex {boxes} @@ -325,9 +364,13 @@ indexing the node (here we do that with \type {[a]}. Running this snippet gives: Because some values are not set we need to apply the \type {tostring} function here so that we get the word \type {nil}. -\section{\LUA\ related primitives} +\stopsubsection -\subsection{\prm {directlua}} +\stopsection + +\startsection[title={\LUA\ related primitives}] + +\startsubsection[title={\prm {directlua}}] In order to merge \LUA\ code with \TEX\ input, a few new primitives are needed. The primitive \prm {directlua} is used to execute \LUA\ code immediately. The @@ -418,7 +461,9 @@ can break up \LUATEX\ pretty bad. If you are not careful while working with the node list interface, you may even end up with assertion errors from within the \TEX\ portion of the executable. -\subsection{\lpr {latelua}} +\stopsubsection + +\startsubsection[title={\lpr {latelua} and \lpr {lateluafunction}}] Contrary to \prm {directlua}, \lpr {latelua} stores \LUA\ code in a whatsit that will be processed at the time of shipping out. Its intended use is a cross @@ -437,9 +482,14 @@ Expansion of macros in the final \type {<general text>} is delayed until just before the whatsit is executed (like in \prm {write}). With regard to \PDF\ output stream \lpr {latelua} behaves as \PDF\ page literals. The \syntax {name <general text>} and \syntax {<16-bit number>} behave in the same way as -they do for \prm {directlua} +they do for \prm {directlua}. + +The \lpr {lateluafunction} primitive takes a number and is similar to \lpr +{luafunction} but gets delated to shipout time. It's just there for completeness. -\subsection{\lpr {luaescapestring}} +\stopsubsection + +\startsubsection[title={\lpr {luaescapestring}}] \topicindex {escaping} @@ -455,16 +505,17 @@ sequence is fully expanded. \stopsyntax Most often, this command is not actually the best way to deal with the -differences between the \TEX\ and \LUA. In very short bits of \LUA\ -code it is often not needed, and for longer stretches of \LUA\ code it -is easier to keep the code in a separate file and load it using \LUA's -\type {dofile}: +differences between \TEX\ and \LUA. In very short bits of \LUA\ code it is often +not needed, and for longer stretches of \LUA\ code it is easier to keep the code +in a separate file and load it using \LUA's \type {dofile}: \starttyping \directlua { dofile('mysetups.lua') } \stoptyping -\subsection{\lpr {luafunction} and \lpr {luafunctioncall}} +\stopsubsection + +\startsubsection[title={\lpr {luafunction}, \lpr {luafunctioncall} and \lpr {luadef}}] The \prm {directlua} commands involves tokenization of its argument (after picking up an optional name or number specification). The tokenlist is then @@ -498,17 +549,55 @@ in the following example the number \type {8} gets typeset. \stoptyping The \lpr {luafunctioncall} primitive does the same but is unexpandable, for -instance in an \prm {edef}. +instance in an \prm {edef}. In addition \LUATEX\ provides a definer: -\section {Alignments} +\starttyping + \luadef\MyFunctionA 1 + \global\luadef\MyFunctionB 2 +\protected\global\luadef\MyFunctionC 3 +\stoptyping -\subsection{\lpr {alignmark} and \lpr {aligntab}} +You should really use these commands with care. Some references get stored in +tokens and assume that the function is available when that token expands. On the +other hand, as we have tested this functionality in relative complex situations +normal usage should not give problems. -The primitive \lpr {alignmark} duplicates the functionality of \type {#} inside -alignment preambles, while \lpr {aligntab} duplicates the functionality of \type -{&}. +\stopsubsection + +\startsubsection[title={\lpr {luabytecode} and \lpr {luabytecodecall}}] + +Analogue to the function callers discussed in the previous section we have byte +code callers. Again the call variant is unexpandable. -\section{Catcode tables} +\starttyping +\directlua { + lua.bytecode[9998] = function(s) + tex.sprint(s*token.scan_int()) + end + lua.bytecode[5555] = function(s) + tex.sprint(s*token.scan_dimen()) + end +} +\stoptyping + +This works with: + +\starttyping +\luabytecode 9998 5 \luabytecode 5555 5sp +\luabytecodecall9998 5 \luabytecodecall5555 5sp +\stoptyping + +The variable \type {s} in the code is the number of the byte code register that +can be used for diagnostic purposes. The advantage of bytecode registers over +function calls is that they are stored in the format (but without upvalues). + +\stopsubsection + +\stopsection + +\startsection[title={Catcode tables}] + +\startsubsection[title={Catcodes}] \topicindex {catcodes} @@ -517,10 +606,12 @@ catcode regime in a single statement. You can have a practically unlimited numbe of different tables. This subsystem is backward compatible: if you never use the following commands, your document will not notice any difference in behaviour compared to traditional \TEX. The contents of each catcode table is independent -from any other catcode tables, and their contents is stored and retrieved from -the format file. +from any other catcode table, and its contents is stored and retrieved from the +format file. -\subsection{\lpr {catcodetable}} +\stopsubsection + +\startsubsection[title={\lpr {catcodetable}}] \startsyntax \catcodetable <15-bit number> @@ -530,7 +621,9 @@ The primitive \lpr {catcodetable} switches to a different catcode table. Such a table has to be previously created using one of the two primitives below, or it has to be zero. Table zero is initialized by \INITEX. -\subsection{\lpr {initcatcodetable}} +\stopsubsection + +\startsubsection[title={\lpr {initcatcodetable}}] \startsyntax \initcatcodetable <15-bit number> @@ -557,7 +650,9 @@ initial values are: \LL \stoptabulate -\subsection{\lpr {savecatcodetable}} +\stopsubsection + +\startsubsection[title={\lpr {savecatcodetable}}] \startsyntax \savecatcodetable <15-bit number> @@ -571,9 +666,13 @@ The new table is allocated globally: it will not go away after the current group has ended. If the supplied number is the currently active table, an error is raised. -\section{Suppressing errors} +\stopsubsection + +\stopsection + +\startsection[title={Suppressing errors}] -\subsection{\lpr {suppressfontnotfounderror}} +\startsubsection[title={\lpr {suppressfontnotfounderror}}] \topicindex {errors} @@ -586,7 +685,9 @@ assignment, making the requested csname for the font \prm {ifx} equal to \prm \suppressfontnotfounderror = 1 \stopsyntax -\subsection{\lpr {suppresslongerror}} +\stopsubsection + +\startsubsection[title={\lpr {suppresslongerror}}] \topicindex {errors} @@ -598,7 +699,9 @@ If this integer parameter is non|-|zero, then \LUATEX\ will not complain about \suppresslongerror = 1 \stopsyntax -\subsection{\lpr {suppressifcsnameerror}} +\stopsubsection + +\startsubsection[title={\lpr {suppressifcsnameerror}}] \topicindex {errors} @@ -613,7 +716,9 @@ indefinitely. \suppressifcsnameerror = 1 \stopsyntax -\subsection{\lpr {suppressoutererror}} +\stopsubsection + +\startsubsection[title={\lpr {suppressoutererror}}] \topicindex {errors} @@ -625,7 +730,9 @@ prohibited. \suppressoutererror = 1 \stopsyntax -\subsection{\lpr {suppressmathparerror}} +\stopsubsection + +\startsubsection[title={\lpr {suppressmathparerror}}] \topicindex {errors} \topicindex {math} @@ -644,7 +751,9 @@ $ x + 1 = a $ \stoptyping -\subsection{\lpr {suppressprimitiveerror}} +\stopsubsection + +\startsubsection[title={\lpr {suppressprimitiveerror}}] \topicindex {errors} \topicindex {primitives} @@ -657,19 +766,13 @@ When set to a non|-|zero value the following command will not issue an error: \primitive\notaprimitive \stopsyntax -\section {Math} - -\topicindex {math} +\stopsubsection -We will cover math extensions in its own chapter because not only the font -subsystem and spacing model have been enhanced (thereby introducing many new -primitives) but also because some more control has been added to existing -functionality. Much of this relates to the differences approaches of traditional -\TEX\ fonts and \OPENTYPE\ math. +\stopsection -\section{Fonts} +\startsection[title={Fonts}] -\subsection{Font syntax} +\startsubsection[title={Font syntax}] \topicindex {fonts} @@ -682,7 +785,9 @@ functionality. Much of this relates to the differences approaches of traditional This allows for embedded spaces, without the need for double quotes. Macro expansion takes place inside the argument. -\subsection{\lpr {fontid} and \lpr {setfontid}} +\stopsubsection + +\startsubsection[title={\lpr {fontid} and \lpr {setfontid}}] \startsyntax \fontid\font @@ -711,7 +816,9 @@ be bound to a real font, after all it's just a number. The primitive \lpr {setfontid} can be used to enable a font with the given id, which of course needs to be a valid one. -\subsection{\lpr {noligs} and \lpr {nokerns}} +\stopsubsection + +\startsubsection[title={\lpr {noligs} and \lpr {nokerns}}] \topicindex {ligatures+suppress} \topicindex {kerns+suppress} @@ -731,7 +838,9 @@ kerning functions, i.e.\ by assigning dummy functions to their associated callbacks. Keep in mind that when you define a font (using \LUA) you can also omit the kern and ligature tables, which has the same effect as the above. -\subsection{\type{\nospaces}} +\stopsubsection + +\startsubsection[title={\type{\nospaces}}] \topicindex {spaces+suppress} @@ -752,9 +861,13 @@ space. \stopcombination \stopplacefigure -\section{Tokens, commands and strings} +\stopsubsection + +\stopsection + +\startsection[title={Tokens, commands and strings}] -\subsection{\lpr {scantextokens}} +\startsubsection[title={\lpr {scantextokens}}] \topicindex {tokens+scanning} @@ -778,7 +891,10 @@ differences are: \stopitem \stopitemize -\subsection{\lpr {toksapp}, \lpr {tokspre}, \lpr {etoksapp} and \lpr {etokspre}} +\stopsubsection + +\startsubsection[title={\lpr {toksapp}, \lpr {tokspre}, \lpr {etoksapp}, \lpr {etokspre}, +\lpr {gtoksapp}, \lpr {gtokspre}, \lpr {xtoksapp}, \lpr {xtokspre}}] Instead of: @@ -793,13 +909,15 @@ you can use: \stoptyping The \type {pre} variants prepend instead of append, and the \type {e} variants -expand the passed general text. +expand the passed general text. The \type {g} and \type {x} variants are global. + +\stopsubsection -\subsection{\prm {csstring}, \lpr {begincsname} and \lpr {lastnamedcs}} +\startsubsection[title={\prm {csstring}, \lpr {begincsname} and \lpr {lastnamedcs}}] These are somewhat special. The \prm {csstring} primitive is like \prm {string} but it omits the leading escape character. This can be -somewhat more efficient that stripping it of afterwards. +somewhat more efficient than stripping it afterwards. The \lpr {begincsname} primitive is like \prm {csname} but doesn't create a relaxed equivalent when there is no such name. It is equivalent to @@ -822,9 +940,11 @@ is one that should be used with care. The above example could be written as: This is slightly more efficient than constructing the string twice (deep down in \LUATEX\ this also involves some \UTF8 juggling), but probably more relevant is -that it saves a few tokens and can make code a bit more more readable. +that it saves a few tokens and can make code a bit more readable. + +\stopsubsection -\subsection{\lpr {clearmarks}} +\startsubsection[title={\lpr {clearmarks}}] \topicindex {marks} @@ -836,7 +956,17 @@ immediate command. \clearmarks <16-bit number> \stopsyntax -\subsection{\type{\letcharcode}} +\stopsubsection + +\startsubsection[title={\lpr {alignmark} and \lpr {aligntab}}] + +The primitive \lpr {alignmark} duplicates the functionality of \type {#} inside +alignment preambles, while \lpr {aligntab} duplicates the functionality of \type +{&}. + +\stopsubsection + +\startsubsection[title={\lpr {letcharcode}}] This primitive can be used to assign a meaning to an active character, as in: @@ -844,12 +974,162 @@ This primitive can be used to assign a meaning to an active character, as in: \def\foo{bar} \letcharcode123=\foo \stoptyping -This can be a bit nicer that using the uppercase tricks (using the property of +This can be a bit nicer than using the uppercase tricks (using the property of \prm {uppercase} that it treats active characters special). -\section{Boxes, rules and leaders} +\stopsubsection + +\startsubsection[title={\lpr {glet}}] + +This primitive is similar to: + +\starttyping +\protected\def\glet{\global\let} +\stoptyping + +but faster (only measurable with millions of calls) and probably more convenient +(after all we also have \type {\gdef}). + +\stopsubsection + +\startsubsection[title={\lpr {expanded}, \lpr {immediateassignment} and \lpr {immediateassigned}}] + +\topicindex {expansion} + +The \lpr {expanded} primitive takes a token list and expands it content which can +come in handy: it avoids a tricky mix of \prm {expandafter} and \prm {noexpand}. +You can compare it with what happens inside the body of an \prm {edef}. But this +kind of expansion it still doesn't expand some primitive operations. + +\startbuffer +\newcount\NumberOfCalls + +\def\TestMe{\advance\NumberOfCalls1 } + +\edef\Tested{\TestMe foo:\the\NumberOfCalls} +\edef\Tested{\TestMe foo:\the\NumberOfCalls} +\edef\Tested{\TestMe foo:\the\NumberOfCalls} + +\meaning\Tested +\stopbuffer + +\typebuffer + +The result is a macro that has the not expanded code in its body: + +\getbuffer + +Instead we can define \tex {TestMe} in a way that expands the assignment +immediately. You need of course to be aware of preventing look ahead interference +by using a space or \tex {relax} (often an expression works better as it doesn't +leave an \tex {relax}). + +\startbuffer +\def\TestMe{\immediateassignment\advance\NumberOfCalls1 } + +\edef\Tested{\TestMe foo:\the\NumberOfCalls} +\edef\Tested{\TestMe foo:\the\NumberOfCalls} +\edef\Tested{\TestMe foo:\the\NumberOfCalls} + +\meaning\Tested +\stopbuffer + +\typebuffer + +This time the counter gets updates and we don't see interference in the +resulting \tex {Tested} macro: + +\getbuffer + +Here is a somewhat silly example of expanded comparison: + +\startbuffer +\def\expandeddoifelse#1#2#3#4% + {\immediateassignment\edef\tempa{#1}% + \immediateassignment\edef\tempb{#2}% + \ifx\tempa\tempb + \immediateassignment\def\next{#3}% + \else + \immediateassignment\def\next{#4}% + \fi + \next} + +\edef\Tested + {(\expandeddoifelse{abc}{def}{yes}{nop}/% + \expandeddoifelse{abc}{abc}{yes}{nop})} + +\meaning\Tested +\stopbuffer + +\typebuffer + +It gives: + +\getbuffer + +A variant is: + +\starttyping +\def\expandeddoifelse#1#2#3#4% + {\immediateassigned{ + \edef\tempa{#1}% + \edef\tempb{#2}% + }% + \ifx\tempa\tempb + \immediateassignment\def\next{#3}% + \else + \immediateassignment\def\next{#4}% + \fi + \next} +\stoptyping + +The possible error messages are the same as using assignments in preambles of +alignments and after the \prm {accent} command. The supported assignments are the +so called prefixed commands (except box assignments). + +\stopsubsection + +\startsubsection[title={\lpr {ifcondition}}] + +\topicindex {conditions} + +This is a somewhat special one. When you write macros conditions need to be +properly balanced in order to let \TEX's fast branch skipping work well. This new +primitive is basically a no||op flagged as a condition so that the scanner can +recognize it as an if|-|test. However, when a real test takes place the work is +done by what follows, in the next example \tex {something}. + +\starttyping +\unexpanded\def\something#1#2% + {\edef\tempa{#1}% + \edef\tempb{#2} + \ifx\tempa\tempb} + +\ifcondition\something{a}{b}% + \ifcondition\something{a}{a}% + true 1 + \else + false 1 + \fi +\else + \ifcondition\something{a}{a}% + true 2 + \else + false 2 + \fi +\fi +\stoptyping + +If you are familiar with \METAPOST, this is a bit like \type {vardef} where the macro +has a return value. Here the return value is a test. + +\stopsubsection + +\stopsection + +\startsection[title={Boxes, rules and leaders}] -\subsection{\lpr {outputbox}} +\startsubsection[title={\lpr {outputbox}}] \topicindex {output} @@ -861,12 +1141,16 @@ the acceptable range is from 0 to 65535. \outputbox = 12345 \stopsyntax -\subsection{\prm {vpack}, \prm {hpack} and \prm {tpack}} +\stopsubsection + +\startsubsection[title={\prm {vpack}, \prm {hpack} and \prm {tpack}}] These three primitives are like \prm {vbox}, \prm {hbox} and \prm {vtop} but don't apply the related callbacks. -\subsection{\prm {vsplit}} +\stopsubsection + +\startsubsection[title={\prm {vsplit}}] \topicindex {splitting} @@ -874,7 +1158,9 @@ The \prm {vsplit} primitive has to be followed by a specification of the require height. As alternative for the \type {to} keyword you can use \type {upto} to get a split of the given size but result has the natural dimensions then. -\subsection[sec:imagedandforms]{Images and Forms} +\stopsubsection + +\startsubsection[title={Images and reused box objects},reference=sec:imagedandforms] These two concepts are now core concepts and no longer whatsits. They are in fact now implemented as rules with special properties. Normal rules have subtype~0, @@ -890,7 +1176,7 @@ should treat them as such and check for the current output mode if applicable. \DB command \BC explanation \NC \NR \TB \NC \lpr {saveboxresource} \NC save the box as an object to be included later \NC \NR -\NC \lpr {saveimageresource} \NC save the image as an object to be includes later \NC \NR +\NC \lpr {saveimageresource} \NC save the image as an object to be included later \NC \NR \NC \lpr {useboxresource} \NC include the saved box object here (by index) \NC \NR \NC \lpr {useimageresource} \NC include the saved image object here (by index) \NC \NR \NC \lpr {lastsavedboxresourceindex} \NC the index of the last saved box object \NC \NR @@ -917,16 +1203,20 @@ is the \type {type} key. When set to non|-|zero the \type {/Type} entry is omitted. A value of 1 or 3 still writes a \type {/BBox}, while 2 or 3 will write a \type {/Matrix}. -\subsection{\lpr {nohrule} and \lpr {novrule}} +\stopsubsection + +\startsubsection[title={\lpr {nohrule} and \lpr {novrule}}] \topicindex {rules} Because introducing a new keyword can cause incompatibilities, two new primitives were introduced: \lpr {nohrule} and \lpr {novrule}. These can be used to reserve space. This is often more efficient than creating an empty box with fake -dimensions). +dimensions. -\subsection{\lpr {gleaders}} +\stopsubsection + +\startsubsection[title={\lpr {gleaders}}] \topicindex {leaders} @@ -935,9 +1225,13 @@ they are like normal \prm {leaders} in that they align nicely, except that the alignment is based on the {\it largest\/} enclosing box instead of the {\it smallest\/}. The \type {g} stresses this global nature. -\section {Languages} +\stopsubsection + +\stopsection + +\startsection[title={Languages}] -\subsection{\lpr {hyphenationmin}} +\startsubsection[title={\lpr {hyphenationmin}}] \topicindex {languages} \topicindex {hyphenation} @@ -948,9 +1242,11 @@ within the constraints of the \prm {lefthyphenmin} and \prm {righthyphenmin} values (as stored in the glyph node). This primitive accepts a number and stores the value with the language. -\subsection{\prm {boundary}, \prm {noboundary}, \prm {protrusionboundary} and \prm {wordboundary}} +\stopsubsection -The \prm {noboundary} commands used to inject a whatsit node but now injects a normal +\startsubsection[title={\prm {boundary}, \prm {noboundary}, \prm {protrusionboundary} and \prm {wordboundary}}] + +The \prm {noboundary} command is used to inject a whatsit node but now injects a normal node with type \nod {boundary} and subtype~0. In addition you can say: \starttyping @@ -964,16 +1260,22 @@ passing this value is a side effect of the generalization. The subtypes~2 and~3 are used to control protrusion and word boundaries in hyphenation and have related primitives. -\section{Control and debugging} +\stopsubsection + +\stopsection + +\startsection[title={Control and debugging}] -\subsection {Tracing} +\startsubsection[title={Tracing}] \topicindex {tracing} If \prm {tracingonline} is larger than~2, the node list display will also print the node number of the nodes. -\subsection{\lpr {outputmode}} +\stopsubsection + +\startsubsection[title={\lpr {outputmode}}] \topicindex {output} \topicindex {backend} @@ -988,15 +1290,22 @@ The \lpr {outputmode} variable tells \LUATEX\ what it has to produce: \LL \stoptabulate -\subsection{\lpr {draftmode}} +\stopsubsection + +\startsubsection[title={\lpr {draftmode}}] + +The value of the \lpr {draftmode} counter signals the backend if it should output +less. The \PDF\ backend accepts a value of~1, while the \DVI\ backend ignores the +value. This is no critical feature so we can remove it in future versions when it +can make the backend cleaner. -The value of the \lpr {draftmode} counter signals the backend if it should -output less. The \PDF\ backend accepts a value of~1, while the \DVI\ backend -ignores the value. +\stopsubsection -\section {Files} +\stopsection -\subsection{File syntax} +\startsection[title={Files}] + +\startsubsection[title={File syntax}] \topicindex {files+names} @@ -1027,7 +1336,9 @@ extension is that a csname not always makes sense. The zero case is the default. \LL \stoptabulate -\subsection{Writing to file} +\stopsubsection + +\startsubsection[title={Writing to file}] \topicindex {files+writing} @@ -1035,6 +1346,22 @@ You can now open upto 127 files with \prm {openout}. When no file is open writes will go to the console and log. As a consequence a system command is no longer possible but one can use \type {os.execute} to do the same. +\stopsubsection + +\stopsection + +\startsection[title={Math}] + +\topicindex {math} + +We will cover math extensions in its own chapter because not only the font +subsystem and spacing model have been enhanced (thereby introducing many new +primitives) but also because some more control has been added to existing +functionality. Much of this relates to the different approaches of traditional +\TEX\ fonts and \OPENTYPE\ math. + +\stopsection + \stopchapter \stopcomponent diff --git a/manual/luatex-firstpage.tex b/manual/luatex-firstpage.tex index 52a0573b8d5fc1bcc38700c72b904ee0f215e783..e64cc61528648815cf7ca057168604023e03981a 100644 --- a/manual/luatex-firstpage.tex +++ b/manual/luatex-firstpage.tex @@ -6,7 +6,7 @@ \raggedleft \definedfont[Bold*default at 48pt] \setupinterlinespace - \blue Lua\TeX \endgraf Reference \endgraf Manual \endgraf + \blue \documentvariable{manual} \endgraf Reference \endgraf Manual \endgraf \stop \vfill diff --git a/manual/luatex-fontloader.tex b/manual/luatex-fontloader.tex index d0735aa242d6e659abe4d4cbec5263c9082afbcc..e99ea1d2ff237a43c75716e125ca701431cffd2b 100644 --- a/manual/luatex-fontloader.tex +++ b/manual/luatex-fontloader.tex @@ -17,10 +17,12 @@ information about it. The tables returned by the loader are not that far from th standard. We have no plans to extend the loader (it may even become an external module at some time). -\section{Getting quick information on a font} +\startsection[title={Getting quick information on a font}][library=fontloader] \topicindex {fonts+information} +\libindex{info} + When you want to locate font by name you need some basic information that is hidden in the font files. For that reason we provide an efficient helper that gets the basic information without loading all of the font. Normally this helper @@ -54,11 +56,17 @@ Getting information through this function is (sometimes much) more efficient tha loading the font properly, and is therefore handy when you want to create a dictionary of available fonts based on a directory contents. -\section{Loading an \OPENTYPE\ or \TRUETYPE\ file} +\stopsection + +\startsection[title={Loading an \OPENTYPE\ or \TRUETYPE\ file}][library=fontloader] \topicindex {\OPENTYPE} \topicindex {\TRUETYPE} +\libindex{open} +\libindex{close} +\libindex{to_table} + If you want to use an \OPENTYPE\ font, you have to get the metric information from somewhere. Using the \type {fontloader} library, the simplest way to get that information is thus: @@ -108,8 +116,8 @@ to \LUATEX, otherwise the font inclusion backend will not be able to find the correct font in the collection. See \in {section} [fontloadertables] for details on the userdata object returned -by \type {fontloader.open()} and the layout of the \type {metrics} table returned -by \type {fontloader.to_table()}. +by \type {fontloader.open} and the layout of the \type {metrics} table returned +by \type {fontloader.to_table}. The font file is parsed and partially interpreted by the font loading routines from \FONTFORGE. The file format can be \OPENTYPE, \TRUETYPE, \TRUETYPE\ @@ -136,11 +144,6 @@ file ourselves: some way. \stopitem -\startitem - In the future, it may be interesting to allow \LUA\ scripts access to - the font program itself, perhaps even creating or changing the font. -\stopitem - \stopitemize A loaded font is discarded with: @@ -149,7 +152,11 @@ A loaded font is discarded with: fontloader.close(<userdata> font) \stopfunctioncall -\section{Applying a \quote{feature file}} +\stopsection + +\startsection[title={Applying a \quote{feature file}}][library=fontloader] + +\libindex{apply_featurefile} You can apply a \quote{feature file} to a loaded font: @@ -176,10 +183,14 @@ If the function fails, the return value is a table containing any errors reporte by fontloader while applying the feature file. On success, \type {nil} is returned. -\section{Applying an \quote{\AFM\ file}} +\stopsection + +\startsection[title={Applying an \quote{\AFM\ file}}][library=fontloader] \topicindex {\TYPEONE} +\libindex{apply_afmfile} + You can apply an \quote {\AFM\ file} to a loaded font: \startfunctioncall @@ -195,7 +206,7 @@ ftp://ftp.math.utah.edu/u/ma/hohn/linux/postscript/5004.AFM_Spec.pdf for more information about \AFM\ files. -Note: If you \type {fontloader.open()} a \TYPEONE\ file named \type {font.pfb}, +Note: If you \type {fontloader.open} a \TYPEONE\ file named \type {font.pfb}, the library will automatically search for and apply \type {font.afm} if it exists in the same directory as the file \type {font.pfb}. In that case, there is no need for an explicit call to \type {apply_afmfile()}. @@ -203,18 +214,22 @@ need for an explicit call to \type {apply_afmfile()}. If the function fails, the return value is a table containing any errors reported by fontloader while applying the AFM file. On success, \type {nil} is returned. -\section[fontloadertables]{Fontloader font tables} +\stopsection + +\startsection[title={Fontloader font tables},reference=fontloadertables][library=fontloader] \topicindex {fontloader+tables} -As mentioned earlier, the return value of \type {fontloader.open()} is a userdata +\libindex{fields} + +As mentioned earlier, the return value of \type {fontloader.open} is a userdata object. One way to have access to the actual metrics is to call \type -{fontloader.to_table()} on this object, returning the table structure that is +{fontloader.to_table} on this object, returning the table structure that is explained in the following sections. In teh following sections we will not explain each field in detail. Most fields are self descriptive and for the more technical aspects you need to consult the relevant font references. -It turns out that the result from \type {fontloader.to_table()} sometimes needs +It turns out that the result from \type {fontloader.to_table} sometimes needs very large amounts of memory (depending on the font's complexity and size) so it is possible to access the userdata object directly. @@ -279,9 +294,11 @@ local fields = fontloader.fields(f) local fields = fontloader.fields(f.glyphs[0]) \stopfunctioncall -\section{Table types} +\stopsection + +\startsection[title={Table types}][library=fontloader] -\subsection{Top-level} +\startsubsection[title={The main table}] The top|-|level keys in the returned table are (the explanations in this part of the documentation are not yet finished): @@ -357,7 +374,6 @@ the documentation are not yet finished): \NC \type{creationtime} \NC number \NC \NC \NR \NC \type{modificationtime} \NC number \NC \NC \NR \NC \type{os2_version} \NC number \NC \NC \NR -\NC \type{sfd_version} \NC number \NC \NC \NR \NC \type{math} \NC table \NC \NC \NR \NC \type{validation_state} \NC table \NC \NC \NR \NC \type{horiz_base} \NC table \NC \NC \NR @@ -367,10 +383,12 @@ the documentation are not yet finished): \LL \stoptabulate -\subsection{Glyph items} +\stopsubsection + +\startsubsection[title={\type {glyphs}}] The \type {glyphs} is an array containing the per|-|character -information (quite a few of these are only present if nonzero). +information (quite a few of these are only present if non|-|zero). \starttabulate[|l|l|p|] \DB key \BC type \BC explanation \NC \NR @@ -380,8 +398,8 @@ information (quite a few of these are only present if nonzero). \NC \type{boundingbox} \NC array \NC array of four numbers, see note below \NC \NR \NC \type{width} \NC number \NC only for horizontal fonts \NC \NR \NC \type{vwidth} \NC number \NC only for vertical fonts \NC \NR -\NC \type{tsidebearing} \NC number \NC only for vertical ttf/otf fonts, and only if nonzero \NC \NR -\NC \type{lsidebearing} \NC number \NC only if nonzero and not equal to boundingbox[1] \NC \NR +\NC \type{tsidebearing} \NC number \NC only for vertical ttf/otf fonts, and only if non|-|zero \NC \NR +\NC \type{lsidebearing} \NC number \NC only if non|-|zero and not equal to boundingbox[1] \NC \NR \NC \type{class} \NC string \NC one of "none", "base", "ligature", "mark", "component" (if not present, the glyph class is \quote {automatic}) \NC \NR \NC \type{kerns} \NC array \NC only for horizontal fonts, if set \NC \NR @@ -482,7 +500,7 @@ The \type {ligatures} is a linear array of small hashes: \stoptabulate The \type {anchor} table is indexed by a string signifying the anchor type, which -is one of +is one of: \starttabulate[|l|l|p|] \DB key \BC type \BC explanation \NC \NR @@ -532,7 +550,9 @@ For clarification, an anchor table could for example look like this : Note: The \type {baselig} table can be sparse! -\subsection{map table} +\stopsubsection + +\startsubsection[title={\type {map}}] The top|-|level map is a list of encoding mappings. Each of those is a table itself. @@ -576,15 +596,15 @@ The \type {enc} table is a bit more verbose: \NC \type{only_1byte} \NC number \NC \NC \NR \NC \type{has_1byte} \NC number \NC \NC \NR \NC \type{has_2byte} \NC number \NC \NC \NR -\NC \type{is_unicodebmp} \NC number \NC only if nonzero\NC \NR -\NC \type{is_unicodefull} \NC number \NC only if nonzero\NC \NR -\NC \type{is_custom} \NC number \NC only if nonzero\NC \NR -\NC \type{is_original} \NC number \NC only if nonzero\NC \NR -\NC \type{is_compact} \NC number \NC only if nonzero\NC \NR -\NC \type{is_japanese} \NC number \NC only if nonzero\NC \NR -\NC \type{is_korean} \NC number \NC only if nonzero\NC \NR -\NC \type{is_tradchinese} \NC number \NC only if nonzero [name?]\NC \NR -\NC \type{is_simplechinese} \NC number \NC only if nonzero\NC \NR +\NC \type{is_unicodebmp} \NC number \NC only if non|-|zero\NC \NR +\NC \type{is_unicodefull} \NC number \NC only if non|-|zero\NC \NR +\NC \type{is_custom} \NC number \NC only if non|-|zero\NC \NR +\NC \type{is_original} \NC number \NC only if non|-|zero\NC \NR +\NC \type{is_compact} \NC number \NC only if non|-|zero\NC \NR +\NC \type{is_japanese} \NC number \NC only if non|-|zero\NC \NR +\NC \type{is_korean} \NC number \NC only if non|-|zero\NC \NR +\NC \type{is_tradchinese} \NC number \NC only if non|-|zero [name?]\NC \NR +\NC \type{is_simplechinese} \NC number \NC only if non|-|zero\NC \NR \NC \type{low_page} \NC number \NC \NC \NR \NC \type{high_page} \NC number \NC \NC \NR \NC \type{iconv_name} \NC string \NC \NC \NR @@ -592,12 +612,16 @@ The \type {enc} table is a bit more verbose: \LL \stoptabulate -\subsection{private table} +\stopsubsection + +\startsubsection[title={\type {private}}] This is the font's private \POSTSCRIPT\ dictionary, if any. Keys and values are both strings. -\subsection{cidinfo table} +\stopsubsection + +\startsubsection[title={\type {cidinfo}}] \starttabulate[|l|l|p|] \DB key \BC type \BC explanation \NC \NR @@ -609,7 +633,9 @@ both strings. \LL \stoptabulate -\subsection[fontloaderpfminfotable]{pfminfo table} +\stopsubsection + +\startsubsection[reference=fontloaderpfminfotable,title={\type {pfminfo}}] The \type {pfminfo} table contains most of the OS/2 information: @@ -688,7 +714,9 @@ The \type {panose} subtable has exactly 10 string keys: \LL \stoptabulate -\subsection[fontloadernamestable]{names table} +\stopsubsection + +\startsubsection[reference=fontloadernamestable,title={\type {names}}] Each item has two top|-|level keys: @@ -709,7 +737,9 @@ are: \type {copyright}, \type {family}, \type {subfamily}, \type {uniqueid}, {sampletext}, \type {cidfindfontname}, \type {wwsfamily} and \type {wwssubfamily}. -\subsection{anchor_classes table} +\stopsubsection + +\startsubsection[title={\type {anchor_classes}}] The anchor_classes classes: @@ -725,7 +755,9 @@ The anchor_classes classes: % type is actually a lookup subtype, not a feature name. Officially, these % strings should be gpos_mark2mark etc. -\subsection{gpos table} +\stopsubsection + +\startsubsection[title={\type {gpos}}] The \type {gpos} table has one array entry for each lookup. (The \type {gpos_} prefix is somewhat redundant.) @@ -806,7 +838,9 @@ Note: the kernclass (as far as we can see) always has one entry so it could be o deep instead. Also the seconds start at \type {[2]} which is close to the fontforge internals so we keep that too. -\subsection{gsub table} +\stopsubsection + +\startsubsection[title={\type {gsub}}] This has identical layout to the \type {gpos} table, except for the type: @@ -821,7 +855,9 @@ type: \LL \stoptabulate -\subsection{ttf_tables and ttf_tab_saved tables} +\stopsubsection + +\startsubsection[title={\type {ttf_tables} and \type {ttf_tab_saved}}] \starttabulate[|l|l|p|] \DB key \BC type \BC explanation \NC \NR @@ -833,7 +869,9 @@ type: \LL \stoptabulate -\subsection{mm table} +\stopsubsection + +\startsubsection[title={\type {mm}}] \starttabulate[|l|l|p|] \DB key \BC type \BC explanation \NC \NR @@ -862,12 +900,16 @@ The \type {axismaps}: \LL \stoptabulate -\subsection{mark_classes table} +\stopsubsection + +\startsubsection[title={\type {mark_classes}}] The keys in this table are mark class names, and the values are a space|-|separated string of glyph names in this class. -\subsection{math table} +\stopsubsection + +\startsubsection[title={\type {math}}] The math table has the variables that are also discussed in the chapter aboout math: \type {ScriptPercentScaleDown}, \type {ScriptScriptPercentScaleDown}, \type @@ -900,11 +942,15 @@ math: \type {ScriptPercentScaleDown}, \type {ScriptScriptPercentScaleDown}, \typ {MinConnectorOverlap}, \type {FractionDelimiterSize} and \type {FractionDelimiterDisplayStyleSize}. -\subsection{validation_state table} +\stopsubsection + +\startsubsection[title={\type {validation_state}}] This is just a bonus table with keys: \type {bad_ps_fontname}, \type {bad_glyph_table}, \type {bad_cff_table}, \type {bad_metrics_table}, \type {bad_cmap_table}, \type {bad_bitmaps_table}, \type {bad_gx_table}, \type {bad_ot_table}, \type {bad_os2_version} and \type {bad_sfnt_header}. -\subsection{horiz_base and vert_base table} +\stopsubsection + +\startsubsection[title={\type {horiz_base} and \type {vert_base}}] \starttabulate[|l|l|p|] \DB key \BC type \BC explanation \NC \NR @@ -941,7 +987,9 @@ The \type {lang} subtable: The \type {features} points to an array of tables with the same layout except that in those nested tables, the tag represents a language. -\subsection{altuni table} +\stopsubsection + +\startsubsection[title={\type {altuni}}] An array of alternate \UNICODE\ values. Inside that array are hashes with: @@ -953,7 +1001,9 @@ An array of alternate \UNICODE\ values. Inside that array are hashes with: \LL \stoptabulate -\subsection{vert_variants and horiz_variants table} +\stopsubsection + +\startsubsection[title={\type {vert_variants} and \type {horiz_variants}}] \starttabulate[|l|l|p|] \DB key \BC type \BC explanation \NC \NR @@ -977,7 +1027,9 @@ The \type {parts} table is an array of smaller tables: \LL \stoptabulate -\subsection{mathkern table} +\stopsubsection + +\startsubsection[title={\type {mathkern}}] \starttabulate[|l|l|p|] \DB key \BC type \BC explanation \NC \NR @@ -999,15 +1051,21 @@ Each of the subtables is an array of small hashes with two keys: \LL \stoptabulate -\subsection{kerns table} +\stopsubsection + +\startsubsection[title={\type {kerns}}] Substructure is identical to the per|-|glyph subtable. -\subsection{vkerns table} +\stopsubsection + +\startsubsection[title={\type {vkerns}}] Substructure is identical to the per|-|glyph subtable. -\subsection{texdata table} +\stopsubsection + +\startsubsection[title={\type {texdata}}] \starttabulate[|l|l|p|] \DB key \BC type \BC explanation \NC \NR @@ -1017,7 +1075,9 @@ Substructure is identical to the per|-|glyph subtable. \LL \stoptabulate -\subsection{lookups table} +\stopsubsection + +\startsubsection[title={\type {lookups}}] Top|-|level \type {lookups} is quite different from the ones at character level. The keys in this hash are strings, the values the actual lookups, represented as @@ -1083,7 +1143,7 @@ for coverage: \LL \stoptabulate -and for reversecoverage: +and for reverse coverage: \starttabulate[|l|l|p|] \DB key \BC type \BC explanation \NC \NR @@ -1095,6 +1155,10 @@ and for reversecoverage: \LL \stoptabulate +\stopsubsection + +\stopsection + \stopchapter \stopcomponent diff --git a/manual/luatex-fonts.tex b/manual/luatex-fonts.tex index cc9755bc20dad4c41e5ea8ed09289db0038e4eb1..0e1cc8cc5a27d3ca3f5fbb8d4c864299285e12d6 100644 --- a/manual/luatex-fonts.tex +++ b/manual/luatex-fonts.tex @@ -6,7 +6,7 @@ \startchapter[reference=fonts,title={Font structure}] -\section {The font tables} +\startsection[title={The font tables}] \topicindex {fonts} \topicindex {fonts+tables} @@ -46,7 +46,7 @@ the table are as follows: \NC \type{header} \NC yes \NC no \NC no \NC string \NC header comments, if any \NC \NR \NC \type{hyphenchar} \NC no \NC no \NC yes \NC number \NC default: \TEX's \prm {hyphenchar} \NC \NR \NC \type{parameters} \NC no \NC yes \NC yes \NC hash \NC default: 7 parameters, all zero \NC \NR -\NC \type{size} \NC no \NC yes \NC yes \NC number \NC loaded (at) size. (default: same as designsize) \NC \NR +\NC \type{size} \NC no \NC yes \NC yes \NC number \NC the required scaling (by default the same as designsize) \NC \NR \NC \type{skewchar} \NC no \NC no \NC yes \NC number \NC default: \TEX's \prm {skewchar} \NC \NR \NC \type{type} \NC yes \NC no \NC yes \NC string \NC basic type of this font \NC \NR \NC \type{format} \NC no \NC no \NC yes \NC string \NC disk format type \NC \NR @@ -62,11 +62,11 @@ the table are as follows: \NC \type{cache} \NC no \NC no \NC yes \NC string \NC This key controls caching of the \LUA\ table on the \TEX\ end where \type {yes} means: use a reference to the table that is passed to \LUATEX\ (this is the - default), and no \type {no} means: don't store the + default), and \type {no} means: don't store the table reference, don't cache any \LUA\ data for this font while \type {renew} means: don't store the table reference, but save a reference to the table that is - created at the first access to one of its fields in + created at the first access to one of its fields in the font. \NC \NR \NC \type{nomath} \NC no \NC no \NC yes \NC boolean \NC This key allows a minor speedup for text fonts. If it is present and true, then \LUATEX\ will not check the @@ -225,17 +225,20 @@ The following top|-|level keys can be present inside a character hash: \stoptabulate The values of \type {top_accent}, \type {bot_accent} and \type {mathkern} are -used only for math accent and superscript placement, see the \at {math chapter} -[math] in this manual for details. The values of \type {left_protruding} and -\type {right_protruding} are used only when \lpr {protrudechars} is non-zero. -Whether or not \type {expansion_factor} is used depends on the font's global -expansion settings, as well as on the value of \lpr {adjustspacing}. - -The usage of \type {tounicode} is this: if this font specifies a \type {tounicode=1} at the top level, then \LUATEX\ will construct a \type {/ToUnicode} -entry for the \PDF\ font (or font subset) based on the character|-|level \type {tounicode} strings, where they are available. If a character does not have a +used only for math accent and superscript placement, see \at {page} [math] in +this manual for details. The values of \type {left_protruding} and \type +{right_protruding} are used only when \lpr {protrudechars} is non-zero. Whether +or not \type {expansion_factor} is used depends on the font's global expansion +settings, as well as on the value of \lpr {adjustspacing}. + +The usage of \type {tounicode} is this: if this font specifies a \type +{tounicode=1} at the top level, then \LUATEX\ will construct a \type {/ToUnicode} +entry for the \PDF\ font (or font subset) based on the character|-|level \type +{tounicode} strings, where they are available. If a character does not have a sensible \UNICODE\ equivalent, do not provide a string either (no empty strings). -If the font level \type {tounicode} is not set, then \LUATEX\ will build up \type {/ToUnicode} based on the \TEX\ code points you used, and any character-level +If the font level \type {tounicode} is not set, then \LUATEX\ will build up \type +{/ToUnicode} based on the \TEX\ code points you used, and any character-level \type {tounicodes} will be ignored. The string format is exactly the format that is expected by Adobe \CMAP\ files (\UTF-16BE in hexadecimal encoding), minus the enclosing angle brackets. For instance the \type {tounicode} for a \type {fi} @@ -276,7 +279,7 @@ Each of those components is itself a hash of up to five keys: The \type {kerns} table is a hash indexed by character index (and \quote {character index} is defined as either a non|-|negative integer or the string -value \type {right_boundary}), with the values the kerning to be applied, in +value \type {right_boundary}), with the values of the kerning to be applied, in scaled points. The \type {ligatures} table is a hash indexed by character index (and \quote @@ -321,7 +324,9 @@ indicates the final insertion point. The \type {commands} array is explained below. -\section {Real fonts} +\stopsection + +\startsection[title={Real fonts}] \topicindex {fonts+real} \topicindex {fonts+virtual} @@ -369,7 +374,9 @@ If no special care is needed, \LUATEX\ falls back to the mapfile|-|based solutio used by \PDFTEX\ and \DVIPS, so that legacy fonts are supported transparently. If a \quote {wide} font is used, the new subsystem kicks in, and some extra fields have to be present in the font structure. In this case, \LUATEX\ does not use a -map file at all. These extra fields are: \type {format}, \type {embedding}, \type {fullname}, \type {cidinfo} (as explained above), \type {filename}, and the \type {index} key in the separate characters. +map file at all. These extra fields are: \type {format}, \type {embedding}, \type +{fullname}, \type {cidinfo} (as explained above), \type {filename}, and the \type +{index} key in the separate characters. The \type {format} variable can have the following values. \type {type3} fonts are provided for backward compatibility only, and do not support the new wide @@ -399,7 +406,8 @@ Valid values for the \type {embedding} variable are: The other fields are used as follows. The \type {fullname} will be the \POSTSCRIPT|/|\PDF\ font name. The \type {cidinfo} will be used as the character set: the CID \type {/Ordering} and \type {/Registry} keys. The \type {filename} -points to the actual font file. If you include the full path in the \type {filename} or if the file is in the local directory, \LUATEX\ will run a little +points to the actual font file. If you include the full path in the \type +{filename} or if the file is in the local directory, \LUATEX\ will run a little bit more efficient because it will not have to re|-|run the \type {find_*_file} callback in that case. @@ -419,7 +427,9 @@ In order to make sure that cut and paste of the final document works okay you ca best make sure that there is a \type {tounicode} vector enforced. Not all \PDF\ viewers handle this right so take \ACROBAT\ as reference. -\section[virtualfonts]{Virtual fonts} +\stopsection + +\startsection[reference=virtualfonts,title={Virtual fonts}] \subsection{The structure} @@ -430,7 +440,7 @@ table from \cbk {define_font} as a virtual font: \startitemize[packed] \startitem - Set the top|-|level key \type {type} to \type {virtual}. I most cases it's + Set the top|-|level key \type {type} to \type {virtual}. In most cases it's optional because we look at the \type {commands} entry anyway. \stopitem \startitem @@ -469,11 +479,11 @@ fonts = { } \stoptyping -The the first referenced font (at index~1) in this virtual font is \type -{ptrmr8a} loaded at 10pt, and the second is \type {psyr} loaded at a little over -9pt. The third one is previously defined font that is known to \LUATEX\ as font -id~38. The array index numbers are used by the character command definitions that -are part of each character. +The first referenced font (at index~1) in this virtual font is \type {ptrmr8a} +loaded at 10pt, and the second is \type {psyr} loaded at a little over 9pt. The +third one is a previously defined font that is known to \LUATEX\ as font id~38. +The array index numbers are used by the character command definitions that are +part of each character. The \type {commands} array is a hash where each item is another small array, with the first entry representing a command and the extra items being the @@ -555,7 +565,7 @@ commands = { The default value for \type {font} is always~1 at the start of the \type {commands} array. Therefore, if the virtual font is essentially only a -re|-|encoding, then you do usually not have create an explicit \quote {font} +re|-|encoding, then you do usually not have created an explicit \quote {font} command in the array. Rules inside of \type {commands} arrays are built up using only two dimensions: @@ -626,7 +636,9 @@ Finally, here is a plain \TEX\ input file with a virtual font demonstration: \typebuffer -\section{The \type {vf} library} +\stopsection + +\startsection[title={The \type {vf} library}] The \type {vf} library can be used when \LUA\ code, as defined in the \type {commands} of the font, is executed. The functions provided are similar as the @@ -637,12 +649,14 @@ advertised and tested much, if only because it's easy to define an invalid font (or mess up the \PDF\ stream). Keep in mind that the \LUA\ snippets are executed each time when a character is output. -\section{The \type {font} library} +\stopsection + +\startsection[title={The \type {font} library}] \topicindex {fonts+library} The font library provides the interface into the internals of the font system, -and also it contains helper functions to load traditional \TEX\ font metrics +and it also contains helper functions to load traditional \TEX\ font metrics formats. Other font loading functionality is provided by the \type {fontloader} library that will be discussed in the next section. @@ -670,9 +684,6 @@ The number is a bit special: \stopitem \stopitemize -The internal structure of the metrics font table that is returned is explained in -\in {chapter} [fonts]. - \subsection{Loading a \VF\ file} \topicindex {fonts+vf} @@ -699,8 +710,8 @@ font.fonts[n] = { ... } <table> f = font.fonts[n] \stoptyping -See \in {chapter} [fonts] for the structure of the tables. Because this is a -virtual array, you cannot call \type {pairs} on it, but see below for the \type {font.each} iterator. +Because this is a virtual array, you cannot call \type {pairs} on it, but see +below for the \type {font.each} iterator. The two metatable functions implementing the virtual array are: @@ -709,9 +720,16 @@ The two metatable functions implementing the virtual array are: font.setfont(<number> n, <table> f) \stopfunctioncall -Note that at the moment, each access to the \type {font.fonts} or call to \type {font.getfont} creates a \LUA\ table for the whole font. This process can be quite -slow. In a later version of \LUATEX, this interface will change (it will start -using userdata objects instead of actual tables). +Note that at the moment, each access to the \type {font.fonts} or call to \type +{font.getfont} creates a \LUA\ table for the whole font unless you cached it. +This process can be quite slow. + +\startfunctioncall +<table> p = font.getparameters(<number> n) +\stopfunctioncall + +This one will return a table of the parameters as known to \TEX. These can be +different from the ones in the cached table. Also note the following: assignments can only be made to fonts that have already been defined in \TEX, but have not been accessed {\it at all\/} since that @@ -742,9 +760,8 @@ You can define your own font into \type {font.fonts} by calling this function: \stopfunctioncall The return value is the internal id number of the defined font (the index into -\type {font.fonts}). If the font creation fails, an error is raised. The table -is a font structure, as explained in \in {chapter} [fonts]. An alternative call -is: +\type {font.fonts}). If the font creation fails, an error is raised. The table is +a font structure. An alternative call is: \startfunctioncall <number> i = @@ -834,6 +851,8 @@ value is the index in \type {font.fonts}, the second the font itself, as a \LUA\ table. The indices are listed incrementally, but they do not always form an array of consecutive numbers: in some cases there can be holes in the sequence. +\stopsection + \stopchapter \stopcomponent diff --git a/manual/luatex-graphics.tex b/manual/luatex-graphics.tex index add4b67befe01a6f409ffef0421574daad2d6e0a..038710cd5831b7e86bf8e68910d50e9cae4e4da4 100644 --- a/manual/luatex-graphics.tex +++ b/manual/luatex-graphics.tex @@ -1,12 +1,14 @@ % language=uk +% mp solve_path + \environment luatex-style \startcomponent luatex-graphics \startchapter[reference=graphics,title={The graphic libraries}] -\section{The \type {img} library} +\startsection[title={The \type {img} library}][library=img] \topicindex {images} \topicindex {images+library} @@ -19,6 +21,8 @@ The \type {img} library can be used as an alternative to \orm {pdfximage} and \subsection{\type {new}} +\libindex{new} + \startfunctioncall <image> var = img.new() <image> var = img.new(<table> image_spec) @@ -77,56 +81,64 @@ invalid images and we cannot guarantee side effects. A zero dimension image is still included when requested. No special flags are set. A proper workflow will not rely in such a catch but make sure that images are valid. -\subsection{\type {keys}} +\subsection{\type {fields}} + +\libindex{fields} \startfunctioncall -<table> keys = img.keys() +<table> keys = img.fields() \stopfunctioncall This function returns a list of all the possible \type {image_spec} keys, both user-supplied and automatic ones. \starttabulate[|l|l|p|] -\DB field name \BC type \BC description \NC \NR +\DB field name \BC type \BC description \NC \NR \TB -\NC \type{attr} \NC string \NC the image attributes for \LUATEX \NC \NR -\NC \type{bbox} \NC table \NC table with 4 boundingbox dimensions \type - {llx}, \type {lly}, \type {urx} and \type - {ury} overruling the \type {pagebox} entry \NC \NR -\NC \type{colordepth} \NC number \NC the number of bits used by the color space \NC \NR -\NC \type{colorspace} \NC number \NC the color space object number \NC \NR -\NC \type{depth} \NC number \NC the image depth for \LUATEX \NC \NR -\NC \type{filename} \NC string \NC the image file name \NC \NR -\NC \type{filepath} \NC string \NC the full (expanded) file name of the image\NC \NR -\NC \type{height} \NC number \NC the image height for \LUATEX \NC \NR -\NC \type{imagetype} \NC string \NC one of \type {pdf}, \type {png}, \type {jpg}, - \type {jp2} or \type {jbig2} \NC \NR -\NC \type{index} \NC number \NC the \PDF\ image name suffix \NC \NR -\NC \type{objnum} \NC number \NC the \PDF\ image object number \NC \NR -\NC \type{page} \NC number \NC the identifier for the requested image page \NC \NR -\NC \type{pagebox} \NC string \NC the requested bounding box, one of - \type {none}, \type {media}, \type {crop}, - \type {bleed}, \type {trim}, \type {art} \NC \NR -\NC \type{pages} \NC number \NC the total number of available pages \NC \NR -\NC \type{rotation} \NC number \NC the image rotation from included \PDF\ file, - in multiples of 90~deg. \NC \NR -\NC \type{stream} \NC string \NC the raw stream data for an \type {/Xobject} - \type {/Form} object\NC \NR -\NC \type{transform} \NC number \NC the image transform, integer number 0..7 \NC \NR -\NC \type{orientation} \NC number \NC the (jpeg) image orientation, integer number 1..8 - (0 for unset) \NC \NR -\NC \type{width} \NC number \NC the image width for \LUATEX \NC \NR -\NC \type{xres} \NC number \NC the horizontal natural image resolution - (in \DPI) \NC \NR -\NC \type{xsize} \NC number \NC the natural image width \NC \NR -\NC \type{yres} \NC number \NC the vertical natural image resolution - (in \DPI) \NC \NR -\NC \type{ysize} \NC number \NC the natural image height \NC \NR -\NC \type{visiblefileame} \NC string \NC when set, this name will find its way in the - \PDF\ file as \type {PTEX} specification; when - an empty string is assigned nothing is written - to file; otherwise the natural filename is - taken \NC \NR +\NC \type{attr} \NC string \NC the image attributes for \LUATEX \NC \NR +\NC \type{bbox} \NC table \NC table with 4 boundingbox dimensions \type + {llx}, \type {lly}, \type {urx} and \type + {ury} overruling the \type {pagebox} entry \NC \NR +\NC \type{colordepth} \NC number \NC the number of bits used by the color space \NC \NR +\NC \type{colorspace} \NC number \NC the color space object number \NC \NR +\NC \type{depth} \NC number \NC the image depth for \LUATEX \NC \NR +\NC \type{filename} \NC string \NC the image file name \NC \NR +\NC \type{filepath} \NC string \NC the full (expanded) file name of the image\NC \NR +\NC \type{height} \NC number \NC the image height for \LUATEX \NC \NR +\NC \type{imagetype} \NC string \NC one of \type {pdf}, \type {png}, \type {jpg}, + \type {jp2} or \type {jbig2} \NC \NR +\NC \type{index} \NC number \NC the \PDF\ image name suffix \NC \NR +\NC \type{objnum} \NC number \NC the \PDF\ image object number \NC \NR +\NC \type{page} \NC number \NC the identifier for the requested image page \NC \NR +\NC \type{pagebox} \NC string \NC the requested bounding box, one of + \type {none}, \type {media}, \type {crop}, + \type {bleed}, \type {trim}, \type {art} \NC \NR +\NC \type{pages} \NC number \NC the total number of available pages \NC \NR +\NC \type{rotation} \NC number \NC the image rotation from included \PDF\ file, + in multiples of 90~deg. \NC \NR +\NC \type{stream} \NC string \NC the raw stream data for an \type {/Xobject} + \type {/Form} object\NC \NR +\NC \type{transform} \NC number \NC the image transform, integer number 0..7 \NC \NR +\NC \type{orientation} \NC number \NC the (jpeg) image orientation, integer number 1..8 + (0 for unset) \NC \NR +\NC \type{width} \NC number \NC the image width for \LUATEX \NC \NR +\NC \type{xres} \NC number \NC the horizontal natural image resolution + (in \DPI) \NC \NR +\NC \type{xsize} \NC number \NC the natural image width \NC \NR +\NC \type{yres} \NC number \NC the vertical natural image resolution + (in \DPI) \NC \NR +\NC \type{ysize} \NC number \NC the natural image height \NC \NR +\NC \type{visiblefilename} \NC string \NC when set, this name will find its way in the + \PDF\ file as \type {PTEX} specification; when + an empty string is assigned nothing is written + to file; otherwise the natural filename is + taken \NC \NR +\NC \type{userpassword} \NC string \NC the userpassword needed for opening a \PDF\ file \NC \NR +\NC \type{ownerpassword} \NC string \NC the ownerpassword needed for opening a \PDF\ file \NC \NR +\NC \type{keepopen} \NC boolean \NC keep the \PDF\ file open \NC \NR +\NC \type{nobbox} \NC boolean \NC don't add a boundingbox specification for streams \NC \NR +\NC \type{nolength} \NC boolean \NC don't add length key nor compress for streams \NC \NR +\NC \type{nosize} \NC boolean \NC don't add size fields for streams \NC \NR \LL \stoptabulate @@ -171,6 +183,8 @@ then use it by \LUATEX. If a \PDF\ file to be embedded already contains a \type \subsection{\type {scan}} +\libindex{scan} + \startfunctioncall <image> var = img.scan(<image> var) <image> var = img.scan(<table> image_spec) @@ -200,31 +214,40 @@ the PDF, and the used memory will be cleaned up automatically. \subsection{\type {copy}} +\libindex{copy} + \startfunctioncall <image> var = img.copy(<image> var) <image> var = img.copy(<table> image_spec) \stopfunctioncall If you say \type {a = b}, then both variables point to the same \type {<image>} -object. if you want to write out an image with different sizes, you can do a +object. if you want to write out an image with different sizes, you can do \type {b = img.copy(a)}. Afterwards, \type {a} and \type {b} still reference the same actual image dictionary, but the dimensions for \type {b} can now be changed from their initial values that were just copies from \type {a}. -\subsection{\type {write}} +\subsection{\type {write}, \type {immediatewrite}, \type {immediatewriteobject}} + +\topicindex {images+injection} +\topicindex {images+immediate} +\topicindex {images+object} + +\libindex{write} +\libindex{immediatewrite} +\libindex{immediatewriteobject} \startfunctioncall <image> var = img.write(<image> var) <image> var = img.write(<table> image_spec) \stopfunctioncall -By \type {img.write(a)} a \PDF\ object number is allocated, and a whatsit node of -subtype \type {pdf_refximage} is generated and put into the output list. By this -the image \type {a} is placed into the page stream, and the image file is written -out into an image stream object after the shipping of the current page is -finished. +By \type {img.write(a)} a \PDF\ object number is allocated, and a rule node of +subtype \type {image} is generated and put into the output list. By this the +image \type {a} is placed into the page stream, and the image file is written out +into an image stream object after the shipping of the current page is finished. Again you can do a terse call like @@ -233,16 +256,7 @@ img.write { filename = "foo.png" } \stoptyping The \type {<image>} variable is returned in case you want it for later -processing. - -\subsection{\type {immediatewrite}} - -\topicindex {images+immediate} - -\startfunctioncall -<image> var = img.immediatewrite(<image> var) -<image> var = img.immediatewrite(<table> image_spec) -\stopfunctioncall +processing. You can also write an object. By \type {img.immediatewrite(a)} a \PDF\ object number is allocated, and the image file for image \type {a} is written out immediately into the \PDF\ file as @@ -253,6 +267,11 @@ key. No \type {pdf_refximage} whatsit node is generated. You will need an page, or reference it by another trick; else you will have a dangling image object in the \PDF\ file. +\startfunctioncall +<image> var = img.immediatewrite(<image> var) +<image> var = img.immediatewrite(<table> image_spec) +\stopfunctioncall + Also here you can do a terse call like \starttyping @@ -261,8 +280,18 @@ a = img.immediatewrite { filename = "foo.png" } The \type {<image>} variable is returned and you will most likely need it. +The next function is kind of special as it copies an object from a (\PDF) image +file. This features is experimental and might disappear. + +\startfunctioncall +<integer> objnum = img.immediatewriteobject(<image> var, <integer> objnum) +<integer> objnum = img.immediatewriteobject(<table> image_spec, <integer> objnum) +\stopfunctioncall + \subsection{\type {node}} +\libindex{node} + \startfunctioncall <node> n = img.node(<image> var) <node> n = img.node(<table> image_spec) @@ -287,6 +316,8 @@ node.write(img.node{filename="foo.png"}) \topicindex {images+types} +\libindex{types} + \startfunctioncall <table> types = img.types() \stopfunctioncall @@ -297,26 +328,56 @@ these are \type {pdf}, \type {png}, \type {jpg}, \type {jp2} (JPEG~2000), and \subsection{\type {boxes}} +\libindex{boxes} + \startfunctioncall <table> boxes = img.boxes() \stopfunctioncall This function returns a list with the supported \PDF\ page box names, currently these are \type {media}, \type {crop}, \type {bleed}, \type {trim}, and \type -{art}, all in lowercase letters. +{art}, all in lowercase. + +The \PDF\ file is kept open after its properties are determined. After inclusion, +which happens when the page that references the image is flushed, the file is +closed. This means that when you have thousands of images on one page, your +operating system might decide to abort the run. When you include more than one +page from a \PDF\ file you can set the \type {keepopen} flag when you allocate an +image object, or pass the \type {keepopen} directive when you refer to the image +with \lpr {useimageresource}. This only makes sense when you embed many pages. +An \prm {immediate} applied to \lpr {saveimageresource} will also force a +close after inclusion. + +\starttyping +\immediate\useimageresource{foo.pdf}% + \saveimageresource \lastsavedimageresourceindex % closed + \useimageresource{foo.pdf}% + \saveimageresource \lastsavedimageresourceindex % kept open + \useimageresource{foo.pdf}% + \saveimageresource keepopen\lastsavedimageresourceindex % kept open -\section{The \type {mplib} library} +\directlua{img.write(img.scan{ file = "foo.pdf" })} % closed +\directlua{img.write(img.scan{ file = "foo.pdf", keepopen = true })} % kept open +\stoptyping + +\stopsection + +\startsection[title={The \type {mplib} library}][library=mplib] \topicindex {\METAPOST} \topicindex {\METAPOST+mplib} \topicindex {images+mplib} \topicindex {images+\METAPOST} +\libindex{version} + The \MP\ library interface registers itself in the table \type {mplib}. It is based on \MPLIB\ version \ctxlua {context(mplib.version())}. \subsection{\type {new}} +\libindex{new} + To create a new \METAPOST\ instance, call \startfunctioncall @@ -326,16 +387,16 @@ To create a new \METAPOST\ instance, call This creates the \type {mp} instance object. The argument hash can have a number of different fields, as follows: -\starttabulate[|l|l|p|p|] +\starttabulate[|l|l|pl|pl|] \DB name \BC type \BC description \BC default \NC \NR \TB \NC \type{error_line} \NC number \NC error line width \NC 79 \NC \NR \NC \type{print_line} \NC number \NC line length in ps output \NC 100 \NC \NR \NC \type{random_seed} \NC number \NC the initial random seed \NC variable \NC \NR \NC \type{math_mode} \NC string \NC the number system to use: - \type {double}, \type {scaled}, - \type {binary} or + \type {double} or + % \type {binary} or \type {decimal} \NC \type {scaled} \NC \NR \NC \type{interaction} \NC string \NC the interaction mode: \type {batch}, @@ -347,6 +408,11 @@ of different fields, as follows: \LL \stoptabulate +The binary mode is no longer available in the \LUATEX\ version of \MPLIB. It +offers no real advantage and brings a ton of extra libraries with platform +specific properties that we can now avoid. We might introduce a high resolution +scaled variant at some point but only when it pays of performance wise. + The \type {find_file} function should be of this form: \starttyping @@ -369,31 +435,31 @@ cannot be found. Note that the new version of \MPLIB\ no longer uses binary mem files, so the way to preload a set of macros is simply to start off with an \type {input} command -in the first \type {mp:execute()} call. +in the first \type {execute} call. -The \PDF\ file is kept open after its properties are determined. After inclusion, -which happens when the page that references the image is flushed, the file is -closed. This means that when you have thousands of images on one page, your -operating system might decide to abort the run. When you include more than one -page from a \PDF\ file you can set the \type {keepopen} flag when you allocate an -image object, or pass the \type {keepopen} directive when you refer to the image -with \lpr {useimageresource} This only makes sense when you embed many pages. -An \prm {immediate} applied to \lpr {saveimageresource} will also force a -close after inclusion. +When you are processing a snippet of text starting with \type {btex} and +ending with either \type {etex} or \type {verbatimtex}, the \METAPOST\ +\type {texscriptmode} parameter controls how spaces and newlines get honoured. +The default value is~1. Possible values are: -\starttyping -\immediate\useimageresource{foo.pdf}% - \saveimageresource \lastsavedimageresourceindex % closed - \useimageresource{foo.pdf}% - \saveimageresource \lastsavedimageresourceindex % kept open - \useimageresource{foo.pdf}% - \saveimageresource keepopen\lastsavedimageresourceindex % kept open +\starttabulate[|l|p|] +\DB name \BC meaning \NC \NR +\TB +\NC \type {0} \NC no newlines \NC \NR +\NC \type {1} \NC newlines in \type {verbatimtex} \NC \NR +\NC \type {2} \NC newlines in \type {verbatimtex} and \type {etex} \NC \NR +\NC \type {3} \NC no leading and trailing strip in \type {verbatimtex} \NC \NR +\NC \type {4} \NC no leading and trailing strip in \type {verbatimtex} and \type {btex} \NC \NR +\LL +\stoptabulate -\directlua{img.write(img.scan{ file = "foo.pdf" })} % closed -\directlua{img.write(img.scan{ file = "foo.pdf", keepopen = true })} % kept open -\stoptyping +That way the \LUA\ handler (assigned to \type {make_text}) can do what it likes. +An \type {etex} has to be followed by a space or \type {;} or be at the end of a +line and preceded by a space or at the beginning of a line. -\subsection{\type {mp:statistics}} +\subsection{\type {statistics}} + +\libindex{statistics} You can request statistics with: @@ -419,12 +485,14 @@ Note that in the new version of \MPLIB, this is informational only. The objects are all allocated dynamically, so there is no chance of running out of space unless the available system memory is exhausted. -\subsection{\type {mp:execute}} +\subsection{\type {execute}} + +\libindex{execute} You can ask the \METAPOST\ interpreter to run a chunk of code by calling \startfunctioncall -<table> rettable = mp:execute('metapost language chunk') +<table> rettable = execute(mp,"metapost code") \stopfunctioncall for various bits of \METAPOST\ language input. Be sure to check the \type @@ -438,21 +506,25 @@ instance, you cannot split a single statement over multiple chunks. In contrast with the normal stand alone \type {mpost} command, there is \notabene {no} implied \quote{input} at the start of the first chunk. -\subsection{\type {mp:finish}} +\subsection{\type {finish}} + +\libindex{finish} \startfunctioncall -<table> rettable = mp:finish() +<table> rettable = finish(mp) \stopfunctioncall If for some reason you want to stop using an \MPLIB\ instance while processing is -not yet actually done, you can call \type {mp:finish}. Eventually, used memory +not yet actually done, you can call \type finish}. Eventually, used memory will be freed and open files will be closed by the \LUA\ garbage collector, but -an explicit \type {mp:finish} is the only way to capture the final part of the +an explicit \type finish} is the only way to capture the final part of the output streams. \subsection{Result table} -The return value of \type {mp:execute} and \type {mp:finish} is a table with a +\libindex {fields} + +The return value of \type {execute} and \type {finish} is a table with a few possible keys (only \type {status} is always guaranteed to be present). \starttabulate[|l|l|p|] @@ -518,7 +590,7 @@ accessible values. The types are: \type {fill}, \type {outline}, \type {text}, \type {start_clip}, \type {stop_clip}, \type {start_bounds}, \type {stop_bounds}, \type {special}. -There is helper function (\type {mplib.fields(obj)}) to get the list of +There is a helper function (\type {mplib.fields(obj)}) to get the list of accessible values for a particular object, but you can just as easily use the tables given below. @@ -546,23 +618,6 @@ point number, unless stated otherwise. Field values that are of type \type The entries \type {htap} and \type {pen} are optional. -There is helper function (\type {mplib.pen_info(obj)}) that returns a table -containing a bunch of vital characteristics of the used pen (all values are -floats): - -\starttabulate[|l|l|p|] -\DB field \BC type \BC explanation \NC \NR -\TB -\NC \type{width} \NC number \NC width of the pen \NC \NR -\NC \type{sx} \NC number \NC $x$ scale \NC \NR -\NC \type{rx} \NC number \NC $xy$ multiplier \NC \NR -\NC \type{ry} \NC number \NC $yx$ multiplier \NC \NR -\NC \type{sy} \NC number \NC $y$ scale \NC \NR -\NC \type{tx} \NC number \NC $x$ offset \NC \NR -\NC \type{ty} \NC number \NC $y$ offset \NC \NR -\LL -\stoptabulate - \subsubsection{outline} \starttabulate[|l|l|p|] @@ -699,28 +754,78 @@ representation of the dashlist. \type {dashes} is an array of \quote {on} and \LL \stoptabulate +\subsection{Pens and \type {pen_info}} + +\libindex{pen_info} + +There is helper function (\type {pen_info(obj)}) that returns a table containing +a bunch of vital characteristics of the used pen (all values are floats): + +\starttabulate[|l|l|p|] +\DB field \BC type \BC explanation \NC \NR +\TB +\NC \type{width} \NC number \NC width of the pen \NC \NR +\NC \type{sx} \NC number \NC $x$ scale \NC \NR +\NC \type{rx} \NC number \NC $xy$ multiplier \NC \NR +\NC \type{ry} \NC number \NC $yx$ multiplier \NC \NR +\NC \type{sy} \NC number \NC $y$ scale \NC \NR +\NC \type{tx} \NC number \NC $x$ offset \NC \NR +\NC \type{ty} \NC number \NC $y$ offset \NC \NR +\LL +\stoptabulate + \subsection{Character size information} These functions find the size of a glyph in a defined font. The \type {fontname} is the same name as the argument to \type {infont}; the \type {char} is a glyph id in the range 0 to 255; the returned \type {w} is in AFM units. -\subsubsection{\type {mp:char_width}} +\subsubsection{\type {char_width}} + +\libindex{char_width} \startfunctioncall -<number> w = mp:char_width(<string> fontname, <number> char) +<number> w = char_width(mp,<string> fontname, <number> char) \stopfunctioncall -\subsubsection{\type {mp:char_height}} +\subsubsection{\type {char_height}} + +\libindex{char_height} \startfunctioncall -<number> w = mp:char_height(<string> fontname, <number> char) +<number> w = char_height(mp,<string> fontname, <number> char) \stopfunctioncall -\subsubsection{\type {mp:char_depth}} +\subsubsection{\type {char_depth}} + +\libindex{char_depth} \startfunctioncall -<number> w = mp:char_depth(<string> fontname, <number> char) +<number> w = char_depth(mp,<string> fontname, <number> char) \stopfunctioncall +\subsubsection{\type {get_[boolean|numeric|string|path]}} + +\libindex{get_boolean} +\libindex{get_numeric} +\libindex{get_path} +\libindex{get_string} + +When a script call brings you from the \METAPOST\ run (temporarily) back to +\LUA\ you can access variables, but only if they are known (so for instance +anonymous capsules like loop variables are not accessible). + +\startfunctioncall +<boolean> w = get_boolean(mp,<string> name) +<number> n = get_numeric(mp,<string> name) +<string> s = get_string (mp,<string> name) +<table> p = get_path (mp,<string> name) +\stopfunctioncall + +The path is returned a a table with subtables that have six numbers: the +coordinates of the point, pre- and postcontrol. A \type {cycle} fields indicates +if a path is cyclic. + +\stopsection + \stopchapter diff --git a/manual/luatex-introduction.tex b/manual/luatex-introduction.tex index f0c17ebe7eeb292c0a4b79ef6a90762020113615..0930c532bdfc984442a3496c83b57071fb4b3c39 100644 --- a/manual/luatex-introduction.tex +++ b/manual/luatex-introduction.tex @@ -16,7 +16,7 @@ It took about a decade to reach stable version 1.0, but for good reason. Successive versions brought new functionality, more control, some cleanup of internals. Experimental features evolved into stable ones or were dropped. Already quite early \LUATEX\ could be used for production and it was used on a -daily basis by the authors. Successive versions sometimes demanded a adaption to +daily basis by the authors. Successive versions sometimes demanded an adaption to the \LUA\ interfacing, but the concepts were unchanged. The current version can be considered stable in functionality and there will be no fundamental changes. Of course we then can decide to move towards version 2.00 with different @@ -47,17 +47,17 @@ The organization of the source code is adapted so that it can glue all these components together. We continue cleaning up side effects of the accumulated code in \TEX\ engines (especially code that is not needed any longer). -\startitemize % [packed] +\startitemize [unpacked] \startitem We started out with most of \PDFTEX\ version 1.40.9. The code base was converted to \CCODE\ and split in modules. Experimental features were - been removed and utility macros are not inherited because their - functionality can be programmed in \LUA. The number of backend interface - commands has been reduced to a few. The so called extensions are - separated from the core (which we try to keep close to the original \TEX\ - core). Some mechanisms like expansion and protrusion can behave different - from the original due to some cleanup and optimization. Some whatsit - based functionality (image support and reusable content) is now core + removed and utility macros are not inherited because their functionality + can be programmed in \LUA. The number of backend interface commands has + been reduced to a few. The so called extensions are separated from the + core (which we try to keep close to the original \TEX\ core). Some + mechanisms like expansion and protrusion can behave different from the + original due to some cleanup and optimization. Some whatsit based + functionality (image support and reusable content) is now core functionality. We don't stay in sync with \PDFTEX\ development. \stopitem \startitem @@ -108,30 +108,49 @@ code in \TEX\ engines (especially code that is not needed any longer). means that a complete \TEX\ workflow can be built without the need for additional programs. \stopitem + \startitem + The versions starting from 1.09 no longer use the poppler library for + inclusion but a lightweight dedicated one. This removes a dependency but + also makes the inclusion code of \LUATEX\ different from \PDFTEX. In fact + it was already much different due to the \LUA\ image interfacing. + \stopitem \stopitemize We try to keep upcoming versions compatible but intermediate releases can contain -experimental features. A general rule is that versions that end up on \TEX live -and|/|or are released around \CONTEXT\ meetings are stable. Future versions will -probably become a bit leaner and meaner. Some libraries might become external as -we don't want to bloat the binary and also don't want to add more hard coded -solutions. After all, with \LUA\ you can extend the core functionality. The less -dependencies, the better. +experimental features. A general rule is that versions that end up on \TEXLIVE\ +and|/|or are released around \CONTEXT\ meetings are stable. Any version between +the yearly \TEXLIVE\ releases are to be considered beta and in the repository end +up as trunk releases. We have an experimental branch that we use for development +but there is no support for any of its experimental features. Intermediate +releases (from trunk) are normally available via the \CONTEXT\ distribution +channels (the garden and so called minimals). + +Version 1.10 is more or less an endpoint in development: this is what you get. +Because not only \CONTEXT, that we can adapt rather easily, uses \LUATEX, we +cannot change fundamentals without unforeseen consequences. By now it has been +proven that \LUA\ can be used to extend the core functionality so there is no +need to add more, and definitely no hard coded solutions for (not so) common +problems. Of course there will be bug fixes, maybe some optimization, and there +might even be some additions or non|-|intrusive improvements, but only after +testing outside the stable release. After all, the binary is already more than +large enough and there is not that much to gain. You might find \LUA\ helpers that are not yet documented. These are considered experimental, although when you encounter them in a \CONTEXT\ version that has been around for a while you can assume that they will stay. Of course it can just be that we forgot to document them yet. -The \TEXLIVE\ version is to be considered the current stable version. Any version -between the yearly \TEXLIVE\ releases are to be considered beta and in the -repository end up as trunk releases. We have an experimental branch that we use -for development but there is no support for any of its experimental features. -Intermediate releases (from trunk) are normally available via the \CONTEXT\ -distribution channels (the garden and so called minimals). +A manual like this is not really meant as tutorial, for that we refer to +documents that ship with \CONTEXT, articles, etc. It is also never complete +enough for all readers. We try to keep up but the reader needs to realize that +it's all volunteer work done in spare time. And for sure, complaining about a bad +manual or crappy documentation will not really motivate us to spend more time on +it. That being said, we hope that this document is useful. \blank[big] +\testpage[5] + \startlines Hans Hagen Harmut Henkel diff --git a/manual/luatex-languages.tex b/manual/luatex-languages.tex index 308c0ad7adb4b9fa75e7afc0a158fbbb534d6fcb..98960aa65d4cfa35918536d551513765e9a30dd4 100644 --- a/manual/luatex-languages.tex +++ b/manual/luatex-languages.tex @@ -6,6 +6,8 @@ \startchapter[reference=languages,title={Languages, characters, fonts and glyphs}] +\startsection[title={Introduction}] + \topicindex {languages} \LUATEX's internal handling of the characters and glyphs that eventually become @@ -49,7 +51,9 @@ font information in the whole list (creating ligatures and adjusting kerning), and finally it adjusts all the subtype identifiers so that the records are \quote {glyph nodes} from now on. -\section[charsandglyphs]{Characters and glyphs} +\stopsection + +\startsection[title={Characters, glyphs and discretionaries},reference=charsandglyphs] \topicindex {characters} \topicindex {glyphs} @@ -63,7 +67,7 @@ indicating whether this ligature was the result of a word boundary, and it was stored in the same place as other nodes like boxes and kerns and glues. In \LUATEX, these two types are merged into one, somewhat larger structure called -a \nod {glyph} nodes. Besides having the old character, font, and component +a \nod {glyph} node. Besides having the old character, font, and component fields there are a few more, like \quote {attr} that we will see in \in {section} [glyphnodes], these nodes also contain a subtype, that codes four main types and two additional ghost types. For ligatures, multiple bits can be set at the same @@ -79,25 +83,25 @@ time (in case of a single|-|glyph word). not set. \stopitem \startitem - \type {ligature}, for constructed ligatures bit 1 is set + \type {ligature}, for constructed ligatures bit 1 is set. \stopitem \startitem - \type {ghost}, for so called \quote {ghost objects} bit 2 is set + \type {ghost}, for so called \quote {ghost objects} bit 2 is set. \stopitem \startitem \type {left}, for ligatures created from a left word boundary and for - ghosts created from \lpr {leftghost} bit 3 gets set + ghosts created from \lpr {leftghost} bit 3 gets set. \stopitem \startitem \type {right}, for ligatures created from a right word boundary and - for ghosts created from \lpr {rightghost} bit 4 is set + for ghosts created from \lpr {rightghost} bit 4 is set. \stopitem \stopitemize The \nod {glyph} nodes also contain language data, split into four items that -were current when the node was created: the \prm {setlanguage} (15 bits), \prm -{lefthyphenmin} (8 bits), \prm {righthyphenmin} (8 bits), and \prm {uchyph} (1 -bit). +were current when the node was created: the \prm {setlanguage} (15~bits), \prm +{lefthyphenmin} (8~bits), \prm {righthyphenmin} (8~bits), and \prm {uchyph} +(1~bit). Incidentally, \LUATEX\ allows 16383 separate languages, and words can be 256 characters long. The language is stored with each character. You can set @@ -105,7 +109,7 @@ characters long. The language is stored with each character. You can set an ignored hyphenation language. The new primitive \lpr {hyphenationmin} can be used to signal the minimal length -of a word. This value stored with the (current) language. +of a word. This value is stored with the (current) language. Because the \prm {uchyph} value is saved in the actual nodes, its handling is subtly different from \TEX82: changes to \prm {uchyph} become effective @@ -155,7 +159,7 @@ Here are some examples (we assume that French patterns are used): \stoptabulate Carrying all this information with each glyph would give too much overhead and -also make the process of setting up thee codes more complex. A solution with +also make the process of setting up these codes more complex. A solution with \type {hjcode} sets was considered but rejected because in practice the current approach is sufficient and it would not be compatible anyway. @@ -164,7 +168,7 @@ of \prm {savinghyphcodes} at the moment the format is dumped. A boundary node normally would mark the end of a word which interferes with for instance discretionary injection. For this you can use the \prm {wordboundary} -as trigger. Here are a few examples of usage: +as a trigger. Here are a few examples of usage: \startbuffer discrete---discrete @@ -188,17 +192,17 @@ as trigger. Here are a few examples of usage: \typebuffer \startnarrower \dontcomplain \hsize 1pt \getbuffer \par \stopnarrower We only accept an explicit hyphen when there is a preceding glyph and we skip a -sequence of explicit hyphens as that normally indicates a \type {--} or \type +sequence of explicit hyphens since that normally indicates a \type {--} or \type {---} ligature in which case we can in a worse case usage get bad node lists later on due to messed up ligature building as these dashes are ligatures in base -fonts. This is a side effect of the separating the hyphenation, ligaturing and +fonts. This is a side effect of separating the hyphenation, ligaturing and kerning steps. -The start and end of a characters is signalled by a \nod {glue}, \nod {penalty}, -\nod {kern} or \nod {boundary} node. But by default also a \nod {hlist}, \nod -{vlist}, \nod {rule}, \nod {dir}, \nod {whatsit}, \nod {ins}, and \nod {adjust} -node indicate a start or end. You can omit the last set from the test by setting -\lpr {hyphenationbounds} to a non|-|zero value: +The start and end of a sequence of characters is signalled by a \nod {glue}, \nod +{penalty}, \nod {kern} or \nod {boundary} node. But by default also a \nod +{hlist}, \nod {vlist}, \nod {rule}, \nod {dir}, \nod {whatsit}, \nod {ins}, and +\nod {adjust} node indicate a start or end. You can omit the last set from the +test by setting \lpr {hyphenationbounds} to a non|-|zero value: \starttabulate[|c|l|] \DB value \BC behaviour \NC \NR @@ -274,6 +278,7 @@ min values to 1 and make sure that the words hyphenate at each character. {\SomeTest{3}{one}} {\type{3}} \stopcombination \stopplacefigure + \startplacefigure[reference=hb:2,title={\type{one\null two}}] \startcombination[4*1] {\SomeTest{0}{one\null two}} {\type{0}} @@ -282,6 +287,7 @@ min values to 1 and make sure that the words hyphenate at each character. {\SomeTest{3}{one\null two}} {\type{3}} \stopcombination \stopplacefigure + \startplacefigure[reference=hb:3,title={\type{\null one\null two}}] \startcombination[4*1] {\SomeTest{0}{\null one\null two}} {\type{0}} @@ -290,6 +296,7 @@ min values to 1 and make sure that the words hyphenate at each character. {\SomeTest{3}{\null one\null two}} {\type{3}} \stopcombination \stopplacefigure + \startplacefigure[reference=hb:4,title={\type{one\null two\null}}] \startcombination[4*1] {\SomeTest{0}{one\null two\null}} {\type{0}} @@ -298,6 +305,7 @@ min values to 1 and make sure that the words hyphenate at each character. {\SomeTest{3}{one\null two\null}} {\type{3}} \stopcombination \stopplacefigure + \startplacefigure[reference=hb:5,title={\type{\null one\null two\null}}] \startcombination[4*1] {\SomeTest{0}{\null one\null two\null}} {\type{0}} @@ -344,18 +352,6 @@ before--after \par before---after \par \stopbuffer -In \in {figure} [automatichyphenmode:1] \in {and} [automatichyphenmode:2] we show -what happens with three samples: - -Input A: \typebuffer[a] -Input B: \typebuffer[b] -Input C: \typebuffer[c] - -As with primitive companions of other single character commands, the \prm {-} -command has a more verbose primitive version in \lpr {explicitdiscretionary} -and the normally intercepted in the hyphenator character \type {-} (or whatever -is configured) is available as \lpr {automaticdiscretionary}. - \startbuffer[demo] \startcombination[nx=4,ny=3,location=top] {\framed[align=normal,strut=no,top=\vskip.5ex,bottom=\vskip.5ex]{\automatichyphenmode\zerocount \hsize6em \getbuffer[a]}} {A~0~6em} @@ -373,7 +369,7 @@ is configured) is available as \lpr {automaticdiscretionary}. \stopcombination \stopbuffer -\startplacefigure[reference=automatichyphenmode:1,title={The automatic modes \type {0} (default), \type {1} and \type {2}, with a \prm {hsize} +\startplacefigure[locationreference=automatichyphenmode:1,title={The automatic modes \type {0} (default), \type {1} and \type {2}, with a \prm {hsize} of 6em and 2pt (which triggers a linebreak).}] \dontcomplain \tt \getbuffer[demo] \stopplacefigure @@ -384,7 +380,21 @@ of 6em and 2pt (which triggers a linebreak).}] \dontcomplain \tt \getbuffer[demo] \stopplacefigure -\section{The main control loop} +In \in {figure} [automatichyphenmode:1] \in {and} [automatichyphenmode:2] we show +what happens with three samples: + +Input A: \typebuffer[a] +Input B: \typebuffer[b] +Input C: \typebuffer[c] + +As with primitive companions of other single character commands, the \prm {-} +command has a more verbose primitive version in \lpr {explicitdiscretionary} +and the normally intercepted in the hyphenator character \type {-} (or whatever +is configured) is available as \lpr {automaticdiscretionary}. + +\stopsection + +\startsection[title={The main control loop}] \topicindex {main loop} \topicindex {hyphenation} @@ -396,7 +406,7 @@ there are a few exceptions. \startitemize[n] \startitem - The \prm {accent} primitives creates nodes with subtype \quote {glyph} + The \prm {accent} primitive creates nodes with subtype \quote {glyph} instead of \quote {character}: one for the actual accent and one for the accentee. The primary reason for this is that \prm {accent} in \TEX82 is explicitly dependent on the current font encoding, so it would not make much @@ -520,7 +530,9 @@ resulting from an \prm {exhyphenchar}: other values do what we always did in \LUATEX: insert \prm {exhyphenpenalty}. -\section[patternsexceptions]{Loading patterns and exceptions} +\stopsection + +\startsection[title={Loading patterns and exceptions},reference=patternsexceptions] \topicindex {hyphenation} \topicindex {hyphenation+patterns} @@ -534,22 +546,24 @@ different from the one in \TEX82. After expansion, the argument for \prm {patterns} has to be proper \UTF8 with individual patterns separated by spaces, no \prm {char} or \prm {chardef}d -commands are allowed. The current implementation quite strict and will reject all -non|-|\UNICODE\ characters. Likewise, the expanded argument for \prm +commands are allowed. The current implementation is quite strict and will reject +all non|-|\UNICODE\ characters. Likewise, the expanded argument for \prm {hyphenation} also has to be proper \UTF8, but here a bit of extra syntax is provided: \startitemize[n] \startitem - Three sets of arguments in curly braces (\type {{}{}{}}) indicates a desired + Three sets of arguments in curly braces (\type {{}{}{}}) indicate a desired complex discretionary, with arguments as in \prm {discretionary}'s command in normal document input. \stopitem \startitem - A \type {-} indicates a desired simple discretionary, cf.\ \type {\-} and \type {\discretionary{-}{}{}} in normal document input. + A \type {-} indicates a desired simple discretionary, cf.\ \type {\-} and + \type {\discretionary{-}{}{}} in normal document input. \stopitem \startitem - Internal command names are ignored. This rule is provided especially for \prm {discretionary}, but it also helps to deal with \prm {relax} commands that + Internal command names are ignored. This rule is provided especially for \prm + {discretionary}, but it also helps to deal with \prm {relax} commands that may sneak in. \stopitem \startitem @@ -636,7 +650,9 @@ effectively we get 30000 in the example. \ShowSample{z{a-}{-b}{z}{a-}{-b}{z}{a-}{-b}{z}{a-}{-b}{z}z}{zzzzzz} \ShowSample{z{a-}{-b}{z}{a-}{-b}{z}[3]{a-}{-b}{z}[1]{a-}{-b}{z}z}{zzzzzz} -\section{Applying hyphenation} +\stopsection + +\startsection[title={Applying hyphenation}] \topicindex {hyphenation+how it works} \topicindex {hyphenation+discretionaries} @@ -647,7 +663,7 @@ words is very different from the ones in \TEX82, and that means there are some noticeable differences in handling as well. First and foremost, there is no \quote {compressed trie} involved in hyphenation. -The algorithm still reads \PATGEN-generated pattern files, but \LUATEX\ uses a +The algorithm still reads pattern files generated by \PATGEN, but \LUATEX\ uses a finite state hash to match the patterns against the word to be hyphenated. This algorithm is based on the \quote {libhnj} library used by \OPENOFFICE, which in turn is inspired by \TEX. @@ -742,7 +758,9 @@ that this function expects to receive a list of \quote {character} nodes. It wil not operate properly in the presence of \quote {glyph}, \quote {ligature}, or \quote {ghost} nodes, nor does it know how to deal with kerning. -\section{Applying ligatures and kerning} +\stopsection + +\startsection[title={Applying ligatures and kerning}] \topicindex {ligatures} \topicindex {kerning} @@ -803,6 +821,8 @@ the top-level discretionary that resulted from the first hyphenation point. Here is that nested solution again, in a different representation: +\testpage[4] + \starttabulate[|l|c|c|c|c|c|c|] \DB \BC pre \BC \BC post \BC \BC replace \BC \NC \NR \TB @@ -834,9 +854,9 @@ the first node). One can observe that the \type {of-f-ice} and \type {off-ice} cases both end with the same actual post replacement list (\type {i}), and that this would be the -case even if that \type {i} was the first item of a potential following ligature -like \type {ic}. This allows \LUATEX\ to do away with one of the fields, and thus -make the whole stuff fit into just two discretionary nodes. +case even if \type {i} was the first item of a potential following ligature like +\type {ic}. This allows \LUATEX\ to do away with one of the fields, and thus make +the whole stuff fit into just two discretionary nodes. The mapping of the seven list fields to the six fields in this discretionary node pair is as follows: @@ -879,9 +899,11 @@ mapping a sequence of glyphs onto one glyph, but also by selective replacement a kerning. This means that the above examples are just representing the traditional approach. -\section{Breaking paragraphs into lines} +\stopsection + +\startsection[title={Breaking paragraphs into lines}] -\topicindex {line breaks} +\topicindex {linebreaks} \topicindex {paragraphs} \topicindex {discretionaries} @@ -889,7 +911,7 @@ This code is almost unchanged, but because of the above|-|mentioned changes with respect to discretionaries and ligatures, line breaking will potentially be different from traditional \TEX. The actual line breaking code is still based on the \TEX82 algorithms, and it does not expect there to be discretionaries inside -of discretionaries. But, as patterns evolve and fonts handling can influence +of discretionaries. But, as patterns evolve and font handling can influence discretionaries, you need to be aware of the fact that long term consistency is not an engine matter only. @@ -905,12 +927,19 @@ The combined effect of these two differences is that \LUATEX\ does not always us all of the potential breakpoints in a paragraph, especially when fonts with many ligatures are used. Of course kerning also complicates matters here. -\section{The \type {lang} library} +\stopsection + +\startsection[title={The \type {lang} library}][library=lang] + +\subsection {\type {new} and \type {id}} \topicindex {languages+library} -This library provides the interface to \LUATEX's structure -representing a language, and the associated functions. +\libindex {new} +\libindex {id} + +This library provides the interface to \LUATEX's structure representing a +language, and the associated functions. \startfunctioncall <language> l = lang.new() @@ -930,11 +959,22 @@ the internal language with that id number. The number returned is the internal \prm {language} id number this object refers to. +\subsection {\type {hyphenation}} + +\libindex {hyphenation} + +You can hyphenate a string directly with: + \startfunctioncall <string> n = lang.hyphenation(<language> l) lang.hyphenation(<language> l, <string> n) \stopfunctioncall +\subsection {\type {clear_hyphenation} and \type {clean}} + +\libindex {clear_hyphenation} +\libindex {clean} + This either returns the current hyphenation exceptions for this language, or adds new ones. The syntax of the string is explained in~\in {section} [patternsexceptions]. @@ -955,6 +995,11 @@ syntax of the argument string is explained in \in {section} [patternsexceptions] This function is useful if you want to do something else based on the words in a dictionary file, like spell|-|checking. +\subsection {\type {patterns} and \type {clear_patterns}} + +\libindex {patterns} +\libindex {clear_patterns} + \startfunctioncall <string> n = lang.patterns(<language> l) lang.patterns(<language> l, <string> n) @@ -970,6 +1015,25 @@ lang.clear_patterns(<language> l) This can be used to clear the pattern dictionary for a language. +\subsection {\type {hyphenationmin}} + +\libindex {hyphenationmin} + +This function sets (or gets) the value of the \TEX\ parameter +\type {\hyphenationmin}. + +\startfunctioncall +n = lang.hyphenationmin(<language> l) +lang.hyphenationmin(<language> l, <number> n) +\stopfunctioncall + +\subsection {\type {[pre|post][ex|]hyphenchar}} + +\libindex {prehyphenchar} +\libindex {posthyphenchar} +\libindex {preexhyphenchar} +\libindex {postexhyphenchar} + \startfunctioncall <number> n = lang.prehyphenchar(<language> l) lang.prehyphenchar(<language> l, <number> n) @@ -994,21 +1058,30 @@ These gets or set the \quote {pre|-|break} and \quote {post|-|break} hyphen characters for explicit hyphenation in this language. Both are initially decimal~0 (indicating emptiness). -\startfunctioncall -<boolean> success = lang.hyphenate(<node> head) -<boolean> success = lang.hyphenate(<node> head, <node> tail) -\stopfunctioncall +\subsection {\type {hyphenate}} + +\libindex {hyphenate} -This call inserts hyphenation points (discretionary nodes) in a node list. If +The next call inserts hyphenation points (discretionary nodes) in a node list. If \type {tail} is given as argument, processing stops on that node. Currently, \type {success} is always true if \type {head} (and \type {tail}, if specified) are proper nodes, regardless of possible other errors. +\startfunctioncall +<boolean> success = lang.hyphenate(<node> head) +<boolean> success = lang.hyphenate(<node> head, <node> tail) +\stopfunctioncall + Hyphenation works only on \quote {characters}, a special subtype of all the glyph nodes with the node subtype having the value \type {1}. Glyph modes with different subtypes are not processed. See \in {section} [charsandglyphs] for more details. +\subsection {\type {[set|get]hjcode}} + +\libindex {sethjcode} +\libindex {gethjcode} + The following two commands can be used to set or query hj codes: \startfunctioncall @@ -1019,6 +1092,8 @@ lang.sethjcode(<language> l, <number> char, <number> usedchar) When you set a hjcode the current sets get initialized unless the set was already initialized due to \prm {savinghyphcodes} being larger than zero. +\stopsection + \stopchapter \stopcomponent diff --git a/manual/luatex-lua.tex b/manual/luatex-lua.tex index 99e31fc406e1c40cb6006184835837d4510fc4e0..3d6d20c35dd030bc7e23eaad7695d4834bc2d8f3 100644 --- a/manual/luatex-lua.tex +++ b/manual/luatex-lua.tex @@ -4,11 +4,11 @@ \startcomponent luatex-lua -\startchapter[reference=lua,title={\LUA\ general}] +\startchapter[reference=lua,title={Using \LUATEX}] -\section[init]{Initialization} +\startsection[title={Initialization},reference=init] -\subsection{\LUATEX\ as a \LUA\ interpreter} +\startsubsection[title={\LUATEX\ as a \LUA\ interpreter}] \topicindex {initialization} \topicindex {\LUA+interpreter} @@ -37,7 +37,9 @@ positive values, just like the \LUA\ interpreter. in effect, a somewhat bulky stand alone \LUA\ interpreter with a bunch of extra preloaded libraries. -\subsection{\LUATEX\ as a \LUA\ byte compiler} +\stopsubsection + +\startsubsection[title={\LUATEX\ as a \LUA\ byte compiler}] \topicindex {\LUA+byte code} @@ -52,9 +54,11 @@ In this mode, \LUATEX\ is exactly like \type {luac} from the stand alone \LUA\ distribution, except that it does not have the \type {-l} switch, and that it accepts (but ignores) the \type {--luaconly} switch. The current version of \LUA\ can dump bytecode using \type {string.dump} so we might decide to drop this -version if \LUATEX. +version of \LUATEX. + +\stopsubsection -\subsection{Other commandline processing} +\startsubsection[title={Other commandline processing}] \topicindex {command line} @@ -136,7 +140,7 @@ any other \WEBC|-|based typesetting engine, except that \LUATEX\ has a few extra switches and lacks some others. Also, if the \type {--lua} option is present, \LUATEX\ will enter an alternative mode of command line processing in comparison to the standard \WEBC\ programs. In this mode, a small series of actions is taken -in order. +in the following order: \startitemize[n] @@ -160,6 +164,8 @@ in order. \LUA\ commands that can easily be abused by a malicious document. At the moment, \type {--safer} \type {nil}s the following functions: + \blank + \starttabulate[|c|l|] \DB library \BC functions \NC \NR \TB @@ -171,18 +177,20 @@ in order. \LL \stoptabulate + \blank + Furthermore, it disables loading of compiled \LUA\ libraries and it makes \type {io.open()} fail on files that are opened for anything besides reading. \stopitem \startitem - When \LUATEX\ starts it set the locale to a neutral value. If for some reason - you use \type {os.locale}, you need to make sure you \type {nil} it - afterwards because otherwise it can interfere with code that for instance - generates dates. You can nil the locale with + When \LUATEX\ starts it sets the \type {locale} to a neutral value. If for + some reason you use \type {os.locale}, you need to make sure you \type {nil} + it afterwards because otherwise it can interfere with code that for instance + generates dates. You can ignore the \type {locale} with: \starttyping - os.setlocale(nil.nil) + os.setlocale(nil,nil) \stoptyping The \type {--nosocket} option makes the socket library unavailable, so that \LUA\ @@ -236,17 +244,34 @@ finished: in order to initialize the built|-|in \KPATHSEA\ library properly, check \type {--progname}, or \type {--ini} and \type {--fmt}, if \type {--progname} is missing. -\section{\LUA\ behaviour} +\stopsubsection + +\stopsection + +\startsection[title={\LUA\ behaviour}] + +\startsubsection[title={The \LUA\ version}] \topicindex {\LUA+libraries} \topicindex {\LUA+extensions} +We currently use \LUA\ 5.3 and will follow developments of the language but +normally with some delay. Therefore the user needs to keep an eye on (subtle) +differences in successive versions of the language. Also, \LUAJITTEX\ lags behind +in the sense that \LUAJIT\ is not in sync with regular \LUA\ development. Here is +an example of one aspect. + \LUA s \type {tostring} function (and \type {string.format} may return values in scientific notation, thereby confusing the \TEX\ end of things when it is used as the right|-|hand side of an assignment to a \prm {dimen} or \prm {count}. The output of these serializers also depend on the \LUA\ version, so in \LUA\ 5.3 you can get different output than from 5.2. +\stopsubsection + +\startsubsection[title={Integration in the \TDS\ ecosystem}] + +The main \TEX\ distributions follow the \TEX\ directory structure (\TDS). \LUATEX\ is able to use the kpathsea library to find \type {require()}d modules. For this purpose, \type {package.searchers[2]} is replaced by a different loader function, that decides at runtime whether to use kpathsea or the built|-|in core @@ -257,6 +282,10 @@ Initialization of \KPATHSEA\ can happen either implicitly (when \LUATEX\ starts up and the startup script has not set \type {texconfig.kpse_init} to false), or explicitly by calling the \LUA\ function \type {kpse.set_program_name()}. +\stopsubsection + +\startsubsection[title={Loading libraries}] + \LUATEX\ is able to use dynamically loadable \LUA\ libraries, unless \type {--safer} was given as an option on the command line. For this purpose, \type {package.searchers[3]} is replaced by a different loader function, that @@ -286,6 +315,10 @@ at the same time (which will typically happen on \type {win32}, because there is one \LUA\ 5.3 inside \LUATEX, and another will likely be linked to the \DLL\ file of the module itself). +\stopsubsection + +\startsubsection[title={Executing programs}] + In keeping with the other \TEX|-|like programs in \TEXLIVE, the two \LUA\ functions \type {os.execute} and \type {io.popen}, as well as the two new functions \type {os.exec} and \type {os.spawn} that are explained below, take the value of \type @@ -296,33 +329,40 @@ the command line option \type {--luaonly} was not given), it will only run the four functions above if the matching \type {texmf.cnf} variable(s) or their \type {texconfig} (see \in {section} [texconfig]) counterparts allow execution of the requested system command. In \quote {script interpreter} runs of \LUATEX, these -settings have no effect, and all four functions function as normal. +settings have no effect, and all four functions have their original meaning. -Some libraries have a few more functions, either coded in \CCODE\ or in \LUA. -For instance, when we started with \LUATEX\ we added some helpers to the \type +Some libraries have a few more functions, either coded in \CCODE\ or in \LUA. For +instance, when we started with \LUATEX\ we added some helpers to the \type {luafilesystem} namespace \type {lfs}. The two boolean functions \type {lfs.isdir} and \type {lfs.isfile} were speedy and better variants of what could be done with \type {lfs.attributes}. The additional function \type {lfs.shortname} takes a file name and returns its short name on \type {win32} platforms. Finally, for non|-|\type {win32} platforms only, we provided \type {lfs.readlink} that takes an existing symbolic link as argument and returns its -name. However, the \type library evolved sop now we dropped these in favour of -pure \LUA\ variants. The \type {shortname} helper is considered obsolete and now -just returns the name. - -The \type {string} library has a few extra functions like \type -{string.explode(s[,m])}. This function returns an array containing the string -argument \type {s} split into sub-strings based on the value of the string -argument \type {m}. The second argument is a string that is either empty (this -splits the string into characters), a single character (this splits on each -occurrence of that character, possibly introducing empty strings), or a single -character followed by the plus sign \type {+} (this special version does not -create empty sub-strings). The default value for \type {m} is \quote {\type { +}} -(multiple spaces). Note: \type {m} is not hidden by surrounding braces as it -would be if this function was written in \TEX\ macros. +name. However, the \type library evolved so we have dropped these in favour of +pure \LUA\ variants. The \type {shortname} helper is obsolete and now just +returns the name. + +\stopsubsection + +\startsubsection[title={Multibyte \type {string} functions}] + +The \type {string} library has a few extra functions, for example \libidx +{string} {explode}. This function takes upto two arguments: \type +{string.explode(s[,m])} and returns an array containing the string argument \type +{s} split into sub-strings based on the value of the string argument \type {m}. +The second argument is a string that is either empty (this splits the string into +characters), a single character (this splits on each occurrence of that +character, possibly introducing empty strings), or a single character followed by +the plus sign \type {+} (this special version does not create empty sub-strings). +The default value for \type {m} is \quote {\type { +}} (multiple spaces). Note: +\type {m} is not hidden by surrounding braces as it would be if this function was +written in \TEX\ macros. The \type {string} library also has six extra iterators that return strings -piecemeal: +piecemeal: \libidx {string} {utfvalues}, \libidx {string} {utfcharacters}, +\libidx {string} {characters}, \libidx {string} {characterpairs}, \libidx +{string} {bytes} and \libidx {string} {bytepairs}. \startitemize \startitem @@ -332,7 +372,7 @@ piecemeal: \type {string.utfcharacters(s)}: a string with a single \UTF-8 token in it \stopitem \startitem - \type {string.characters(s)}: a string containing one byte + \type {string.cWharacters(s)}: a string containing one byte \stopitem \startitem \type {string.characterpairs(s)}: two strings each containing one byte or an @@ -368,7 +408,8 @@ interpretation of character classes in \type {unicode.utf8} functions refer to the library sources at \hyphenatedurl {http://luaforge.net/projects/sln}. Version 5.3 of \LUA\ provides some native \UTF8 support but we have added a few -similar helpers too: +similar helpers too: \libidx {string} {utfvalue}, \libidx {string} {utfcharacter} +and \libidx {string} {utflength}. \startitemize \startitem @@ -384,13 +425,18 @@ similar helpers too: \stopitem \stopitemize -These three functions are relative fast and don't do much checking. They can be used -as building blocks for other helpers. So, eventually we can decide to drop the -\type {sln} library, just that you know. +These three functions are relative fast and don't do much checking. They can be +used as building blocks for other helpers. + +\stopsubsection -\blank +\startsubsection[title={Extra \type {os} library functions}] -The \type {os} library has a few extra functions and variables: +The \type {os} library has a few extra functions and variables: \libidx {os} +{selfdir}, \libidx {os} {exec}, \libidx {os} {spawn}, \libidx {os} {setenv}, +\libidx {os} {env}, \libidx {os} {gettimeofday}, \libidx {os} {times}, \libidx +{os} {tmpdir}, \libidx {os} {type}, \libidx {os} {name} and \libidx {os} {uname}, +that we will discuss here. \startitemize @@ -512,14 +558,86 @@ The \type {os} library has a few extra functions and variables: \stopitem \startitem - \type {os.uname()} returns a table with specific operating system + \type {os.uname} returns a table with specific operating system information acquired at runtime. The keys in the returned table are all - string valued, and their names are: \type {sysname}, \type {machine}, \type + string values, and their names are: \type {sysname}, \type {machine}, \type {release}, \type {version}, and \type {nodename}. \stopitem \stopitemize +\stopsubsection + +\startsubsection[title={Binary input from files with \type {fio}}] + +There is a whole set of helpers for reading numbers and strings from a file: +\libidx {fio} {readcardinal1}, \libidx {fio} {readcardinal2}, \libidx {fio} +{readcardinal3}, \libidx {fio} {readcardinal4}, \libidx {fio} +{readcardinaltable}, \libidx {fio} {readinteger1}, \libidx {fio} {readinteger2}, +\libidx {fio} {readinteger3}, \libidx {fio} {readinteger4}, \libidx {fio} +{readintegertable}, \libidx {fio} {readfixed2}, \libidx {fio} {readfixed4}, +\libidx {fio} {read2dot14}, \libidx {fio} {setposition}, \libidx {fio} +{getposition}, \libidx {fio} {skipposition}, \libidx {fio} {readbytes}, \libidx +{fio} {readbytetable}. They work on normal \LUA\ file handles. + +%libidx{fio}{readline} +%libidx{fio}{recordfilename} +%libidx{fio}{checkpermission} + +This library provides a set of functions for reading numbers from a file and +in addition to the regular \type {io} library functions. + +\starttabulate +\NC \type{readcardinal1(f)} \NC a 1 byte unsigned integer \NC \NR +\NC \type{readcardinal2(f)} \NC a 2 byte unsigned integer \NC \NR +\NC \type{readcardinal3(f)} \NC a 3 byte unsigned integer \NC \NR +\NC \type{readcardinal4(f)} \NC a 4 byte unsigned integer \NC \NR +\NC \type{readcardinaltable(f,n,b)} \NC \type {n} cardinals of \type {b} bytes \NC \NR +\NC \type{readinteger1(f)} \NC a 1 byte signed integer \NC \NR +\NC \type{readinteger2(f)} \NC a 2 byte signed integer \NC \NR +\NC \type{readinteger3(f)} \NC a 3 byte signed integer \NC \NR +\NC \type{readinteger4(f)} \NC a 4 byte signed integer \NC \NR +\NC \type{readintegertable(f,n,b)} \NC \type {n} integers of \type {b} bytes \NC \NR +\NC \type{readfixed2(f)} \NC a 2 byte float (used in font files) \NC \NR +\NC \type{readfixed4(f)} \NC a 4 byte float (used in font files) \NC \NR +\NC \type{read2dot14(f)} \NC a 2 byte float (used in font files) \NC \NR +\NC \type{setposition(f,p)} \NC goto position \type {p} \NC \NR +\NC \type{getposition(f)} \NC get the current position \NC \NR +\NC \type{skipposition(f,n)} \NC skip \type {n} positions \NC \NR +\NC \type{readbytes(f,n)} \NC \type {n} bytes \NC \NR +\NC \type{readbytetable(f,n)} \NC \type {n} bytes\NC \NR +\stoptabulate + +\stopsubsection + +\startsubsection[title={Binary input from strings with \type {sio}}] + +A similar set of function as in the \type {fio} library is available in the \type +{sio} library: \libidx {sio} {readcardinal1}, \libidx {sio} {readcardinal2}, +\libidx {sio} {readcardinal3}, \libidx {sio} {readcardinal4}, \libidx {sio} +{readcardinaltable}, \libidx {sio} {readinteger1}, \libidx {sio} {readinteger2}, +\libidx {sio} {readinteger3}, \libidx {sio} {readinteger4}, \libidx {sio} +{readintegertable}, \libidx {sio} {readfixed2}, \libidx {sio} {readfixed4}, +\libidx {sio} {read2dot14}, \libidx {sio} {setposition}, \libidx {sio} +{getposition}, \libidx {sio} {skipposition}, \libidx {sio} {readbytes} and +\libidx {sio} {readbytetable}. Here the first argument is a string instead of a +file handle. More details can be found in the previous section. + +\stopsubsection + +\startsubsection[title={Hashes conform \type {sha2}}] + +This library is a side effect of the \type {pdfe} library that needs such +helpers. The \libidx{sha2}{digest256}, \libidx{sha2}{digest384} and +\libidx{sha2}{digest512} functions accept a string and return a string with the +hash. + +\stopsubsection + +\startsubsection[title={Locales}] + +\index {locales} + In stock \LUA, many things depend on the current locale. In \LUATEX, we can't do that, because it makes documents unportable. While \LUATEX\ is running if forces the following locale settings: @@ -530,7 +648,11 @@ LC_COLLATE=C LC_NUMERIC=C \stoptyping -\section {\LUA\ modules} +\stopsubsection + +\stopsection + +\startsection[title={\LUA\ modules}] \topicindex {\LUA+libraries} \topicindex {\LUA+modules} @@ -593,7 +715,9 @@ Some modules that are normally external to \LUA\ are statically linked in with \stopitemize -\section{Testing} +\stopsection + +\startsection[title={Testing}] \topicindex {testing} \topicindex {\PDF+date} @@ -627,7 +751,9 @@ complementary entry \type {use_utc_time} in the \type {texconfig} table. There is some control possible, for instance prevent filename to be written to the \PDF\ file. This is discussed elsewhere. In \CONTEXT\ we provide the command -line argument \type {--nodates} that does bit more disabling of dates. +line argument \type {--nodates} that does a bit more disabling of dates. + +\stopsection \stopchapter diff --git a/manual/luatex-math.tex b/manual/luatex-math.tex index 1b989220e9cc3a5dc6b61f8b7599f7cfd93f732f..fd038150f5968b2b03bef9815f203e9fad2a7775 100644 --- a/manual/luatex-math.tex +++ b/manual/luatex-math.tex @@ -6,6 +6,8 @@ \startchapter[reference=math,title={Math}] +\startsection[title={Traditional alongside \OPENTYPE}] + \topicindex {math} The handling of mathematics in \LUATEX\ differs quite a bit from how \TEX82 (and @@ -17,7 +19,120 @@ make it easier to use \OPENTYPE\ math fonts. And finally, there are some extensions that have been proposed or considered in the past that are now added to the engine. -\section{Math styles} +\stopsection + +\startsection[title={Unicode math characters}] + +\topicindex {math+\UNICODE} +\topicindex {\UNICODE+math} + +Character handling is now extended up to the full \UNICODE\ range (the \type {\U} +prefix), which is compatible with \XETEX. + +The math primitives from \TEX\ are kept as they are, except for the ones that +convert from input to math commands: \type {mathcode}, and \type {delcode}. These +two now allow for a 21-bit character argument on the left hand side of the equals +sign. + +Some of the new \LUATEX\ primitives read more than one separate value. This is +shown in the tables below by a plus sign. + +The input for such primitives would look like this: + +\starttyping +\def\overbrace{\Umathaccent 0 1 "23DE } +\stoptyping + +The altered \TEX82 primitives are: + +\starttabulate[|l|l|r|c|l|r|] +\DB primitive \BC min \BC max \BC \kern 2em \BC min \BC max \NC \NR +\TB +\NC \prm {mathcode} \NC 0 \NC 10FFFF \NC = \NC 0 \NC 8000 \NC \NR +\NC \prm {delcode} \NC 0 \NC 10FFFF \NC = \NC 0 \NC FFFFFF \NC \NR +\LL +\stoptabulate + +The unaltered ones are: + +\starttabulate[|l|l|r|] +\DB primitive \BC min \BC max \NC \NR +\TB +\NC \prm {mathchardef} \NC 0 \NC 8000 \NC \NR +\NC \prm {mathchar} \NC 0 \NC 7FFF \NC \NR +\NC \prm {mathaccent} \NC 0 \NC 7FFF \NC \NR +\NC \prm {delimiter} \NC 0 \NC 7FFFFFF \NC \NR +\NC \prm {radical} \NC 0 \NC 7FFFFFF \NC \NR +\LL +\stoptabulate + +For practical reasons \prm {mathchardef} will silently accept values larger +that \type {0x8000} and interpret it as \lpr {Umathcharnumdef}. This is needed +to satisfy older macro packages. + +The following new primitives are compatible with \XETEX: + +% somewhat fuzzy: + +\starttabulate[|l|l|r|c|l|r|] +\DB primitive \BC min \BC max \BC \kern 2em \BC min \BC max \NC \NR +\TB +\NC \lpr {Umathchardef} \NC 0+0+0 \NC 7+FF+10FFFF \NC \NC \NC \NC \NR +\NC \lpr {Umathcharnumdef}\rlap{\high{5}} \NC -80000000 \NC 7FFFFFFF \NC \NC \NC \NC \NR +\NC \lpr {Umathcode} \NC 0 \NC 10FFFF \NC = \NC 0+0+0 \NC 7+FF+10FFFF \NC \NR +\NC \lpr {Udelcode} \NC 0 \NC 10FFFF \NC = \NC 0+0 \NC FF+10FFFF \NC \NR +\NC \lpr {Umathchar} \NC 0+0+0 \NC 7+FF+10FFFF \NC \NC \NC \NC \NR +\NC \lpr {Umathaccent} \NC 0+0+0 \NC 7+FF+10FFFF \NC \NC \NC \NC \NR +\NC \lpr {Udelimiter} \NC 0+0+0 \NC 7+FF+10FFFF \NC \NC \NC \NC \NR +\NC \lpr {Uradical} \NC 0+0 \NC FF+10FFFF \NC \NC \NC \NC \NR +\NC \lpr {Umathcharnum} \NC -80000000 \NC 7FFFFFFF \NC \NC \NC \NC \NR +\NC \lpr {Umathcodenum} \NC 0 \NC 10FFFF \NC = \NC -80000000 \NC 7FFFFFFF \NC \NR +\NC \lpr {Udelcodenum} \NC 0 \NC 10FFFF \NC = \NC -80000000 \NC 7FFFFFFF \NC \NR +\LL +\stoptabulate + +Specifications typically look like: + +\starttyping +\Umathchardef\xx="1"0"456 +\Umathcode 123="1"0"789 +\stoptyping + +The new primitives that deal with delimiter|-|style objects do not set up a +\quote {large family}. Selecting a suitable size for display purposes is expected +to be dealt with by the font via the \lpr {Umathoperatorsize} parameter. + +For some of these primitives, all information is packed into a single signed +integer. For the first two (\lpr {Umathcharnum} and \lpr {Umathcodenum}), the +lowest 21 bits are the character code, the 3 bits above that represent the math +class, and the family data is kept in the topmost bits. This means that the values +for math families 128--255 are actually negative. For \lpr {Udelcodenum} there +is no math class. The math family information is stored in the bits directly on +top of the character code. Using these three commands is not as natural as using +the two- and three|-|value commands, so unless you know exactly what you are +doing and absolutely require the speedup resulting from the faster input +scanning, it is better to use the verbose commands instead. + +The \lpr {Umathaccent} command accepts optional keywords to control various +details regarding math accents. See \in {section} [mathacc] below for details. + +There are more new primitives and all of these will be explained in following +sections: + +\starttabulate[|l|l|] +\DB primitive \BC value range (in hex) \NC \NR +\TB +\NC \lpr {Uroot} \NC 0 + 0--FF + 10FFFF \NC \NR +\NC \lpr {Uoverdelimiter} \NC 0 + 0--FF + 10FFFF \NC \NR +\NC \lpr {Uunderdelimiter} \NC 0 + 0--FF + 10FFFF \NC \NR +\NC \lpr {Udelimiterover} \NC 0 + 0--FF + 10FFFF \NC \NR +\NC \lpr {Udelimiterunder} \NC 0 + 0--FF + 10FFFF \NC \NR +\LL +\stoptabulate + +\stopsection + +\startsection[title={Math styles}] \subsection{\lpr {mathstyle}} @@ -30,7 +145,7 @@ possible, \LUATEX\ adds the new primitive: \lpr {mathstyle}. This is a \quote not set. The returned value is between 0 and 7 (in math mode), or $-1$ (all other modes). -For easy testing, the eight math style commands have been altered so that the can +For easy testing, the eight math style commands have been altered so that they can be used as numeric values, so you can write code like this: \starttyping @@ -150,117 +265,7 @@ $\Ustack {a \over b}$ The \lpr {Ustack} command will scan the next brace and start a new math group with the correct (numerator) math style. -\section{Unicode math characters} - -\topicindex {math+\UNICODE} -\topicindex {\UNICODE+math} - -Character handling is now extended up to the full \UNICODE\ range (the \type {\U} -prefix), which is compatible with \XETEX. - -The math primitives from \TEX\ are kept as they are, except for the ones that -convert from input to math commands: \type {mathcode}, and \type {delcode}. These -two now allow for a 21-bit character argument on the left hand side of the equals -sign. - -Some of the new \LUATEX\ primitives read more than one separate value. This is -shown in the tables below by a plus sign in the second column. - -The input for such primitives would look like this: - -\starttyping -\def\overbrace{\Umathaccent 0 1 "23DE } -\stoptyping - -The altered \TEX82 primitives are: - -\starttabulate[|l|l|r|c|l|r|] -\DB primitive \BC min \BC max \BC \kern 2em \BC min \BC max \NC \NR -\TB -\NC \prm {mathcode} \NC 0 \NC 10FFFF \NC = \NC 0 \NC 8000 \NC \NR -\NC \prm {delcode} \NC 0 \NC 10FFFF \NC = \NC 0 \NC FFFFFF \NC \NR -\LL -\stoptabulate - -The unaltered ones are: - -\starttabulate[|l|l|r|] -\DB primitive \BC min \BC max \NC \NR -\TB -\NC \prm {mathchardef} \NC 0 \NC 8000 \NC \NR -\NC \prm {mathchar} \NC 0 \NC 7FFF \NC \NR -\NC \prm {mathaccent} \NC 0 \NC 7FFF \NC \NR -\NC \prm {delimiter} \NC 0 \NC 7FFFFFF \NC \NR -\NC \prm {radical} \NC 0 \NC 7FFFFFF \NC \NR -\LL -\stoptabulate - -For practical reasons \prm {mathchardef} will silently accept values larger -that \type {0x8000} and interpret it as \lpr {Umathcharnumdef}. This is needed -to satisfy older macro packages. - -The following new primitives are compatible with \XETEX: - -% somewhat fuzzy: - -\starttabulate[|l|l|r|c|l|r|] -\DB primitive \BC min \BC max \BC \kern 2em \BC min \BC max \NC \NR -\TB -\NC \lpr {Umathchardef} \NC 0+0+0 \NC 7+FF+10FFFF \NC \NC \NC \NC \NR -\NC \lpr {Umathcharnumdef}\rlap{\high{5}} \NC -80000000 \NC 7FFFFFFF \NC \NC \NC \NC \NR -\NC \lpr {Umathcode} \NC 0 \NC 10FFFF \NC = \NC 0+0+0 \NC 7+FF+10FFFF \NC \NR -\NC \lpr {Udelcode} \NC 0 \NC 10FFFF \NC = \NC 0+0 \NC FF+10FFFF \NC \NR -\NC \lpr {Umathchar} \NC 0+0+0 \NC 7+FF+10FFFF \NC \NC \NC \NC \NR -\NC \lpr {Umathaccent} \NC 0+0+0 \NC 7+FF+10FFFF \NC \NC \NC \NC \NR -\NC \lpr {Udelimiter} \NC 0+0+0 \NC 7+FF+10FFFF \NC \NC \NC \NC \NR -\NC \lpr {Uradical} \NC 0+0 \NC FF+10FFFF \NC \NC \NC \NC \NR -\NC \lpr {Umathcharnum} \NC -80000000 \NC 7FFFFFFF \NC \NC \NC \NC \NR -\NC \lpr {Umathcodenum} \NC 0 \NC 10FFFF \NC = \NC -80000000 \NC 7FFFFFFF \NC \NR -\NC \lpr {Udelcodenum} \NC 0 \NC 10FFFF \NC = \NC -80000000 \NC 7FFFFFFF \NC \NR -\LL -\stoptabulate - -Specifications typically look like: - -\starttyping -\Umathchardef\xx="1"0"456 -\Umathcode 123="1"0"789 -\stoptyping - -The new primitives that deal with delimiter|-|style objects do not set up a -\quote {large family}. Selecting a suitable size for display purposes is expected -to be dealt with by the font via the \lpr {Umathoperatorsize} parameter (more -information can be found in a following section). - -For some of these primitives, all information is packed into a single signed -integer. For the first two (\lpr {Umathcharnum} and \lpr {Umathcodenum}), the -lowest 21 bits are the character code, the 3 bits above that represent the math -class, and the family data is kept in the topmost bits This means that the values -for math families 128--255 are actually negative. For \lpr {Udelcodenum} there -is no math class. The math family information is stored in the bits directly on -top of the character code. Using these three commands is not as natural as using -the two- and three|-|value commands, so unless you know exactly what you are -doing and absolutely require the speedup resulting from the faster input -scanning, it is better to use the verbose commands instead. - -The \lpr {Umathaccent} command accepts optional keywords to control various -details regarding math accents. See \in {section} [mathacc] below for details. - -There are more new primitives and all of these will be explained in following -sections: - -\starttabulate[|l|l|] -\DB primitive \BC value range (in hex) \NC \NR -\TB -\NC \lpr {Uroot} \NC 0 + 0--FF + 10FFFF \NC \NR -\NC \lpr {Uoverdelimiter} \NC 0 + 0--FF + 10FFFF \NC \NR -\NC \lpr {Uunderdelimiter} \NC 0 + 0--FF + 10FFFF \NC \NR -\NC \lpr {Udelimiterover} \NC 0 + 0--FF + 10FFFF \NC \NR -\NC \lpr {Udelimiterunder} \NC 0 + 0--FF + 10FFFF \NC \NR -\LL -\stoptabulate - -\section{Cramped math styles} +\subsection{Cramped math styles} \topicindex {math+styles} \topicindex {math+spacing} @@ -304,9 +309,9 @@ are described as follows: \stopitemize In \LUATEX\ one can set the styles in more detail which means that you sometimes -have to set both normal and cramped styles to get the effect you want. If we -force styles in the script using \prm {scriptstyle} and \lpr {crampedscriptstyle} -we get this: +have to set both normal and cramped styles to get the effect you want. (Even) if +we force styles in the script using \prm {scriptstyle} and \lpr +{crampedscriptstyle} we get this: \startbuffer[demo] \starttabulate @@ -330,7 +335,7 @@ Now we set the following parameters \typebuffer[setup] -This gives: +This gives a different result: \start\getbuffer[setup,demo]\stop @@ -349,13 +354,17 @@ Now we get: \start\getbuffer[setup,demo]\stop -\section{Math parameter settings} +\stopsection + +\startsection[title={Math parameter settings}] + +\subsection {Many new \lpr {Umath*} primitives} \topicindex {math+parameters} In \LUATEX, the font dimension parameters that \TEX\ used in math typesetting are now accessible via primitive commands. In fact, refactoring of the math engine -has resulted in many more parameters than were accessible before. +has resulted in many more parameters than were not accessible before. \starttabulate \DB primitive name \BC description \NC \NR @@ -427,27 +436,7 @@ Each of the parameters in this section can be set by a command like this: they obey grouping, and you can use \type {\the\Umathquad\displaystyle} if needed. -\section{Skips around display math} - -\topicindex {math+spacing} - -The injection of \prm {abovedisplayskip} and \prm {belowdisplayskip} is not -symmetrical. An above one is always inserted, also when zero, but the below is -only inserted when larger than zero. Especially the later makes it sometimes hard -to fully control spacing. Therefore \LUATEX\ comes with a new directive: \lpr -{mathdisplayskipmode}. The following values apply: - -\starttabulate[|c|l|] -\DB value \BC meaning \NC \NR -\TB -\NC 0 \NC normal \TEX\ behaviour \NC \NR -\NC 1 \NC always (same as 0) \NC \NR -\NC 2 \NC only when not zero \NC \NR -\NC 3 \NC never, not even when not zero \NC \NR -\LL -\stoptabulate - -\section{Font|-|based Math Parameters} +\subsection{Font|-|based math parameters} \topicindex {math+parameters} @@ -463,7 +452,7 @@ case no attention is paid to which family is being assigned to: the \type {MathConstants} tables in the last assigned family sets all parameters. In the table below, the one|-|letter style abbreviations and symbolic tfm font -dimension names match those using in the \TeX book. Assignments to \prm +dimension names match those used in the \TeX book. Assignments to \prm {textfont} set the values for the cramped and uncramped display and text styles, \prm {scriptfont} sets the script styles, and \prm {scriptscriptfont} sets the scriptscript styles, so we have eight parameters for three font sizes. In the @@ -574,7 +563,7 @@ scaled point more than the initial attempt's size, so that always the \quote {first next} will be tried, just like in \TEX82. Note 7: The \lpr {Umathradicaldegreeraise} is a special case because it is the -only parameter that is expressed in a percentage instead of as a number of scaled +only parameter that is expressed in a percentage instead of a number of scaled points. Note 8: \type {SubscriptShiftDownWithSuperscript} does not actually exist in the @@ -585,34 +574,214 @@ Note 9: \type {FractionDelimiterDisplayStyleSize} and \type {FractionDelimiterSize} do not actually exist in the \quote {standard} \OPENTYPE\ math font Cambria, but were useful enough to be added. -\section {Nolimit correction} +\stopsection -\topicindex {math+limits} +\startsection[title={Math spacing}] -There are two extra math parameters \lpr {Umathnolimitsupfactor} and \lpr -{Umathnolimitsubfactor} that were added to provide some control over how limits -are spaced (for example the position of super and subscripts after integral -operators). They relate to an extra parameter \lpr {mathnolimitsmode}. The half -corrections are what happens when scripts are placed on above and below. The -problem with italic corrections is that officially that correction italic is used -for above|/|below placement while advanced kerns are used for placement at the -right end. The question is: how often is this implemented, and if so, does the -kerns assume correction too. Anyway, with this parameter one can control it. +\subsection{Inline surrounding space} -\starttabulate[|l|ck1|ck1|ck1|ck1|ck1|ck1|] - \NC - \NC \mathnolimitsmode0 $\displaystyle\int\nolimits^0_1$ - \NC \mathnolimitsmode1 $\displaystyle\int\nolimits^0_1$ - \NC \mathnolimitsmode2 $\displaystyle\int\nolimits^0_1$ - \NC \mathnolimitsmode3 $\displaystyle\int\nolimits^0_1$ - \NC \mathnolimitsmode4 $\displaystyle\int\nolimits^0_1$ - \NC \mathnolimitsmode8000 $\displaystyle\int\nolimits^0_1$ - \NC \NR - \TB - \BC mode - \NC \tttf 0 - \NC \tttf 1 - \NC \tttf 2 +\topicindex {math+spacing} + +Inline math is surrounded by (optional) \prm {mathsurround} spacing but that is a fixed +dimension. There is now an additional parameter \lpr {mathsurroundskip}. When set to a +non|-|zero value (or zero with some stretch or shrink) this parameter will replace +\prm {mathsurround}. By using an additional parameter instead of changing the nature +of \prm {mathsurround}, we can remain compatible. In the meantime a bit more +control has been added via \lpr {mathsurroundmode}. This directive can take 6 values +with zero being the default behaviour. + +\start + +\def\OneLiner#1#2% + {\NC \type{#1} + \NC \dontleavehmode\inframed[align=normal,offset=0pt,frame=off]{\mathsurroundmode#1\relax\hsize 100pt x$x$x} + \NC \dontleavehmode\inframed[align=normal,offset=0pt,frame=off]{\mathsurroundmode#1\relax\hsize 100pt x $x$ x} + \NC #2 + \NC \NR} + +\startbuffer +\mathsurround 10pt +\mathsurroundskip20pt +\stopbuffer + +\typebuffer \getbuffer + +\starttabulate[|c|c|c|pl|] +\DB mode \BC x\$x\$x \BC x \$x\$ x \BC effect \NC \NR +\TB +\OneLiner{0}{obey \prm {mathsurround} when \lpr {mathsurroundskip} is 0pt} +\OneLiner{1}{only add skip to the left} +\OneLiner{2}{only add skip to the right} +\OneLiner{3}{add skip to the left and right} +\OneLiner{4}{ignore the skip setting, obey \prm {mathsurround}} +\OneLiner{5}{disable all spacing around math} +\OneLiner{6}{only apply \lpr {mathsurroundskip} when also spacing} +\OneLiner{7}{only apply \lpr {mathsurroundskip} when no spacing} +\LL +\stoptabulate + +\stop + +Method six omits the surround glue when there is (x)spacing glue present while +method seven does the opposite, the glue is only applied when there is (x)space +glue present too. Anything more fancy, like checking the begining or end of a +paragraph (or edges of a box) would not be robust anyway. If you want that you +can write a callback that runs over a list and analyzes a paragraph. Actually, in +that case you could also inject glue (or set the properties of a math node) +explicitly. So, these modes are in practice mostly useful for special purposes +and experiments (they originate in a tracker item). Keep in mind that this glue +is part of the math node and not always treated as normal glue: it travels with +the begin and end math nodes. Also, method 6 and 7 will zero the skip related +fields in a node when applicable in the first occasion that checks them +(linebreaking or packaging). + +\subsection{Pairwise spacing} + +\topicindex {math+spacing} + +Besides the parameters mentioned in the previous sections, there are also 64 new +primitives to control the math spacing table (as explained in Chapter~18 of the +\TEX book). The primitive names are a simple matter of combining two math atom +types, but for completeness' sake, here is the whole list: + +\starttwocolumns +\startlines +\lpr {Umathordordspacing} +\lpr {Umathordopspacing} +\lpr {Umathordbinspacing} +\lpr {Umathordrelspacing} +\lpr {Umathordopenspacing} +\lpr {Umathordclosespacing} +\lpr {Umathordpunctspacing} +\lpr {Umathordinnerspacing} +\lpr {Umathopordspacing} +\lpr {Umathopopspacing} +\lpr {Umathopbinspacing} +\lpr {Umathoprelspacing} +\lpr {Umathopopenspacing} +\lpr {Umathopclosespacing} +\lpr {Umathoppunctspacing} +\lpr {Umathopinnerspacing} +\lpr {Umathbinordspacing} +\lpr {Umathbinopspacing} +\lpr {Umathbinbinspacing} +\lpr {Umathbinrelspacing} +\lpr {Umathbinopenspacing} +\lpr {Umathbinclosespacing} +\lpr {Umathbinpunctspacing} +\lpr {Umathbininnerspacing} +\lpr {Umathrelordspacing} +\lpr {Umathrelopspacing} +\lpr {Umathrelbinspacing} +\lpr {Umathrelrelspacing} +\lpr {Umathrelopenspacing} +\lpr {Umathrelclosespacing} +\lpr {Umathrelpunctspacing} +\lpr {Umathrelinnerspacing} +\lpr {Umathopenordspacing} +\lpr {Umathopenopspacing} +\lpr {Umathopenbinspacing} +\lpr {Umathopenrelspacing} +\lpr {Umathopenopenspacing} +\lpr {Umathopenclosespacing} +\lpr {Umathopenpunctspacing} +\lpr {Umathopeninnerspacing} +\lpr {Umathcloseordspacing} +\lpr {Umathcloseopspacing} +\lpr {Umathclosebinspacing} +\lpr {Umathcloserelspacing} +\lpr {Umathcloseopenspacing} +\lpr {Umathcloseclosespacing} +\lpr {Umathclosepunctspacing} +\lpr {Umathcloseinnerspacing} +\lpr {Umathpunctordspacing} +\lpr {Umathpunctopspacing} +\lpr {Umathpunctbinspacing} +\lpr {Umathpunctrelspacing} +\lpr {Umathpunctopenspacing} +\lpr {Umathpunctclosespacing} +\lpr {Umathpunctpunctspacing} +\lpr {Umathpunctinnerspacing} +\lpr {Umathinnerordspacing} +\lpr {Umathinneropspacing} +\lpr {Umathinnerbinspacing} +\lpr {Umathinnerrelspacing} +\lpr {Umathinneropenspacing} +\lpr {Umathinnerclosespacing} +\lpr {Umathinnerpunctspacing} +\lpr {Umathinnerinnerspacing} +\stoplines +\stoptwocolumns + +These parameters are of type \prm {muskip}, so setting a parameter can be done +like this: + +\starttyping +\Umathopordspacing\displaystyle=4mu plus 2mu +\stoptyping + +They are all initialized by \type {initex} to the values mentioned in the table +in Chapter~18 of the \TEX book. + +Note 1: for ease of use as well as for backward compatibility, \prm {thinmuskip}, +\prm {medmuskip} and \prm {thickmuskip} are treated specially. In their case a +pointer to the corresponding internal parameter is saved, not the actual \prm +{muskip} value. This means that any later changes to one of these three +parameters will be taken into account. + +Note 2: Careful readers will realise that there are also primitives for the items +marked \type {*} in the \TEX book. These will not actually be used as those +combinations of atoms cannot actually happen, but it seemed better not to break +orthogonality. They are initialized to zero. + +\subsection{Skips around display math} + +\topicindex {math+spacing} + +The injection of \prm {abovedisplayskip} and \prm {belowdisplayskip} is not +symmetrical. An above one is always inserted, also when zero, but the below is +only inserted when larger than zero. Especially the latter makes it sometimes hard +to fully control spacing. Therefore \LUATEX\ comes with a new directive: \lpr +{mathdisplayskipmode}. The following values apply: + +\starttabulate[|c|l|] +\DB value \BC meaning \NC \NR +\TB +\NC 0 \NC normal \TEX\ behaviour \NC \NR +\NC 1 \NC always (same as 0) \NC \NR +\NC 2 \NC only when not zero \NC \NR +\NC 3 \NC never, not even when not zero \NC \NR +\LL +\stoptabulate + +\subsection {Nolimit correction} + +\topicindex {math+limits} + +There are two extra math parameters \lpr {Umathnolimitsupfactor} and \lpr +{Umathnolimitsubfactor} that were added to provide some control over how limits +are spaced (for example the position of super and subscripts after integral +operators). They relate to an extra parameter \lpr {mathnolimitsmode}. The half +corrections are what happens when scripts are placed above and below. The +problem with italic corrections is that officially that correction italic is used +for above|/|below placement while advanced kerns are used for placement at the +right end. The question is: how often is this implemented, and if so, do the +kerns assume correction too. Anyway, with this parameter one can control it. + +\starttabulate[|l|ck1|ck1|ck1|ck1|ck1|ck1|] + \NC + \NC \mathnolimitsmode0 $\displaystyle\int\nolimits^0_1$ + \NC \mathnolimitsmode1 $\displaystyle\int\nolimits^0_1$ + \NC \mathnolimitsmode2 $\displaystyle\int\nolimits^0_1$ + \NC \mathnolimitsmode3 $\displaystyle\int\nolimits^0_1$ + \NC \mathnolimitsmode4 $\displaystyle\int\nolimits^0_1$ + \NC \mathnolimitsmode8000 $\displaystyle\int\nolimits^0_1$ + \NC \NR + \TB + \BC mode + \NC \tttf 0 + \NC \tttf 1 + \NC \tttf 2 \NC \tttf 3 \NC \tttf 4 \NC \tttf 8000 @@ -643,7 +812,7 @@ shifts to the left. A \lpr {mathnolimitsmode} larger that 15 is considered to be a factor for the subscript correction. This feature can be handy when experimenting. -\section {Math italic mess} +\subsection {Math italic mess} \topicindex {math+italics} @@ -673,15 +842,15 @@ example. This kind of parameters relate to the fact that italic correction in \OPENTYPE\ math is bound to fuzzy rules. So, control is the solution. -\section {Script and kerning} +\subsection {Script and kerning} \topicindex {math+kerning} \topicindex {math+scripts} -If you want typeset text in math macro packages often provide something \type +If you want to typeset text in math macro packages often provide something \type {\text} which obeys the script sizes. As the definition can be anything there is -a good change that the kerning doesn't come out well when used in a script. Given -that the first glyph ends up in an \prm {hbox} we have some control over this. +a good chance that the kerning doesn't come out well when used in a script. Given +that the first glyph ends up in a \prm {hbox} we have some control over this. And, as a bonus we also added control over the normal sublist kerning. The \lpr {mathscriptboxmode} parameter defaults to~1. @@ -761,7 +930,86 @@ control over what one can turn on and off. \LL \stoptabulate -\section {Unscaled fences} +\subsection{Fixed scripts} + +We have three parameters that are used for this fixed anchoring: + +\starttabulate[|c|l|] +\DB parameter \BC register \NC \NR +\NC $d$ \NC \lpr {Umathsubshiftdown} \NC \NR +\NC $u$ \NC \lpr {Umathsupshiftup} \NC \NR +\NC $s$ \NC \lpr {Umathsubsupshiftdown} \NC \NR +\LL +\stoptabulate + +When we set \lpr {mathscriptsmode} to a value other than zero these are used +for calculating fixed positions. This is something that is needed for instance +for chemistry. You can manipulate the mentioned variables to achieve different +effects. + +\def\SampleMath#1% + {$\mathscriptsmode#1\mathupright CH_2 + CH^+_2 + CH^2_2$} + +\starttabulate[|c|c|c|p|] +\DB mode \BC down \BC up \BC example \NC \NR +\TB +\NC 0 \NC dynamic \NC dynamic \NC \SampleMath{0} \NC \NR +\NC 1 \NC $d$ \NC $u$ \NC \SampleMath{1} \NC \NR +\NC 2 \NC $s$ \NC $u$ \NC \SampleMath{2} \NC \NR +\NC 3 \NC $s$ \NC $u + s - d$ \NC \SampleMath{3} \NC \NR +\NC 4 \NC $d + (s-d)/2$ \NC $u + (s-d)/2$ \NC \SampleMath{4} \NC \NR +\NC 5 \NC $d$ \NC $u + s - d$ \NC \SampleMath{5} \NC \NR +\LL +\stoptabulate + +The value of this parameter obeys grouping but applies to the whole current +formula. + +% if needed we can put the value in stylenodes but maybe more should go there + +\subsection{Penalties: \lpr {mathpenaltiesmode}} + +\topicindex {math+penalties} + +Only in inline math penalties will be added in a math list. You can force +penalties (also in display math) by setting: + +\starttyping +\mathpenaltiesmode = 1 +\stoptyping + +This primnitive is not really needed in \LUATEX\ because you can use the callback +\cbk {mlist_to_hlist} to force penalties by just calling the regular routine +with forced penalties. However, as part of opening up and control this primitive +makes sense. As a bonus we also provide two extra penalties: + +\starttyping +\prebinoppenalty = -100 % example value +\prerelpenalty = 900 % example value +\stoptyping + +They default to inifinite which signals that they don't need to be inserted. When +set they are injected before a binop or rel noad. This is an experimental feature. + +\subsection{Equation spacing: \lpr {matheqnogapstep}} + +By default \TEX\ will add one quad between the equation and the number. This is +hard coded. A new primitive can control this: + +\startsyntax +\matheqnogapstep = 1000 +\stopsyntax + +Because a math quad from the math text font is used instead of a dimension, we +use a step to control the size. A value of zero will suppress the gap. The step +is divided by 1000 which is the usual way to mimmick floating point factors in +\TEX. + +\stopsection + +\startsection[title={Math constructs}] + +\subsection {Unscaled fences} \topicindex {math+fences} @@ -769,7 +1017,7 @@ The \lpr {mathdelimitersmode} primitive is experimental and deals with the following (potential) problems. Three bits can be set. The first bit prevents an unwanted shift when the fence symbol is not scaled (a cambria side effect). The second bit forces italic correction between a preceding character ordinal and the -fenced subformula, while the third bit turns that subformula into a ordinary so +fenced subformula, while the third bit turns that subformula into an ordinary so that the same spacing applies as with unfenced variants. Here we show Cambria (with \lpr {mathitalicsmode} enabled). @@ -791,7 +1039,7 @@ that the same spacing applies as with unfenced variants. Here we show Cambria So, when set to 7 fenced subformulas with unscaled delimiters come out the same as unfenced ones. This can be handy for cases where one is forced to use \prm {left} and \prm {right} always because of unpredictable content. As said, it's an -experimental features (which somehow fits in the exceptional way fences are dealt +experimental feature (which somehow fits in the exceptional way fences are dealt with in the engine). The full list of flags is given in the next table: \starttabulate[|c|l|] @@ -799,7 +1047,7 @@ with in the engine). The full list of flags is given in the next table: \TB \NC \type{"01} \NC don't apply the usual shift \NC \NR \NC \type{"02} \NC apply italic correction when possible \NC \NR -\NC \type{"04} \NC force a ordinary subformula \NC \NR +\NC \type{"04} \NC force an ordinary subformula \NC \NR \NC \type{"08} \NC no shift when a base character \NC \NR \NC \type{"10} \NC only shift when an extensible \NC \NR \LL @@ -807,106 +1055,7 @@ with in the engine). The full list of flags is given in the next table: The effect can depend on the font (and for Cambria one can use for instance \type {"16}). -\section {Math spacing setting} - -\topicindex {math+spacing} - -Besides the parameters mentioned in the previous sections, there are also 64 new -primitives to control the math spacing table (as explained in Chapter~18 of the -\TEX book). The primitive names are a simple matter of combining two math atom -types, but for completeness' sake, here is the whole list: - -\starttwocolumns -\startlines -\lpr {Umathordordspacing} -\lpr {Umathordopspacing} -\lpr {Umathordbinspacing} -\lpr {Umathordrelspacing} -\lpr {Umathordopenspacing} -\lpr {Umathordclosespacing} -\lpr {Umathordpunctspacing} -\lpr {Umathordinnerspacing} -\lpr {Umathopordspacing} -\lpr {Umathopopspacing} -\lpr {Umathopbinspacing} -\lpr {Umathoprelspacing} -\lpr {Umathopopenspacing} -\lpr {Umathopclosespacing} -\lpr {Umathoppunctspacing} -\lpr {Umathopinnerspacing} -\lpr {Umathbinordspacing} -\lpr {Umathbinopspacing} -\lpr {Umathbinbinspacing} -\lpr {Umathbinrelspacing} -\lpr {Umathbinopenspacing} -\lpr {Umathbinclosespacing} -\lpr {Umathbinpunctspacing} -\lpr {Umathbininnerspacing} -\lpr {Umathrelordspacing} -\lpr {Umathrelopspacing} -\lpr {Umathrelbinspacing} -\lpr {Umathrelrelspacing} -\lpr {Umathrelopenspacing} -\lpr {Umathrelclosespacing} -\lpr {Umathrelpunctspacing} -\lpr {Umathrelinnerspacing} -\lpr {Umathopenordspacing} -\lpr {Umathopenopspacing} -\lpr {Umathopenbinspacing} -\lpr {Umathopenrelspacing} -\lpr {Umathopenopenspacing} -\lpr {Umathopenclosespacing} -\lpr {Umathopenpunctspacing} -\lpr {Umathopeninnerspacing} -\lpr {Umathcloseordspacing} -\lpr {Umathcloseopspacing} -\lpr {Umathclosebinspacing} -\lpr {Umathcloserelspacing} -\lpr {Umathcloseopenspacing} -\lpr {Umathcloseclosespacing} -\lpr {Umathclosepunctspacing} -\lpr {Umathcloseinnerspacing} -\lpr {Umathpunctordspacing} -\lpr {Umathpunctopspacing} -\lpr {Umathpunctbinspacing} -\lpr {Umathpunctrelspacing} -\lpr {Umathpunctopenspacing} -\lpr {Umathpunctclosespacing} -\lpr {Umathpunctpunctspacing} -\lpr {Umathpunctinnerspacing} -\lpr {Umathinnerordspacing} -\lpr {Umathinneropspacing} -\lpr {Umathinnerbinspacing} -\lpr {Umathinnerrelspacing} -\lpr {Umathinneropenspacing} -\lpr {Umathinnerclosespacing} -\lpr {Umathinnerpunctspacing} -\lpr {Umathinnerinnerspacing} -\stoplines -\stoptwocolumns - -These parameters are of type \prm {muskip}, so setting a parameter can be done -like this: - -\starttyping -\Umathopordspacing\displaystyle=4mu plus 2mu -\stoptyping - -They are all initialized by \type {initex} to the values mentioned in the table -in Chapter~18 of the \TEX book. - -Note 1: for ease of use as well as for backward compatibility, \prm {thinmuskip}, -\prm {medmuskip} and \prm {thickmuskip} are treated especially. In their case a -pointer to the corresponding internal parameter is saved, not the actual \prm -{muskip} value. This means that any later changes to one of these three -parameters will be taken into account. - -Note 2: Careful readers will realise that there are also primitives for the items -marked \type {*} in the \TEX book. These will not actually be used as those -combinations of atoms cannot actually happen, but it seemed better not to break -orthogonality. They are initialized to zero. - -\section[mathacc]{Math accent handling} +\subsection[mathacc]{Accent handling} \topicindex {math+accents} @@ -940,7 +1089,7 @@ accentee. The accent will be shifted horizontally such that its own \type followed by its italic correction is used instead. The vertical placement of a top accent depends on the \type {x_height} of the -font of the accentee (as explained in the \TEX book), but if value that turns out +font of the accentee (as explained in the \TEX book), but if a value turns out to be zero and the font had a \type {MathConstants} table, then \type {AccentBaseHeight} is used instead. @@ -955,7 +1104,7 @@ fraction only applies to the stepwise selected shapes and is mostly meant for th \type {overlay} location. It also works for the other locations but then it concerns the width. -\section{Math root extension} +\subsection{Radical extensions} \topicindex {math+radicals} @@ -972,7 +1121,7 @@ The placement of the degree is controlled by the math parameters \lpr {Umathradicaldegreeraise}. The degree will be typeset in \prm {scriptscriptstyle}. -\section{Math kerning in super- and subscripts} +\subsection{Super- and subscripts} The character fields in a \LUA|-|loaded \OPENTYPE\ math font can have a \quote {mathkern} table. The format of this table is the same as the \quote {mathkern} @@ -1031,7 +1180,7 @@ next higher height and kern pair, or the highest one in the character (if there value high enough in the character), or simply zero (if the character has no math kern pairs at all). -\section{Scripts on horizontally extensible items like arrows} +\subsection{Scripts on extensibles} \topicindex {math+scripts} \topicindex {math+delimiters} @@ -1088,12 +1237,121 @@ $\Uhextensible width 1pt middle 0 "2194$ \blank \startnarrower \getbuffer \stopnarrower \blank -\LUATEX\ internally uses a structure that supports \OPENTYPE\ \quote -{MathVariants} as well as \TFM\ \quote {extensible recipes}. In most cases where -font metrics are involved we have a different code path for traditional fonts end -\OPENTYPE\ fonts. +\LUATEX\ internally uses a structure that supports \OPENTYPE\ \quote +{MathVariants} as well as \TFM\ \quote {extensible recipes}. In most cases where +font metrics are involved we have a different code path for traditional fonts end +\OPENTYPE\ fonts. + +\subsection{Fractions} + +\topicindex {math+fractions} + +The \prm {abovewithdelims} command accepts a keyword \type {exact}. When issued +the extra space relative to the rule thickness is not added. One can of course +use the \type {\Umathfraction..gap} commands to influence the spacing. Also the +rule is still positioned around the math axis. + +\starttyping +$$ { {a} \abovewithdelims() exact 4pt {b} }$$ +\stoptyping + +The math parameter table contains some parameters that specify a horizontal and +vertical gap for skewed fractions. Of course some guessing is needed in order to +implement something that uses them. And so we now provide a primitive similar to the +other fraction related ones but with a few options so that one can influence the +rendering. Of course a user can also mess around a bit with the parameters +\lpr {Umathskewedfractionhgap} and \lpr {Umathskewedfractionvgap}. + +The syntax used here is: + +\starttyping +{ {1} \Uskewed / <options> {2} } +{ {1} \Uskewedwithdelims / () <options> {2} } +\stoptyping + +where the options can be \type {noaxis} and \type {exact}. By default we add half +the axis to the shifts and by default we zero the width of the middle character. +For Latin Modern the result looks as follows: + +\def\ShowA#1#2#3{$x + { {#1} \Uskewed / #3 {#2} } + x$} +\def\ShowB#1#2#3{$x + { {#1} \Uskewedwithdelims / () #3 {#2} } + x$} + +\start + \switchtobodyfont[modern] + \starttabulate[||||||] + \NC \NC + \ShowA{a}{b}{} \NC + \ShowA{1}{2}{} \NC + \ShowB{a}{b}{} \NC + \ShowB{1}{2}{} \NC + \NR + \NC \type{exact} \NC + \ShowA{a}{b}{exact} \NC + \ShowA{1}{2}{exact} \NC + \ShowB{a}{b}{exact} \NC + \ShowB{1}{2}{exact} \NC + \NR + \NC \type{noaxis} \NC + \ShowA{a}{b}{noaxis} \NC + \ShowA{1}{2}{noaxis} \NC + \ShowB{a}{b}{noaxis} \NC + \ShowB{1}{2}{noaxis} \NC + \NR + \NC \type{exact noaxis} \NC + \ShowA{a}{b}{exact noaxis} \NC + \ShowA{1}{2}{exact noaxis} \NC + \ShowB{a}{b}{exact noaxis} \NC + \ShowB{1}{2}{exact noaxis} \NC + \NR + \stoptabulate +\stop + +\subsection {Delimiters: \type{\Uleft}, \prm {Umiddle} and \prm {Uright}} + +\topicindex {math+delimiters} + +Normally you will force delimiters to certain sizes by putting an empty box or +rule next to it. The resulting delimiter will either be a character from the +stepwise size range or an extensible. The latter can be quite differently +positioned than the characters as it depends on the fit as well as the fact if +the used characters in the font have depth or height. Commands like (plain \TEX +s) \type {\big} need use this feature. In \LUATEX\ we provide a bit more control +by three variants that support optional parameters \type {height}, \type {depth} +and \type {axis}. The following example uses this: + +\startbuffer +\Uleft height 30pt depth 10pt \Udelimiter "0 "0 "000028 +\quad x\quad +\Umiddle height 40pt depth 15pt \Udelimiter "0 "0 "002016 +\quad x\quad +\Uright height 30pt depth 10pt \Udelimiter "0 "0 "000029 +\quad \quad \quad +\Uleft height 30pt depth 10pt axis \Udelimiter "0 "0 "000028 +\quad x\quad +\Umiddle height 40pt depth 15pt axis \Udelimiter "0 "0 "002016 +\quad x\quad +\Uright height 30pt depth 10pt axis \Udelimiter "0 "0 "000029 +\stopbuffer + +\typebuffer + +\startlinecorrection +\ruledhbox{\mathematics{\getbuffer}} +\stoplinecorrection + +The keyword \type {exact} can be used as directive that the real dimensions +should be applied when the criteria can't be met which can happen when we're +still stepping through the successively larger variants. When no dimensions are +given the \type {noaxis} command can be used to prevent shifting over the axis. + +You can influence the final class with the keyword \type {class} which will +influence the spacing. The numbers are the same as for character classes. + +\stopsection + +\startsection[title={Extracting values}] -\section {Extracting values} +\subsection{Codes} \topicindex {math+codes} @@ -1115,7 +1373,7 @@ will return: [2] [3] [4] \stoptyping -These commands are provides as convenience. Before they came available you could +These commands are provides as convenience. Before they come available you could do the following: \starttyping @@ -1124,71 +1382,7 @@ do the following: \def\Umathcharslot {\directlua{tex.print(tex.getmathcode(token.scan_int())[3])}} \stoptyping -\section{fractions} - -\topicindex {math+fractions} - -The \prm {abovewithdelims} command accepts a keyword \type {exact}. When issued -the extra space relative to the rule thickness is not added. One can of course -use the \type {\Umathfraction..gap} commands to influence the spacing. Also the -rule is still positioned around the math axis. - -\starttyping -$$ { {a} \abovewithdelims() exact 4pt {b} }$$ -\stoptyping - -The math parameter table contains some parameters that specify a horizontal and -vertical gap for skewed fractions. Of course some guessing is needed in order to -implement something that uses them. And so we now provide a primitive similar to the -other fraction related ones but with a few options so that one can influence the -rendering. Of course a user can also mess around a bit with the parameters -\lpr {Umathskewedfractionhgap} and \lpr {Umathskewedfractionvgap}. - -The syntax used here is: - -\starttyping -{ {1} \Uskewed / <options> {2} } -{ {1} \Uskewedwithdelims / () <options> {2} } -\stoptyping - -where the options can be \type {noaxis} and \type {exact}. By default we add half -the axis to the shifts and by default we zero the width of the middle character. -For Latin Modern The result looks as follows: - -\def\ShowA#1#2#3{$x + { {#1} \Uskewed / #3 {#2} } + x$} -\def\ShowB#1#2#3{$x + { {#1} \Uskewedwithdelims / () #3 {#2} } + x$} - -\start - \switchtobodyfont[modern] - \starttabulate[||||||] - \NC \NC - \ShowA{a}{b}{} \NC - \ShowA{1}{2}{} \NC - \ShowB{a}{b}{} \NC - \ShowB{1}{2}{} \NC - \NR - \NC \type{exact} \NC - \ShowA{a}{b}{exact} \NC - \ShowA{1}{2}{exact} \NC - \ShowB{a}{b}{exact} \NC - \ShowB{1}{2}{exact} \NC - \NR - \NC \type{noaxis} \NC - \ShowA{a}{b}{noaxis} \NC - \ShowA{1}{2}{noaxis} \NC - \ShowB{a}{b}{noaxis} \NC - \ShowB{1}{2}{noaxis} \NC - \NR - \NC \type{exact noaxis} \NC - \ShowA{a}{b}{exact noaxis} \NC - \ShowA{1}{2}{exact noaxis} \NC - \ShowB{a}{b}{exact noaxis} \NC - \ShowB{1}{2}{exact noaxis} \NC - \NR - \stoptabulate -\stop - -\section {Last lines} +\subsection {Last lines} \topicindex {math+last line} @@ -1212,7 +1406,9 @@ get the length of the last line, the following will often work too: \relax} \stoptyping -\section {Other Math changes} +\stopsection + +\startsection[title={Math mode}] \subsection {Verbose versions of single|-|character math commands} @@ -1272,64 +1468,7 @@ the result of \prm {mathchardef} or \lpr {Umathchardef} are also acceptable in the horizontal and vertical modes. In those cases, the \prm {textfont} from the requested math family is used. -\section{Math surrounding skips} - -\topicindex {math+spacing} - -Inline math is surrounded by (optional) \prm {mathsurround} spacing but that is fixed -dimension. There is now an additional parameter \lpr {mathsurroundskip}. When set to a -non|-|zero value (or zero with some stretch or shrink) this parameter will replace -\prm {mathsurround}. By using an additional parameter instead of changing the nature -of \prm {mathsurround}, we can remain compatible. In the meantime a bit more -control has been added via \lpr {mathsurroundmode}. This directive can take 6 values -with zero being the default behaviour. - -\start - -\def\OneLiner#1#2% - {\NC \type{#1} - \NC \dontleavehmode\inframed[align=normal,offset=0pt,frame=off]{\mathsurroundmode#1\relax\hsize 100pt x$x$x} - \NC \dontleavehmode\inframed[align=normal,offset=0pt,frame=off]{\mathsurroundmode#1\relax\hsize 100pt x $x$ x} - \NC #2 - \NC \NR} - -\startbuffer -\mathsurround 10pt -\mathsurroundskip20pt -\stopbuffer - -\typebuffer \getbuffer - -\starttabulate[|c|c|c|pl|] -\DB mode \BC x\$x\$x \BC x \$x\$ x \BC effect \NC \NR -\TB -\OneLiner{0}{obey \prm {mathsurround} when \lpr {mathsurroundskip} is 0pt} -\OneLiner{1}{only add skip to the left} -\OneLiner{2}{only add skip to the right} -\OneLiner{3}{add skip to the left and right} -\OneLiner{4}{ignore the skip setting, obey \prm {mathsurround}} -\OneLiner{5}{disable all spacing around math} -\OneLiner{6}{only apply \lpr {mathsurroundskip} when also spacing} -\OneLiner{7}{only apply \lpr {mathsurroundskip} when no spacing} -\LL -\stoptabulate - -\stop - -Method six omits the surround glue when there is (x)spacing glue present while -method seven does the opposite, the glue is only applied when there is (x)space -glue present too. Anything more fancy, like checking the begining or end of a -paragraph (or edges of a box) would not be robust anyway. If you want that you -can write a callback that runs over a list and analyzes a paragraph. Actually, in -that case you could also inject glue (or set the properties of a math node) -explicitly. So, these modes are in practice mostly useful for special purposes -and experiments (they originate in a tracker item). Keep in mind that this glue -is part of the math node and not always treated as normal glue: it travels with -the begin and end math nodes. Also, method 6 and 7 will zero the skip related -fields in a node when applicable in the first occasion that checks them -(linebreaking or packaging). - -% \section{Math todo} +% \startsection[title={Math todo}] % % The following items are still todo. % @@ -1350,124 +1489,57 @@ fields in a node when applicable in the first occasion that checks them % Support for multi|-|line displays using \MATHML\ style alignment points. % \stopitem % \stopitemize +% +% \stopsection -\subsection {Delimiters: \type{\Uleft}, \prm {Umiddle} and \prm {Uright}} +\stopsection -\topicindex {math+delimiters} +\startsection[title={Goodies}] -Normally you will force delimiters to certain sizes by putting an empty box or -rule next to it. The resulting delimiter will either be a character from the -stepwise size range or an extensible. The latter can be quite differently -positioned that the characters as it depends on the fit as well as the fact if -the used characters in the font have depth or height. Commands like (plain \TEX -s) \type {\big} need use this feature. In \LUATEX\ we provide a bit more control -by three variants that supporting optional parameters \type {height}, \type -{depth} and \type {axis}. The following example uses this: +\subsection {Flattening: \lpr {mathflattenmode}} -\startbuffer -\Uleft height 30pt depth 10pt \Udelimiter "0 "0 "000028 -\quad x\quad -\Umiddle height 40pt depth 15pt \Udelimiter "0 "0 "002016 -\quad x\quad -\Uright height 30pt depth 10pt \Udelimiter "0 "0 "000029 -\quad \quad \quad -\Uleft height 30pt depth 10pt axis \Udelimiter "0 "0 "000028 -\quad x\quad -\Umiddle height 40pt depth 15pt axis \Udelimiter "0 "0 "002016 -\quad x\quad -\Uright height 30pt depth 10pt axis \Udelimiter "0 "0 "000029 -\stopbuffer +\topicindex {math+flattening} -\typebuffer +The \TEX\ math engine collapses \type {ord} noads without sub- and superscripts +and a character as nucleus. and which has the side effect that in \OPENTYPE\ mode +italic corrections are applied (given that they are enabled). -\startlinecorrection -\ruledhbox{\mathematics{\getbuffer}} -\stoplinecorrection +\startbuffer[sample] +\switchtobodyfont[modern] +$V \mathbin{\mathbin{v}} V$\par +$V \mathord{\mathord{v}} V$\par +\stopbuffer -The keyword \type {exact} can be used as directive that the real dimensions -should be applied when the criteria can't be met which can happen when we're -still stepping through the successively larger variants. When no dimensions are -given the \type {noaxis} command can be used to prevent shifting over the axis. +\typebuffer[sample] -You can influence the final class with the keyword \type {class} which will -influence the spacing. The numbers are the same as for character classes. +This renders as: -\subsection{Fixed scripts} +\blank \start \mathflattenmode\plusone \getbuffer[sample] \stop \blank -We have three parameters that are used for this fixed anchoring: +When we set \lpr {mathflattenmode} to 31 we get: -\starttabulate[|c|l|] -\DB parameter \BC register \NC \NR -\NC $d$ \NC \lpr {Umathsubshiftdown} \NC \NR -\NC $u$ \NC \lpr {Umathsupshiftup} \NC \NR -\NC $s$ \NC \lpr {Umathsubsupshiftdown} \NC \NR -\LL -\stoptabulate +\blank \start \mathflattenmode\numexpr1+2+4+8+16\relax \getbuffer[sample] \stop \blank -When we set \lpr {mathscriptsmode} to a value other than zero these are used -for calculating fixed positions. This is something that is needed for instance -for chemistry. You can manipulate the mentioned variables to achive different -effects. +When you see no difference, then the font probably has the proper character +dimensions and no italic correction is needed. For Latin Modern (at least till +2018) there was a visual difference. In that respect this parameter is not always +needed unless of course you want efficient math lists anyway. -\def\SampleMath#1% - {$\mathscriptsmode#1\mathupright CH_2 + CH^+_2 + CH^2_2$} +You can influence flattening by adding the appropriate number to the value of the +mode parameter. The default value is~1. -\starttabulate[|c|c|c|p|] -\DB mode \BC down \BC up \BC example \NC \NR +\starttabulate[|Tc|c|] +\DB mode \BC class \NC \NR \TB -\NC 0 \NC dynamic \NC dynamic \NC \SampleMath{0} \NC \NR -\NC 1 \NC $d$ \NC $u$ \NC \SampleMath{1} \NC \NR -\NC 2 \NC $s$ \NC $u$ \NC \SampleMath{2} \NC \NR -\NC 3 \NC $s$ \NC $u + s - d$ \NC \SampleMath{3} \NC \NR -\NC 4 \NC $d + (s-d)/2$ \NC $u + (s-d)/2$ \NC \SampleMath{4} \NC \NR -\NC 5 \NC $d$ \NC $u + s - d$ \NC \SampleMath{5} \NC \NR +\NC 1 \NC ord \NC \NR +\NC 2 \NC bin \NC \NR +\NC 4 \NC rel \NC \NR +\NC 8 \NC punct \NC \NR +\NC 16 \NC inner \NC \NR \LL \stoptabulate -The value of this parameter obeys grouping but applies to the whole current -formula. - -% if needed we can put the value in stylenodes but maybe more should go there - -\subsection{Penalties: \lpr {mathpenaltiesmode}} - -\topicindex {math+penalties} - -Only in inline math penalties will be added in a math list. You can force -penalties (also in display math) by setting: - -\starttyping -\mathpenaltiesmode = 1 -\stoptyping - -This primnitive is not really needed in \LUATEX\ because you can use the callback -\cbk {mlist_to_hlist} to force penalties by just calling the regular routine -with forced penalties. However, as part of opening up and control this primitive -makes sense. As a bonus we also provide two extra penalties: - -\starttyping -\prebinoppenalty = -100 % example value -\prerelpenalty = 900 % example value -\stoptyping - -They default to inifinite which signals that they don't need to be inserted. When -set they are injected before a binop or rel noad. This is an experimental feature. - -\subsection{Equation spacing: \lpr {matheqnogapstep}} - -By default \TEX\ will add one quad between the equation and the number. This is -hard coded. A new primitive can control this: - -\startsyntax -\matheqnogapstep = 1000 -\stopsyntax - -Because a math quad from the math text font is used instead of a dimension, we -use a step to control the size. A value of zero will suppress the gap. The step -is divided by 1000 which is the usual way to mimmick floating point factors in -\TEX. - -\subsection {Tracing} +\subsection {Less Tracing} \topicindex {math+tracing} @@ -1475,93 +1547,100 @@ Because there are quite some math related parameters and values, it is possible to limit tracing. Only when \type {tracingassigns} and|/|or \type {tracingrestores} are set to~2 or more they will be traced. -\subsection {Math options} +\subsection {Math options with \lpr {mathoption}} The logic in the math engine is rather complex and there are often no universal solutions (read: what works out well for one font, fails for another). Therefore -some variations in the implementation will be driven by options for which a new -primitive \lpr {mathoption} has been introduced (so that we don't end up with -many new commands). The approach of options also permits us to see what effect a -specific solution has. - -\subsubsection {\type {\mathoption old}} +some variations in the implementation are driven by parameters (modes). In +addition there is a new primitive \lpr {mathoption} which will be used for +testing. Don't rely on any option to be there in a production version as they are +meant for development. This option was introduced for testing purposes when the math engine got split code paths and it forces the engine to treat new fonts as old ones with respect to italic correction etc. There are no guarantees given with respect to the final -result and unexpected side effects are not seens as bugs as they relate to font -properties. +result and unexpected side effects are not seen as bugs as they relate to font +properties. Ther eis currently only one option: \startbuffer \mathoption old 1 \stopbuffer The \type {oldmath} boolean flag in the \LUA\ font table is the official way to -force old treatment as it's bound to fonts. - -\subsubsection {\type {\mathoption noitaliccompensation}} - -This option compensates placement for characters with a built|-|in italic -correction. - -\startbuffer -{\showboxes\int}\quad -{\showboxes\int_{|}^{|}}\quad -{\showboxes\int\limits_{|}^{|}} -\stopbuffer - -\typebuffer - -Gives (with computer modern that has such italics): - -\startlinecorrection[blank] - \switchtobodyfont[modern] - \startcombination[nx=2,ny=2,distance=5em] - {\mathoption noitaliccompensation 0\relax \mathematics{\getbuffer}} - {\nohyphens\type{0:inline}} - {\mathoption noitaliccompensation 0\relax \mathematics{\displaymath\getbuffer}} - {\nohyphens\type{0:display}} - {\mathoption noitaliccompensation 1\relax \mathematics{\getbuffer}} - {\nohyphens\type{1:inline}} - {\mathoption noitaliccompensation 1\relax \mathematics{\displaymath\getbuffer}} - {\nohyphens\type{1:display}} - \stopcombination -\stoplinecorrection - -\subsubsection {\type {\mathoption nocharitalic}} - -When two characters follow each other italic correction can interfere. The -following example shows what this option does: - -\startbuffer -\catcode"1D443=11 -\catcode"1D444=11 -\catcode"1D445=11 -P( PP PQR -\stopbuffer - -\typebuffer - -Gives (with computer modern that has such italics): - -\startlinecorrection[blank] - \switchtobodyfont[modern] - \startcombination[nx=2,ny=2,distance=5em] - {\mathoption nocharitalic 0\relax \mathematics{\getbuffer}} - {\nohyphens\type{0:inline}} - {\mathoption nocharitalic 0\relax \mathematics{\displaymath\getbuffer}} - {\nohyphens\type{0:display}} - {\mathoption nocharitalic 1\relax \mathematics{\getbuffer}} - {\nohyphens\type{1:inline}} - {\mathoption nocharitalic 1\relax \mathematics{\displaymath\getbuffer}} - {\nohyphens\type{1:display}} - \stopcombination -\stoplinecorrection +force old treatment as it's bound to fonts. Like with all options we may +temporarily introduce with this command this feature is not meant for production. -\subsubsection {\type {\mathoption useoldfractionscaling}} +% % obsolete: +% +% \subsubsection {\type {\mathoption noitaliccompensation}} +% +% This option compensates placement for characters with a built|-|in italic +% correction. +% +% \startbuffer +% {\showboxes\int}\quad +% {\showboxes\int_{|}^{|}}\quad +% {\showboxes\int\limits_{|}^{|}} +% \stopbuffer +% +% \typebuffer +% +% Gives (with computer modern that has such italics): +% +% \startlinecorrection[blank] +% \switchtobodyfont[modern] +% \startcombination[nx=2,ny=2,distance=5em] +% {\mathoption noitaliccompensation 0\relax \mathematics{\getbuffer}} +% {\nohyphens\type{0:inline}} +% {\mathoption noitaliccompensation 0\relax \mathematics{\displaymath\getbuffer}} +% {\nohyphens\type{0:display}} +% {\mathoption noitaliccompensation 1\relax \mathematics{\getbuffer}} +% {\nohyphens\type{1:inline}} +% {\mathoption noitaliccompensation 1\relax \mathematics{\displaymath\getbuffer}} +% {\nohyphens\type{1:display}} +% \stopcombination +% \stoplinecorrection + +% % obsolete: +% +% \subsubsection {\type {\mathoption nocharitalic}} +% +% When two characters follow each other italic correction can interfere. The +% following example shows what this option does: +% +% \startbuffer +% \catcode"1D443=11 +% \catcode"1D444=11 +% \catcode"1D445=11 +% P( PP PQR +% \stopbuffer +% +% \typebuffer +% +% Gives (with computer modern that has such italics): +% +% \startlinecorrection[blank] +% \switchtobodyfont[modern] +% \startcombination[nx=2,ny=2,distance=5em] +% {\mathoption nocharitalic 0\relax \mathematics{\getbuffer}} +% {\nohyphens\type{0:inline}} +% {\mathoption nocharitalic 0\relax \mathematics{\displaymath\getbuffer}} +% {\nohyphens\type{0:display}} +% {\mathoption nocharitalic 1\relax \mathematics{\getbuffer}} +% {\nohyphens\type{1:inline}} +% {\mathoption nocharitalic 1\relax \mathematics{\displaymath\getbuffer}} +% {\nohyphens\type{1:display}} +% \stopcombination +% \stoplinecorrection + +% % obsolete: +% +% \subsubsection {\type {\mathoption useoldfractionscaling}} +% +% This option has been introduced as solution for tracker item 604 for fuzzy cases +% around either or not present fraction related settings for new fonts. -This option has been introduced as solution for tracker item 604 for fuzzy cases -around either or not present fraction related settings for new fonts. +\stopsection \stopchapter diff --git a/manual/luatex-modifications.tex b/manual/luatex-modifications.tex index b3fb2161535d58dffa6424b4e7d127bbaa7f89e5..294f3fc3f8eb8de6d55d21cfc89601e02adba46f 100644 --- a/manual/luatex-modifications.tex +++ b/manual/luatex-modifications.tex @@ -24,7 +24,7 @@ most of the adapted ones. Besides the expected changes caused by new functionality, there are a number of not|-|so|-|expected changes. These are sometimes a side|-|effect of a new -(conflicting) feature, or, more often than not, a change neccessary to clean up +(conflicting) feature, or, more often than not, a change necessary to clean up the internal interfaces. These will also be mentioned. \stopsubsection @@ -42,7 +42,7 @@ most still comes from the original. But we divert a bit. The current code base is written in \CCODE, not \PASCAL. We use \CWEB\ when possible. As a consequence instead of one large file plus change files, we now have multiple files organized in categories like \type {tex}, \type - {pdf}, \type {lang}, \type {font}, \type {lua}, etc. There are some artefacts + {pdf}, \type {lang}, \type {font}, \type {lua}, etc. There are some artifacts of the conversion to \CCODE, but in due time we will clean up the source code and make sure that the documentation is done right. Many files are in the \CWEB\ format, but others, like those interfacing to \LUA, are \CCODE\ files. @@ -143,38 +143,38 @@ which in turn triggered renaming primitives. For compatibility reasons we still refer to \type {\pdf...} commands but \LUATEX\ has a different backend interface. Instead of these primitives there are three -interfacing primitives: \lpr {pdfextension}, \lpr {pdfvariable} and -\lpr {pdffeedback} that take keywords and optional further arguments. This way -we can extend the features when needed but don't need to adapt the core engine. -The front- and backend are decoupled as much as possible. +interfacing primitives: \lpr {pdfextension}, \lpr {pdfvariable} and \lpr +{pdffeedback} that take keywords and optional further arguments (below we will +still use the \tex {pdf} prefix names as reference). This way we can extend the +features when needed but don't need to adapt the core engine. The front- and +backend are decoupled as much as possible. \startitemize \startitem The (experimental) support for snap nodes has been removed, because it is much more natural to build this functionality on top of node processing and - attributes. The associated primitives that are gone are: \type - {\pdfsnaprefpoint}, \type {\pdfsnapy}, and \type {\pdfsnapycomp}. + attributes. The associated primitives that are gone are: \orm + {pdfsnaprefpoint}, \orm {pdfsnapy}, and \orm {pdfsnapycomp}. \stopitem \startitem The (experimental) support for specialized spacing around nodes has also been - removed. The associated primitives that are gone are: \type - {\pdfadjustinterwordglue}, \type {\pdfprependkern}, and \type - {\pdfappendkern}, as well as the five supporting primitives \type - {\knbscode}, \type {\stbscode}, \type {\shbscode}, \type {\knbccode}, and - \type {\knaccode}. + removed. The associated primitives that are gone are: \orm + {pdfadjustinterwordglue}, \orm {pdfprependkern}, and \orm {pdfappendkern}, as + well as the five supporting primitives \orm {knbscode}, \orm {stbscode}, \orm + {shbscode}, \orm {knbccode}, and \orm {knaccode}. \stopitem \startitem A number of \quote {\PDFTEX\ primitives} have been removed as they can be - implemented using \LUA: \type {\pdfelapsedtime}, \type {\pdfescapehex}, \type - {\pdfescapename}, \type {\pdfescapestring}, \type {\pdffiledump}, \type - {\pdffilemoddate}, \type {\pdffilesize}, \type {\pdfforcepagebox}, \type - {\pdflastmatch}, \type {\pdfmatch}, \type {\pdfmdfivesum}, \type - {\pdfmovechars}, \type {\pdfoptionalwaysusepdfpagebox}, \type - {\pdfoptionpdfinclusionerrorlevel}, \type {\pdfresettimer}, \type - {\pdfshellescape}, \type {\pdfstrcmp} and \type {\pdfunescapehex} + implemented using \LUA: \orm {pdfelapsedtime}, \orm {pdfescapehex}, \orm + {pdfescapename}, \orm {pdfescapestring}, \orm {pdffiledump}, \orm + {pdffilemoddate}, \orm {pdffilesize}, \orm {pdfforcepagebox}, \orm + {pdflastmatch}, \orm {pdfmatch}, \orm {pdfmdfivesum}, \orm {pdfmovechars}, + \orm {pdfoptionalwaysusepdfpagebox}, \orm {pdfoptionpdfinclusionerrorlevel}, + \orm {pdfresettimer}, \orm {pdfshellescape}, \orm {pdfstrcmp} and \orm + {pdfunescapehex}. \stopitem \startitem @@ -186,7 +186,7 @@ The front- and backend are decoupled as much as possible. \startitem The experimental snapper mechanism has been removed and therefore also the primitives \orm {pdfignoreddimen}, \orm {pdffirstlineheight}, \orm - {pdfeachlineheight}, \orm {pdfeachlinedepth} and \orm {pdflastlinedepth} + {pdfeachlineheight}, \orm {pdfeachlinedepth} and \orm {pdflastlinedepth}. \stopitem \startitem @@ -202,10 +202,16 @@ The front- and backend are decoupled as much as possible. \stopitem \startitem - Two extra token lists are provides, \orm {pdfxformresources} and \orm + Two extra token lists are provided, \orm {pdfxformresources} and \orm {pdfxformattr}, as an alternative to \orm {pdfxform} keywords. \stopitem +\startitem + Image specifications also support \type {visiblefilename}, \type + {userpassword} and \type {ownerpassword}. The password options are only + relevant for encrypted \PDF\ files. +\stopitem + \startitem The current version of \LUATEX\ no longer replaces and|/|or merges fonts in embedded \PDF\ files with fonts of the enveloping \PDF\ document. This @@ -390,39 +396,39 @@ we say next applies to both these programs. \startitemize \startitem - The extended 16-bit math primitives (\type {\omathcode} etc.) have been + The extended 16-bit math primitives (\orm {omathcode} etc.) have been removed. \stopitem \startitem The \OCP\ processing has been removed completely and as a consequence, the - following primitives have been removed: \type {\ocp}, \type {\externalocp}, - \type {\ocplist}, \type {\pushocplist}, \type {\popocplist}, \type - {\clearocplists}, \type {\addbeforeocplist}, \type {\addafterocplist}, \type - {\removebeforeocplist}, \type {\removeafterocplist} and \type - {\ocptracelevel}. + following primitives have been removed: \orm {ocp}, \orm {externalocp}, \orm + {ocplist}, \orm {pushocplist}, \orm {popocplist}, \orm {clearocplists}, \orm + {addbeforeocplist}, \orm {addafterocplist}, \orm {removebeforeocplist}, \orm + {removeafterocplist} and \orm {ocptracelevel}. \stopitem \startitem \LUATEX\ only understands 4~of the 16~direction specifiers of \ALEPH: \type - {TLT} (latin), \type {TRT} (arabic), \type {RTT} (cjk), \type {LTL} - (mongolian). All other direction specifiers generate an error. + {TLT} (latin), \type {TRT} (arabic), \type {RTT} (cjk), \type {LTL} (mongolian). + All other direction specifiers generate an error. In addition to a keyword + driven model we also provide an integer driven one. \stopitem \startitem The input translations from \ALEPH\ are not implemented, the related - primitives are not available: \type {\DefaultInputMode}, \type - {\noDefaultInputMode}, \type {\noInputMode}, \type {\InputMode}, \type - {\DefaultOutputMode}, \type {\noDefaultOutputMode}, \type {\noOutputMode}, - \type {\OutputMode}, \type {\DefaultInputTranslation}, \type - {\noDefaultInputTranslation}, \type {\noInputTranslation}, \type - {\InputTranslation}, \type {\DefaultOutputTranslation}, \type - {\noDefaultOutputTranslation}, \type {\noOutputTranslation} and \type - {\OutputTranslation}. + primitives are not available: \orm {DefaultInputMode}, \orm + {noDefaultInputMode}, \orm {noInputMode}, \orm {InputMode}, \orm + {DefaultOutputMode}, \orm {noDefaultOutputMode}, \orm {noOutputMode}, \orm + {OutputMode}, \orm {DefaultInputTranslation}, \orm + {noDefaultInputTranslation}, \orm {noInputTranslation}, \orm + {InputTranslation}, \orm {DefaultOutputTranslation}, \orm + {noDefaultOutputTranslation}, \orm {noOutputTranslation} and \orm + {OutputTranslation}. \stopitem \startitem - Several bugs have been fixed an confusing implementation details have been + Several bugs have been fixed and confusing implementation details have been sorted out. \stopitem @@ -475,7 +481,7 @@ we say next applies to both these programs. \stopitem \startitem - The promotion of primitives to core primitives as well as the removed of all + The promotion of primitives to core primitives as well as removing of all others means that the initialization namespace \type {aleph} that early versions of \LUATEX\ provided is gone. \stopitem @@ -537,7 +543,9 @@ different: \stopsection -\startsection[reference=backendprimitives,title=The backend primitives \type {\pdf*}] +\startsection[reference=backendprimitives,title=The backend primitives] + +\startsubsection[title={Less primitives}] \topicindex {backend} \topicindex {\PDF+backend} @@ -548,7 +556,7 @@ order to separate the backend specific primitives in de code these commands are now replaced by only a few. In traditional \TEX\ we only had the \DVI\ backend but now we have two: \DVI\ and \PDF. Additional functionality is implemented as \quote {extensions} in \TEX\ speak. By separating more strickly we are able to -keep the core (fontend) clean and stable and isolate these extensions. If for +keep the core (frontend) clean and stable and isolate these extensions. If for some reason an extra backend option is needed, it can be implemented without touching the core. The three \PDF\ backend related primitives are: @@ -562,8 +570,12 @@ An extension triggers further parsing, depending on the command given. A variabl a (kind of) register and can be read and written, while a feedback is reporting something (as it comes from the backend it's normally a sequence of tokens). +\stopsubsection + +\startsubsection[title={\lpr{pdfextension}, \lpr {pdfvariable} and \lpr {pdffeedback}},reference=sec:pdfextensions] + In order for \LUATEX\ to be more than just \TEX\ you need to enable primitives. That -has already be the case right from the start. If you want the traditional \PDFTEX\ +has already been the case right from the start. If you want the traditional \PDFTEX\ primitives (for as far their functionality is still around) you now can do this: \starttyping @@ -616,6 +628,7 @@ The configuration related registers have become: \starttyping \edef\pdfcompresslevel {\pdfvariable compresslevel} \edef\pdfobjcompresslevel {\pdfvariable objcompresslevel} +\edef\pdfrecompress {\pdfvariable recompress} \edef\pdfdecimaldigits {\pdfvariable decimaldigits} \edef\pdfgamma {\pdfvariable gamma} \edef\pdfimageresolution {\pdfvariable imageresolution} @@ -630,6 +643,7 @@ The configuration related registers have become: \edef\pdfignoreunknownimages {\pdfvariable ignoreunknownimages} \edef\pdfgentounicode {\pdfvariable gentounicode} \edef\pdfomitcidset {\pdfvariable omitcidset} +\edef\pdfomitcharset {\pdfvariable omitcharset} \edef\pdfpagebox {\pdfvariable pagebox} \edef\pdfminorversion {\pdfvariable minorversion} \edef\pdfuniqueresname {\pdfvariable uniqueresname} @@ -669,100 +683,16 @@ macro:->[internal backend integer] macro:->[internal backend tokenlist] \stoptyping -The \prm {edef} can also be an \prm {def} but it's a bit more efficient -to expand the lookup related register beforehand. After that you can adapt -the defaults; these are: - -\starttyping -\pdfcompresslevel 9 -\pdfobjcompresslevel 1 % used: (0,9) -\pdfdecimaldigits 4 % used: (3,6) -\pdfgamma 1000 -\pdfimageresolution 71 -\pdfimageapplygamma 0 -\pdfimagegamma 2200 -\pdfimagehicolor 1 -\pdfimageaddfilename 1 -\pdfpkresolution 72 -\pdfpkfixeddpi 0 -\pdfinclusioncopyfonts 0 -\pdfinclusionerrorlevel 0 -\pdfignoreunknownimages 0 -\pdfgentounicode 0 -\pdfomitcidset 0 -\pdfpagebox 0 -\pdfminorversion 4 -\pdfuniqueresname 0 - -\pdfhorigin 1in -\pdfvorigin 1in -\pdflinkmargin 0pt -\pdfdestmargin 0pt -\pdfthreadmargin 0pt -\pdfxformmargin 0pt -\stoptyping - -If you also want some backward compatibility, you can add: - -\starttyping -\let\pdfpagewidth \pagewidth -\let\pdfpageheight \pageheight - -\let\pdfadjustspacing \adjustspacing -\let\pdfprotrudechars \protrudechars -\let\pdfnoligatures \ignoreligaturesinfont -\let\pdffontexpand \expandglyphsinfont -\let\pdfcopyfont \copyfont - -\let\pdfxform \saveboxresource -\let\pdflastxform \lastsavedboxresourceindex -\let\pdfrefxform \useboxresource - -\let\pdfximage \saveimageresource -\let\pdflastximage \lastsavedimageresourceindex -\let\pdflastximagepages\lastsavedimageresourcepages -\let\pdfrefximage \useimageresource - -\let\pdfsavepos \savepos -\let\pdflastxpos \lastxpos -\let\pdflastypos \lastypos - -\let\pdfoutput \outputmode -\let\pdfdraftmode \draftmode - -\let\pdfpxdimen \pxdimen - -\let\pdfinsertht \insertht - -\let\pdfnormaldeviate \normaldeviate -\let\pdfuniformdeviate \uniformdeviate -\let\pdfsetrandomseed \setrandomseed -\let\pdfrandomseed \randomseed - -\let\pdfprimitive \primitive -\let\ifpdfprimitive \ifprimitive - -\let\ifpdfabsnum \ifabsnum -\let\ifpdfabsdim \ifabsdim -\stoptyping - -And even: - -\starttyping -\newdimen\pdfeachlineheight -\newdimen\pdfeachlinedepth -\newdimen\pdflastlinedepth -\newdimen\pdffirstlineheight -\newdimen\pdfignoreddimen -\stoptyping +The \prm {edef} can also be a \prm {def} but it's a bit more efficient to expand +the lookup related register beforehand. The backend is derived from \PDFTEX\ so the same syntax applies. However, the \type {outline} command accepts a \type {objnum} followed by a number. No checking takes place so when this is used it had better be a valid (flushed) object. -In order to be (more or less) compatible with \PDFTEX\ we also support the -option to suppress some info: +In order to be (more or less) compatible with \PDFTEX\ we also support the option +to suppress some info but we do so via a bitset: \starttyping \pdfvariable suppressoptionalinfo \numexpr @@ -782,7 +712,7 @@ option to suppress some info: In addition you can overload the trailer id, but we don't do any checking on validity, so you have to pass a valid array. The following is like the ones -normally generated by the engine: +normally generated by the engine. You even need to include the brackets here! \starttyping \pdfvariable trailerid {[ @@ -791,8 +721,6 @@ normally generated by the engine: ]} \stoptyping -So, you even need to include the brackets! - Although we started from a merge of \PDFTEX\ and \ALEPH, by now the code base as well as functionality has diverted from those parents. Here we show the options that can be passed to the extensions. @@ -940,6 +868,103 @@ that can be passed to the extensions. {tokens} \stoptexsyntax +\stopsubsection + +\startsubsection[title={Defaults}] + +The engine sets the following defaults. + +\starttyping +\pdfcompresslevel 9 +\pdfobjcompresslevel 1 % used: (0,9) +\pdfrecompress 0 % mostly for debugging +\pdfdecimaldigits 4 % used: (3,6) +\pdfgamma 1000 +\pdfimageresolution 71 +\pdfimageapplygamma 0 +\pdfimagegamma 2200 +\pdfimagehicolor 1 +\pdfimageaddfilename 1 +\pdfpkresolution 72 +\pdfpkfixeddpi 0 +\pdfinclusioncopyfonts 0 +\pdfinclusionerrorlevel 0 +\pdfignoreunknownimages 0 +\pdfgentounicode 0 +\pdfomitcidset 0 +\pdfomitcharset 0 +\pdfpagebox 0 +\pdfminorversion 4 +\pdfuniqueresname 0 + +\pdfhorigin 1in +\pdfvorigin 1in +\pdflinkmargin 0pt +\pdfdestmargin 0pt +\pdfthreadmargin 0pt +\pdfxformmargin 0pt +\stoptyping + +\stopsubsection + +\startsubsection[title={Backward compatibility}] + +If you also want some backward compatibility, you can add: + +\starttyping +\let\pdfpagewidth \pagewidth +\let\pdfpageheight \pageheight + +\let\pdfadjustspacing \adjustspacing +\let\pdfprotrudechars \protrudechars +\let\pdfnoligatures \ignoreligaturesinfont +\let\pdffontexpand \expandglyphsinfont +\let\pdfcopyfont \copyfont + +\let\pdfxform \saveboxresource +\let\pdflastxform \lastsavedboxresourceindex +\let\pdfrefxform \useboxresource + +\let\pdfximage \saveimageresource +\let\pdflastximage \lastsavedimageresourceindex +\let\pdflastximagepages\lastsavedimageresourcepages +\let\pdfrefximage \useimageresource + +\let\pdfsavepos \savepos +\let\pdflastxpos \lastxpos +\let\pdflastypos \lastypos + +\let\pdfoutput \outputmode +\let\pdfdraftmode \draftmode + +\let\pdfpxdimen \pxdimen + +\let\pdfinsertht \insertht + +\let\pdfnormaldeviate \normaldeviate +\let\pdfuniformdeviate \uniformdeviate +\let\pdfsetrandomseed \setrandomseed +\let\pdfrandomseed \randomseed + +\let\pdfprimitive \primitive +\let\ifpdfprimitive \ifprimitive + +\let\ifpdfabsnum \ifabsnum +\let\ifpdfabsdim \ifabsdim +\stoptyping + +And even: + +\starttyping +\newdimen\pdfeachlineheight +\newdimen\pdfeachlinedepth +\newdimen\pdflastlinedepth +\newdimen\pdffirstlineheight +\newdimen\pdfignoreddimen +\stoptyping + +\stopsubsection + \stopsection \startsection[title=Directions] @@ -948,6 +973,8 @@ that can be passed to the extensions. \topicindex {\ALEPH} \topicindex {directions} +\startsubsection[title={Four directions}] + The directional model in \LUATEX\ is inherited from \OMEGA|/|\ALEPH\ but we tried to improve it a bit. At some point we played with recovery of modes but that was disabled later on when we found that it interfered with nested directions. That @@ -955,14 +982,23 @@ itself had as side effect that the node list was no longer balanced with respect to directional nodes which in turn can give side effects when a series of dir changes happens without grouping. -The current (0.97 onward) approach is that we again make the list balanced but -try to avoid some side effects. What happens is quite intuitive if we forget -about spaces (turned into glue) but even there what happens makes sense if you -look at it in detail. However that logic makes in|-|group switching kind of -useless when no proper nested grouping is used: switching from right to left -several times nested, results in spacing ending up after each other due to nested -mirroring. Of course a sane macro package will manage this for the user but here -we are discussing the low level dir injection. +When extending the \PDF\ backend to support directions some inconsistencies were +found and as a result we decided to support only the four models that make sense +\type {TLT} (latin), \type {TRT} (arabic), \type {RTT} (cjk) and \type {LTL} +(mongolian). + +\stopsubsection + +\startsubsection[title={How it works}] + +The approach is that we again make the list balanced but try to avoid some side +effects. What happens is quite intuitive if we forget about spaces (turned into +glue) but even there what happens makes sense if you look at it in detail. +However that logic makes in|-|group switching kind of useless when no proper +nested grouping is used: switching from right to left several times nested, +results in spacing ending up after each other due to nested mirroring. Of course +a sane macro package will manage this for the user but here we are discussing the +low level dir injection. This is what happens: @@ -1079,6 +1115,10 @@ kerns, should be handled in the input or macro package because there is no way w can predict the expected behaviour. In fact, the \lpr {linedir} is just a convenience extra which could also have been implemented using node list parsing. +\stopsubsection + +\startsubsection[title={Controlling glue with \lpr {breakafterdirmode}}] + Glue after a dir node is ignored in the linebreak decision but you can bypass that by setting \lpr {breakafterdirmode} to~\type {1}. The following table shows the difference. Watch your spaces. @@ -1109,6 +1149,10 @@ difference. Watch your spaces. \LL \stoptabulate +\stopsubsection + +\startsubsection[title={Controling parshapes with \lpr {shapemode}}] + Another adaptation to the \ALEPH\ directional model is control over shapes driven by \prm {hangindent} and \prm {parshape}. This is controlled by a new parameter \lpr {shapemode}: @@ -1170,6 +1214,38 @@ this. In \in {figure} [fig:shapemode] a few examples are given. \stopcombination \stopplacefigure +\stopsubsection + +\startsubsection[title={Symbols or numbers}] + +Internally the implementation is different from \ALEPH. First of all we use no +whatsits but dedicated nodes, but also we have only 4 directions that are mapped +onto 4 numbers. A text direction node can mark the start or end of a sequence of +nodes, and therefore has two states. At the \TEX\ end we don't see these states +because \TEX\ itself will add proper end state nodes if needed. + +The symbolic names \type {TLT}, \type {TRT}, etc.\ originate in \OMEGA. In +\LUATEX\ we also have a number based model which sometimes makes more sense. + +\starttabulate[|c|l|l|] +\DB value \BC equivalent \NC \NR +\TB +\BC \type {0} \NC TLT \NC \NR +\BC \type {1} \NC TRT \NC \NR +\BC \type {2} \NC LTL \NC \NR +\BC \type {3} \NC RTT \NC \NR +\LL +\stoptabulate + +We support the \OMEGA\ primitives \orm {textdir}, \orm {pardir}, \orm {pagedir}, +\orm {pardir} and \orm {mathdir}. These accept three character keywords. The +primitives that set the direction by number are: \lpr {textdirection}, \lpr +{pardirection}, \lpr {pagedirection} and \lpr {bodydirection} and \lpr +{mathdirection}. When specifying a direction for a box you can use \type {bdir} +instead of \type {dir}. + +\stopsubsection + \stopsection \startsection[title=Implementation notes] @@ -1199,14 +1275,9 @@ structures, some of the macros have been duplicated. For instance, there are now {token_info}. All access to the variable memory array is now hidden behind a macro called \type {vmem}. We mention this because using the \TEX book as reference is still quite valid but not for memory related details. Another -significate detail is that we have double linked node lists and that most nodes +significant detail is that we have double linked node lists and that most nodes carry more data. -The implementation of the growth of two arrays (via reallocation) introduces a -potential pitfall: the memory arrays should never be used as the left hand side -of a statement that can modify the array in question. Details like this are -of no concern to users. - The input line buffer and pool size are now also reallocated when needed, and the \type {texmf.cnf} settings \type {buf_size} and \type {pool_size} are silently ignored. @@ -1252,13 +1323,15 @@ control sequences that uses a prefix that is otherwise impossible to obtain. \stopsubsection -\startsubsection[title=Compressed format] +\startsubsection[title=The compressed format file] \topicindex {format} The format is passed through \type {zlib}, allowing it to shrink to roughly half of the size it would have had in uncompressed form. This takes a bit more \CPU\ -cycles but much less disk \IO, so it should still be faster. +cycles but much less disk \IO, so it should still be faster. We use a level~3 +compression which we found to be the optimal trade|-|off between filesize and +decompression speed. \stopsubsection diff --git a/manual/luatex-nodes.tex b/manual/luatex-nodes.tex index 032c7df1f6c4947cf2f300766b74d132c59a1fc0..573bfd8d80def5f51e27b31a73097d1eda20b608 100644 --- a/manual/luatex-nodes.tex +++ b/manual/luatex-nodes.tex @@ -6,12 +6,16 @@ \startchapter[reference=nodes,title={Nodes}] -\section{\LUA\ node representation} +\startsection[title={\LUA\ node representation}][library=node] \topicindex {nodes} -\TEX's nodes are represented in \LUA\ as userdata object with a variable set of -fields. In the following syntax tables, such the type of such a userdata object +\libindex {fields} +\libindex {subtypes} +\libindex {values} + +\TEX's nodes are represented in \LUA\ as userdata objects with a variable set of +fields. In the following syntax tables, such as the type of such a userdata object is represented as \syntax {<node>}. The current return value of \type {node.types()} is: @@ -32,62 +36,17 @@ names as in traditional \ETEX. Keep in mind that these \ETEX\ node numbers are different from the real internal ones and that there are more \ETEX\ node types than~15. -You can ask for a list of fields with the \type {node.fields} (which takes an id) -and for valid subtypes with \type {node.subtypes} (which takes a string because -eventually we might support more used enumerations). - -The \type {node.values} function reports some used values. Valid arguments are -\nod {dir}, \type {direction}, \nod {glue}, \whs {pdf_literal}, \whs -{pdf_action}, \whs {pdf_window} and \whs {color_stack}. Keep in mind that the -setters normally expect a number, but this helper gives you a list of what -numbers matter. For practical reason the \type {pagestate} values are also -reported with this helper. - -\subsection{Attributes} - -\topicindex {attributes} - -The newly introduced attribute registers are non|-|trivial, because the value -that is attached to a node is essentially a sparse array of key|-|value pairs. It -is generally easiest to deal with attribute lists and attributes by using the -dedicated functions in the \type {node} library, but for completeness, here is -the low|-|level interface. - -\subsubsection{attribute_list nodes} - -\topicindex {nodes+attributes} - -An \nod {attribute_list} item is used as a head pointer for a list of attribute -items. It has only one user-visible field: - -\starttabulate[|l|l|p|] -\DB field \BC type \BC explanation \NC \NR -\TB -\NC \type{next} \NC node \NC pointer to the first attribute \NC \NR -\LL -\stoptabulate - -\subsubsection{\nod {attr} nodes} - -A normal node's attribute field will point to an item of type \nod -{attribute_list}, and the \type {next} field in that item will point to the first -defined \quote {attribute} item, whose \type {next} will point to the second -\quote {attribute} item, etc. - -\starttabulate[|l|l|p|] -\DB field \BC type \BC explanation \NC \NR -\TB -\NC \type{next} \NC node \NC pointer to the next attribute \NC \NR -\NC \type{number} \NC number \NC the attribute type id \NC \NR -\NC \type{value} \NC number \NC the attribute value \NC \NR -\LL -\stoptabulate +You can ask for a list of fields with \type {node.fields} and for valid subtypes +with \type {node.subtypes}. The \type {node.values} function reports some used +values. Valid arguments are \nod {dir}, \type {direction}, \nod {glue}, \whs +{pdf_literal}, \whs {pdf_action}, \whs {pdf_window} and \whs {color_stack}. Keep +in mind that the setters normally expect a number, but this helper gives you a +list of what numbers matter. For practical reason the \type {pagestate} values +are also reported with this helper. -As mentioned it's better to use the official helpers rather than edit these -fields directly. For instance the \type {prev} field is used for other purposes -and there is no double linked list. +\stopsection -\subsection{Main text nodes} +\startsection[title={Main text nodes}] \topicindex {nodes+text} @@ -103,10 +62,10 @@ present in all nodes regardless of their type, these are: \LL \stoptabulate -The \type {subtype} is sometimes just a stub entry. Not all nodes actually use -the \type {subtype}, but this way you can be sure that all nodes accept it as a -valid field name, and that is often handy in node list traversal. In the -following tables \type {next} and \type {id} are not explicitly mentioned. +The \type {subtype} is sometimes just a dummy entry because not all nodes +actually use the \type {subtype}, but this way you can be sure that all nodes +accept it as a valid field name, and that is often handy in node list traversal. +In the following tables \type {next} and \type {id} are not explicitly mentioned. Besides these three fields, almost all nodes also have an \type {attr} field, and there is a also a field called \type {prev}. That last field is always present, @@ -116,7 +75,7 @@ the argument node list. By now most of \TEX's node processing makes sure that th \type {prev} nodes are valid but there can be exceptions, especially when the internal magic uses a leading \nod {temp} nodes to temporarily store a state. -\subsubsection{\nod {hlist} nodes} +\subsection{\nod {hlist} nodes} \starttabulate[|l|l|p|] \DB field \BC type \BC explanation \NC \NR @@ -148,7 +107,7 @@ Note: the field name \type {head} and \type {list} are both valid. Sometimes it makes more sense to refer to a list by \type {head}, sometimes \type {list} makes more sense. -\subsubsection{\nod {vlist} nodes} +\subsection{\nod {vlist} nodes} \topicindex {nodes+lists} \topicindex {lists} @@ -157,7 +116,7 @@ This node is similar to \nod {hlist}, except that \quote {shift} is a displaceme perpendicular to the line progression direction, and \quote {subtype} only has the values 0, 4, and~5. -\subsubsection{\nod {rule} nodes} +\subsection{\nod {rule} nodes} \topicindex {nodes+rules} \topicindex {rules} @@ -167,18 +126,19 @@ also use rules to store reuseable objects and images. User nodes are invisible and can be intercepted by a callback. \starttabulate[|l|l|p|] -\DB field \BC type \BC explanation \NC \NR +\DB field \BC type \BC explanation \NC \NR \TB -\NC \type{subtype} \NC number \NC \showsubtypes {rule} \NC \NR -\NC \type{attr} \NC node \NC list of attributes \NC \NR -\NC \type{width} \NC number \NC the width of the rule where the special value - $-1073741824$ is used for \quote {running} glue dimensions \NC \NR -\NC \type{height} \NC number \NC the height of the rule (can be negative) \NC \NR -\NC \type{depth} \NC number \NC the depth of the rule (can be negative) \NC \NR -\NC \type{left} \NC number \NC shift at the left end (also subtracted from width) \NC \NR -\NC \type{right} \NC number \NC (subtracted from width) \NC \NR -\NC \type{dir} \NC string \NC the direction of this rule, see~\in[dirnodes] \NC \NR -\NC \type{index} \NC number \NC an optional index that can be referred to \NC \NR +\NC \type{subtype} \NC number \NC \showsubtypes {rule} \NC \NR +\NC \type{attr} \NC node \NC list of attributes \NC \NR +\NC \type{width} \NC number \NC the width of the rule where the special value + $-1073741824$ is used for \quote {running} glue dimensions \NC \NR +\NC \type{height} \NC number \NC the height of the rule (can be negative) \NC \NR +\NC \type{depth} \NC number \NC the depth of the rule (can be negative) \NC \NR +\NC \type{left} \NC number \NC shift at the left end (also subtracted from width) \NC \NR +\NC \type{right} \NC number \NC (subtracted from width) \NC \NR +\NC \type{dir} \NC string \NC the direction of this rule, see~\in[dirnodes] \NC \NR +\NC \type{index} \NC number \NC an optional index that can be referred to \NC \NR +\NC \type{transform} \NC number \NC an private variable (also used to specify outline width) \NC \NR \LL \stoptabulate @@ -192,9 +152,11 @@ the auto settings also happen in the backend). For a vertical rule \type {left} affects the height and \type {right} affects the depth. There is no matching interface at the \TEX\ end (although we can have more keywords for rules it would complicate matters and introduce a speed penalty.) However, you can just -construct a rule node with \LUA\ and write it to the \TEX\ input. +construct a rule node with \LUA\ and write it to the \TEX\ input. The \type +{outline} subtype is just a convenient variant and the \type {transform} field +specifies the width of the outline. -\subsubsection{\nod {ins} nodes} +\subsection{\nod {ins} nodes} \topicindex {nodes+insertions} \topicindex {insertions} @@ -218,11 +180,11 @@ There is a set of extra fields that concern the associated glue: \type {width}, These are all numbers. A warning: never assign a node list to the \type {head} field unless you are sure -its internal link structure is correct, otherwise an error may be result. You can use -\type {list} instead (often in functions you want to use local variable swith similar +its internal link structure is correct, otherwise an error may result. You can use +\type {list} instead (often in functions you want to use local variable with similar names and both names are equally sensible). -\subsubsection{\nod {mark} nodes} +\subsection{\nod {mark} nodes} \topicindex {nodes+marks} \topicindex {marks} @@ -239,7 +201,7 @@ This one relates to the \prm {mark} primitive. \LL \stoptabulate -\subsubsection{\nod {adjust} nodes} +\subsection{\nod {adjust} nodes} \topicindex {nodes+adjust} \topicindex {adjust} @@ -256,9 +218,9 @@ This node comes from \prm {vadjust} primitive. \stoptabulate A warning: never assign a node list to the \type {head} field unless you are sure -its internal link structure is correct, otherwise an error may be result. +its internal link structure is correct, otherwise an error may be the result. -\subsubsection{\nod {disc} nodes} +\subsection{\nod {disc} nodes} \topicindex {nodes+discretionaries} \topicindex {discretionaries} @@ -299,10 +261,10 @@ Otherwise you can end up with an invalid internal perception of reality and \LUATEX\ might even decide to crash on you. It also means that running forward over for instance \type {pre} is ok but backward you need to stop at \type {pre}. And you definitely must not mess with the node that \type {prev} points to, if -only because it is not really an node but part of the disc data structure (so +only because it is not really a node but part of the disc data structure (so freeing it again might crash \LUATEX). -\subsubsection{\nod {math} nodes} +\subsection{\nod {math} nodes} \topicindex {nodes+math} \topicindex {math+nodes} @@ -323,7 +285,7 @@ There is a set of extra fields that concern the associated glue: \type {width}, \type {stretch}, \type {stretch_order}, \type {shrink} and \type {shrink_order}. These are all numbers. -\subsubsection{\nod {glue} nodes} +\subsection{\nod {glue} nodes} \topicindex {nodes+glue} \topicindex {glue} @@ -347,10 +309,11 @@ accessible fields: The effective width of some glue subtypes depends on the stretch or shrink needed to make the encapsulating box fit its dimensions. For instance, in a paragraph -lines normally have glue representing spaces and these stretch of shrink to make +lines normally have glue representing spaces and these stretch or shrink to make the content fit in the available space. The \type {effective_glue} function that takes a glue node and a parent (hlist or vlist) returns the effective width of -that glue item. +that glue item. When you pass \type {true} as third argument the value will be +rounded. A \nod {glue_spec} node is a special kind of node that is used for storing a set of glue values in registers. Originally they were also used to store properties @@ -386,7 +349,7 @@ so we decided to stick to that naming. A regular word space also results in a \type {spaceskip} subtype (this used to be a \type {userskip} with subtype zero). -\subsubsection{\nod {kern} nodes} +\subsection{\nod {kern} nodes} \topicindex {nodes+kerns} \topicindex {kerns} @@ -403,7 +366,7 @@ machinery can also add them. \LL \stoptabulate -\subsubsection{\nod {penalty} nodes} +\subsection{\nod {penalty} nodes} \topicindex {nodes+penalty} \topicindex {penalty} @@ -423,21 +386,21 @@ The subtypes are just informative and \TEX\ itself doesn't use them. When you run into an \type {linebreakpenalty} you need to keep in mind that it's a accumulation of \type {club}, \type{widow} and other relevant penalties. -\subsubsection[glyphnodes]{\nod {glyph} nodes} +\subsection[glyphnodes]{\nod {glyph} nodes} \topicindex {nodes+glyph} -\topicindex {glyph} +\topicindex {glyphs} -These are probably the mostly used nodes and although you can push on tin the -list with for instance \prm {char} \TEX\ will normally do it for you when it -considers some input to be text. +These are probably the mostly used nodes and although you can push them in the +current list with for instance \prm {char} \TEX\ will normally do it for you when +it considers some input to be text. \starttabulate[|l|l|p|] \DB field \BC type \BC explanation \NC \NR \TB -\NC \type{subtype} \NC number \NC bitfield \NC \NR +\NC \type{subtype} \NC number \NC bit field \NC \NR \NC \type{attr} \NC node \NC list of attributes \NC \NR -\NC \type{char} \NC number \NC the chatacter index in the font \NC \NR +\NC \type{char} \NC number \NC the character index in the font \NC \NR \NC \type{font} \NC number \NC the font identifier \NC \NR \NC \type{lang} \NC number \NC the language identifier \NC \NR \NC \type{left} \NC number \NC the frozen \type {\lefthyphenmnin} value \NC \NR @@ -446,16 +409,16 @@ considers some input to be text. \NC \type{components} \NC node \NC pointer to ligature components \NC \NR \NC \type{xoffset} \NC number \NC a virtual displacement in horizontal direction \NC \NR \NC \type{yoffset} \NC number \NC a virtual displacement in vertical direction \NC \NR -%NC \type{xadvance} \NC number \NC an additional advance after the glyph (experimental) \NC \NR \NC \type{width} \NC number \NC the (original) width of the character \NC \NR \NC \type{height} \NC number \NC the (original) height of the character\NC \NR \NC \type{depth} \NC number \NC the (original) depth of the character\NC \NR \NC \type{expansion_factor} \NC number \NC the to be applied expansion_factor \NC \NR +\NC \type{data} \NC number \NC a general purpose field for users (we had room for it) \NC \NR \LL \stoptabulate The \type {width}, \type {height} and \type {depth} values are read|-|only. The -\type {expansion_factor} is assigned in the parbuilder and used in the backend. +\type {expansion_factor} is assigned in the par builder and used in the backend. A warning: never assign a node list to the components field unless you are sure its internal link structure is correct, otherwise an error may be result. Valid @@ -495,7 +458,7 @@ helpers are not always faster than separate calls but they sometimes permit making more readable tests. The \type {uses_font} helpers takes a node and font id and returns true when a glyph or disc node references that font. -\subsubsection{\nod {boundary} nodes} +\subsection{\nod {boundary} nodes} \topicindex {nodes+boundary} \topicindex {boundary} @@ -512,12 +475,12 @@ This node relates to the \prm {noboundary}, \prm {boundary}, \prm \LL \stoptabulate -\subsubsection{\nod {local_par} nodes} +\subsection{\nod {local_par} nodes} \topicindex {nodes+paragraphs} \topicindex {paragraphs} -This node in inserted a the start of a paragraph. You should not mess +This node is inserted at the start of a paragraph. You should not mess too much with this one. \starttabulate[|l|l|p|] @@ -536,9 +499,9 @@ too much with this one. A warning: never assign a node list to the \type {box_left} or \type {box_right} field unless you are sure its internal link structure is correct, otherwise an -error may be result. +error may result. -\subsubsection[dirnodes]{\nod {dir} nodes} +\subsection[dirnodes]{\nod {dir} nodes} \topicindex {nodes+direction} \topicindex {directions} @@ -560,13 +523,13 @@ Direction specifiers are three|-|letter combinations of \type {T}, \type {B}, \startitemize[packed] \startitem - the first is the direction of the \quote{top} of paragraphs. + the first is the direction of the \quote{top} of paragraphs \stopitem \startitem - the second is the direction of the \quote{start} of lines. + the second is the direction of the \quote{start} of lines \stopitem \startitem - the third is the direction of the \quote{top} of glyphs. + the third is the direction of the \quote{top} of glyphs \stopitem \stopitemize @@ -576,7 +539,7 @@ However, only four combinations are accepted: \type {TLT}, \type {TRT}, \type direction is indicated by a \type {+} or \type {-}, indicating whether the value is pushed or popped from the direction stack. -\subsubsection{\nod {margin_kern} nodes} +\subsection{\nod {marginkern} nodes} \topicindex {nodes+paragraphs} \topicindex {paragraphs} @@ -587,14 +550,16 @@ Margin kerns result from protrusion. \starttabulate[|l|l|p|] \DB field \BC type \BC explanation \NC \NR \TB -\NC \type{subtype} \NC number \NC \showsubtypes{margin_kern} \NC \NR +\NC \type{subtype} \NC number \NC \showsubtypes{marginkern} \NC \NR \NC \type{attr} \NC node \NC list of attributes \NC \NR \NC \type{width} \NC number \NC the advance of the kern \NC \NR \NC \type{glyph} \NC node \NC the glyph to be used \NC \NR \LL \stoptabulate -\subsection{Math noads} +\stopsection + +\startsection[title={Math noads}] \topicindex {nodes+math} \topicindex {math+nodes} @@ -603,7 +568,7 @@ These are the so||called \quote {noad}s and the nodes that are specifically associated with math processing. Most of these nodes contain subnodes so that the list of possible fields is actually quite small. First, the subnodes: -\subsubsection{Math kernel subnodes} +\subsection{Math kernel subnodes} Many object fields in math mode are either simple characters in a specific family or math lists or node lists. There are four associated subnodes that represent @@ -612,7 +577,7 @@ these cases (in the following node descriptions these are indicated by the word The \type {next} and \type {prev} fields for these subnodes are unused. -\subsubsubsection{\nod {math_char} and \nod {math_text_char} subnodes} +\subsection{\nod {math_char} and \nod {math_text_char} subnodes} \starttabulate[|l|l|p|] \DB field \BC type \BC explanation \NC \NR @@ -628,7 +593,7 @@ and family for a single glyph object. The \nod {math_text_char} is a special case that you will not normally encounter, it arises temporarily during math list conversion (its sole function is to suppress a following italic correction). -\subsubsubsection{\nod {sub_box} and \nod {sub_mlist} subnodes} +\subsection{\nod {sub_box} and \nod {sub_mlist} subnodes} \starttabulate[|l|l|p|] \DB field \BC type \BC explanation \NC \NR @@ -643,9 +608,9 @@ the \type {head} points to a \quote {normal} vbox or hbox. For \nod {sub_mlist}, the \type {head} points to a math list that is yet to be converted. A warning: never assign a node list to the \type {head} field unless you are sure -its internal link structure is correct, otherwise an error may be result. +its internal link structure is correct, otherwise an error is triggered. -\subsubsubsection{\nod {delim} subnodes} +\subsection{\nod {delim} subnodes} There is a fifth subnode type that is used exclusively for delimiter fields. As before, the \type {next} and \type {prev} fields are unused. @@ -662,12 +627,12 @@ before, the \type {next} and \type {prev} fields are unused. \stoptabulate The fields \type {large_char} and \type {large_fam} can be zero, in that case the -font that is sed for the \type {small_fam} is expected to provide the large +font that is set for the \type {small_fam} is expected to provide the large version as an extension to the \type {small_char}. -\subsubsection{Math core nodes} +\subsection{Math core nodes} -First, there are the objects (the \TEX book calls then \quote {atoms}) that are +First, there are the objects (the \TEX book calls them \quote {atoms}) that are associated with the simple math objects: ord, op, bin, rel, open, close, punct, inner, over, under, vcent. These all have the same fields, and they are combined into a single node type with separate subtypes for differentiation. @@ -692,7 +657,7 @@ Some noads have an option field. The values in this bitset are common: \LL \stoptabulate -\subsubsubsection{simple \nod {noad} nodes} +\subsection{simple \nod {noad} nodes} \starttabulate[|l|l|p|] \DB field \BC type \BC explanation \NC \NR @@ -706,7 +671,7 @@ Some noads have an option field. The values in this bitset are common: \LL \stoptabulate -\subsubsubsection{\nod {accent} nodes} +\subsection{\nod {accent} nodes} \starttabulate[|l|l|p|] \DB field \BC type \BC explanation \NC \NR @@ -721,7 +686,7 @@ Some noads have an option field. The values in this bitset are common: \LL \stoptabulate -\subsubsubsection{\nod {style} nodes} +\subsection{\nod {style} nodes} \starttabulate[|l|l|p|] \DB field \BC type \BC explanation \NC \NR @@ -734,7 +699,7 @@ There are eight possibilities for the string value: one of \type {display}, \type {text}, \type {script}, or \type {scriptscript}. Each of these can have be prefixed by \type {cramped}. -\subsubsubsection{\nod {choice} nodes} +\subsection{\nod {choice} nodes} \starttabulate[|l|l|p|] \DB field \BC type \BC explanation \NC \NR @@ -749,9 +714,9 @@ be prefixed by \type {cramped}. Warning: never assign a node list to the \type {display}, \type {text}, \type {script}, or \type {scriptscript} field unless you are sure its internal link -structure is correct, otherwise an error may be result. +structure is correct, otherwise an error can occur. -\subsubsubsection{\nod {radical} nodes} +\subsection{\nod {radical} nodes} \starttabulate[|l|l|p|] \DB field \BC type \BC explanation \NC \NR @@ -770,9 +735,9 @@ structure is correct, otherwise an error may be result. Warning: never assign a node list to the \type {nucleus}, \type {sub}, \type {sup}, \type {left}, or \type {degree} field unless you are sure its internal -link structure is correct, otherwise an error may be result. +link structure is correct, otherwise an error can be triggered. -\subsubsubsection{\nod {fraction} nodes} +\subsection{\nod {fraction} nodes} \starttabulate[|l|l|p|] \DB field \BC type \BC explanation \NC \NR @@ -790,9 +755,9 @@ link structure is correct, otherwise an error may be result. Warning: never assign a node list to the \type {num}, or \type {denom} field unless you are sure its internal link structure is correct, otherwise an error -may be result. +can result. -\subsubsubsection{\nod {fence} nodes} +\subsection{\nod {fence} nodes} \starttabulate[|l|l|p|] \DB field \BC type \BC explanation \NC \NR @@ -811,10 +776,12 @@ may be result. Warning: some of these fields are used by the renderer and might get adapted in the process. -\subsection{whatsit nodes} +\stopsection -Whatsit nodes come in many subtypes that you can ask for by running -\type {node.whatsits()}: +\startsection[title={Front|-|end whatsits}] + +Whatsit nodes come in many subtypes that you can ask for them by running +\type {node.whatsits}: \startluacode for id, name in table.sortedpairs(node.whatsits()) do context.type(name) @@ -825,9 +792,11 @@ Whatsit nodes come in many subtypes that you can ask for by running \stopluacode . % period -\subsubsection{front|-|end whatsits} +Some of them are generic and independent of the output mode and others are +specific to the chosen backend: \DVI\ or \PDF. Here we discuss the generic +font|-|end nodes nodes. -\subsubsubsection{\whs {open}} +\subsection{\whs {open}} \starttabulate[|l|l|p|] \DB field \BC type \BC explanation \NC \NR @@ -840,7 +809,7 @@ Whatsit nodes come in many subtypes that you can ask for by running \LL \stoptabulate -\subsubsubsection{\whs {write}} +\subsection{\whs {write}} \starttabulate[|l|l|p|] \DB field \BC type \BC explanation \NC \NR @@ -851,7 +820,7 @@ Whatsit nodes come in many subtypes that you can ask for by running \LL \stoptabulate -\subsubsubsection{\whs {close}} +\subsection{\whs {close}} \starttabulate[|l|l|p|] \DB field \BC type \BC explanation \NC \NR @@ -861,7 +830,7 @@ Whatsit nodes come in many subtypes that you can ask for by running \LL \stoptabulate -\subsubsubsection{\whs {user_defined}} +\subsection{\whs {user_defined}} User|-|defined whatsit nodes can only be created and handled from \LUA\ code. In effect, they are an extension to the extension mechanism. The \LUATEX\ engine @@ -881,7 +850,7 @@ will simply step over such whatsits without ever looking at the contents. \stoptabulate The \type {type} can have one of six distinct values. The number is the \ASCII\ -value if the first character if the type name (so you can use string.byte("l") +value if the first character of the type name (so you can use string.byte("l") instead of \type {108}). \starttabulate[|r|c|p|] @@ -896,7 +865,7 @@ instead of \type {108}). \LL \stoptabulate -\subsubsubsection{\whs {save_pos}} +\subsection{\whs {save_pos}} \starttabulate[|l|l|p|] \DB field \BC type \BC explanation \NC \NR @@ -905,15 +874,15 @@ instead of \type {108}). \LL \stoptabulate -\subsubsubsection{\whs {late_lua}} +\subsection{\whs {late_lua}} \starttabulate[|l|l|p|] -\DB field \BC type \BC explanation \NC \NR +\DB field \BC type \BC explanation \NC \NR \TB -\NC \type{attr} \NC node \NC list of attributes \NC \NR -\NC \type{data} \NC string \NC data to execute \NC \NR -\NC \type{string} \NC string \NC data to execute \NC \NR -\NC \type{name} \NC string \NC the name to use for \LUA\ error reporting \NC \NR +\NC \type{attr} \NC node \NC list of attributes \NC \NR +\NC \type{data} \NC string or function \NC the to be written information stored as \LUA\ value \NC \NR +\NC \type{token} \NC string \NC the to be written information stored as token list \NC \NR +\NC \type{name} \NC string \NC the name to use for \LUA\ error reporting \NC \NR \LL \stoptabulate @@ -921,9 +890,14 @@ The difference between \type {data} and \type {string} is that on assignment, th \type {data} field is converted to a token list, cf.\ use as \lpr {latelua}. The \type {string} version is treated as a literal string. -\subsubsection{\DVI\ backend whatsits} +\stopsection + +\startsection[title={\DVI\ backend whatsits}] -\subsubsection{\whs {special}} +\subsection{\whs {special}} + +There is only one \DVI\ backend whatsit, and it just flushes its content to the +output file. \starttabulate[|l|l|p|] \DB field \BC type \BC explanation \NC \NR @@ -933,16 +907,19 @@ The difference between \type {data} and \type {string} is that on assignment, th \LL \stoptabulate -\subsubsection{\PDF\ backend whatsits} +\stopsection + +\startsection[title={\PDF\ backend whatsits}] -\subsubsubsection{\whs {pdf_literal}} +\subsection{\whs {pdf_literal}} \starttabulate[|l|l|p|] -\DB field \BC type \BC explanation \NC \NR +\DB field \BC type \BC explanation \NC \NR \TB -\NC \type{attr} \NC node \NC list of attributes \NC \NR -\NC \type{mode} \NC number \NC the \quote {mode} setting of this literal \NC \NR -\NC \type{data} \NC string \NC the \orm {pdfliteral} information \NC \NR +\NC \type{attr} \NC node \NC list of attributes \NC \NR +\NC \type{mode} \NC number \NC the \quote {mode} setting of this literal \NC \NR +\NC \type{data} \NC string \NC the to be written information stored as \LUA\ string \NC \NR +\NC \type{token} \NC string \NC the to be written information stored as token list \NC \NR \LL \stoptabulate @@ -959,11 +936,11 @@ Possible mode values are: \LL \stoptabulate -The higher the number, the less checking and the more you can run into troubles. +The higher the number, the less checking and the more you can run into trouble. Especially the \type {raw} variant can produce bad \PDF\ so you can best check what you generate. -\subsubsubsection{\whs {pdf_refobj}} +\subsection{\whs {pdf_refobj}} \starttabulate[|l|l|p|] \DB field \BC type \BC explanation \NC \NR @@ -973,7 +950,7 @@ what you generate. \LL \stoptabulate -\subsubsubsection{\whs {pdf_annot}} +\subsection{\whs {pdf_annot}} \starttabulate[|l|l|p|] \DB field \BC type \BC explanation \NC \NR @@ -987,7 +964,7 @@ what you generate. \LL \stoptabulate -\subsubsubsection{\whs {pdf_start_link}} +\subsection{\whs {pdf_start_link}} \starttabulate[|l|l|p|] \DB field \BC type \BC explanation \NC \NR @@ -1002,7 +979,7 @@ what you generate. \LL \stoptabulate -\subsubsubsection{\whs {pdf_end_link}} +\subsection{\whs {pdf_end_link}} \starttabulate[|l|l|p|] \DB field \BC type \BC explanation \NC \NR @@ -1011,7 +988,7 @@ what you generate. \LL \stoptabulate -\subsubsubsection{\whs {pdf_dest}} +\subsection{\whs {pdf_dest}} \starttabulate[|l|l|p|] \DB field \BC type \BC explanation \NC \NR @@ -1029,9 +1006,9 @@ what you generate. \LL \stoptabulate -\subsubsubsection{\whs {pdf_action}} +\subsection{\whs {pdf_action}} -These are a special kind of item that only appears inside \PDF\ start link +These are a special kind of items that only appear inside \PDF\ start link objects. \starttabulate[|l|l|p|] @@ -1069,7 +1046,7 @@ Valid window types are: \LL \stoptabulate -\subsubsubsection{\whs {pdf_thread}} +\subsection{\whs {pdf_thread}} \starttabulate[|l|l|p|] \DB field \BC type \BC explanation \NC \NR @@ -1085,7 +1062,7 @@ Valid window types are: \LL \stoptabulate -\subsubsubsection{\whs {pdf_start_thread}} +\subsection{\whs {pdf_start_thread}} \starttabulate[|l|l|p|] \DB field \BC type \BC explanation \NC \NR @@ -1101,7 +1078,7 @@ Valid window types are: \LL \stoptabulate -\subsubsubsection{\whs {pdf_end_thread}} +\subsection{\whs {pdf_end_thread}} \starttabulate[|l|l|p|] \DB field \BC type \BC explanation \NC \NR @@ -1110,7 +1087,7 @@ Valid window types are: \LL \stoptabulate -\subsubsubsection{\whs {pdf_colorstack}} +\subsection{\whs {pdf_colorstack}} \starttabulate[|l|l|p|] \DB field \BC type \BC explanation \NC \NR @@ -1122,7 +1099,7 @@ Valid window types are: \LL \stoptabulate -\subsubsubsection{\whs {pdf_setmatrix}} +\subsection{\whs {pdf_setmatrix}} \starttabulate[|l|l|p|] \DB field \BC type \BC explanation \NC \NR @@ -1132,7 +1109,7 @@ Valid window types are: \LL \stoptabulate -\subsubsubsection{\whs {pdf_save}} +\subsection{\whs {pdf_save}} \starttabulate[|l|l|p|] \DB field \BC type \BC explanation \NC \NR @@ -1141,7 +1118,7 @@ Valid window types are: \LL \stoptabulate -\subsubsubsection{\whs {pdf_restore}} +\subsection{\whs {pdf_restore}} \starttabulate[|l|l|p|] \DB field \BC type \BC explanation \NC \NR @@ -1150,7 +1127,11 @@ Valid window types are: \LL \stoptabulate -\section{The \type {node} library} +\stopsection + +\startsection[title={The \type {node} library}][library=node] + +\subsection {Introduction} The \type {node} library contains functions that facilitate dealing with (lists of) nodes and their values. They allow you to create, alter, copy, delete, and @@ -1185,8 +1166,7 @@ Each node has at least the three fields \type {next}, \type {id}, and \type {sub \stopitemize The other available fields depend on the \type {id} (and for \quote {whatsits}, -the \type {subtype}) of the node. Further details on the various fields and their -meanings are given in~\in{chapter}[nodes]. +the \type {subtype}) of the node. Support for \nod {unset} (alignment) nodes is partial: they can be queried and modified from \LUA\ code, but not created. @@ -1203,78 +1183,90 @@ call the node freeing functions yourself when you are no longer in need of a nod (list). Nodes form linked lists without reference counting, so you have to be careful that when control returns back to \LUATEX\ itself, you have not deleted nodes that are still referenced from a \type {next} pointer elsewhere, and that -you did not create nodes that are referenced more than once. +you did not create nodes that are referenced more than once. Normally the setters +and getters handle this for you. There are statistics available with regards to the allocated node memory, which can be handy for tracing. -\subsection{Node handling functions} - -\subsubsection{\type {node.is_node}} +\subsection{\type {is_node}} \topicindex {nodes+functions} +\libindex {is_node} + \startfunctioncall -<boolean> t = +<boolean|integer> t = node.is_node(<any> item) \stopfunctioncall -This function returns true if the argument is a userdata object of -type \type {<node>}. +This function returns a number (the internal index of the node) if the argument +is a userdata object of type \type {<node>} and false when no node is passed. + +\subsection{\type {types} and \type {whatsits}} + +\libindex {types} +\libindex {whatsits} -\subsubsection{\type {node.types}} +This function returns an array that maps node id numbers to node type strings, +providing an overview of the possible top|-|level \type {id} types. \startfunctioncall <table> t = node.types() \stopfunctioncall -This function returns an array that maps node id numbers to node type strings, -providing an overview of the possible top|-|level \type {id} types. - -\subsubsection{\type {node.whatsits}} +\TEX's \quote {whatsits} all have the same \type {id}. The various subtypes are +defined by their \type {subtype} fields. The function is much like \type {types}, +except that it provides an array of \type {subtype} mappings. \startfunctioncall <table> t = node.whatsits() \stopfunctioncall -\TEX's \quote {whatsits} all have the same \type {id}. The various subtypes are -defined by their \type {subtype} fields. The function is much like \type -{node.types}, except that it provides an array of \type {subtype} mappings. +\subsection{\type {id}} -\subsubsection{\type {node.id}} +\libindex{id} + +This converts a single type name to its internal numeric representation. \startfunctioncall <number> id = node.id(<string> type) \stopfunctioncall -This converts a single type name to its internal numeric representation. +\subsection{\type {type} and \type {subtype}} -\subsubsection{\type {node.subtype}} +\libindex {type} +\libindex {subtype} + +In the argument is a number, then the next function converts an internal numeric +representation to an external string representation. Otherwise, it will return +the string \type {node} if the object represents a node, and \type {nil} +otherwise. \startfunctioncall -<number> subtype = - node.subtype(<string> type) +<string> type = + node.type(<any> n) \stopfunctioncall -This converts a single whatsit name to its internal numeric representation (\type -{subtype}). - -\subsubsection{\type {node.type}} +This next one converts a single whatsit name to its internal numeric +representation (\type {subtype}). \startfunctioncall -<string> type = - node.type(<any> n) +<number> subtype = + node.subtype(<string> type) \stopfunctioncall -In the argument is a number, then this function converts an internal numeric -representation to an external string representation. Otherwise, it will return -the string \type {node} if the object represents a node, and \type {nil} -otherwise. +\subsection{\type {fields}} + +\libindex {fields} -\subsubsection{\type {node.fields}} +This function returns an array of valid field names for a particular type of +node. If you want to get the valid fields for a \quote {whatsit}, you have to +supply the second argument also. In other cases, any given second argument will +be silently ignored. \startfunctioncall <table> t = @@ -1283,24 +1275,29 @@ otherwise. node.fields(<number> id, <number> subtype) \stopfunctioncall -This function returns an array of valid field names for a particular type of -node. If you want to get the valid fields for a \quote {whatsit}, you have to -supply the second argument also. In other cases, any given second argument will -be silently ignored. +The function accepts string \type {id} and \type {subtype} values as well. -This function accepts string \type {id} and \type {subtype} values as well. +\subsection{\type {has_field}} -\subsubsection{\type {node.has_field}} +\libindex {has_field} + +This function returns a boolean that is only true if \type {n} is +actually a node, and it has the field. \startfunctioncall <boolean> t = node.has_field(<node> n, <string> field) \stopfunctioncall -This function returns a boolean that is only true if \type {n} is -actually a node, and it has the field. +\subsection{\type {new}} -\subsubsection{\type {node.new}} +\libindex{new} + +The \type {new} function creates a new node. All its fields are initialized to +either zero or \type {nil} except for \type {id} and \type {subtype}. Instead of +numbers you can also use strings (names). If you create a new \nod {whatsit} node +the second argument is required. As with all node functions, this function +creates a node at the \TEX\ level. \startfunctioncall <node> n = @@ -1309,15 +1306,16 @@ actually a node, and it has the field. node.new(<number> id, <number> subtype) \stopfunctioncall -Creates a new node. All of the new node's fields are initialized to either zero -or \type {nil} except for \type {id} and \type {subtype} (if supplied). If you -want to create a new whatsit, then the second argument is required, otherwise it -need not be present. As with all node functions, this function creates a node on -the \TEX\ level. +\subsection{\type {free}, \type {flush_node} and \type {flush_list}} -This function accepts string \type {id} and \type {subtype} values as well. +\libindex{free} +\libindex{flush_node} +\libindex{flush_list} -\subsubsection{\type {node.free} and \type {node.flush_node}} +The next one the node \type {n} from \TEX's memory. Be careful: no checks are +done on whether this node is still pointed to from a register or some \type +{next} field: it is up to you to make sure that the internal data structures +remain correct. \startfunctioncall <node> next = @@ -1325,35 +1323,33 @@ This function accepts string \type {id} and \type {subtype} values as well. flush_node(<node> n) \stopfunctioncall -Removes the node \type {n} from \TEX's memory. Be careful: no checks are done on -whether this node is still pointed to from a register or some \type {next} field: -it is up to you to make sure that the internal data structures remain correct. - The \type {free} function returns the next field of the freed node, while the \type {flush_node} alternative returns nothing. -\subsubsection{\type {node.flush_list}} +A list starting with node \type {n} can be flushed from \TEX's memory too. Be +careful: no checks are done on whether any of these nodes is still pointed to +from a register or some \type {next} field: it is up to you to make sure that the +internal data structures remain correct. \startfunctioncall node.flush_list(<node> n) \stopfunctioncall -Removes the node list \type {n} and the complete node list following \type {n} -from \TEX's memory. Be careful: no checks are done on whether any of these nodes -is still pointed to from a register or some \type {next} field: it is up to you -to make sure that the internal data structures remain correct. +\subsection{\type {copy} and \type {copy_list}} -\subsubsection{\type {node.copy}} +\libindex{copy} +\libindex{copy_list} + +This creates a deep copy of node \type {n}, including all nested lists as in the case +of a hlist or vlist node. Only the \type {next} field is not copied. \startfunctioncall <node> m = node.copy(<node> n) \stopfunctioncall -Creates a deep copy of node \type {n}, including all nested lists as in the case -of a hlist or vlist node. Only the \type {next} field is not copied. - -\subsubsection{\type {node.copy_list}} +A deep copy of the node list that starts at \type {n} can be created too. If +\type {m} is also given, the copy stops just before node \type {m}. \startfunctioncall <node> m = @@ -1362,42 +1358,37 @@ of a hlist or vlist node. Only the \type {next} field is not copied. node.copy_list(<node> n, <node> m) \stopfunctioncall -Creates a deep copy of the node list that starts at \type {n}. If \type {m} is -also given, the copy stops just before node \type {m}. +Note that you cannot copy attribute lists this way. However, there is normally no +need to copy attribute lists as when you do assignments to the \type {attr} field +or make changes to specific attributes, the needed copying and freeing takes +place automatically. + +\subsection{\type {prev} and \type{next}} -Note that you cannot copy attribute lists this way, specialized functions for -dealing with attribute lists will be provided later but are not there yet. -However, there is normally no need to copy attribute lists as when you do -assignments to the \type {attr} field or make changes to specific attributes, the -needed copying and freeing takes place automatically. +\libindex{prev} +\libindex{next} -\subsubsection{\type {node.next}} +These returns the node preceding or following the given node, or \type {nil} if +there is no such node. \startfunctioncall <node> m = node.next(<node> n) -\stopfunctioncall - -Returns the node following this node, or \type {nil} if there is no such node. - -\subsubsection{\type {node.prev}} - -\startfunctioncall <node> m = node.prev(<node> n) \stopfunctioncall -Returns the node preceding this node, or \type {nil} if there is no such node. +\subsection{\type {current_attr}} -\subsubsection{\type {node.current_attr}} +\libindex{current_attr} + +This returns the currently active list of attributes, if there is one. \startfunctioncall <node> m = node.current_attr() \stopfunctioncall -Returns the currently active list of attributes, if there is one. - The intended usage of \type {current_attr} is as follows: \starttyping @@ -1427,7 +1418,16 @@ attribute list, not a copy thereof. Therefore, changing any of the attributes in the list will change these values for all nodes that have the current attribute list assigned to them. -\subsubsection{\type {node.hpack}} +\subsection{\type {hpack}} + +\libindex {hpack} + +This function creates a new hlist by packaging the list that begins at node \type +{n} into a horizontal box. With only a single argument, this box is created using +the natural width of its components. In the three argument form, \type {info} +must be either \type {additional} or \type {exactly}, and \type {w} is the +additional (\type {\hbox spread}) or exact (\type {\hbox to}) width to be used. +The second return value is the badness of the generated box. \startfunctioncall <node> h, <number> b = @@ -1438,21 +1438,22 @@ list assigned to them. node.hpack(<node> n, <number> w, <string> info, <string> dir) \stopfunctioncall -This function creates a new hlist by packaging the list that begins at node \type -{n} into a horizontal box. With only a single argument, this box is created using -the natural width of its components. In the three argument form, \type {info} -must be either \type {additional} or \type {exactly}, and \type {w} is the -additional (\type {\hbox spread}) or exact (\type {\hbox to}) width to be used. -The second return value is the badness of the generated box. +Caveat: there can be unexpected side|-|effects to this function, like updating +some of the \prm {marks} and \type {\inserts}. Also note that the content of +\type {h} is the original node list \type {n}: if you call \type {node.free(h)} +you will also free the node list itself, unless you explicitly set the \type +{list} field to \type {nil} beforehand. And in a similar way, calling \type +{node.free(n)} will invalidate \type {h} as well! + +\subsection{\type {vpack}} -Caveat: at this moment, there can be unexpected side|-|effects to this function, -like updating some of the \prm {marks} and \type {\inserts}. Also note that the -content of \type {h} is the original node list \type {n}: if you call \type -{node.free(h)} you will also free the node list itself, unless you explicitly set -the \type {list} field to \type {nil} beforehand. And in a similar way, calling -\type {node.free(n)} will invalidate \type {h} as well! +\libindex {vpack} -\subsubsection{\type {node.vpack}} +This function creates a new vlist by packaging the list that begins at node \type +{n} into a vertical box. With only a single argument, this box is created using +the natural height of its components. In the three argument form, \type {info} +must be either \type {additional} or \type {exactly}, and \type {w} is the +additional (\type {\vbox spread}) or exact (\type {\vbox to}) height to be used. \startfunctioncall <node> h, <number> b = @@ -1463,17 +1464,26 @@ the \type {list} field to \type {nil} beforehand. And in a similar way, calling node.vpack(<node> n, <number> w, <string> info, <string> dir) \stopfunctioncall -This function creates a new vlist by packaging the list that begins at node \type -{n} into a vertical box. With only a single argument, this box is created using -the natural height of its components. In the three argument form, \type {info} -must be either \type {additional} or \type {exactly}, and \type {w} is the -additional (\type {\vbox spread}) or exact (\type {\vbox to}) height to be used. +The second return value is the badness of the generated box. See the description +of \type {hpack} for a few memory allocation caveats. -The second return value is the badness of the generated box. +\subsection{\type {prepend_prevdepth}} + +\libindex {prepend_prevdepth} + +This function is somewhat special in the sense that it is an experimental helper +that adds the interlinespace to a line keeping the baselineskip and lineskip into +account. -See the description of \type {node.hpack()} for a few memory allocation caveats. +\startfunctioncall +<node> n, <number> delta = + node.prepend_prevdepth(<node> n,<number> prevdepth) +\stopfunctioncall + +\subsection{\type {dimensions} and \type {rangedimensions}} -\subsubsection{\type {node.dimensions}, \type {node.rangedimensions}} +\libindex{dimensions} +\libindex{rangedimensions} \startfunctioncall <number> w, <number> h, <number> d = @@ -1538,7 +1548,9 @@ cases: node.rangedimensions(<node> parent, <node> first, <node> last) \stopfunctioncall -\subsubsection{\type {node.mlist_to_hlist}} +\subsection{\type {mlist_to_hlist}} + +\libindex {mlist_to_hlist} \startfunctioncall <node> h = @@ -1549,7 +1561,7 @@ This runs the internal mlist to hlist conversion, converting the math list in \type {n} into the horizontal list \type {h}. The interface is exactly the same as for the callback \cbk {mlist_to_hlist}. -\subsubsection{\type {node.slide}} +\subsection{\type {slide}} \startfunctioncall <node> m = @@ -1560,7 +1572,9 @@ Returns the last node of the node list that starts at \type {n}. As a side|-|effect, it also creates a reverse chain of \type {prev} pointers between nodes. -\subsubsection{\type {node.tail}} +\subsection{\type {tail}} + +\libindex {tail} \startfunctioncall <node> m = @@ -1569,7 +1583,10 @@ nodes. Returns the last node of the node list that starts at \type {n}. -\subsubsection{\type {node.length}} +\subsection{\type {length} and type {count}} + +\libindex {length} +\libindex {count} \startfunctioncall <number> i = @@ -1582,8 +1599,6 @@ Returns the number of nodes contained in the node list that starts at \type {n}. If \type {m} is also supplied it stops at \type {m} instead of at the end of the list. The node \type {m} is not counted. -\subsubsection{\type {node.count}} - \startfunctioncall <number> i = node.count(<number> id, <node> n) @@ -1594,14 +1609,29 @@ list. The node \type {m} is not counted. Returns the number of nodes contained in the node list that starts at \type {n} that have a matching \type {id} field. If \type {m} is also supplied, counting stops at \type {m} instead of at the end of the list. The node \type {m} is not -counted. +counted. This function also accept string \type {id}'s. + +\subsection{\type {is_char} and \type {is_glyph}} -This function also accept string \type {id}'s. +\libindex {is_char} +\libindex {is_glyph} -\subsubsection{\type {node.traverse}} +The subtype of a glyph node signals if the glyph is already turned into a character reference +or not. \startfunctioncall -<node> t = +<boolean> b = + node.is_char(<node> n) +<boolean> b = + node.is_glyph(<node> n) +\stopfunctioncall + +\subsection{\type {traverse}} + +\libindex {traverse} + +\startfunctioncall +<node> t, id, subtype = node.traverse(<node> n) \stopfunctioncall @@ -1644,10 +1674,12 @@ pointers remain valid. If the above is unclear to you, see the section \quote {For Statement} in the \LUA\ Reference Manual. -\subsubsection{\type {node.traverse_id}} +\subsection{\type {traverse_id}} + +\libindex {traverse_id} \startfunctioncall -<node> t = +<node> t, subtype = node.traverse_id(<number> id, <node> n) \stopfunctioncall @@ -1672,17 +1704,45 @@ See the previous section for details. The change is in the local function \type end \stoptyping -\subsubsection{\type {node.traverse_char}} +\subsection{\type {traverse_char} and \type {traverse_glyph}} + +\libindex {traverse_char} +\libindex {traverse_glyph} -This iterators loops over the glyph nodes in a list. Only nodes with a subtype -less than 256 are seen. +The \type{traverse_char} iterator loops over the \nod {glyph} nodes in a list. +Only nodes with a subtype less than 256 are seen. \startfunctioncall -<node> n = +<node> n, font, char = node.traverse_char(<node> n) \stopfunctioncall -\subsubsection{\type {node.has_glyph}} +The \type{traverse_glyph} iterator loops over a list and returns the list and +filters all glyphs: + +\startfunctioncall +<node> n, font, char = + node.traverse_glyph(<node> n) +\stopfunctioncall + +\subsection{\type {traverse_list}} + +\libindex {traverse_list} + +This iterator loops over the \nod {hlist} and \nod {vlist} nodes in a list. + +\startfunctioncall +<node> n, id, subtype, list = + node.traverse_list(<node> n) +\stopfunctioncall + +The four return values can save some time compared to fetching these fields but +in practice you seldom need them all. So consider it a (side effect of +experimental) convenience. + +\subsection{\type {has_glyph}} + +\libindex {has_glyph} This function returns the first glyph or disc node in the given list: @@ -1691,7 +1751,9 @@ This function returns the first glyph or disc node in the given list: node.has_glyph(<node> n) \stopfunctioncall -\subsubsection{\type {node.end_of_math}} +\subsection{\type {end_of_math}} + +\libindex {end_of_math} \startfunctioncall <node> t = @@ -1699,11 +1761,13 @@ This function returns the first glyph or disc node in the given list: \stopfunctioncall Looks for and returns the next \type {math_node} following the \type {start}. If -the given node is a math endnode this helper return that node, else it follows -the list and return the next math endnote. If no such node is found nil is +the given node is a math end node this helper returns that node, else it follows +the list and returns the next math endnote. If no such node is found nil is returned. -\subsubsection{\type {node.remove}} +\subsection{\type {remove}} + +\libindex {remove} \startfunctioncall <node> head, current = @@ -1719,7 +1783,9 @@ no such node). The returned \type {head} is more important, because if the function is called with \type {current} equal to \type {head}, it will be changed. -\subsubsection{\type {node.insert_before}} +\subsection{\type {insert_before}} + +\libindex {insert_before} \startfunctioncall <node> head, new = @@ -1733,7 +1799,9 @@ mutated) \type {head} and the node \type {new}, set up to be part of the list (with correct \type {next} field). If \type {head} is initially \type {nil}, it will become \type {new}. -\subsubsection{\type {node.insert_after}} +\subsection{\type {insert_after}} + +\libindex {insert_after} \startfunctioncall <node> head, new = @@ -1746,7 +1814,9 @@ following \type {head}. It is your responsibility to make sure that \type the node \type {new}, set up to be part of the list (with correct \type {next} field). If \type {head} is initially \type {nil}, it will become \type {new}. -\subsubsection{\type {node.first_glyph}} +\subsection{\type {first_glyph}} + +\libindex {first_glyph} \startfunctioncall <node> n = @@ -1760,7 +1830,9 @@ with a subtype indicating it is a glyph, or \type {nil}. If \type {m} is given, processing stops at (but including) that node, otherwise processing stops at the end of the list. -\subsubsection{\type {node.ligaturing}} +\subsection{\type {ligaturing}} + +\libindex {ligaturing} \startfunctioncall <node> h, <node> t, <boolean> success = @@ -1773,7 +1845,9 @@ Apply \TEX-style ligaturing to the specified nodelist. The tail node \type {m} i optional. The two returned nodes \type {h} and \type {t} are the new head and tail (both \type {n} and \type {m} can change into a new ligature). -\subsubsection{\type {node.kerning}} +\subsection{\type {kerning}} + +\libindex {kerning} \startfunctioncall <node> h, <node> t, <boolean> success = @@ -1787,7 +1861,10 @@ optional. The two returned nodes \type {h} and \type {t} are the head and tail (either one of these can be an inserted kern node, because special kernings with word boundaries are possible). -\subsubsection{\type {node.unprotect_glyphs} and \type {node.unprotect_glyph}} +\subsection{\type {unprotect_glyph[s]}} + +\libindex {unprotect_glyphs} +\libindex {unprotect_glyph} \startfunctioncall node.unprotect_glyph(<node> n) @@ -1796,9 +1873,12 @@ node.unprotect_glyphs(<node> n,[<node> n]) Subtracts 256 from all glyph node subtypes. This and the next function are helpers to convert from \type {characters} to \type {glyphs} during node -processing. The second argument is option and indicates the end of a range. +processing. The second argument is optional and indicates the end of a range. -\subsubsection{\type {node.protect_glyphs} and \type {node.protect_glyph}} +\subsection{\type {protect_glyph[s]}} + +\libindex {protect_glyphs} +\libindex {protect_glyph} \startfunctioncall node.protect_glyph(<node> n) @@ -1809,9 +1889,11 @@ Adds 256 to all glyph node subtypes in the node list starting at \type {n}, except that if the value is 1, it adds only 255. The special handling of 1 means that \type {characters} will become \type {glyphs} after subtraction of 256. A single character can be marked by the singular call. The second argument is -option and indicates the end of a range. +optional and indicates the end of a range. + +\subsection{\type {last_node}} -\subsubsection{\type {node.last_node}} +\libindex {last_node} \startfunctioncall <node> n = @@ -1821,17 +1903,21 @@ option and indicates the end of a range. This function pops the last node from \TEX's \quote{current list}. It returns that node, or \type {nil} if the current list is empty. -\subsubsection{\type {node.write}} +\subsection{\type {write}} + +\libindex {write} \startfunctioncall node.write(<node> n) \stopfunctioncall -This is an experimental function that will append a node list to \TEX's \quote -{current list} The node list is not deep|-|copied! There is no error checking -either! +This function that will append a node list to \TEX's \quote {current list}. The +node list is not deep|-|copied! There is no error checking either! You mignt need +to enforce horizontal mode in order for this to work as expected. + +\subsection{\type {protrusion_skippable}} -\subsubsection{\type {node.protrusion_skippable}} +\libindex {protrusion_skippable} \startfunctioncall <boolean> skippable = @@ -1841,9 +1927,13 @@ either! Returns \type {true} if, for the purpose of line boundary discovery when character protrusion is active, this node can be skipped. -\subsection{Glue handling} +\stopsection + +\startsection[title={Glue handling}][library=node] -\subsubsection{\type {node.setglue}} +\subsection{\type {setglue}} + +\libindex {setglue} You can set the properties of a glue in one go. If you pass no values, the glue will become a zero glue. @@ -1863,9 +1953,11 @@ will only adapt the width and shrink. When a list node is passed, you set the glue, order and sign instead. -\subsubsection{\type {node.getglue}} +\subsection{\type {getglue}} + +\libindex {getglue} -The next call will return 5 values (or northing when no glue is passed). +The next call will return 5 values or nothing when no glue is passed. \startfunctioncall <integer> width, <integer> stretch, <integer> shrink, <integer> stretch_order, @@ -1878,7 +1970,9 @@ with \type {tex.get}). When a list node is passed, you get back the glue that is set, the order of that glue and the sign. -\subsubsection{\type {node.is_zero_glue}} +\subsection{\type {is_zero_glue}} + +\libindex {is_zero_glue} This function returns \type {true} when the width, stretch and shrink properties are zero. @@ -1888,13 +1982,61 @@ are zero. node.is_zero_glue(<node> n) \stopfunctioncall -\subsection{Attribute handling} +\stopsection + +\startsection[title={Attribute handling}][library=node] + +\subsection{Attributes} + +\topicindex {attributes} + +The newly introduced attribute registers are non|-|trivial, because the value +that is attached to a node is essentially a sparse array of key|-|value pairs. It +is generally easiest to deal with attribute lists and attributes by using the +dedicated functions in the \type {node} library, but for completeness, here is +the low|-|level interface. Attributes appear as linked list of userdata objects in the \type {attr} field of individual nodes. They can be handled individually, but it is much safer and more efficient to use the dedicated functions associated with them. -\subsubsection{\type {node.has_attribute}} +\subsection{\nod {attribute_list} nodes} + +\topicindex {nodes+attributes} + +An \nod {attribute_list} item is used as a head pointer for a list of attribute +items. It has only one user-visible field: + +\starttabulate[|l|l|p|] +\DB field \BC type \BC explanation \NC \NR +\TB +\NC \type{next} \NC node \NC pointer to the first attribute \NC \NR +\LL +\stoptabulate + +\subsection{\nod {attr} nodes} + +A normal node's attribute field will point to an item of type \nod +{attribute_list}, and the \type {next} field in that item will point to the first +defined \quote {attribute} item, whose \type {next} will point to the second +\quote {attribute} item, etc. + +\starttabulate[|l|l|p|] +\DB field \BC type \BC explanation \NC \NR +\TB +\NC \type{next} \NC node \NC pointer to the next attribute \NC \NR +\NC \type{number} \NC number \NC the attribute type id \NC \NR +\NC \type{value} \NC number \NC the attribute value \NC \NR +\LL +\stoptabulate + +As mentioned it's better to use the official helpers rather than edit these +fields directly. For instance the \type {prev} field is used for other purposes +and there is no double linked list. + +\subsection{\type {has_attribute}} + +\libindex {has_attribute} \startfunctioncall <number> v = @@ -1907,7 +2049,9 @@ Tests if a node has the attribute with number \type {id} set. If \type {val} is also supplied, also tests if the value matches \type {val}. It returns the value, or, if no match is found, \type {nil}. -\subsubsection{\type {node.get_attribute}} +\subsection{\type {get_attribute}} + +\libindex {get_attribute} \startfunctioncall <number> v = @@ -1915,9 +2059,12 @@ or, if no match is found, \type {nil}. \stopfunctioncall Tests if a node has an attribute with number \type {id} set. It returns the -value, or, if no match is found, \type {nil}. +value, or, if no match is found, \type {nil}. If no \type {id} is given then the +zero attributes is assumed. + +\subsection{\type {find_attribute}} -\subsubsection{\type {node.find_attribute}} +\libindex {find_attribute} \startfunctioncall <number> v, <node> n = @@ -1927,7 +2074,9 @@ value, or, if no match is found, \type {nil}. Finds the first node that has attribute with number \type {id} set. It returns the value and the node if there is a match and otherwise nothing. -\subsubsection{\type {node.set_attribute}} +\subsection{\type {set_attribute}} + +\libindex {set_attribute} \startfunctioncall node.set_attribute(<node> n, <number> id, <number> val) @@ -1936,7 +2085,9 @@ node.set_attribute(<node> n, <number> id, <number> val) Sets the attribute with number \type {id} to the value \type {val}. Duplicate assignments are ignored. -\subsubsection{\type {node.unset_attribute}} +\subsection{\type {unset_attribute}} + +\libindex {unset_attribute} \startfunctioncall <number> v = @@ -1952,7 +2103,9 @@ attributes or attribute|-|value pairs are ignored. If the attribute was actually deleted, returns its old value. Otherwise, returns \type {nil}. -\subsubsection{\type {node.slide}} +\subsection{\type {slide}} + +\libindex {slide} This helper makes sure that the node lists is double linked and returns the found tail node. @@ -1969,13 +2122,16 @@ pointers but your other callbacks might expect proper \type {prev} pointers too. Future versions of \LUATEX\ can add more checking but this will not influence usage. -\subsubsection{\type {node.check_discretionary} and \type {node.check_discretionaries}} +\subsection{\type {check_discretionary}, \type {check_discretionaries}} + +\libindex{check_discretionary} +\libindex{check_discretionaries} When you fool around with disc nodes you need to be aware of the fact that they have a special internal data structure. As long as you reassign the fields when you have extended the lists it's ok because then the tail pointers get updated, -but when you add to list without reassigning you might end up in troubles when -the linebreak routien kicks in. You can call this function to check the list for +but when you add to list without reassigning you might end up in trouble when +the linebreak routine kicks in. You can call this function to check the list for issues with disc nodes. \startfunctioncall @@ -1986,7 +2142,9 @@ node.check_discretionaries(<node> head) The plural variant runs over all disc nodes in a list, the singular variant checks one node only (it also checks if the node is a disc node). -\subsubsection{\type {node.flatten_discretionaries}} +\subsection{\type {flatten_discretionaries}} + +\libindex {flatten_discretionaries} This function will remove the discretionaries in the list and inject the replace field when set. @@ -1995,48 +2153,51 @@ field when set. <node> head, count = node.flatten_discretionaries(<node> n) \stopfunctioncall -\subsubsection{\type {node.family_font}} +\subsection{\type {family_font}} + +\libindex {family_font} -When you pass it a proper family identifier the next helper will return the font -currently associated with it. You can normally also access the font with the normal -font field or getter because it will resolve the family automatically for noads. +When you pass a proper family identifier the next helper will return the font +currently associated with it. You can normally also access the font with the +normal font field or getter because it will resolve the family automatically for +noads. \startfunctioncall <integer> id = node.family_font(<integer> fam) \stopfunctioncall -\subsubsection{\type {node.set_synctex_fields} and \type {node.get_synctex_fields}} - -You can set and query the synctex fields, a file number aka tag and a line -number, for a glue, kern, hlist, vlist, rule and math nodes as well as glyph -nodes (although this last one are not used in native synctex). - -\startfunctioncall -node.set_synctex_fields(<integer> f, <integer> l) -<integer> f, <integer> l = - node.get_synctex_fields(<node> n) -\stopfunctioncall - -Of course you need to know what you're doing as no checking on sane values takes -place. Also, the synctex interpreter used in editors is rather peculiar and has -some assumptions (heuristics). +\stopsection -\section{Two access models} +\startsection[title={Two access models}][library=node] \topicindex{nodes+direct} \topicindex{direct nodes} -Deep down in \TEX\ a node has a number which is an numeric entry in a memory +\libindex {todirect} +\libindex {tonode} +\libindex {tostring} + +Deep down in \TEX\ a node has a number which is a numeric entry in a memory table. In fact, this model, where \TEX\ manages memory is real fast and one of the reasons why plugging in callbacks that operate on nodes is quite fast too. Each node gets a number that is in fact an index in the memory table and that -number often gets reported when you print node related information. +number often is reported when you print node related information. You go from +userdata nodes and there numeric references and back with: + +\startfunctioncall +<integer> d = node.todirect(<node> n)) +<node> n = node.tonode(<integer> d)) +\stopfunctioncall + +The userdata model is rather robust as it is a virtual interface with some +additional checking while the more direct access which uses the node numbers +directly. However, even with userdata you can get into troubles when you free +nodes that are no longer allocated or mess up lists. if you apply \type +{tostring} to a node you see its internal (direct) number and id. -There are two access models, a robust one using a so called user data object that -provides a virtual interface to the internal nodes, and a more direct access which -uses the node numbers directly. The first model provide key based access while -the second always accesses fields via functions: +The first model provides key based access while the second always accesses fields +via functions: \starttyping nodeobject.char @@ -2044,19 +2205,19 @@ getfield(nodenumber,"char") \stoptyping If you use the direct model, even if you know that you deal with numbers, you -should not depend on that property but treat it an abstraction just like +should not depend on that property but treat it as an abstraction just like traditional nodes. In fact, the fact that we use a simple basic datatype has the penalty that less checking can be done, but less checking is also the reason why it's somewhat faster. An important aspect is that one cannot mix both methods, but you can cast both models. So, multiplying a node number makes no sense. So our advice is: use the indexed (table) approach when possible and investigate -the direct one when speed might be an real issue. For that reason we also provide -the \type {get*} and \type {set*} functions in the top level node namespace. -There is a limited set of getters. When implementing this direct approach the -regular index by key variant was also optimized, so direct access only makes -sense when we're accessing nodes millions of times (which happens in some font -processing for instance). +the direct one when speed might be a real issue. For that reason \LUATEX\ also +provide the \type {get*} and \type {set*} functions in the top level node +namespace. There is a limited set of getters. When implementing this direct +approach the regular index by key variant was also optimized, so direct access +only makes sense when nodes are accessed millions of times (which happens in some +font processing for instance). We're talking mostly of getters because setters are less important. Documents have not that many content related nodes and setting many thousands of properties @@ -2097,7 +2258,7 @@ Some accessors are used frequently and for these we provide more efficient helpe \DB function \BC explanation \NC \NR \TB \NC \type{getnext} \NC parsing nodelist always involves this one \NC \NR -\NC \type{getprev} \NC used less but is logical companion to \type {getnext} \NC \NR +\NC \type{getprev} \NC used less but a logical companion to \type {getnext} \NC \NR \NC \type{getboth} \NC returns the next and prev pointer of a node \NC \NR \NC \type{getid} \NC consulted a lot \NC \NR \NC \type{getsubtype} \NC consulted less but also a topper \NC \NR @@ -2106,13 +2267,15 @@ Some accessors are used frequently and for these we provide more efficient helpe \NC \type{getwhd} \NC returns the \type {width}, \type {height} and \type {depth} of a list, rule or (unexpanded) glyph as well as glue (its spec is looked at) and unset nodes\NC \NR \NC \type{getdisc} \NC returns the \type {pre}, \type {post} and \type {replace} fields and - optionally when true is passed also the tail fields. \NC \NR + optionally when true is passed also the tail fields \NC \NR \NC \type{getlist} \NC we often parse nested lists so this is a convenient one too \NC \NR \NC \type{getleader} \NC comparable to list, seldom used in \TEX\ (but needs frequent consulting like lists; leaders could have been made a dedicated node type) \NC \NR \NC \type{getfield} \NC generic getter, sufficient for the rest (other field names are often shared so a specific getter makes no sense then) \NC \NR \NC \type{getbox} \NC gets the given box (a list node) \NC \NR +\NC \type{getoffsets} \NC gets the \type {xoffset} and \type {yoffset} of a glyph or + \type {left} and \type {right} values of a rule \NC \NR \LL \stoptabulate @@ -2134,138 +2297,154 @@ directmode setter \type {setlink} takes a list of nodes and will link them, thereby ignoring \type {nil} entries. The first valid node is returned (beware: for good reason it assumes single nodes). For rarely used fields no helpers are provided and there are a few that probably are used seldom too but were added for -consistency. You can of course always define additional accessor using \type -{getfield} and \type {setfield} with little overhead. +consistency. You can of course always define additional accessors using \type +{getfield} and \type {setfield} with little overhead. When the second argument of +\type {setattributelist} is \type {true} the current attribute list is assumed. \def\yes{$+$} \def\nop{$-$} +\def\supported#1#2#3% + {\NC \type{#1} + \NC \ifx#2\yes\libidx{node} {#1}\fi #2 + \NC \ifx#3\yes\libidx{node.direct}{#1}\fi #3 \NC + \NR} + \starttabulate[|l|c|c|] -\DB function \BC node \BC direct \NC \NR +\DB function \BC node \BC direct \NC \NR \TB -%NC \type {do_ligature_n} \NC \yes \NC \yes \NC \NR % was never documented and experimental -\NC \type {check_discretionaries}\NC \yes \NC \yes \NC \NR -\NC \type {copy_list} \NC \yes \NC \yes \NC \NR -\NC \type {copy} \NC \yes \NC \yes \NC \NR -\NC \type {count} \NC \yes \NC \yes \NC \NR -\NC \type {current_attr} \NC \yes \NC \yes \NC \NR -\NC \type {dimensions} \NC \yes \NC \yes \NC \NR -\NC \type {effective_glue} \NC \yes \NC \yes \NC \NR -\NC \type {end_of_math} \NC \yes \NC \yes \NC \NR -\NC \type {family_font} \NC \yes \NC \nop \NC \NR -\NC \type {fields} \NC \yes \NC \nop \NC \NR -\NC \type {find_attribute} \NC \yes \NC \yes \NC \NR -\NC \type {first_glyph} \NC \yes \NC \yes \NC \NR -\NC \type {flush_list} \NC \yes \NC \yes \NC \NR -\NC \type {flush_node} \NC \yes \NC \yes \NC \NR -\NC \type {free} \NC \yes \NC \yes \NC \NR -\NC \type {get_attribute} \NC \yes \NC \yes \NC \NR -\NC \type {getattributelist} \NC \nop \NC \yes \NC \NR -\NC \type {getboth} \NC \yes \NC \yes \NC \NR -\NC \type {getbox} \NC \nop \NC \yes \NC \NR -\NC \type {getchar} \NC \yes \NC \yes \NC \NR -\NC \type {getcomponents} \NC \nop \NC \yes \NC \NR -\NC \type {getdepth} \NC \nop \NC \yes \NC \NR -\NC \type {getdir} \NC \nop \NC \yes \NC \NR -\NC \type {getdisc} \NC \yes \NC \yes \NC \NR -\NC \type {getfam} \NC \nop \NC \yes \NC \NR -\NC \type {getfield} \NC \yes \NC \yes \NC \NR -\NC \type {getfont} \NC \yes \NC \yes \NC \NR -\NC \type {getglue} \NC \yes \NC \yes \NC \NR -\NC \type {getheight} \NC \nop \NC \yes \NC \NR -\NC \type {getid} \NC \yes \NC \yes \NC \NR -\NC \type {getkern} \NC \nop \NC \yes \NC \NR -\NC \type {getlang} \NC \nop \NC \yes \NC \NR -\NC \type {getleader} \NC \yes \NC \yes \NC \NR -\NC \type {getlist} \NC \yes \NC \yes \NC \NR -\NC \type {getnext} \NC \yes \NC \yes \NC \NR -\NC \type {getnucleus} \NC \nop \NC \yes \NC \NR -\NC \type {getoffsets} \NC \nop \NC \yes \NC \NR -\NC \type {getpenalty} \NC \nop \NC \yes \NC \NR -\NC \type {getprev} \NC \yes \NC \yes \NC \NR -\NC \type {getproperty} \NC \yes \NC \yes \NC \NR -\NC \type {getshift} \NC \nop \NC \yes \NC \NR -\NC \type {getwidth} \NC \nop \NC \yes \NC \NR -\NC \type {getwhd} \NC \nop \NC \yes \NC \NR -\NC \type {getsub} \NC \nop \NC \yes \NC \NR -\NC \type {getsubtype} \NC \yes \NC \yes \NC \NR -\NC \type {getsup} \NC \nop \NC \yes \NC \NR -\NC \type {has_attribute} \NC \yes \NC \yes \NC \NR -\NC \type {has_field} \NC \yes \NC \yes \NC \NR -\NC \type {has_glyph} \NC \yes \NC \yes \NC \NR -\NC \type {hpack} \NC \yes \NC \yes \NC \NR -\NC \type {id} \NC \yes \NC \nop \NC \NR -\NC \type {insert_after} \NC \yes \NC \yes \NC \NR -\NC \type {insert_before} \NC \yes \NC \yes \NC \NR -\NC \type {is_char} \NC \yes \NC \yes \NC \NR -\NC \type {is_direct} \NC \nop \NC \yes \NC \NR -\NC \type {is_glue_zero} \NC \yes \NC \yes \NC \NR -\NC \type {is_glyph} \NC \yes \NC \yes \NC \NR -\NC \type {is_node} \NC \yes \NC \yes \NC \NR -\NC \type {kerning} \NC \yes \NC \yes \NC \NR -\NC \type {last_node} \NC \yes \NC \yes \NC \NR -\NC \type {length} \NC \yes \NC \yes \NC \NR -\NC \type {ligaturing} \NC \yes \NC \yes \NC \NR -\NC \type {mlist_to_hlist} \NC \yes \NC \nop \NC \NR -\NC \type {new} \NC \yes \NC \yes \NC \NR -\NC \type {next} \NC \yes \NC \nop \NC \NR -\NC \type {prev} \NC \yes \NC \nop \NC \NR -\NC \type {protect_glyphs} \NC \yes \NC \yes \NC \NR -\NC \type {protect_glyph} \NC \yes \NC \yes \NC \NR -\NC \type {protrusion_skippable} \NC \yes \NC \yes \NC \NR -\NC \type {rangedimensions} \NC \yes \NC \yes \NC \NR -\NC \type {remove} \NC \yes \NC \yes \NC \NR -\NC \type {set_attribute} \NC \nop \NC \yes \NC \NR -\NC \type {setattributelist} \NC \nop \NC \yes \NC \NR -\NC \type {setboth} \NC \nop \NC \yes \NC \NR -\NC \type {setbox} \NC \nop \NC \yes \NC \NR -\NC \type {setchar} \NC \nop \NC \yes \NC \NR -\NC \type {setcomponents} \NC \nop \NC \yes \NC \NR -\NC \type {setdepth} \NC \nop \NC \yes \NC \NR -\NC \type {setdir} \NC \nop \NC \yes \NC \NR -\NC \type {setdisc} \NC \nop \NC \yes \NC \NR -\NC \type {setfield} \NC \yes \NC \yes \NC \NR -\NC \type {setfont} \NC \nop \NC \yes \NC \NR -\NC \type {setglue} \NC \yes \NC \yes \NC \NR -\NC \type {setheight} \NC \nop \NC \yes \NC \NR -\NC \type {setid} \NC \nop \NC \yes \NC \NR -\NC \type {setkern} \NC \nop \NC \yes \NC \NR -\NC \type {setlang} \NC \nop \NC \yes \NC \NR -\NC \type {setleader} \NC \nop \NC \yes \NC \NR -\NC \type {setlist} \NC \nop \NC \yes \NC \NR -\NC \type {setnext} \NC \nop \NC \yes \NC \NR -\NC \type {setnucleus} \NC \nop \NC \yes \NC \NR -\NC \type {setoffsets} \NC \nop \NC \yes \NC \NR -\NC \type {setpenalty} \NC \nop \NC \yes \NC \NR -\NC \type {setprev} \NC \nop \NC \yes \NC \NR -\NC \type {setproperty} \NC \nop \NC \yes \NC \NR -\NC \type {setshift} \NC \nop \NC \yes \NC \NR -\NC \type {setwidth} \NC \nop \NC \yes \NC \NR -\NC \type {setwhd} \NC \nop \NC \yes \NC \NR -\NC \type {setsub} \NC \nop \NC \yes \NC \NR -\NC \type {setsubtype} \NC \nop \NC \yes \NC \NR -\NC \type {setsup} \NC \nop \NC \yes \NC \NR -\NC \type {slide} \NC \yes \NC \yes \NC \NR -\NC \type {subtypes} \NC \yes \NC \nop \NC \NR -\NC \type {subtype} \NC \yes \NC \nop \NC \NR -\NC \type {tail} \NC \yes \NC \yes \NC \NR -\NC \type {todirect} \NC \yes \NC \yes \NC \NR -\NC \type {tonode} \NC \yes \NC \yes \NC \NR -\NC \type {tostring} \NC \yes \NC \yes \NC \NR -\NC \type {traverse_char} \NC \yes \NC \yes \NC \NR -\NC \type {traverse_id} \NC \yes \NC \yes \NC \NR -\NC \type {traverse} \NC \yes \NC \yes \NC \NR -\NC \type {types} \NC \yes \NC \nop \NC \NR -\NC \type {type} \NC \yes \NC \nop \NC \NR -\NC \type {unprotect_glyphs} \NC \yes \NC \yes \NC \NR -\NC \type {unset_attribute} \NC \yes \NC \yes \NC \NR -\NC \type {usedlist} \NC \yes \NC \yes \NC \NR -\NC \type {uses_font} \NC \yes \NC \yes \NC \NR -\NC \type {vpack} \NC \yes \NC \yes \NC \NR -\NC \type {whatsitsubtypes} \NC \yes \NC \nop \NC \NR -\NC \type {whatsits} \NC \yes \NC \nop \NC \NR -\NC \type {write} \NC \yes \NC \yes \NC \NR -\NC \type {set_synctex_fields} \NC \yes \NC \yes \NC \NR -\NC \type {get_synctex_fields} \NC \yes \NC \yes \NC \NR +\supported {check_discretionaries} \yes \yes +\supported {check_discretionary} \yes \yes +\supported {copy_list} \yes \yes +\supported {copy} \yes \yes +\supported {count} \yes \yes +\supported {current_attr} \yes \yes +\supported {dimensions} \yes \yes +\supported {effective_glue} \yes \yes +\supported {end_of_math} \yes \yes +\supported {family_font} \yes \nop +\supported {fields} \yes \nop +\supported {find_attribute} \yes \yes +\supported {first_glyph} \yes \yes +\supported {flatten_discretionaries} \yes \yes +\supported {flush_list} \yes \yes +\supported {flush_node} \yes \yes +\supported {free} \yes \yes +\supported {get_attribute} \yes \yes +\supported {get_synctex_fields} \nop \yes +\supported {getattributelist} \nop \yes +\supported {getboth} \yes \yes +\supported {getbox} \nop \yes +\supported {getchar} \yes \yes +\supported {getcomponents} \nop \yes +\supported {getdepth} \nop \yes +\supported {getdirection} \nop \yes +\supported {getdir} \nop \yes +\supported {getdisc} \yes \yes +\supported {getfam} \nop \yes +\supported {getfield} \yes \yes +\supported {getfont} \yes \yes +\supported {getglue} \yes \yes +\supported {getheight} \nop \yes +\supported {getid} \yes \yes +\supported {getkern} \nop \yes +\supported {getlang} \nop \yes +\supported {getleader} \yes \yes +\supported {getlist} \yes \yes +\supported {getnext} \yes \yes +\supported {getnucleus} \nop \yes +\supported {getoffsets} \nop \yes +\supported {getpenalty} \nop \yes +\supported {getprev} \yes \yes +\supported {getproperty} \yes \yes +\supported {getshift} \nop \yes +\supported {getsubtype} \yes \yes +\supported {getsub} \nop \yes +\supported {getsup} \nop \yes +\supported {getdata} \nop \yes +\supported {getwhd} \yes \yes +\supported {getwidth} \nop \yes +\supported {has_attribute} \yes \yes +\supported {has_field} \yes \yes +\supported {has_glyph} \yes \yes +\supported {hpack} \yes \yes +\supported {id} \yes \nop +\supported {insert_after} \yes \yes +\supported {insert_before} \yes \yes +\supported {is_char} \yes \yes +\supported {is_direct} \nop \yes +\supported {is_glyph} \yes \yes +\supported {is_node} \yes \yes +\supported {is_zero_glue} \yes \yes +\supported {kerning} \yes \yes +\supported {last_node} \yes \yes +\supported {length} \yes \yes +\supported {ligaturing} \yes \yes +\supported {mlist_to_hlist} \yes \nop +\supported {new} \yes \yes +\supported {next} \yes \nop +\supported {prepend_prevdepth} \nop \yes +\supported {prev} \yes \nop +\supported {protect_glyphs} \yes \yes +\supported {protect_glyph} \yes \yes +\supported {protrusion_skippable} \yes \yes +\supported {rangedimensions} \yes \yes +\supported {remove} \yes \yes +\supported {set_attribute} \yes \yes +\supported {set_synctex_fields} \nop \yes +\supported {setattributelist} \nop \yes +\supported {setboth} \nop \yes +\supported {setbox} \nop \yes +\supported {setchar} \nop \yes +\supported {setcomponents} \nop \yes +\supported {setdepth} \nop \yes +\supported {setdirection} \nop \yes +\supported {setdir} \nop \yes +\supported {setdisc} \nop \yes +\supported {setfam} \nop \yes +\supported {setfield} \yes \yes +\supported {setfont} \nop \yes +\supported {setexpansion} \nop \yes +\supported {setglue} \yes \yes +\supported {setheight} \nop \yes +\supported {setkern} \nop \yes +\supported {setlang} \nop \yes +\supported {setleader} \nop \yes +\supported {setlink} \nop \yes +\supported {setlist} \nop \yes +\supported {setnext} \nop \yes +\supported {setnucleus} \nop \yes +\supported {setoffsets} \nop \yes +\supported {setpenalty} \nop \yes +\supported {setprev} \nop \yes +\supported {setproperty} \yes \yes +\supported {setshift} \nop \yes +\supported {setsplit} \nop \yes +\supported {setsubtype} \nop \yes +\supported {setsub} \nop \yes +\supported {setsup} \nop \yes +\supported {setwhd} \nop \yes +\supported {setwidth} \nop \yes +\supported {slide} \yes \yes +\supported {subtypes} \yes \nop +\supported {subtype} \yes \nop +\supported {tail} \yes \yes +\supported {todirect} \yes \yes +\supported {tonode} \yes \yes +\supported {tostring} \yes \yes +\supported {traverse_char} \yes \yes +\supported {traverse_glyph} \yes \yes +\supported {traverse_id} \yes \yes +\supported {traverse} \yes \yes +\supported {types} \yes \nop +\supported {type} \yes \nop +\supported {unprotect_glyphs} \yes \yes +\supported {unprotect_glyph} \yes \yes +\supported {unset_attribute} \yes \yes +\supported {usedlist} \yes \yes +\supported {uses_font} \yes \yes +\supported {vpack} \yes \yes +\supported {whatsits} \yes \nop +\supported {write} \yes \yes \LL \stoptabulate @@ -2276,6 +2455,13 @@ taken for providing meta information about nodes. Note: The getters do only basi checking for valid keys. You should just stick to the keys mentioned in the sections that describe node properties. +Some of the getters and setters handle multiple node types, given that the field +is relevant. In that case, some field names are considered similar (like \type +{kern} and \type {width}, or \type {data} and \type {value}. In retrospect we +could have normalized field names better but we decided to stick to the original +(internal) names as much as possible. After all, at the \LUA\ end one can easily +create synonyms. + Some nodes have indirect references. For instance a math character refers to a family instead of a font. In that case we provide a virtual font field as accessor. So, \type {getfont} and \type {.font} can be used on them. The same is @@ -2283,6 +2469,196 @@ true for the \type {width}, \type {height} and \type {depth} of glue nodes. Thes actually access the spec node properties, and here we can set as well as get the values. +In some places \LUATEX\ can do a bit of extra checking for valid node lists and +you can enable that with: + +\startfunctioncall +node.fix_node_lists(<boolean> b) +\stopfunctioncall + +You can set and query the \SYNCTEX\ fields, a file number aka tag and a line +number, for a glue, kern, hlist, vlist, rule and math nodes as well as glyph +nodes (although this last one is not used in native \SYNCTEX). + +\startfunctioncall +node.set_synctex_fields(<integer> f, <integer> l) +<integer> f, <integer> l = + node.get_synctex_fields(<node> n) +\stopfunctioncall + +Of course you need to know what you're doing as no checking on sane values takes +place. Also, the synctex interpreter used in editors is rather peculiar and has +some assumptions (heuristics). + +\stopsection + +\startsection[title={Properties}][library=node] + +\topicindex {nodes+properties} +\topicindex {properties} + +\libindex{flush_properties_table} +\libindex{get_properties_table} +\libindex{set_properties_mode} + +Attributes are a convenient way to relate extra information to a node. You can +assign them at the \TEX\ end as well as at the \LUA\ end and and consult them at +the \LUA\ end. One big advantage is that they obey grouping. They are linked +lists and normally checking for them is pretty efficient, even if you use a lot +of them. A macro package has to provide some way to manage these attributes at the +\TEX\ end because otherwise clashes in their usage can occur. + +Each node also can have a properties table and you can assign values to this +table using the \type {setproperty} function and get properties using the \type +{getproperty} function. Managing properties is way more demanding than managing +attributes. + +Take the following example: + +\starttyping +\directlua { + local n = node.new("glyph") + + node.setproperty(n,"foo") + print(node.getproperty(n)) + + node.setproperty(n,"bar") + print(node.getproperty(n)) + + node.free(n) +} +\stoptyping + +This will print \type {foo} and \type {bar} which in itself is not that useful +when multiple mechanisms want to use this feature. A variant is: + +\starttyping +\directlua { + local n = node.new("glyph") + + node.setproperty(n,{ one = "foo", two = "bar" }) + print(node.getproperty(n).one) + print(node.getproperty(n).two) + + node.free(n) +} +\stoptyping + +This time we store two properties with the node. It really makes sense to have a +table as property because that way we can store more. But in order for that to +work well you need to do it this way: + +\starttyping +\directlua { + local n = node.new("glyph") + + local t = node.getproperty(n) + + if not t then + t = { } + node.setproperty(n,t) + end + t.one = "foo" + t.two = "bar" + + print(node.getproperty(n).one) + print(node.getproperty(n).two) + + node.free(n) +} +\stoptyping + +Here our own properties will not overwrite other users properties unless of +course they use the same keys. So, eventually you will end up with something: + +\starttyping +\directlua { + local n = node.new("glyph") + + local t = node.getproperty(n) + + if not t then + t = { } + node.setproperty(n,t) + end + t.myself = { one = "foo", two = "bar" } + + print(node.getproperty(n).myself.one) + print(node.getproperty(n).myself.two) + + node.free(n) +} +\stoptyping + +This assumes that only you use \type {myself} as subtable. The possibilities are +endless but care is needed. For instance, the generic font handler that ships +with \CONTEXT\ uses the \type {injections} subtable and you should not mess with +that one! + +There are a few helper functions that you normally should not touch as user: \typ +{flush_properties_table} will wipe the table (normally a bad idea), \typ +{get_properties_table} and will give the table that stores properties (using +direct entries) and you can best not mess too much with that one either because +\LUATEX\ itself will make sure that entries related to nodes will get wiped when +nodes get freed, so that the \LUA\ garbage collector can do its job. In fact, the +main reason why we have this mechanism is that it saves the user (or macro +package) some work. One can easily write a property mechanism in \LUA\ where +after a shipout properties gets cleaned up but it's not entirely trivial to make +sure that with each freed node also its properties get freed, due to the fact +that there can be nodes left over for a next page. And having a callback bound to +the node deallocator would add way to much overhead. + +Managing properties in the node (de)allocator functions is disabled by default +and is enabled by: + +\starttyping +node.set_properties_mode(true) +\stoptyping + +When we copy a node list that has a table as property, there are several possibilities: we do the same as +a new node, we copy the entry to the table in properties (a reference), we do +a deep copy of a table in the properties, we create a new table and give it +the original one as a metatable. After some experiments (that also included +timing) with these scenarios we decided that a deep copy made no sense, nor +did nilling. In the end both the shallow copy and the metatable variant were +both ok, although the second one is slower. The most important aspect to keep +in mind is that references to other nodes in properties no longer can be +valid for that copy. We could use two tables (one unique and one shared) or +metatables but that only complicates matters. + +When defining a new node, we could already allocate a table but it is rather easy +to do that at the lua end e.g.\ using a metatable \type {__index} method. That +way it is under macro package control. When deleting a node, we could keep the +slot (e.g. setting it to false) but it could make memory consumption raise +unneeded when we have temporary large node lists and after that only small lists. +Both are not done. + +So in the end this is what happens now: when a node is copied, and it has a table +as property, the new node will share that table. If the second argument of \typ +{set_properties_mode} is \type {true} then a metatable approach is chosen: the +copy gets its own table with the original table as metatable. If you use the +generic font loader the mode is enabled that way. + +A few more xperiments were done. For instance: copy attributes to the properties +so that we have fast access at the \LUA\ end. In the end the overhead is not +compensated by speed and convenience, in fact, attributes are not that slow when +it comes to accessing them. So this was rejected. + +Another experiment concerned a bitset in the node but again the gain compared to +attributes was neglectable and given the small amount of available bits it also +demands a pretty strong agreement over what bit represents what, and this is +unlikely to succeed in the \TEX\ community. It doesn't pay off. + +Just in case one wonders why properties make sense: it is not so much speed that +we gain, but more convenience: storing all kind of (temporary) data in attributes +is no fun and this mechanism makes sure that properties are cleaned up when a +node is freed. Also, the advantage of a more or less global properties table is +that we stay at the \LUA\ end. An alternative is to store a reference in the node +itself but that is complicated by the fact that the register has some limitations +(no numeric keys) and we also don't want to mess with it too much. + +\stopsection + \stopchapter \stopcomponent diff --git a/manual/luatex-preamble.tex b/manual/luatex-preamble.tex index cad998976e2349fab681ee3ba83476c88fd1f339..635ff4134ba1807d3f52875a1e4a8c5b6503fbb8 100644 --- a/manual/luatex-preamble.tex +++ b/manual/luatex-preamble.tex @@ -8,7 +8,7 @@ \topicindex{nodes} \topicindex{boxes} -\topicindex[lua]{\LUA} +\topicindex{\LUA} This is a reference manual, not a tutorial. This means that we discuss changes relative to traditonal \TEX\ and also present new functionality. As a consequence @@ -84,22 +84,22 @@ hook in your own code to manipulate lists, this can interfere with the macro package that you use. When you read about nodes in the following chapters it's good to keep in mind their -commands that relate to then. here are a few: +commands that relate to then. Here are a few: \starttabulate[|l|l|p|] -\DB command \BC node \BC explanation \NC \NR +\DB command \BC node \BC explanation \NC \NR \TB -\NC \prm {hbox} \NC \nod {hlist} \NC horizontal box \NC \NR -\NC \prm {vbox} \NC \nod {vlist} \NC vertical box with the baseline at the bottom \NC \NR -\NC \prm {vtop} \NC \nod {vlist} \NC vertical box with the baseline at the top \NC \NR -\NC \prm {hskip} \NC \nod {glue} \NC horizontal skip with optional stretch and shrink \NC \NR -\NC \prm {vskip} \NC \nod {glue} \NC vertical skip with optional stretch and shrink \NC \NR -\NC \prm {kern} \NC \nod {kern} \NC horizontal or vertical fixed skip \NC \NR -\NC \prm {discretionary} \NC \nod {disc} \NC hyphenation point (pre, post, replace) \NC \NR -\NC \prm {char} \NC \nod {glyph} \NC a character \NC \NR -\NC \prm {hrule} \NC \nod {rule} \NC a horizontal rule \NC \NR -\NC \prm {vrule} \NC \nod {rule} \NC a vertical rule \NC \NR -\NC \prm {textdir} \NC \nod {dir} \NC a change in text direction \NC \NR +\NC \prm {hbox} \NC \nod {hlist} \NC horizontal box \NC \NR +\NC \prm {vbox} \NC \nod {vlist} \NC vertical box with the baseline at the bottom \NC \NR +\NC \prm {vtop} \NC \nod {vlist} \NC vertical box with the baseline at the top \NC \NR +\NC \prm {hskip} \NC \nod {glue} \NC horizontal skip with optional stretch and shrink \NC \NR +\NC \prm {vskip} \NC \nod {glue} \NC vertical skip with optional stretch and shrink \NC \NR +\NC \prm {kern} \NC \nod {kern} \NC horizontal or vertical fixed skip \NC \NR +\NC \prm {discretionary} \NC \nod {disc} \NC hyphenation point (pre, post, replace) \NC \NR +\NC \prm {char} \NC \nod {glyph} \NC a character \NC \NR +\NC \prm {hrule} \NC \nod {rule} \NC a horizontal rule \NC \NR +\NC \prm {vrule} \NC \nod {rule} \NC a vertical rule \NC \NR +\NC \prm {textdir(ection)} \NC \nod {dir} \NC a change in text direction \NC \NR \LL \stoptabulate diff --git a/manual/luatex-registers.tex b/manual/luatex-registers.tex index 39e0b360e769c4f7af3c060ad221b0d560775aa8..29302300704b9dabad1eea45ac1cd31c0534ced8 100644 --- a/manual/luatex-registers.tex +++ b/manual/luatex-registers.tex @@ -35,4 +35,13 @@ \stopchapter +\startchapter[title=Libraries] + + This register contains the functions available in libraries. Not all functions + are documented, for instance because they can be experimental or obsolete. + + \placeregister[libraryindex] + +\stopchapter + \stopcomponent diff --git a/manual/luatex-statistics.tex b/manual/luatex-statistics.tex index 7e550b13ae9dad26450f0e9165f55a23934ec12e..2428a2929d6f238209c94271abae64ad6474a7d7 100644 --- a/manual/luatex-statistics.tex +++ b/manual/luatex-statistics.tex @@ -8,6 +8,8 @@ \topicindex{fonts+used} + The following fonts are used in this document: + \showfontusage \stopchapter diff --git a/manual/luatex-style.tex b/manual/luatex-style.tex index b32c3c85ee6852e432a8bfe5327d15da7bfb1c9b..f176afab7d23eae7413b4cb6dd1968b48ef6b96f 100644 --- a/manual/luatex-style.tex +++ b/manual/luatex-style.tex @@ -131,6 +131,9 @@ \setuphead [subsection] [color=maincolor] \setuphead [subsubsection][color=maincolor] +\setupfloats + [ntop=4] + \definehead [remark] [subsubsubject] @@ -229,7 +232,7 @@ \startuseMPgraphic{luanumber} % luaextraangle := \luaextraangle; - luaextraangle := if (LastPageNumber == 0) : 0 else : (RealPageNumber / LastPageNumber) * 360 fi; + luaextraangle := if (LastPageNumber < 10) : 10 else : (RealPageNumber / LastPageNumber) * 360 fi; luaorbitfactor := 0.25 ; picture p ; p := lualogo ; setbounds p to boundingbox fullcircle ; @@ -402,6 +405,7 @@ \defineregister[primitiveindex] \defineregister[callbackindex] \defineregister[nodeindex] +\defineregister[libraryindex] \unexpanded\def\lpr#1{\doifmode{*bodypart}{\primitiveindex[#1]{\bf\tex {#1}}}\tex {#1}} \unexpanded\def\prm#1{\doifmode{*bodypart}{\primitiveindex[#1]{\tex {#1}}}\tex {#1}} @@ -411,4 +415,28 @@ \unexpanded\def\whs#1{\doifmode{*bodypart}{\nodeindex [#1]{\type {#1}}}\type{#1}} \unexpanded\def\noa#1{\doifmode{*bodypart}{\nodeindex [#1]{\type {#1}}}\type{#1}} +\hyphenation{sub-nodes} + +\def\currentlibraryindex{\namedstructureuservariable{section}{library}} + +\setupregister + [libraryindex] + [indicator=no,before=] + +\setupregister + [libraryindex] + [1] + [textstyle=\ttbf] + +\setupregister + [libraryindex] + [2] + [textstyle=\tttf] + +\unexpanded\def\lib #1{\doifmode{*bodypart}{\expanded{\libraryindex{\currentlibraryindex+#1}}\type{\currentlibraryindex.#1}}} +\unexpanded\def\libindex#1{\doifmode{*bodypart}{\expanded{\libraryindex{\currentlibraryindex+#1}}}} +\unexpanded\def\libidx#1#2{\doifmode{*bodypart}{\expanded{\libraryindex{#1+#2}}\type{#1.#2}}} + +% \setstructurepageregister[][keys:1=,entries:1=] + \stopenvironment diff --git a/manual/luatex-tex.tex b/manual/luatex-tex.tex index 7edd561e65d5d981648e9f419bcccd242c3d417e..6b1ba1689b05107e081717565e684f50af57cbfd 100644 --- a/manual/luatex-tex.tex +++ b/manual/luatex-tex.tex @@ -1,18 +1,22 @@ % language=uk +% lua.newtable + \environment luatex-style \startcomponent luatex-tex \startchapter[reference=tex,title={The \TEX\ related libraries}] -\section{The \type {lua} library} +\startsection[title={The \type {lua} library}][library=lua] -\subsection{\LUA\ version} +\startsubsection[title={Version information}] \topicindex{libraries+\type{lua}} \topicindex{version} +\libindex{version} + This library contains one read|-|only item: \starttyping @@ -22,14 +26,20 @@ This library contains one read|-|only item: This returns the \LUA\ version identifier string. The value is currently \directlua {tex.print(lua.version)}. -\subsection{\LUA\ bytecode registers} +\stopsubsection + +\startsubsection[title={Bytecode registers}] \topicindex{bytecodes} \topicindex{registers+bytecodes} -\LUA\ registers can be used to communicate \LUA\ functions across \LUA\ chunks. -The accepted values for assignments are functions and \type {nil}. Likewise, the -retrieved value is either a function or \type {nil}. +\libindex{bytecode} +\libindex{setbytecode} +\libindex{getbytecode} + +\LUA\ registers can be used to store \LUA\ code chunks. The accepted values for +assignments are functions and \type {nil}. Likewise, the retrieved value is +either a function or \type {nil}. \starttyping lua.bytecode[<number> n] = <function> f @@ -37,13 +47,8 @@ lua.bytecode[<number> n]() \stoptyping The contents of the \type {lua.bytecode} array is stored inside the format file -as actual \LUA\ bytecode, so it can also be used to preload \LUA\ code. - -Note: The function must not contain any upvalues. Currently, functions containing -upvalues can be stored (and their upvalues are set to \type {nil}), but this is -an artifact of the current \LUA\ implementation and thus subject to change. - -The associated function calls are +as actual \LUA\ bytecode, so it can also be used to preload \LUA\ code. The +function must not contain any upvalues. The associated function calls are: \startfunctioncall <function> f = lua.getbytecode(<number> n) @@ -71,7 +76,13 @@ used in \INITEX. If it contains private information, i.e. the user name, this information is then contained in the format file as well. This should be kept in mind when preloading files into a bytecode register in \INITEX. -\subsection{\LUA\ chunk name registers} +\stopsubsection + +\startsubsection[title={Chunk name registers}] + +\libindex{name} +\libindex{setluaname} +\libindex{getluaname} There is an array of 65536 (0--65535) potential chunk names for use with the \prm {directlua} and \lpr {latelua} primitives. @@ -81,12 +92,37 @@ lua.name[<number> n] = <string> s <string> s = lua.name[<number> n] \stopfunctioncall -If you want to unset a \LUA\ name, you can assign \type {nil} to it. +If you want to unset a \LUA\ name, you can assign \type {nil} to it. The function +accessors are: + +\startfunctioncall +lua.setluaname(<string> s,<number> n]) +<string> s = lua.getluaname(<number> n) +\stopfunctioncall + +\stopsubsection + +\startsubsection[title={Introspection}] + +\libindex{getstacktop} +\libindex{getcalllevel} + +The \type {getstacktop} and\type {getcalllevel} functions return numbers +indicating how much nesting is going on. They are only of use as breakpoints when +checking some mechanism going haywire. + +\stopsubsection + +\stopsection -\section{The \type {status} library} +\startsection[title={The \type {status} library}][library=status] \topicindex{libraries+\type{status}} +\libindex{list} +\libindex{resetmessages} +\libindex{setexitcode} + This contains a number of run|-|time configuration items that you may find useful in message reporting, as well as an iterator function that gets all of the names and values as a table. @@ -100,15 +136,13 @@ all of the values in \type {status} are fetched through a metatable at run|-|tim whenever they are accessed, so you cannot use \type {pairs} on \type {status}, but you {\it can\/} use \type {pairs} on \type {info}, of course. If you do not need the full list, you can also ask for a single item by using its name as an -index into \type {status}. - -The current list is: +index into \type {status}. The current list is: \starttabulate[|l|p|] \DB key \BC explanation \NC \NR \TB \NC \type{banner} \NC terminal display banner \NC \NR -\NC \type{best_page_break} \NC the current best break (a node) \NR \NR +\NC \type{best_page_break} \NC the current best break (a node) \NC \NR \NC \type{buf_size} \NC current allocated size of the line buffer \NC \NR \NC \type{callbacks} \NC total number of executed callbacks so far \NC \NR \NC \type{cs_count} \NC number of control sequences \NC \NR @@ -127,7 +161,7 @@ The current list is: \NC \type{ini_version} \NC \type {true} if this is an \INITEX\ run \NC \NR \NC \type{init_pool_ptr} \NC \INITEX\ string pool index \NC \NR \NC \type{init_str_ptr} \NC number of \INITEX\ strings \NC \NR -\NC \type{input_ptr} \NC th elevel of input we're at \NC \NR +\NC \type{input_ptr} \NC the level of input we're at \NC \NR \NC \type{inputid} \NC numeric id of the current input \NC \NR \NC \type{largest_used_mark} \NC max referenced marks class \NC \NR \NC \type{lasterrorcontext} \NC last error context string (with newlines) \NC \NR @@ -143,9 +177,8 @@ The current list is: \NC \type{luatex_engine} \NC the \LUATEX\ engine identifier \NC \NR \NC \type{luatex_hashchars} \NC length to which \LUA\ hashes strings ($2^n$) \NC \NR \NC \type{luatex_hashtype} \NC the hash method used (in \LUAJITTEX) \NC \NR -\NC \type{luatex_revision} \NC the \LUATEX\ revision string \NC \NR -\NC \type{luatex_revision} \NC the \LUATEX\ revision string \NC \NR \NC \type{luatex_version} \NC the \LUATEX\ version number \NC \NR +\NC \type{luatex_revision} \NC the \LUATEX\ revision string \NC \NR \NC \type{max_buf_stack} \NC max used buffer position \NC \NR \NC \type{max_in_stack} \NC max used input stack entries \NC \NR \NC \type{max_nest_stack} \NC max used nesting stack entries \NC \NR @@ -188,7 +221,11 @@ The current list is: The error and warning messages can be wiped with the \type {resetmessages} function. A return value can be set with \type {setexitcode}. -\section{The \type {tex} library} +\stopsection + +\startsection[title={The \type {tex} library}][library=tex] + +\startsubsection[title={Introduction}] \topicindex{libraries+\type{tex}} @@ -200,33 +237,28 @@ in \LUA, but are only front\-ends that are handled by a metatable that operates on the actual \TEX\ values. As a result, most of the \LUA\ table operators (like \type {pairs} and \type {#}) do not work on such items. -At the moment, it is possible to access almost every parameter that has these -characteristics: - -\startitemize[packed] -\item You can use it after \prm {the} -\item It is a single token. -\item Some special others, see the list below -\stopitemize - -This excludes parameters that need extra arguments, like \type {\the\scriptfont}. +At the moment, it is possible to access almost every parameter that you can use +after \prm {the}, is a single tokens or is sort of special in \TEX. This excludes +parameters that need extra arguments, like \type {\the\scriptfont}. The subset +comprising simple integer and dimension registers are writable as well as +readable (like \prm {tracingcommands} and \prm {parindent}). -The subset comprising simple integer and dimension registers are -writable as well as readable (stuff like \prm {tracingcommands} and -\prm {parindent}). +\stopsubsection -\subsection{Internal parameter values} +\startsubsection[title={Internal parameter values, \type {set} and \type {get}}] \topicindex{parameters+internal} +\libindex{set} \libindex{get} + For all the parameters in this section, it is possible to access them directly using their names as index in the \type {tex} table, or by using one of the functions \type {tex.get} and \type {tex.set}. The exact parameters and return values differ depending on the actual parameter, -and so does whether \type {tex.set} has any effect. For the parameters that {\it -can\/} be set, it is possible to use \type {global} as the first argument to -\type {tex.set}; this makes the assignment global instead of local. +and so does whether \type {tex.set} has any effect. For the parameters that {\em +can} be set, it is possible to use \type {global} as the first argument to \type +{tex.set}; this makes the assignment global instead of local. \startfunctioncall tex.set (["global",] <string> n, ...) @@ -234,7 +266,7 @@ tex.set (["global",] <string> n, ...) \stopfunctioncall Glue is kind of special because there are five values involved. The return value -is a \nod {glue_spec} node btu when you pass \type {false} as last argument to +is a \nod {glue_spec} node but when you pass \type {false} as last argument to \type {tex.get} you get the width of the glue and when you pass \type {true} you get all five values. Otherwise you get a node which is a copy of the internal value so you are responsible for its freeing at the \LUA\ end. When you set a @@ -242,26 +274,9 @@ glue quantity you can either pass a \nod {glue_spec} or upto five numbers. If you pass \type {true} to \type {get} you get 5 values returned for a glue and when you pass \type {false} you only get the width returned. -For the registers you can use \type {getskip} (node), \type {getglue} (numbers) -\type {setskip} (node) and \type {setglue} (numbers). If you pass \type {false} -as second argument to \type {getglue} you only get the width returned. - -There are also dedicated setters, getters and checkers: - -\startfunctioncall -local d = tex.getdimen("foo") -if tex.isdimen("bar") then - tex.setdimen("bar",d) -end -\stopfunctioncall - -There are such helpers for \type {dimen}, \type {count}, \type {skip}, \type {box} and \nod {attribute} registers. - \subsubsection{Integer parameters} -The integer parameters accept and return \LUA\ numbers. - -Read|-|write: +The integer parameters accept and return \LUA\ numbers. These are read|-|write: \starttwocolumns \starttyping @@ -335,7 +350,7 @@ tex.year \stoptyping \stoptwocolumns -Read|-|only: +These are read|-|only: \startthreecolumns \starttyping @@ -351,9 +366,7 @@ tex.spacefactor The dimension parameters accept \LUA\ numbers (signifying scaled points) or strings (with included dimension). The result is always a number in scaled -points. - -Read|-|write: +points. These are read|-|write: \startthreecolumns \starttyping @@ -390,7 +403,7 @@ tex.spacefactor \stoptyping \stopthreecolumns -Read|-|only: +These are read|-|only: \startthreecolumns \starttyping @@ -405,7 +418,8 @@ tex.pagetotal \stoptyping \stopthreecolumns -Beware: as with all \LUA\ tables you can add values to them. So, the following is valid: +Beware: as with all \LUA\ tables you can add values to them. So, the following is +valid: \starttyping tex.foo = 123 @@ -434,7 +448,8 @@ tex.spacefactor = s Keep in mind that when you mess with node lists directly at the \LUA\ end you might need to update the top of the nesting stack's \type {prevdepth} explicitly as there is no way \LUATEX\ can guess your intentions. By using the accessor in -the \type {tex} tables, you get and set the values atthe top of the nest stack. +the \type {tex} tables, you get and set the values at the top of the nesting +stack. \subsubsection{Direction parameters} @@ -510,7 +525,9 @@ tex.output \stoptyping \stopthreecolumns -\subsection{Convert commands} +\stopsubsection + +\startsubsection[title={Convert commands}] \topicindex{convert commands} @@ -535,19 +552,18 @@ tex.fontidentifier(number) If you are wondering why this list looks haphazard; these are all the cases of the \quote {convert} internal command that do not require an argument, as well as -the ones that require only a simple numeric value. +the ones that require only a simple numeric value. The special (\LUA|-|only) case +of \type {tex.fontidentifier} returns the \type {csname} string that matches a +font id number (if there is one). -The special (lua-only) case of \type {tex.fontidentifier} returns the \type {csname} string that matches a font id number (if there is one). +\stopsubsection -if these are really needed in a macro package. - -\subsection{Last item commands} +\startsubsection[title={Last item commands}] \topicindex{last items} -All \quote {last item} commands are read|-|only and return a number. - -The supported commands at this moment are: +All \quote {last item} commands are read|-|only and return a number. The +supported commands at this moment are: \startthreecolumns \starttyping @@ -570,14 +586,29 @@ tex.currentifbranch \stoptyping \stopthreecolumns -\subsection{Attribute, count, dimension, skip and token registers} +\stopsubsection + +\startsubsection[title={Accessing registers: \type {set*}, \type {get*} and \type {is*}}] \topicindex{attributes} \topicindex{registers} -\TEX's attributes (\lpr {attribute}), counters (\prm {count}), dimensions (\prm {dimen}), skips (\prm {skip}) and token (\prm {toks}) registers can be accessed -and written to using two times five virtual sub|-|tables of the \type {tex} -table: +\libindex{attribute} \libindex{setattribute} \libindex{getattribute} \libindex{isattribute} +\libindex{count} \libindex{setcount} \libindex{getcount} \libindex{iscount} +\libindex{dimen} \libindex{setdimen} \libindex{getdimen} \libindex{isdimen} +\libindex{skip} \libindex{setskip} \libindex{getskip} \libindex{isskip} +\libindex{muskip} \libindex{setmuskip} \libindex{getmuskip} \libindex{ismuskip} +\libindex{glue} \libindex{setglue} \libindex{getglue} \libindex{isglue} +\libindex{muglue} \libindex{setmuglue} \libindex{getmuglue} \libindex{ismuglue} +\libindex{toks} \libindex{settoks} \libindex{gettoks} \libindex{istoks} +\libindex{box} \libindex{setbox} \libindex{getbox} \libindex{isbox} + +\libindex{scantoks} + +\TEX's attributes (\lpr {attribute}), counters (\prm {count}), dimensions (\prm +{dimen}), skips (\prm {skip}, \prm {muskip}) and token (\prm {toks}) registers +can be accessed and written to using two times five virtual sub|-|tables of the +\type {tex} table: \startthreecolumns \starttyping @@ -585,6 +616,9 @@ tex.attribute tex.count tex.dimen tex.skip +tex.glue +tex.muskip +tex.muglue tex.toks \stoptyping \stopthreecolumns @@ -599,22 +633,46 @@ enormous = tex.dimen['maxdimen'] \stoptyping In this case, \LUATEX\ looks up the value for you on the fly. You have to use a -valid \prm {countdef} (or \lpr {attributedef}, or \prm {dimendef}, or \prm {skipdef}, or \prm {toksdef}), anything else will generate an error (the intent +valid \prm {countdef} (or \lpr {attributedef}, or \prm {dimendef}, or \prm +{skipdef}, or \prm {toksdef}), anything else will generate an error (the intent is to eventually also allow \type {<chardef tokens>} and even macros that expand into a number). -The attribute and count registers accept and return \LUA\ numbers. - -The dimension registers accept \LUA\ numbers (in scaled points) or strings (with -an included absolute dimension; \type {em} and \type {ex} and \type {px} are -forbidden). The result is always a number in scaled points. +\startitemize -The token registers accept and return \LUA\ strings. \LUA\ strings are converted -to and from token lists using \prm {the} \prm {toks} style expansion: all -category codes are either space (10) or other (12). + \startitem + The count registers accept and return \LUA\ numbers. + \stopitem + + \startitem + The dimension registers accept \LUA\ numbers (in scaled points) or + strings (with an included absolute dimension; \type {em} and \type {ex} + and \type {px} are forbidden). The result is always a number in scaled + points. + \stopitem + + \startitem + The token registers accept and return \LUA\ strings. \LUA\ strings are + converted to and from token lists using \prm {the} \prm {toks} style + expansion: all category codes are either space (10) or other (12). + \stopitem + + \startitem + The skip registers accept and return \nod {glue_spec} userdata node + objects (see the description of the node interface elsewhere in this + manual). + \stopitem + + \startitem + The glue registers are just skip registers but instead of userdata + are verbose. + \stopitem + + \startitem + Like the counts, the attribute registers accept and return \LUA\ numbers. + \stopitem -The skip registers accept and return \nod {glue_spec} userdata node objects (see -the description of the node interface elsewhere in this manual). +\stopitemize As an alternative to array addressing, there are also accessor functions defined for all cases, for example, here is the set of possibilities for \prm {skip} @@ -629,18 +687,24 @@ tex.setskip (["global",] <string> s, <node> s) We have similar setters for \type {count}, \type {dimen}, \type {muskip}, and \type {toks}. Counters and dimen are represented by numbers, skips and muskips by -nodes, and toks by strings. For tokens registers we have an alternative where a -catcode table is specified: +nodes, and toks by strings. + +Again the glue variants are not using the \nod {glue-spec} userdata nodes. The +\type {setglue} function accepts upto 5 arguments: width, stretch, shrink, +stretch order and shrink order and the \type {getglue} function reports them, +unless the second argument is \type {false} in which care only the width is +returned. + +Here is an example usign a threesome: \startfunctioncall -tex.scantoks(0,3,"$e=mc^2$") -tex.scantoks("global",0,"$\int\limits^1_2$") +local d = tex.getdimen("foo") +if tex.isdimen("bar") then + tex.setdimen("bar",d) +end \stopfunctioncall -In the function-based interface, it is possible to define values globally by -using the string \type {global} as the first function argument. - -There are four extra skip related helpers: +There are six extra skip (glue) related helpers: \startfunctioncall tex.setglue (["global"], <number> n, @@ -655,10 +719,43 @@ width, stretch, shrink, stretch_order, shrink_order = The other two are \type {tex.setmuglue} and \type {tex.getmuglue}. -\subsection{Character code registers} +There are such helpers for \type {dimen}, \type {count}, \type {skip}, \type +{muskip}, \type {box} and \type {attribute} registers but the glue ones +are special because they have to deal with more properties. + +As with the general \type {get} and \type {set} function discussed before, for +the skip registers \type {getskip} returns a node and \type {getglue} returns +numbers, while \type {setskip} accepts a node and \type {setglue} expects upto 5 +numbers. Again, when you pass \type {false} as second argument to \type {getglue} +you only get the width returned. The same is true for the \type {mu} variants +\type {getmuskip}, \type {setmuskip}, \type {getmuskip} and\type {setmuskip}. + +For tokens registers we have an alternative where a catcode table is specified: + +\startfunctioncall +tex.scantoks(0,3,"$e=mc^2$") +tex.scantoks("global",0,"$\int\limits^1_2$") +\stopfunctioncall + +In the function-based interface, it is possible to define values globally by +using the string \type {global} as the first function argument. + +\stopsubsection + +\startsubsection[title={Character code registers: \type {[get|set]*code[s]}}] \topicindex{characters+codes} +\libindex{lccode} \libindex{setlccode} \libindex{getlccode} +\libindex{uccode} \libindex{setuccode} \libindex{getuccode} +\libindex{sfcode} \libindex{setsfcode} \libindex{getsfcode} +\libindex{catcode} \libindex{setcatcode} \libindex{getcatcode} +\libindex{mathcode} \libindex{setmathcode} \libindex{getmathcode} +\libindex{delcode} \libindex{setdelcode} \libindex{getdelcode} + +\libindex{setdelcodes} \libindex{getdelcodes} +\libindex{setmathcodes} \libindex{getmathcodes} + \TEX's character code tables (\prm {lccode}, \prm {uccode}, \prm {sfcode}, \prm {catcode}, \prm {mathcode}, \prm {delcode}) can be accessed and written to using six virtual subtables of the \type {tex} table @@ -751,13 +848,19 @@ smallfam, smallchar, largefam, largechar = Normally, the third and fourth values in a delimiter code assignment will be zero according to \lpr {Udelcode} usage, but the returned table can have values there -(if the delimiter code was set using \prm {delcode}, for example). Unset \type {delcode}'s can be recognized because \type {dval[1]} is $-1$. +(if the delimiter code was set using \prm {delcode}, for example). Unset \type +{delcode}'s can be recognized because \type {dval[1]} is $-1$. + +\stopsubsection -\subsection{Box registers} +\startsubsection[title={Box registers: \type {[get|set]box}}] \topicindex{registers} \topicindex{boxes} +\libindex{box} +\libindex{setbox} \libindex{getbox} + It is possible to set and query actual boxes, coming for instance from \prm {hbox}, \prm {vbox} or \prm {vtop}, using the node interface as defined in the \type {node} library: @@ -787,12 +890,23 @@ tex.box[0] = tex.box[2] does not copy the node list, it just duplicates a node pointer. If \type {\box2} will be cleared by \TEX\ commands later on, the contents of \type {\box0} becomes -invalid as well. To prevent this from happening, always use \type {node.copy_list()} unless you are assigning to a temporary variable: +invalid as well. To prevent this from happening, always use \type +{node.copy_list} unless you are assigning to a temporary variable: \starttyping tex.box[0] = node.copy_list(tex.box[2]) \stoptyping +\stopsubsection + +\startsubsection[title={Reusing boxes: \type {[use|save]boxresource} and \type {getboxresourcedimensions}}] + +\topicindex{boxes+reuse} + +\libindex{useboxresource} +\libindex{saveboxresource} +\libindex{getboxresourcedimensions} + The following function will register a box for reuse (this is modelled after so called xforms in \PDF). You can (re)use the box with \lpr {useboxresource} or by creating a rule node with subtype~2. @@ -805,7 +919,8 @@ The optional second and third arguments are strings, the fourth is a boolean. Th fifth argument is a type. When set to non|-|zero the \type {/Type} entry is omitted. A value of 1 or 3 still writes a \type {/BBox}, while 2 or 3 will write a \type {/Matrix}. The sixth argument is the (virtual) margin that extends beyond -the effective boundingbox as seen by \TEX. +the effective boundingbox as seen by \TEX. Instead of a box number one can also +pass a \type {[h|v]list} node. You can generate the reference (a rule type) with: @@ -823,6 +938,27 @@ local w, h, d, m = tex.getboxresourcedimensions(n) This returns the width, height, depth and margin of the resource. +\stopsubsection + +\startsubsection[title={\type {triggerbuildpage}}] + +\topicindex{pages} + +\libindex{triggerbuildpage} + +You should not expect to much from the \type {triggerbuildpage} helpers because +often \TEX\ doesn't do much if it thinks nothing has to be done, but it might be +useful for some applications. It just does as it says it calls the internal +function that build a page, given that there is something to build. + +\stopsubsection + +\startsubsection[title={\type {splitbox}}] + +\topicindex{boxes+split} + +\libindex{splitbox} + You can split a box: \starttyping @@ -830,13 +966,19 @@ local vlist = tex.splitbox(n,height,mode) \stoptyping The remainder is kept in the original box and a packaged vlist is returned. This -operation is comparable to the \prm {vsplit} operation. The mode can be \type {additional} or \type {exactly} and concerns the split off box. +operation is comparable to the \prm {vsplit} operation. The mode can be \type +{additional} or \type {exactly} and concerns the split off box. + +\stopsubsection -\subsection{Math parameters} +\startsubsection[title={Accessing math parameters: \type {[get|set]math}}] \topicindex{math+parameters} \topicindex{parameters+math} +\libindex{setmath} +\libindex{getmath} + It is possible to set and query the internal math parameters using: \startfunctioncall @@ -886,7 +1028,7 @@ innerordspacing inneropspacing innerbinspacing innerrelspacing inneropenspacing innerclosespacing innerpunctspacing innerinnerspacing \stoptyping -The values for the style parameter name are: +The values for the style parameter are: \starttyping display crampeddisplay @@ -899,15 +1041,21 @@ The value is either a number (representing a dimension or number) or a glue spec node representing a muskip for \type {ordordspacing} and similar spacing parameters. -\subsection{Special list heads} +\stopsubsection + +\startsubsection[title={Special list heads: \type {[get|set]list}}] \topicindex{lists} +\libindex{lists} +\libindex{setlist} +\libindex{getlist} + The virtual table \type {tex.lists} contains the set of internal registers that keep track of building page lists. \starttabulate[|l|p|] -\DB field \BC description \NC \NR +\DB field \BC explanation \NC \NR \TB \NC \type{page_ins_head} \NC circular list of pending insertions \NC \NR \NC \type{contrib_head} \NC the recent contributions \NC \NR @@ -922,34 +1070,45 @@ keep track of building page lists. \LL \stoptabulate -\subsection{Semantic nest levels} +The getter and setter functions are \type {getlist} and \type {setlist}. You have +to be careful with what you set as \TEX\ can have expectations with regards to +how a list is constructed or in what state it is. -\topicindex{nesting} +\stopsubsection -The virtual table \type {tex.nest} contains the currently active -semantic nesting state. It has two main parts: a zero-based array of userdata for -the semantic nest itself, and the numerical value \type {tex.nest.ptr}, which -gives the highest available index. Neither the array items in \type {tex.nest[]} -nor \type {tex.nest.ptr} can be assigned to (as this would confuse the -typesetting engine beyond repair), but you can assign to the individual values -inside the array items, e.g.\ \type {tex.nest[tex.nest.ptr].prevdepth}. +\startsubsection[title={Semantic nest levels: \type {getnest} and \type {ptr}}] + +\topicindex{nesting} -\type {tex.nest[tex.nest.ptr]} is the current nest state, \type {tex.nest[0]} the -outermost (main vertical list) level. +\libindex{nest} +\libindex{ptr} +%libindex{setnest} % only a message +\libindex{getnest} + +The virtual table \type {nest} contains the currently active semantic nesting +state. It has two main parts: a zero-based array of userdata for the semantic +nest itself, and the numerical value \type {ptr}, which gives the highest +available index. Neither the array items in \type {nest[]} nor \type {ptr} can be +assigned to (as this would confuse the typesetting engine beyond repair), but you +can assign to the individual values inside the array items, e.g.\ \type +{tex.nest[tex.nest.ptr].prevdepth}. + +\type {tex.nest[tex.nest.ptr]} is the current nest state, \type {nest[0]} the +outermost (main vertical list) level. The getter function is \type {getnest}. You +can pass a number (which gives you a list), nothing or \type {top}, which returns +the topmost list, or the string \type {ptr} which gives you the index of the +topmost list. The known fields are: \starttabulate[|l|l|l|p|] \DB key \BC type \BC modes \BC explanation \NC \NR \TB -\NC \type{mode} \NC number \NC all \NC a number representing the main mode at this level: - \type {0} = no mode (this happens during \prm {write}), - \type {1} = vertical, - \type {127} = horizontal, - \type {253} = display math, - \type {-1} = internal vertical, - \type {-127} = restricted horizontal, - \type {-253} = inline math \NC \NR +\NC \type{mode} \NC number \NC all \NC a string: + \type {none} (this happens during \prm {write}), + \type {vmode}, \type {hmode}, \type {displaymath}, + \type {innervmode}, \type {innerhmode}, \type {inlinemath}; + these fields cannot be set \NC \NR \NC \type{modeline} \NC number \NC all \NC source input line where this mode was entered in, negative inside the output routine \NC \NR \NC \type{head} \NC node \NC all \NC the head of the current list \NC \NR @@ -968,7 +1127,9 @@ The known fields are: \LL \stoptabulate -\subsection[sec:luaprint]{Print functions} +\stopsubsection + +\startsubsection[reference=sec:luaprint,title={Print functions}] \topicindex{printing} @@ -982,7 +1143,9 @@ limited by available system \RAM. However, each separate printed string has to fit completely in \TEX's input buffer. The result of using these functions from inside callbacks is undefined at the moment. -\subsubsection{\type {tex.print}} +\subsubsection{\type {print}} + +\libindex{print} \startfunctioncall tex.print(<string> s, ...) @@ -1003,10 +1166,12 @@ the space character, that has category code 10 (space). Otherwise, if \type {n} is not a valid catcode table, then it is ignored, and the currently active catcode regime is used instead. -The very last string of the very last \type {tex.print()} command in a \prm +The very last string of the very last \type {tex.print} command in a \prm {directlua} will not have the \prm {endlinechar} appended, all others do. -\subsubsection{\type {tex.sprint}} +\subsubsection{\type {sprint}} + +\libindex{sprint} \startfunctioncall tex.sprint(<string> s, ...) @@ -1027,35 +1192,76 @@ makes it suitable for use as a partial line input mechanism: No \prm {endlinechar} is inserted. \stopitem \startitem - Trailing spaces are not removed. + Trailing spaces are not removed. Note that this does not prevent \TEX\ itself + from eating spaces as result of interpreting the line. For example, in - Note that this does not prevent \TEX\ itself from eating spaces as result of - interpreting the line. For example, in + \starttyping + before\directlua{tex.sprint("\\relax")tex.sprint(" inbetween")}after + \stoptyping -\starttyping -before\directlua{tex.sprint("\\relax")tex.sprint(" inbetween")}after -\stoptyping the space before \type {in between} will be gobbled as a result of the \quote {normal} scanning of \prm {relax}. \stopitem \stopitemize -If there is a table argument instead of a list of strings, this has to -be a consecutive array of strings to print (the first non-string value -will stop the printing process). +If there is a table argument instead of a list of strings, this has to be a +consecutive array of strings to print (the first non-string value will stop the +printing process). -The optional argument sets the catcode regime, as with \type {tex.print()}. +The optional argument sets the catcode regime, as with \type {tex.print}. This +influences the string arguments (or numbers turned into strings). -\subsubsection{\type {tex.tprint}} +Although this needs to be used with care, you can also pass token or node +userdata objects. These get injected into the stream. Tokens had best be valid +tokens, while nodes need to be around when they get injected. Therefore it is +important to realize the following: + +\startitemize +\startitem + When you inject a token, you need to pass a valid token userdata object. This + object will be collected by \LUA\ when it no longer is referenced. When it gets + printed to \TEX\ the token itself gets copied so there is no interference with the + \LUA\ garbage collection. You manage the object yourself. Because tokens are + actually just numbers, there is no real extra overhead at the \TEX\ end. +\stopitem +\startitem + When you inject a node, you need to pass a valid node userdata object. The + node related to the object will not be collected by \LUA\ when it no longer + is referenced. It lives on at the \TEX\ end in its own memory space. When it + gets printed to \TEX\ the node reference is used assuming that node stays + around. There is no \LUA\ garbage collection involved. Again, you manage the + object yourself. The node itself is freed when \TEX\ is done with it. +\stopitem +\stopitemize + +If you consider the last remark you might realize that we have a problem when a +printed mix of strings, tokens and nodes is reused. Inside \TEX\ the sequence +becomes a linked list of input buffers. So, \type {"123"} or \type {"\foo{123}"} +gets read and parsed on the fly, while \typ {<token userdata>} already is +tokenized and effectively is a token list now. A \typ {<node userdata>} is also +tokenized into a token list but it has a reference to a real node. Normally this +goes fine. But now assume that you store the whole lot in a macro: in that case +the tokenized node can be flushed many times. But, after the first such flush the +node is used and its memory freed. You can prevent this by using copies which is +controlled by setting \lpr {luacopyinputnodes} to a non|-|zero value. This is one +of these fuzzy areas you have to live with if you really mess with these low +level issues. + +\subsubsection{\type {tprint}} + +\libindex{tprint} \startfunctioncall tex.tprint({<number> n, <string> s, ...}, {...}) \stopfunctioncall -This function is basically a shortcut for repeated calls to \type {tex.sprint(<number> n, <string> s, ...)}, once for each of the supplied argument +This function is basically a shortcut for repeated calls to \type +{tex.sprint(<number> n, <string> s, ...)}, once for each of the supplied argument tables. -\subsubsection{\type {tex.cprint}} +\subsubsection{\type {cprint}} + +\libindex{cprint} This function takes a number indicating the to be used catcode, plus either a table of strings or an argument list of strings that will be pushed into the @@ -1071,7 +1277,11 @@ tex.cprint(12,"12: $&{\\foo}") tex.print("\\par") -- other characters tex.cprint(14,"12: $&{\\foo}") tex.print("\\par") -- comment triggers \stopfunctioncall -\subsubsection{\type {tex.write}} +\subsubsection{\type {write}, \type {twrite}, \type {nwrite}} + +\libindex{write} +\libindex{twrite} +\libindex{nwrite} \startfunctioncall tex.write(<string> s, ...) @@ -1082,8 +1292,8 @@ Each string argument is treated by \TEX\ as a special kind of input line that makes it suitable for use as a quick way to dump information: \startitemize -\item All catcodes on that line are either \quote{space} (for '~') or - \quote{character} (for all others). +\item All catcodes on that line are either \quote{space} (for '~') or \quote + {character} (for all others). \item There is no \prm {endlinechar} appended. \stopitemize @@ -1091,21 +1301,32 @@ If there is a table argument instead of a list of strings, this has to be a consecutive array of strings to print (the first non-string value will stop the printing process). -\subsection{Helper functions} +The functions \type {twrite} and \type {nwrite} can be used to write a token or +node back to \TEX\, possibly intermixed with regular strings that will be +tokenized. You have to make sure that you pass the right data because sometimes +\TEX\ has expectations that need to be met. + +\stopsubsection + +\startsubsection[title={Helper functions}] -\subsubsection{\type {tex.round}} +\subsubsection{\type {round}} \topicindex {helpers} +\libindex{round} + \startfunctioncall <number> n = tex.round(<number> o) \stopfunctioncall Rounds \LUA\ number \type {o}, and returns a number that is in the range of a valid \TEX\ register value. If the number starts out of range, it generates a -\quote {number to big} error as well. +\quote {number too big} error as well. + +\subsubsection{\type {scale}} -\subsubsection{\type {tex.scale}} +\libindex{scale} \startfunctioncall <number> n = tex.scale(<number> o, <number> delta) @@ -1116,13 +1337,39 @@ Multiplies the \LUA\ numbers \type {o} and \nod {delta}, and returns a rounded number that is in the range of a valid \TEX\ register value. In the table version, it creates a copy of the table with all numeric top||level values scaled in that manner. If the multiplied number(s) are of range, it generates -\quote{number to big} error(s) as well. +\quote{number too big} error(s) as well. Note: the precision of the output of this function will depend on your computer's architecture and operating system, so use with care! An interface to \LUATEX's internal, 100\% portable scale function will be added at a later date. -\subsubsection{\type {tex.sp}} +\subsubsection{\type {number} and \type {romannumeral}} + +\libindex{number} +\libindex{romannumeral} + +These are the companions to the primitives \prm {number} and \prm +{romannumeral}. They can be used like: + +\startfunctioncall +tex.print(tex.romannumeral(123)) +\stopfunctioncall + +\subsubsection{\type {fontidentifier} and \type {fontname}} + +\libindex{fontidentifier} +\libindex{fontname} + +The first one returns the name only, the second one reports the size too. + +\startfunctioncall +tex.print(tex.fontname(tex.fontname)) +tex.print(tex.fontname(tex.fontidentidier)) +\stopfunctioncall + +\subsubsection{\type {sp}} + +\libindex{sp} \startfunctioncall <number> n = tex.sp(<number> o) @@ -1149,21 +1396,11 @@ following: \stopitem \stopitemize -\subsubsection{\type {tex.definefont}} - -\topicindex{fonts+defining} - -\startfunctioncall -tex.definefont(<string> csname, <number> fontid) -tex.definefont(<boolean> global, <string> csname, <number> fontid) -\stopfunctioncall - -Associates \type {csname} with the internal font number \type {fontid}. The -definition is global if (and only if) \type {global} is specified and true (the -setting of \type {globaldefs} is not taken into account). - \subsubsection{\type {tex.getlinenumber} and \type {tex.setlinenumber}} +\libindex{getlinenumber} +\libindex{setlinenumber} + You can mess with the current line number: \startfunctioncall @@ -1182,21 +1419,74 @@ combines them in one line (in which case an error message probably has to refer to the original line). Interference with \TEX's internal handling of numbers is of course possible. -\subsubsection{\type {tex.error}} +\subsubsection{\type {error} and \type {show_context}} \topicindex{errors} +\libindex{error} +\libindex{show_context} + \startfunctioncall tex.error(<string> s) tex.error(<string> s, <table> help) \stopfunctioncall -This creates an error somewhat like the combination of \prm {errhelp} and \prm {errmessage} would. During this error, deletions are disabled. +This creates an error somewhat like the combination of \prm {errhelp} and \prm +{errmessage} would. During this error, deletions are disabled. The array part of the \type {help} table has to contain strings, one for each line of error help. -\subsubsection{\type {tex.hashtokens}} +In case of an error the \type {show_context} function will show the current +context where we're at (in the expansion). + +\subsubsection{\type {run}, \type {runtoks}, \type {finish}} + +\libindex{run} +\libindex{runtoks} +\libindex{finish} + +These two functions start the interpretations and force its end. A runs normally +boils down to \TEX\ entering the so called main loop. A token is fetched and +depending on it current meaning some actions takes place. Sometimes that actions +comes immediately, sometimes more scanning is needed. Quite often tokens get +pushed back into the input. This all means that the \TEX\ scanner is constantly +pushing and popping input states, but in the end after all the action is done +returns to the main loop. + +Because of the fact that \TEX\ is in a complex dance of expanding, dealing with +fonts, typesetting paragraphs, messing around with boxes, building pages, and so +on, you cannot easily run a nested \TEX\ run (read nested main loop). However, +there is an option to force a local run with \type {runtoks}. The content of the +given token list register gets expanded locally after which we return to where we +triggered this expansion, at the \LUA\ end. Instead a function can get passed +that does some work. You have to make sure that at the end \TEX\ is in a sane +state and this is not always trivial. A more complex mechanism would complicate +\TEX\ itself (and probably also harm performance) so this simple local expansion +loop has to do. + +\startfunctioncall +tex.runtoks(<token register>) +tex.runtoks(<lua function>) +\stopfunctioncall + +When the \prm {tracingnesting} parameter is set to a value larger than~2 some +information is reported about the state of the local loop. + +\subsubsection{\type {run}, \type {runtoks}, \type {finish}} + +\libindex{forcehmode} + +An example of a (possible error triggering) complication is that \TEX\ expects to +be in some state, say horizontal mode, and you have to make sure it is when you +start feeding back something from \LUA\ into \TEX. Normally a user will not run +into issues but when you start writing tokens or nodes or have a nested run there +can be situations that you need to run \type {forcehmode}. There is no recipe for +this and intercepting possible cases would weaken \LUATEX's flexibility. + +\subsubsection{\type {hashtokens}} + +\libindex{hashtokens} \topicindex{hash} @@ -1206,12 +1496,33 @@ for i,v in pairs (tex.hashtokens()) do ... end Returns a list of names. This can be useful for debugging, but note that this also reports control sequences that may be unreachable at this moment due to -local redefinitions: it is strictly a dump of the hash table. You can use \type {token.create} to inspect properties, for instance when the \type {command} key -in a created table equals \type {123}, you have the \type {cmdname} value \type {undefined_cs}. +local redefinitions: it is strictly a dump of the hash table. You can use \type +{token.create} to inspect properties, for instance when the \type {command} key +in a created table equals \type {123}, you have the \type {cmdname} value \type +{undefined_cs}. + +\subsubsection{\type {definefont}} + +\topicindex{fonts+defining} + +\libindex{definefont} + +\startfunctioncall +tex.definefont(<string> csname, <number> fontid) +tex.definefont(<boolean> global, <string> csname, <number> fontid) +\stopfunctioncall + +Associates \type {csname} with the internal font number \type {fontid}. The +definition is global if (and only if) \type {global} is specified and true (the +setting of \type {globaldefs} is not taken into account). + +\stopsubsection + +\startsubsection[reference=luaprimitives,title={Functions for dealing with primitives}] -\subsection[luaprimitives]{Functions for dealing with primitives} +\subsubsection{\type {enableprimitives}} -\subsubsection{\type {tex.enableprimitives}} +\libindex{enableprimitives} \topicindex{initialization} \topicindex{primitives} @@ -1220,11 +1531,10 @@ in a created table equals \type {123}, you have the \type {cmdname} value \type tex.enableprimitives(<string> prefix, <table> primitive names) \stopfunctioncall -This function accepts a prefix string and an array of primitive names. - -For each combination of \quote {prefix} and \quote {name}, the \type +This function accepts a prefix string and an array of primitive names. For each +combination of \quote {prefix} and \quote {name}, the \type {tex.enableprimitives} first verifies that \quote {name} is an actual primitive -(it must be returned by one of the \type {tex.extraprimitives()} calls explained +(it must be returned by one of the \type {tex.extraprimitives} calls explained below, or part of \TEX82, or \prm {directlua}). If it is not, \type {tex.enableprimitives} does nothing and skips to the next pair. @@ -1242,7 +1552,7 @@ does nothing and tries the next pair. An example: \starttyping - tex.enableprimitives('LuaTeX', {'formatname'}) +tex.enableprimitives('LuaTeX', {'formatname'}) \stoptyping will define \type {\LuaTeXformatname} with the same intrinsic meaning as the @@ -1256,20 +1566,22 @@ If you want to have all the new functionality available using their default names, as it is now, you will have to add \starttyping - \ifx\directlua\undefined \else - \directlua {tex.enableprimitives('',tex.extraprimitives ())} - \fi +\ifx\directlua\undefined \else + \directlua {tex.enableprimitives('',tex.extraprimitives ())} +\fi \stoptyping near the beginning of your format generation file. Or you can choose different prefixes for different subsets, as you see fit. -Calling some form of \type {tex.enableprimitives()} is highly important though, +Calling some form of \type {tex.enableprimitives} is highly important though, because if you do not, you will end up with a \TEX82-lookalike that can run \LUA\ code but not do much else. The defined csnames are (of course) saved in the format and will be available at runtime. -\subsubsection{\type {tex.extraprimitives}} +\subsubsection{\type {extraprimitives}} + +\libindex{extraprimitives} \startfunctioncall <table> t = tex.extraprimitives(<string> s, ...) @@ -1277,16 +1589,16 @@ format and will be available at runtime. This function returns a list of the primitives that originate from the engine(s) given by the requested string value(s). The possible values and their (current) -return values are: +return values are given in the following table. In addition the somewhat special +primitives \quote{\tex{ }}, \quote{\tex {/}} and \quote{\type {-}} are defined. \startluacode function document.showprimitives(tag) for k, v in table.sortedpairs(tex.extraprimitives(tag)) do - if v == ' ' then - v = '\\normalcontrolspace' + if v ~= ' ' and v ~= "/" and v ~= "-" then + context.type(v) + context.space() end - context.type(v) - context.space() end end \stopluacode @@ -1305,11 +1617,13 @@ Note that \type {luatex} does not contain \type {directlua}, as that is considered to be a core primitive, along with all the \TEX82 primitives, so it is part of the list that is returned from \type {'core'}. -Running \type {tex.extraprimitives()} will give you the complete list of +Running \type {tex.extraprimitives} will give you the complete list of primitives \type {-ini} startup. It is exactly equivalent to \type {tex.extraprimitives("etex","luatex")}. -\subsubsection{\type {tex.primitives}} +\subsubsection{\type {primitives}} + +\libindex{primitives} \startfunctioncall <table> t = tex.primitives() @@ -1317,38 +1631,47 @@ primitives \type {-ini} startup. It is exactly equivalent to \type This function returns a list of all primitives that \LUATEX\ knows about. -\subsection{Core functionality interfaces} +\stopsubsection -\subsubsection{\type {tex.badness}} +\startsubsection[title={Core functionality interfaces}] + +\subsubsection{\type {badness}} + +\libindex{badness} \startfunctioncall <number> b = tex.badness(<number> t, <number> s) \stopfunctioncall -This helper function is useful during linebreak calculations. \type {t} and \type {s} are scaled values; the function returns the badness for when total \type {t} +This helper function is useful during linebreak calculations. \type {t} and \type +{s} are scaled values; the function returns the badness for when total \type {t} is supposed to be made from amounts that sum to \type {s}. The returned number is -a reasonable approximation of $100(t/s)^3$; +a reasonable approximation of \mathematics {100(t/s)^3}; \subsubsection{\type {tex.resetparagraph}} \topicindex {paragraphs+reset} +\libindex{resetparagraph} + This function resets the parameters that \TEX\ normally resets when a new paragraph is seen. -\subsubsection{\type {tex.linebreak}} +\subsubsection{\type {linebreak}} \topicindex {linebreaks} +\libindex{linebreak} + \startfunctioncall local <node> nodelist, <table> info = - tex.linebreak(<node> listhead, <table> parameters) + tex.linebreak(<node> listhead, <table> parameters) \stopfunctioncall The understood parameters are as follows: \starttabulate[|l|l|p|] -\DB name \BC type \BC description \NC \NR +\DB name \BC type \BC explanation \NC \NR \TB \NC \type{pardir} \NC string \NC \NC \NR \NC \type{pretolerance} \NC number \NC \NC \NR @@ -1410,6 +1733,8 @@ to a \prm {vbox}. The returned \type {info} table contains four values that are all numbers: \starttabulate[|l|p|] +\DB name \BC explanation \NC \NR +\TB \NC prevdepth \NC depth of the last line in the broken paragraph \NC \NR \NC prevgraf \NC number of lines in the broken paragraph \NC \NR \NC looseness \NC the actual looseness value in the broken paragraph \NC \NR @@ -1420,35 +1745,83 @@ all numbers: Note there are a few things you cannot interface using this function: You cannot influence font expansion other than via \type {pdfadjustspacing}, because the settings for that take place elsewhere. The same is true for hbadness and hfuzz -etc. All these are in the \type {hpack()} routine, and that fetches its own +etc. All these are in the \type {hpack} routine, and that fetches its own variables via globals. -\subsubsection{\type {tex.shipout}} +\subsubsection{\type {shipout}} \topicindex {shipout} +\libindex{shipout} + \startfunctioncall tex.shipout(<number> n) \stopfunctioncall Ships out box number \type {n} to the output file, and clears the box register. -\subsubsection{\type {tex.getpagestate}} +\subsubsection{\type {getpagestate}} \topicindex {pages} +\libindex{getpagestate} + This helper reports the current page state: \type {empty}, \type {box_there} or \type {inserts_only} as integer value. -\subsection[synctex]{Functions related to synctex} +\subsubsection{\type {getlocallevel}} + +\topicindex {nesting} + +\libindex{getlocallevel} + +This integer reports the current level of the local loop. It's only useful for +debugging and the (relative state) numbers can change with the implementation. + +\stopsubsection + +\startsubsection[title={Randomizers}] + +\libindex{lua_math_random} +\libindex{lua_math_randomseed} +\libindex{init_rand} +\libindex{normal_rand} +\libindex{uniform_rand} +\libindex{uniformdeviate} + +For practical reasons \LUATEX\ has its own random number generator. The original +\LUA\ random function is available as \typ {tex.lua_math_random}. You can +initialize with a new seed with \type {init_rand} (\typ {lua_math_randomseed} is +equivalent to this one. + +There are three generators: \type {normal_rand} (no argument is used), \type +{uniform_rand} (takes a number that will get rounded before being used) and \type +{uniformdeviate} which behaves like the primitive and expects a scaled integer, so + +\startfunctioncall +tex.print(tex.uniformdeviate(65536)/65536) +\stopfunctioncall + +will give a random number between zero and one. + +\stopsubsection + +\startsubsection[reference=synctex,title={Functions related to synctex}] \topicindex {synctex} +\libindex{set_synctex_mode} \libindex{get_synctex_mode} +\libindex{set_synctex_no_files} +\libindex{set_synctex_tag} \libindex{get_synctex_tag} \libindex{force_synctex_tag} +\libindex{set_synctex_line} \libindex{get_synctex_line} \libindex{force_synctex_line} + The next helpers only make sense when you implement your own synctex logic. Keep in mind that the library used in editors assumes a certain logic and is geared for plain and \LATEX, so after a decade users expect a certain behaviour. \starttabulate[|l|p|] +\DB name \BC explanation \NC \NR +\TB \NC \type{set_synctex_mode} \NC \type {0} is the default and used normal synctex logic, \type {1} uses the values set by the next helpers while \type {2} also sets these for glyph @@ -1456,11 +1829,12 @@ plain and \LATEX, so after a decade users expect a certain behaviour. sets only glyphs \NC \NR \NC \type{set_synctex_tag} \NC set the current tag (file) value (obeys save stack) \NC \NR \NC \type{set_synctex_line} \NC set the current line value (obeys save stack) \NC \NR -\NC \type{force_synctex_tag} \NC overload the tag (file) value (\type {0} resets) \NC \NR -\NC \type{force_synctex_line} \NC overload the line value (\type {0} resets) \NC \NR +\NC \type{set_synctex_no_files} \NC disable synctex file logging \NC \NR +\NC \type{get_synctex_mode} \NC returns the current mode (for values see above) \NC \NR \NC \type{get_synctex_tag} \NC get the currently set value of tag (file) \NC \NR \NC \type{get_synctex_line} \NC get the currently set value of line \NC \NR -\NC \type{set_synctex_no_files} \NC disable synctex file logging \NC \NR +\NC \type{force_synctex_tag} \NC overload the tag (file) value (\type {0} resets) \NC \NR +\NC \type{force_synctex_line} \NC overload the line value (\type {0} resets) \NC \NR \LL \stoptabulate @@ -1468,9 +1842,11 @@ The last one is somewhat special. Due to the way files are registered in \SYNCTE to explicitly disable that feature if we provide our own alternative if we want to avoid that overhead. Passing a value of 1 disables registering. -This mechanism is somewhat experimental. +\stopsubsection + +\stopsection -\section[texconfig]{The \type {texconfig} table} +\startsection[title={The \type {texconfig} table},reference=texconfig][library=texconfig] \topicindex{libraries+\type{texconfig}} @@ -1490,9 +1866,9 @@ the executable after loading and executing the startup file. this if you implement {\it all\/} file find callbacks!) \NC \NR \NC - \type{shell_escape} \NC string \NC \type {'f'} \NC - Use \type {'y'} or \type {'t'} or \type {'1'} to enable \type {\write18} - unconditionally, \type {'p'} to enable the commands that are listed in \type {shell_escape_commands} + \type{shell_escape} \NC string \NC \type {'f'} \NC Use \type {'y'} or \type + {'t'} or \type {'1'} to enable \type {\write18} unconditionally, \type {'p'} + to enable the commands that are listed in \type {shell_escape_commands} \NC \NR \NC shell_escape_commands \NC string \NC \NC Comma-separated list of command @@ -1542,10 +1918,13 @@ the executable after loading and executing the startup file. \LL \stoptabulate -Note: the numeric values that match web2c parameters are only used if \type {kpse_init} is explicitly set to \type {false}. In all other cases, the normal +Note: the numeric values that match web2c parameters are only used if \type +{kpse_init} is explicitly set to \type {false}. In all other cases, the normal values from \type {texmf.cnf} are used. -\section{The \type {texio} library} +\stopsection + +\startsection[title={The \type {texio} library}][library=texio] \topicindex{libraries+\type{texio}} \topicindex{\IO} @@ -1553,7 +1932,9 @@ values from \type {texmf.cnf} are used. This library takes care of the low|-|level I/O interface: writing to the log file and|/|or console. -\subsection{\type {texio.write}} +\startsubsection[title={\type {write}}] + +\libindex{write} \startfunctioncall texio.write(<string> target, <string> s, ...) @@ -1563,13 +1944,18 @@ texio.write(<string> s, ...) Without the \type {target} argument, writes all given strings to the same location(s) \TEX\ writes messages to at this moment. If \prm {batchmode} is in effect, it writes only to the log, otherwise it writes to the log and the -terminal. The optional \type {target} can be one of three possibilities: \type {term}, \type {log} or \type {term and log}. +terminal. The optional \type {target} can be one of three possibilities: \type +{term}, \type {log} or \type {term and log}. Note: If several strings are given, and if the first of these strings is or might be one of the targets above, the \type {target} must be specified explicitly to prevent \LUA\ from interpreting the first string as the target. -\subsection{\type {texio.write_nl}} +\stopsubsection + +\startsubsection[title={\type {write_nl}}] + +\libindex{write_nl} \startfunctioncall texio.write_nl(<string> target, <string> s, ...) @@ -1580,55 +1966,94 @@ This function behaves like \type {texio.write}, but make sure that the given strings will appear at the beginning of a new line. You can pass a single empty string if you only want to move to the next line. -\subsection{\type {texio.setescape}} +\stopsubsection + +\startsubsection[title={\type {setescape}}] + +\libindex{setescape} You can disable \type {^^} escaping of control characters by passing a value of zero. -\section{The \type {token} library} +\stopsubsection + +\startsubsection[title={\type {closeinput}}] + +\libindex{closeinput} + +This function that should be used with care. It acts as \prm {endinput} but at +the \LUA\ end. You can use it to (sort of) force a jump back to \TEX. Normally a +\LUA\ will just collect prints and at the end bump an input level and flush these +prints. This function can help you stay at the current level but you need to know +what you're doing (or more precise: what \TEX\ is doing with input). + +\stopsubsection -\subsection{The scanner} +\stopsection + +\startsection[title={The \type {token} library}][library=token] + +\startsubsection[title={The scanner}] \topicindex{libraries+\type{token}} \topicindex{tokens} +\libindex{scan_keyword} +\libindex{scan_keywordcs} +\libindex{scan_int} +\libindex{scan_real} +\libindex{scan_float} +\libindex{scan_dimen} +\libindex{scan_glue} +\libindex{scan_toks} +\libindex{scan_code} +\libindex{scan_string} +\libindex{scan_argument} +\libindex{scan_word} +\libindex{scan_csname} +\libindex{scan_list} + The token library provides means to intercept the input and deal with it at the \LUA\ level. The library provides a basic scanner infrastructure that can be used to write macros that accept a wide range of arguments. This interface is on -purpose kept general and as performance is quite ok one can build additional +purpose kept general and as performance is quite ok. One can build additional parsers without too much overhead. It's up to macro package writers to see how they can benefit from this as the main principle behind \LUATEX\ is to provide a -minimal set of tools and no solutions. The functions provided in the \type -{token} namespace are given in the next table: +minimal set of tools and no solutions. The scanner functions are probably the +most intriguing. \starttabulate[|l|l|p|] -\DB function \BC argument \BC result \NC \NR +\DB function \BC argument \BC result \NC \NR \TB -\NC \type{is_token} \NC token \NC checks if the given argument is a token userdatum \NC \NR -\NC \type{get_next} \NC \NC returns the next token in the input \NC \NR -\NC \type{scan_keyword} \NC string \NC returns true if the given keyword is gobbled \NC \NR -\NC \type{scan_int} \NC \NC returns a number \NC \NR -\NC \type{scan_dimen} \NC infinity, mu-units \NC returns a number representing a dimension and or two numbers being the filler and order \NC \NR -\NC \type{scan_glue} \NC mu-units \NC returns a glue spec node \NC \NR -\NC \type{scan_toks} \NC definer, expand \NC returns a table of tokens token list (this can become a linked list in later releases) \NC \NR -\NC \type{scan_code} \NC bitset \NC returns a character if its category is in the given bitset (representing catcodes) \NC \NR -\NC \type{scan_string} \NC \NC returns a string given between \type {{}}, as \type {\macro} or as sequence of characters with catcode 11 or 12 \NC \NR -\NC \type{scan_word} \NC \NC returns a sequence of characters with catcode 11 or 12 as string \NC \NR -\NC \type{scan_csname} \NC \NC returns \type {foo} after scanning \type {\foo} \NC \NR -\NC \type{set_macro} \NC see below \NC assign a macro \NC \NR -\NC \type{create} \NC \NC returns a userdata token object of the given control sequence name (or character); this interface can change \NC \NR +\NC \type{scan_keyword} \NC string \NC returns true if the given keyword is gobbled; as with + the regular \TEX\ keyword scanner this is case insensitive + (and \ASCII\ based) \NC \NR +\NC \type{scan_keywordcs} \NC string \NC returns true if the given keyword is gobbled; this variant + is case sensitive and also suitable for \UTF8 \NC \NR +\NC \type{scan_int} \NC \NC returns an integer \NC \NR +\NC \type{scan_real} \NC \NC returns a number from e.g.\ \type {1}, \type {1.1}, \type {.1} with optional collapsed signs \NC \NR +\NC \type{scan_float} \NC \NC returns a number from e.g.\ \type {1}, \type {1.1}, \type {.1}, \type {1.1E10}, , \type {.1e-10} with optional collapsed signs \NC \NR +\NC \type{scan_dimen} \NC infinity, mu-units \NC returns a number representing a dimension and or two numbers being the filler and order \NC \NR +\NC \type{scan_glue} \NC mu-units \NC returns a glue spec node \NC \NR +\NC \type{scan_toks} \NC definer, expand \NC returns a table of tokens tokens \NC \NR +\NC \type{scan_code} \NC bitset \NC returns a character if its category is in the given bitset (representing catcodes) \NC \NR +\NC \type{scan_string} \NC \NC returns a string given between \type {{}}, as \type {\macro} or as sequence of characters with catcode 11 or 12 \NC \NR +\NC \type{scan_argument} \NC \NC this one is simular to \type {scanstring} but also accepts a \type {\cs} + (which then get expanded) \NC \NR +\NC \type{scan_word} \NC \NC returns a sequence of characters with catcode 11 or 12 as string \NC \NR +\NC \type{scan_csname} \NC \NC returns \type {foo} after scanning \type {\foo} \NC \NR +\NC \type{scan_list} \NC \NC picks up a box specification and returns a \type {[h|v]list} node \NC \NR \LL \stoptabulate The scanners can be considered stable apart from the one scanning for a token. -This is because futures releases can return a linked list instead of a table (as -with nodes). The \type {scan_code} function takes an optional number, the \type {keyword} function a normal \LUA\ string. The \type {infinity} boolean signals -that we also permit \type {fill} as dimension and the \type {mu-units} flags the -scanner that we expect math units. When scanning tokens we can indicate that we -are defining a macro, in which case the result will also provide information -about what arguments are expected and in the result this is separated from the -meaning by a separator token. The \type {expand} flag determines if the list will -be expanded. +The \type {scan_code} function takes an optional number, the \type {keyword} +function a normal \LUA\ string. The \type {infinity} boolean signals that we also +permit \type {fill} as dimension and the \type {mu-units} flags the scanner that +we expect math units. When scanning tokens we can indicate that we are defining a +macro, in which case the result will also provide information about what +arguments are expected and in the result this is separated from the meaning by a +separator token. The \type {expand} flag determines if the list will be expanded. The string scanner scans for something between curly braces and expands on the way, or when it sees a control sequence it will return its meaning. Otherwise it @@ -1645,6 +2070,8 @@ following definition: we get: \starttabulate[|l|Tl|l|] +\DB name \BC result \NC \NR +\TB \NC \type {\directlua{token.scan_string()}{foo}} \NC \directlua{context("{\\red\\type {"..token.scan_string().."}}")} {foo} \NC full expansion \NC \NR \NC \type {\directlua{token.scan_string()}foo} \NC \directlua{context("{\\red\\type {"..token.scan_string().."}}")} foo \NC letters and others \NC \NR \NC \type {\directlua{token.scan_string()}\foo} \NC \directlua{context("{\\red\\type {"..token.scan_string().."}}")}\foo \NC meaning \NC \NR @@ -1653,7 +2080,7 @@ we get: The \type {\foo} case only gives the meaning, but one can pass an already expanded definition (\prm {edef}'d). In the case of the braced variant one can of -course use the \prm {detokenize} and \prm {unexpanded} primitives as there we +course use the \prm {detokenize} and \prm {unexpanded} primitives since there we do expand. The \type {scan_word} scanner can be used to implement for instance a number scanner: @@ -1667,36 +2094,7 @@ end This scanner accepts any valid \LUA\ number so it is a way to pick up floats in the input. -The creator function can be used as follows: - -\starttyping -local t = token.create("relax") -\stoptyping - -This gives back a token object that has the properties of the \prm {relax} -primitive. The possible properties of tokens are: - -\starttabulate[|l|p|] -\NC \type {command} \NC a number representing the internal command number \NC \NR -\NC \type {cmdname} \NC the type of the command (for instance the catcode in case of a - character or the classifier that determines the internal - treatment \NC \NR -\NC \type {csname} \NC the associated control sequence (if applicable) \NC \NR -\NC \type {id} \NC the unique id of the token \NC \NR -%NC \type {tok} \NC \NC \NR % might change -\NC \type {active} \NC a boolean indicating the active state of the token \NC \NR -\NC \type {expandable} \NC a boolean indicating if the token (macro) is expandable \NC \NR -\NC \type {protected} \NC a boolean indicating if the token (macro) is protected \NC \NR -\LL -\stoptabulate - -The numbers that represent a catcode are the same as in \TEX\ itself, so using -this information assumes that you know a bit about \TEX's internals. The other -numbers and names are used consistently but are not frozen. So, when you use them -for comparing you can best query a known primitive or character first to see the -values. - -More interesting are the scanners. You can use the \LUA\ interface as follows: +You can use the \LUA\ interface as follows: \starttyping \directlua { @@ -1740,19 +2138,151 @@ argument(s). For the second method you need to look at the \LUA\ code to see wha gets picked up. Instead of passing from \TEX\ to \LUA\ we let \LUA\ fetch from the input stream. -In the first case the input is tokenized and then turned into a string when it's -passed to \LUA\ where it gets interpreted. In the second case only a function +In the first case the input is tokenized and then turned into a string, then it +is passed to \LUA\ where it gets interpreted. In the second case only a function call gets interpreted but then the input is picked up by explicitly calling the scanner functions. These return proper \LUA\ variables so no further conversion has to be done. This is more efficient but in practice (given what \TEX\ has to -do) this effect should not be overestimated. For numbers and dimensions it saves a -bit but for passing strings conversion to and from tokens has to be done anyway +do) this effect should not be overestimated. For numbers and dimensions it saves +a bit but for passing strings conversion to and from tokens has to be done anyway (although we can probably speed up the process in later versions if needed). -\subsection{Macros} +\stopsubsection + +\startsubsection[title= {Picking up one token}] + +\libindex {get_next} +\libindex {scan_token} +\libindex {expand} + +The scanners look for a sequence. When you want to pick up one token from the +input you use \type {get_next}. This creates a token with the (low level) +properties as discussed next. This token is just the next one. If you want to +enforce expansion first you can use \type {scan_token}. Internally tokens are +characterized by a number that packs a lot of information. In order to access +the bits of information a token is wrapped in a userdata object. + +The \type {expand} function will trigger expansion of the next token in the +input. This can be quite unpredictable but when you call it you probably know +enough about \TEX\ not to be too worried about that. It basically is a call to +the internal expand related function. + +\stopsubsection + +\startsubsection[title={Creating tokens}] + +\libindex{create} +\libindex{new} + +\libindex{is_defined} +\libindex{is_token} +\libindex{biggest_char} + +\libindex{commands} +\libindex{command_id} + +\libindex{get_command} +\libindex{get_cmdname} +\libindex{get_csname} +\libindex{get_id} +\libindex{get_active} +\libindex{get_expandable} +\libindex{get_protected} +\libindex{get_mode} +\libindex{get_index} +\libindex{get_tok} + +\libindex{get_next} + +The creator function can be used as follows: + +\starttyping +local t = token.create("relax") +\stoptyping + +This gives back a token object that has the properties of the \prm {relax} +primitive. The possible properties of tokens are: + +\starttabulate[|l|p|] +\DB name \BC explanation \NC \NR +\TB +\NC \type {command} \NC a number representing the internal command number \NC \NR +\NC \type {cmdname} \NC the type of the command (for instance the catcode in case of a + character or the classifier that determines the internal + treatment \NC \NR +\NC \type {csname} \NC the associated control sequence (if applicable) \NC \NR +\NC \type {id} \NC the unique id of the token \NC \NR +\NC \type {tok} \NC the full token number as stored in \TEX \NC \NR +\NC \type {active} \NC a boolean indicating the active state of the token \NC \NR +\NC \type {expandable} \NC a boolean indicating if the token (macro) is expandable \NC \NR +\NC \type {protected} \NC a boolean indicating if the token (macro) is protected \NC \NR +\NC \type {mode} \NC a number either representing a character or another entity \NC \NR +\NC \type {index} \NC a number running from 0x0000 upto 0xFFFF indicating a \TEX\ register index \NC \NR +\LL +\stoptabulate + +Alternatively you can use a getter \type {get_<fieldname>} to access a property +of a token. + +The numbers that represent a catcode are the same as in \TEX\ itself, so using +this information assumes that you know a bit about \TEX's internals. The other +numbers and names are used consistently but are not frozen. So, when you use them +for comparing you can best query a known primitive or character first to see the +values. + +You can ask for a list of commands: + +\starttyping +local t = token.commands() +\stoptyping + +The id of a token class can be queried as follows: + +\starttyping +local id = token.command_id("math_shift") +\stoptyping + +If you really know what you're doing you can create character tokens by not +passing a string but a number: + +\starttyping +local letter_x = token.create(string.byte("x")) +local other_x = token.create(string.byte("x"),12) +\stoptyping + +Passing weird numbers can give side effects so don't expect too much help with +that. As said, you need to know what you're doing. The best way to explore the +way these internals work is to just look at how primitives or macros or \prm +{chardef}'d commands are tokenized. Just create a known one and inspect its +fields. A variant that ignores the current catcode table is: + +\starttyping +local whatever = token.new(123,12) +\stoptyping + +You can test if a control sequence is defined with \type {is_defined}, which +accepts a string and returns a boolean: + +\starttyping +local okay = token.is_defined("foo") +\stoptyping + +The largest character possible is returned by \type {biggest_char}, just in case you +need to know that boundary condition. + +\stopsubsection + +\startsubsection[title={Macros}] \topicindex {macros} +\libindex{set_macro} +\libindex{get_macro} +\libindex{get_meaning} +\libindex{set_char} +\libindex{set_lua} +\libindex{get_functions_table} + The \type {set_macro} function can get upto 4 arguments: \starttyping @@ -1782,16 +2312,30 @@ the \type {get_meaning} function gives the meaning including the argument specification (as usual in \TEX\ separated by \type {->}). The \type {set_char} function can be used to do a \prm {chardef} at the -\LUA\ end: +\LUA\ end, where invalid assignments are silently ignored: \starttyping set_char("csname",number) set_char("csname",number,"global") \stoptyping -Invalid assignments are silently ignored. +A special one is the following: -\subsection{Pushing back} +\starttyping +set_lua("mycode",id) +set_lua("mycode",id,"global","protected") +\stoptyping + +This creates a token that refers to a \LUA\ function with an entry in the table +that you can access with \type {lua.get_functions_table}. It is the companion +to \lpr {luadef}. + +\stopsubsection + +\startsubsection[title={Pushing back}] + +\libindex{get_next} +\libindex{put_next} There is a (for now) experimental putter: @@ -1807,9 +2351,12 @@ token.put_next ( t3, t4 ) \stoptyping When we scan \type {wxyz!} we get \type {yzwx!} back. The argument is either a table -with tokens or a list of tokens. +with tokens or a list of tokens. The \type {token.expand} function will trigger +expansion but what happens really depends on what you're doing where. -\subsection{Nota bene} +\stopsubsection + +\startsubsection[title={Nota bene}] When scanning for the next token you need to keep in mind that we're not scanning like \TEX\ does: expanding, changing modes and doing things as it goes. When we @@ -1897,7 +2444,11 @@ So, we do get a unique token because after all we need some kind of \LUA\ object that can be used and garbage collected, but it is basically the same one, representing an undefined control sequence. -\section{The \type {kpse} library} +\stopsubsection + +\stopsection + +\startsection[title={The \type {kpse} library}][library=kpse] \topicindex{libraries+\type{kpse}} @@ -1906,7 +2457,15 @@ This library provides two separate, but nearly identical interfaces to the interface that shares its kpathsea instance with \LUATEX\ itself, and an object oriented interface that is completely on its own. -\subsection{\type {kpse.set_program_name} and \type {kpse.new}} +\startsubsection[title={\type {set_program_name} and \type {new}}] + +\libindex{set_program_name} +\libindex{default_texmfcnf} +\libindex{new} + +The way the library looks up variables is driven by the \type {texmf.cmf} file +where the currently set program name acts as filter. You can check what file is +used by with \type {default_texmfcnf}. Before the search library can be used at all, its database has to be initialized. There are three possibilities, two of which belong to the procedural interface. @@ -1938,13 +2497,17 @@ local kpathsea = kpse.new(<string> name, <string> progname) Apart from these two functions, the calling conventions of the interfaces are identical. Depending on the chosen interface, you either call \type -{kpse.find_file()} or \type {kpathsea:find_file()}, with identical arguments and -return vales. +{kpse.find_file} or \type {kpathsea:find_file}, with identical arguments and +return values. -\subsection{\type {find_file}} +\stopsubsection + +\startsubsection[title={\type {find_file}}] \topicindex {files+finding} +\libindex {find_file} + The most often used function in the library is \type {find_file}: \startfunctioncall @@ -2045,7 +2608,11 @@ will search the disk as well as the \type {ls-R} databases. This is used for the size argument of the formats \type {pk}, \type {gf}, and \type {bitmap font}. \stopitemize -\subsection{\type {lookup}} +\stopsubsection + +\startsubsection[title={\type {lookup}}] + +\libindex{lookup} A more powerful (but slower) generic method for finding files is also available. It returns a string for each found file. @@ -2057,7 +2624,7 @@ It returns a string for each found file. The options match commandline arguments from \type {kpsewhich}: \starttabulate[|l|l|p|] -\DB key \BC type \BC description \NC \NR +\DB key \BC type \BC explanation \NC \NR \TB \NC \type{debug} \NC number \NC set debugging flags for this lookup\NC \NR \NC \type{format} \NC string \NC use specific file type (see list above)\NC \NR @@ -2075,10 +2642,14 @@ The options match commandline arguments from \type {kpsewhich}: \LL \stoptabulate -\subsection{\type {init_prog}} +\stopsubsection + +\startsubsection[title={\type {init_prog}}] \topicindex {initialization+bitmaps} +\libindex{init_prog} + Extra initialization for programs that need to generate bitmap fonts. \startfunctioncall @@ -2086,7 +2657,11 @@ kpse.init_prog(<string> prefix, <number> base_dpi, <string> mfmode) kpse.init_prog(<string> prefix, <number> base_dpi, <string> mfmode, <string> fallback) \stopfunctioncall -\subsection{\type {readable_file}} +\stopsubsection + +\startsubsection[title={\type {readable_file}}] + +\libindex{readable_file} Test if an (absolute) file name is a readable file. @@ -2099,7 +2674,11 @@ name is not always the same as the requested name, due to aliases and system|-|specific handling under e.g.\ \MSDOS. Returns \type {nil} if the file does not exist or is not readable. -\subsection{\type {expand_path}} +\stopsubsection + +\startsubsection[title={\type {expand_path}}] + +\libindex{expand_path} Like kpsewhich's \type {-expand-path}: @@ -2107,7 +2686,11 @@ Like kpsewhich's \type {-expand-path}: <string> r = kpse.expand_path(<string> s) \stopfunctioncall -\subsection{\type {expand_var}} +\stopsubsection + +\startsubsection[title={\type {expand_var}}] + +\libindex{expand_var} Like kpsewhich's \type {-expand-var}: @@ -2115,7 +2698,11 @@ Like kpsewhich's \type {-expand-var}: <string> r = kpse.expand_var(<string> s) \stopfunctioncall -\subsection{\type {expand_braces}} +\stopsubsection + +\startsubsection[title={\type {expand_braces}}] + +\libindex{expand_braces} Like kpsewhich's \type {-expand-braces}: @@ -2123,7 +2710,11 @@ Like kpsewhich's \type {-expand-braces}: <string> r = kpse.expand_braces(<string> s) \stopfunctioncall -\subsection{\type {show_path}} +\stopsubsection + +\startsubsection[title={\type {show_path}}] + +\libindex{show_path} Like kpsewhich's \type {-show-path}: @@ -2131,8 +2722,11 @@ Like kpsewhich's \type {-show-path}: <string> r = kpse.show_path(<string> ftype) \stopfunctioncall +\stopsubsection -\subsection{\type {var_value}} +\startsubsection[title={\type {var_value}}] + +\libindex{var_value} Like kpsewhich's \type {-var-value}: @@ -2140,7 +2734,11 @@ Like kpsewhich's \type {-var-value}: <string> r = kpse.var_value(<string> s) \stopfunctioncall -\subsection{\type {version}} +\stopsubsection + +\startsubsection[title={\type {version}}] + +\libindex{version} Returns the kpathsea version string. @@ -2148,6 +2746,10 @@ Returns the kpathsea version string. <string> r = kpse.version() \stopfunctioncall +\stopsubsection + +\stopsection + \stopchapter \stopcomponent diff --git a/manual/luatex-titlepage.tex b/manual/luatex-titlepage.tex index 3692ff893e7078f3ed2dfc03dc7e203095422f93..5a91f73e8b84601d0592d611be27a96916698491 100644 --- a/manual/luatex-titlepage.tex +++ b/manual/luatex-titlepage.tex @@ -22,7 +22,7 @@ [align=middle, foregroundcolor=white, frame=off] - {Lua\TeX\crlf Reference\crlf Manual} + {\documentvariable{manual}\crlf Reference\crlf Manual} \definedfont[Bold*default at 14pt] \setupinterlinespace diff --git a/manual/luatex.pdf b/manual/luatex.pdf index 5312f317e6a0dd12ca31dd4095dafb2b58dfcaf2..dd73cae76fc1b3956348989b013cd633b9afaabf 100644 Binary files a/manual/luatex.pdf and b/manual/luatex.pdf differ diff --git a/manual/luatex.tex b/manual/luatex.tex index 8141f1cf2cdcbd60a2e1cda65ca30ad1507eb413..61c075243d8b153caed4700f7684682ff0fc8e40 100644 --- a/manual/luatex.tex +++ b/manual/luatex.tex @@ -1,11 +1,12 @@ % macros=mkvi +% \nopdfcompression + % \disabledirectives[vspacing.synchronizepage] % wsl /data/context/runcontext.sh --global --path=/mnt/c/data/develop/context/manuals/mkiv/external/luatex luatex.tex % % same runtime as regular context or linux - % author : Hans Hagen with Taco Hoekwater, Luigi Scarso & Hartmut Henkel % copyright : PRAGMA ADE & ConTeXt Development Team % license : Creative Commons Attribution ShareAlike 4.0 International @@ -29,17 +30,28 @@ % "context --nodates --nocompression luatex" can be used for comparison % runs, not that we do it +% todo: all (sub)section to start/stop + % \enabledirectives[hyphenator.flatten] % \setupsynctex[state=start,method=max] % adds 5 pct overhead +% compoundhyphenmode : looks okay +% endlocalcontrol : very experimental +% fixupboxesmode : very experimental +% mathflattenmode : looks okay +% mathrulethicknessmode : looks okay + % after adding primitives: context mult-prm.mkiv \environment luatex-style -% \environment luatex-book -\environment luatex-logos -% \switchtobodyfont[small] +\startmode[book] + \environment luatex-style-book +\stopmode + +\environment luatex-logos +\environment luatex-private \startmode[export] @@ -49,8 +61,9 @@ \stopmode \startdocument - [status=experimental, - version=1.08.0] + [manual=Lua\TeX, + status=experimental, + version=1.10] \startnotmode[*export] \component luatex-titlepage diff --git a/source/Build b/source/Build index a2fee663fd3d25665eeccf3ba975030ed96ae8a1..898cbb9d24c48a79126cdaec7eead19372f14cea 100755 --- a/source/Build +++ b/source/Build @@ -1,5 +1,5 @@ #!/bin/sh -# $Id: Build 46257 2018-01-09 18:53:05Z karl $ +# $Id: Build 48808 2018-10-02 01:55:09Z karl $ # Public domain. Originally written many years ago by Sebastian Rahtz. # The basic idea is to run configure && make, but with a multitude of # environment variables to allow overriding everything. @@ -43,6 +43,7 @@ export MAKE # make flags : ${TL_MAKE_FLAGS=} +: ${TL_MAKE_VERBOSE=VERBOSE=1} # allow override of make target. : ${TL_TARGET=world} @@ -127,7 +128,7 @@ cd $TL_WORKDIR || exit 1 $TL_CONFIGURE_ARGS \ "$@" \ && eval $TL_POSTCONFIGURE \ - && eval $TL_BUILD_ENV $TL_MAKE $TL_MAKE_FLAGS $TL_TARGET + && eval $TL_BUILD_ENV $TL_MAKE $TL_MAKE_FLAGS $TL_MAKE_VERBOSE $TL_TARGET # Too arcane to try to propagate the exit status through a pipeline. # Just use a temp file. diff --git a/source/ChangeLog b/source/ChangeLog index bc5d71dabfbe23e4a71bbf1abc25ea9c69b98c80..61f8131ee82c2c67aa90b1ef2716704b2589f91e 100644 --- a/source/ChangeLog +++ b/source/ChangeLog @@ -1,3 +1,9 @@ +2018-10-02 Karl Berry <karl@tug.org> + + * Build: TL_MAKE_VERBOSE=VERBOSE=1 by default, + so that test-suite.log will be shown on failure. + https://lists.gnu.org/archive/html/automake/2018-09/msg00015.html + 2018-04-28 Karl Berry <karl@tug.org> * version.ac: 2019/dev. diff --git a/source/Makefile.in b/source/Makefile.in index ffc6bb531516bf2650b4dae3568e228490c50153..e1f2bc710c2f55d643ab07a41f423c7b31e0365d 100644 --- a/source/Makefile.in +++ b/source/Makefile.in @@ -127,7 +127,6 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/kpse-cairo-flags.m4 \ $(top_srcdir)/libs/zziplib/ac/withenable.ac \ $(top_srcdir)/libs/libpng/ac/withenable.ac \ $(top_srcdir)/libs/luajit/ac/withenable.ac \ - $(top_srcdir)/libs/lua52/ac/withenable.ac \ $(top_srcdir)/libs/lua53/ac/withenable.ac \ $(top_srcdir)/libs/zlib/ac/withenable.ac \ $(top_srcdir)/texk/kpathsea/ac/withenable.ac \ diff --git a/source/README b/source/README index 5a966ac1592ecc7335199c083f67312afa55a23a..55cb61acbfd0a12975f336b920ba2cfabe5b7628 100644 --- a/source/README +++ b/source/README @@ -1,4 +1,4 @@ -$Id: README 48151 2018-07-06 17:53:52Z karl $ +$Id: README 49472 2018-12-21 23:23:35Z karl $ Public domain. Originally written 2005 by Karl Berry. For a high-level overview of building TeX Live, see @@ -39,8 +39,7 @@ i386-netbsd, amd64-netbsd: ./Build --enable-xindy CLISP=/usr/local/bin/clisp i386-freebsd, amd64-freebsd: - http://anthesphoria.net/FreeBSD/TeXLive-2018/ - upmendex for i386 built with -DU_IS_BIG_ENDIAN=0. + http://anthesphoria.net/FreeBSD/TeXLive-2018/ has all details. i386-linux: see travis below. @@ -69,3 +68,32 @@ x86_64-linuxmusl: Binaries are taken from the CI testing on travis-ci see the source/.travis.yaml file for details on how to build, and tlpkg/bin/tl-update-bindir for updating binaries (in general). + +x86_64-linux-glibc2.12, on CentOS6: +#!/bin/sh -x +# Public domain. +# in ~/.subversion/config: use-commit-times=yes +# mkdir /usr/local/src/tl +# cd !$ +# svn -q co svn://tug.org/texlive/branches/branch2018/Build/source +# rm -rf source/libs/icu source/libs/poppler # to avoid configuring them +# +cd /usr/local/src/tl || exit 1 +# +debug=-g # for debugging, no optimization +# +./Build \ + $debug \ + -C \ + --disable-xetex \ + --disable-luatex \ + --disable-luajittex \ + --disable-luatex53 \ + --disable-dvisvgm \ + --disable-bibtexu \ + --disable-upmendex \ + --disable-poppler \ + --without-system-icu \ + --without-system-poppler \ + --enable-native-texlive-build \ +exit $? diff --git a/source/build-aux/config.guess b/source/build-aux/config.guess index b33c9e890e0c7c0acb1dbc9058f4be70e0a8f10f..8e2a58b864fd4c0bd174bd1d8faeeb1c62b3afe2 100755 --- a/source/build-aux/config.guess +++ b/source/build-aux/config.guess @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2018 Free Software Foundation, Inc. +# Copyright 1992-2019 Free Software Foundation, Inc. -timestamp='2018-08-29' +timestamp='2019-01-03' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -50,7 +50,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2018 Free Software Foundation, Inc. +Copyright 1992-2019 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -96,8 +96,7 @@ fi tmp= # shellcheck disable=SC2172 -trap 'test -z "$tmp" || rm -fr "$tmp"' 1 2 13 15 -trap 'exitcode=$?; test -z "$tmp" || rm -fr "$tmp"; exit $exitcode' 0 +trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 set_cc_for_build() { : "${TMPDIR=/tmp}" @@ -386,21 +385,39 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" + set_cc_for_build + SUN_ARCH=sparc + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if (echo '#ifdef __sparcv9'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH=sparcv9 + fi + fi + echo "$SUN_ARCH"-sun-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux"$UNAME_RELEASE" exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - UNAME_REL="`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" - case `isainfo -b` in - 32) - echo i386-pc-solaris2"$UNAME_REL" - ;; - 64) - echo x86_64-pc-solaris2"$UNAME_REL" - ;; - esac + set_cc_for_build + SUN_ARCH=i386 + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH=x86_64 + fi + fi + echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize @@ -890,7 +907,7 @@ EOF echo "$UNAME_MACHINE"-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin + echo x86_64-pc-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" @@ -1424,6 +1441,9 @@ EOF amd64:Isilon\ OneFS:*:*) echo x86_64-unknown-onefs exit ;; + *:Unleashed:*:*) + echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE" + exit ;; esac echo "$0: unable to guess system type" >&2 diff --git a/source/build-aux/config.sub b/source/build-aux/config.sub index b51fb8cdb69ea2e3828774c356acc50a8f759981..a8f3f7e7cde8d60f4956d7e7fc0e56dc6609cf9a 100755 --- a/source/build-aux/config.sub +++ b/source/build-aux/config.sub @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2018 Free Software Foundation, Inc. +# Copyright 1992-2019 Free Software Foundation, Inc. -timestamp='2018-08-29' +timestamp='2019-01-01' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -67,7 +67,7 @@ Report bugs and patches to <config-patches@gnu.org>." version="\ GNU config.sub ($timestamp) -Copyright 1992-2018 Free Software Foundation, Inc. +Copyright 1992-2019 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -89,7 +89,7 @@ while test $# -gt 0 ; do - ) # Use stdin as input. break ;; -* ) - echo "$me: invalid option $1$help" + echo "$me: invalid option $1$help" >&2 exit 1 ;; *local*) @@ -111,7 +111,7 @@ case $# in esac # Split fields of configuration type -IFS="-" read -r field1 field2 field3 field4 <<EOF +IFS="-" read field1 field2 field3 field4 <<EOF $1 EOF @@ -149,7 +149,7 @@ case $1 in esac ;; *-*) - # A lone config we happen to match not fitting any patern + # A lone config we happen to match not fitting any pattern case $field1-$field2 in decstation-3100) basic_machine=mips-dec @@ -918,7 +918,7 @@ case $basic_machine in ;; *-*) - IFS="-" read -r cpu vendor <<EOF + IFS="-" read cpu vendor <<EOF $basic_machine EOF ;; @@ -950,7 +950,7 @@ unset -v basic_machine # Decode basic machines in the full and proper CPU-Company form. case $cpu-$vendor in - # Here we handle the default manufacturer of certain CPU types in cannonical form. It is in + # Here we handle the default manufacturer of certain CPU types in canonical form. It is in # some cases the only manufacturer, in others, it is the most popular. craynv-unknown) vendor=cray @@ -1101,7 +1101,7 @@ case $cpu-$vendor in cpu=`echo "$cpu" | sed 's/^xscale/arm/'` ;; - # Recognize the cannonical CPU Types that limit and/or modify the + # Recognize the canonical CPU Types that limit and/or modify the # company names they are paired with. cr16-*) os=${os:-elf} @@ -1150,7 +1150,7 @@ case $cpu-$vendor in ;; *) - # Recognize the cannonical CPU types that are allowed with any + # Recognize the canonical CPU types that are allowed with any # company name. case $cpu in 1750a | 580 \ @@ -1161,6 +1161,7 @@ case $cpu-$vendor in | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ | alphapca5[67] | alpha64pca5[67] \ | am33_2.0 \ + | amdgcn \ | arc | arceb \ | arm | arm[lb]e | arme[lb] | armv* \ | avr | avr32 \ @@ -1360,7 +1361,7 @@ case $os in | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ | skyos* | haiku* | rdos* | toppers* | drops* | es* \ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ - | midnightbsd*) + | midnightbsd* | amdhsa* | unleashed* | emscripten*) # Remember, each alternative MUST END IN *, to match a version number. ;; qnx*) diff --git a/source/build-aux/texinfo.tex b/source/build-aux/texinfo.tex index d7f7f53a348081043d31393ea89584e7a90c368b..66a832e0b4f2479b9d792a5a596eb3f5bf120fb7 100644 --- a/source/build-aux/texinfo.tex +++ b/source/build-aux/texinfo.tex @@ -3,12 +3,9 @@ % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % -\def\texinfoversion{2018-06-02.09} +\def\texinfoversion{2018-12-28.17} % -% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, -% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, -% 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 -% Free Software Foundation, Inc. +% Copyright 1985, 1986, 1988, 1990-2018 Free Software Foundation, Inc. % % This texinfo.tex file is free software: you can redistribute it and/or % modify it under the terms of the GNU General Public License as @@ -244,17 +241,7 @@ % \def\finalout{\overfullrule=0pt } -% Do @cropmarks to get crop marks. -% -\newif\ifcropmarks -\let\cropmarks = \cropmarkstrue -% -% Dimensions to add cropmarks at corners. -% Added by P. A. MacKay, 12 Nov. 1986 -% \newdimen\outerhsize \newdimen\outervsize % set by the paper size routines -\newdimen\cornerlong \cornerlong=1pc -\newdimen\cornerthick \cornerthick=.3pt \newdimen\topandbottommargin \topandbottommargin=.75in % Output a mark which sets \thischapter, \thissection and \thiscolor. @@ -328,12 +315,12 @@ \newbox\footlinebox % \onepageout takes a vbox as an argument. -% \shipout a vbox for a single page, adding an optional header, footer, -% cropmarks, and footnote. This also causes index entries for this page -% to be written to the auxiliary files. +% \shipout a vbox for a single page, adding an optional header, footer +% and footnote. This also causes index entries for this page to be written +% to the auxiliary files. % \def\onepageout#1{% - \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi + \hoffset=\normaloffset % \ifodd\pageno \advance\hoffset by \bindingoffset \else \advance\hoffset by -\bindingoffset\fi @@ -386,25 +373,6 @@ % Do this early so pdf references go to the beginning of the page. \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi % - \ifcropmarks \vbox to \outervsize\bgroup - \hsize = \outerhsize - \vskip-\topandbottommargin - \vtop to0pt{% - \line{\ewtop\hfil\ewtop}% - \nointerlineskip - \line{% - \vbox{\moveleft\cornerthick\nstop}% - \hfill - \vbox{\moveright\cornerthick\nstop}% - }% - \vss}% - \vskip\topandbottommargin - \line\bgroup - \hfil % center the page within the outer (page) hsize. - \ifodd\pageno\hskip\bindingoffset\fi - \vbox\bgroup - \fi - % \unvbox\headlinebox \pagebody{#1}% \ifdim\ht\footlinebox > 0pt @@ -415,22 +383,6 @@ \unvbox\footlinebox \fi % - \ifcropmarks - \egroup % end of \vbox\bgroup - \hfil\egroup % end of (centering) \line\bgroup - \vskip\topandbottommargin plus1fill minus1fill - \boxmaxdepth = \cornerthick - \vbox to0pt{\vss - \line{% - \vbox{\moveleft\cornerthick\nsbot}% - \hfill - \vbox{\moveright\cornerthick\nsbot}% - }% - \nointerlineskip - \line{\ewbot\hfil\ewbot}% - }% - \egroup % \vbox from first cropmarks clause - \fi }% end of \shipout\vbox }% end of group with \indexdummies \advancepageno @@ -451,17 +403,6 @@ \ifr@ggedbottom \kern-\dimen@ \vfil \fi} } -% Here are the rules for the cropmarks. Note that they are -% offset so that the space between them is truly \outerhsize or \outervsize -% (P. A. MacKay, 12 November, 1986) -% -\def\ewtop{\vrule height\cornerthick depth0pt width\cornerlong} -\def\nstop{\vbox - {\hrule height\cornerthick depth\cornerlong width\cornerthick}} -\def\ewbot{\vrule height0pt depth\cornerthick width\cornerlong} -\def\nsbot{\vbox - {\hrule height\cornerlong depth\cornerthick width\cornerthick}} - % Argument parsing @@ -8004,6 +7945,7 @@ end \gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb} \gdef\magicamp{\let&=\amprm} } +\let\ampchar\& \newcount\parencount diff --git a/source/configure b/source/configure index e2e48578f7e22d532728a755f82372ace11d24e3..494702b147a9776fdb67a412ec77092fc1a850a2 100755 --- a/source/configure +++ b/source/configure @@ -4526,9 +4526,6 @@ test "x$need_libpng" = xyes && { ## libs/luajit/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/luajit/ ## configure options and TL libraries required for luajit -## libs/lua52/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/lua52/ -## configure options and TL libraries required for lua52 - ## libs/lua53/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/lua53/ ## configure options and TL libraries required for lua53 @@ -8868,6 +8865,8 @@ fi done +##tldbg KPSE_COMMON: TeX Live top-level (tar-pax dist-xz no-dist-gzip). +##tldbg KPSE_BASIC: Remember TeX Live top-level (tar-pax dist-xz no-dist-gzip) as Kpse_Package (for future messages). if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output @@ -19205,7 +19204,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for TeX specific libraries to build" >&5 $as_echo_n "checking for TeX specific libraries to build... " >&6; } -echo 'dbg:_KPSE_RECURSE called: list=texlibs, text=TeX specific libraries, cond=test "x$with_system_Kpse_pkg" != xyes && test "x$need_Kpse_pkg" = xyes, prefix=texk/.' >&5 +echo 'tldbg:_KPSE_RECURSE called: list=texlibs, text=TeX specific libraries, cond=test "x$with_system_[]Kpse_pkg" != xyes && test "x$need_[]Kpse_pkg" = xyes, prefix=texk/.' >&5 MAKE_SUBDIRS= CONF_SUBDIRS= if test -x $srcdir/texk/kpathsea/configure; then @@ -19327,6 +19326,7 @@ elif test "x$need_ptexenc:$with_system_ptexenc" = xyes:yes; then as_fn_error $? "did not find ptexenc" "$LINENO" 5 fi +##tldbg _KPSE_LIB_FLAGS_SYSTEM: zlib (z). if test "x$with_zlib_includes" != x && test "x$with_zlib_includes" != xyes; then ZLIB_INCLUDES="-I$with_zlib_includes" fi @@ -19335,6 +19335,7 @@ if test "x$with_zlib_libdir" != x && test "x$with_zlib_libdir" != xyes; then ZLIB_LIBS="-L$with_zlib_libdir $ZLIB_LIBS" fi +##tldbg _KPSE_LIB_FLAGS_SYSTEM: libpaper (paper). if test "x$with_libpaper_includes" != x && test "x$with_libpaper_includes" != xyes; then LIBPAPER_INCLUDES="-I$with_libpaper_includes" fi @@ -19448,6 +19449,7 @@ elif test "x$need_freetype2:$with_system_freetype2" = xyes:yes; then as_fn_error $? "did not find freetype-config required for system freetype2 library" "$LINENO" 5 fi +##tldbg _KPSE_LIB_FLAGS_SYSTEM: gd (gd). if test "x$with_gd_includes" != x && test "x$with_gd_includes" != xyes; then GD_INCLUDES="-I$with_gd_includes" fi @@ -19470,6 +19472,7 @@ elif test "x$need_cairo:$with_system_cairo" = xyes:yes; then as_fn_error $? "did not find cairo 1.12 or better" "$LINENO" 5 fi +##tldbg _KPSE_LIB_FLAGS_SYSTEM: gmp (gmp). if test "x$with_gmp_includes" != x && test "x$with_gmp_includes" != xyes; then GMP_INCLUDES="-I$with_gmp_includes" fi @@ -19478,6 +19481,7 @@ if test "x$with_gmp_libdir" != x && test "x$with_gmp_libdir" != xyes; then GMP_LIBS="-L$with_gmp_libdir $GMP_LIBS" fi +##tldbg _KPSE_LIB_FLAGS_SYSTEM: mpfr (mpfr). if test "x$with_mpfr_includes" != x && test "x$with_mpfr_includes" != xyes; then MPFR_INCLUDES="-I$with_mpfr_includes" fi @@ -19527,7 +19531,7 @@ elif test "x$need_teckit:$with_system_teckit" = xyes:yes; then as_fn_error $? "did not find teckit" "$LINENO" 5 fi -echo 'dbg:_KPSE_ICU_SYSTEM_FLAGS called.' >&5 +echo 'tldbg:KPSE_ICU_SYSTEM_FLAGS called.' >&5 if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}icu-config", so it can be a program name with args. set dummy ${ac_tool_prefix}icu-config; ac_word=$2 diff --git a/source/doc/Makefile.in b/source/doc/Makefile.in index f17d42d3e09a53e1dc42f46afa9a1462680a76b7..d7248c87d171518f849f38cd1245fdb3f2deaf06 100644 --- a/source/doc/Makefile.in +++ b/source/doc/Makefile.in @@ -127,7 +127,6 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/kpse-cairo-flags.m4 \ $(top_srcdir)/libs/zziplib/ac/withenable.ac \ $(top_srcdir)/libs/libpng/ac/withenable.ac \ $(top_srcdir)/libs/luajit/ac/withenable.ac \ - $(top_srcdir)/libs/lua52/ac/withenable.ac \ $(top_srcdir)/libs/lua53/ac/withenable.ac \ $(top_srcdir)/libs/zlib/ac/withenable.ac \ $(top_srcdir)/texk/kpathsea/ac/withenable.ac \ diff --git a/source/doc/build-tools.txt b/source/doc/build-tools.txt index 085dcff5d4ec82e2d62e2df46283b358b17c10c2..b2609cab0fdfdb5f0e1b487ee7584aaf9fc76aae 100644 --- a/source/doc/build-tools.txt +++ b/source/doc/build-tools.txt @@ -1,6 +1,6 @@ autoconf (GNU Autoconf) 2.69 automake (GNU automake) 1.16.1 -bison (GNU Bison) 3.1 +bison (GNU Bison) 3.2.3 flex 2.6.0 ltmain.sh (GNU libtool) 2.4.6 m4 (GNU M4) 1.4.18 diff --git a/source/doc/tlbuild.info b/source/doc/tlbuild.info index 5614db5e28dd9b61284fe860e3903502f26a82ab..29161b26577f93ae5a4876683e1555532ef19823 100644 --- a/source/doc/tlbuild.info +++ b/source/doc/tlbuild.info @@ -712,7 +712,7 @@ many extra hassles, so don't do that, tempting as it may be. autoconf (GNU Autoconf) 2.69 automake (GNU automake) 1.16.1 - bison (GNU Bison) 3.1 + bison (GNU Bison) 3.2.3 flex 2.6.0 ltmain.sh (GNU libtool) 2.4.6 m4 (GNU M4) 1.4.18 @@ -5558,351 +5558,351 @@ Node: Linked scripts23067 Node: Distro builds24548 Node: Layout and infrastructure26938 Node: Build system tools27766 -Node: Top-level directories29775 -Node: Autoconf macros32189 -Node: General setup macros32890 -Node: Macros for programs33757 -Node: Macros for compilers34569 -Node: Macros for libraries36003 -Node: Macros for library and header flags36429 -Node: Macros for Windows38309 -Node: Library modules39886 -Node: png library40375 -Node: zlib library42649 -Node: freetype library43164 -Node: kpathsea library43692 -Node: Program modules45091 -Node: t1utils package45519 -Node: xindy package46070 -Node: xdvik package47220 -Node: asymptote48293 -Node: Extending TeX Live48744 -Node: Adding a new program module49521 -Node: Adding a new generic library module52816 -Node: Adding a new TeX-specific library module55029 -Node: Configure options55716 -Node: Global configure options57099 -Node: --disable-native-texlive-build57641 -Node: --prefix --bindir ...58631 -Node: --disable-largefile59171 -Node: --disable-missing59856 -Node: --enable-compiler-warnings=LEVEL60257 -Node: --enable-cxx-runtime-hack60996 -Node: --enable-maintainer-mode61423 -Node: --enable-multiplatform61952 -Node: --enable-shared62490 -Node: --enable-silent-rules62861 -Node: --without-ln-s63317 -Node: --without-x63668 -Node: Program-specific configure options63856 -Node: --enable-PROG --disable-PROG64499 -Node: --disable-all-pkgs64776 -Node: Configure options for texk/web2c65762 -Node: Configure options for texk/bibtex-x68280 -Node: Configure options for texk/dvipdfm-x68823 -Node: Configure options for texk/dvisvgm69596 -Node: Configure options for texk/texlive70482 -Node: Configure options for texk/xdvik70903 -Node: Configure options for utils/xindy71507 -Node: Library-specific configure options72408 -Node: Configure options for kpathsea73419 -Node: Configure options for system poppler74128 -Node: Variables for configure74919 -Node: Coding conventions76347 -Node: Declarations and definitions77086 -Node: Const79268 -Node: Continuous integration81131 -Node: Transfer from Subversion to Github81785 -Node: Automatic update of the Git mirror83967 -Node: CI testing on Travis-CI84555 -Node: install-tl85235 -Node: install-tl NAME85604 -Node: install-tl SYNOPSIS85762 -Node: install-tl DESCRIPTION86020 -Node: install-tl REFERENCES87087 -Node: install-tl OPTIONS87613 -Ref: install-tl *-gui* [[=]_module_]87954 -Ref: install-tl text88164 -Ref: install-tl wizard88287 -Ref: install-tl perltk88441 -Ref: install-tl *-no-gui*88872 -Ref: install-tl *-lang* _llcode_88953 -Ref: install-tl *-repository* _url|path_89640 -Ref: install-tl *-select-repository*91520 -Ref: install-tl *-all-options*91956 -Ref: install-tl *-custom-bin* _path_92211 -Ref: install-tl *-debug-translation*93042 -Ref: install-tl *-force-platform* _platform_93261 -Ref: install-tl *-help*, *--help*, *-?*93505 -Ref: install-tl *-in-place*93912 -Ref: install-tl *-init-from-profile* _profile_file_94457 -Ref: install-tl *-logfile* _file_94677 -Ref: install-tl *-no-cls*95028 -Ref: install-tl *-non-admin*95162 -Ref: install-tl *-persistent-downloads*95267 -Ref: install-tl *-no-persistent-downloads*95295 -Ref: install-tl *-no-verify-downloads*95913 -Ref: install-tl *-portable*96274 -Ref: install-tl *-print-platform*96413 -Ref: install-tl *-profile* _profile_file_96611 -Ref: install-tl *-q*96791 -Ref: install-tl *-scheme* _scheme_96853 -Ref: install-tl *-v*97327 -Ref: install-tl *-version*, *--version*97482 -Node: install-tl PROFILES97613 -Ref: install-tl instopt_adjustpath (default 0 on Unix, 1 on Windows)100263 -Ref: install-tl instopt_adjustrepo (default 1)100339 -Ref: install-tl instopt_letter (default 0)100476 -Ref: install-tl instopt_portable (default 0)100567 -Ref: install-tl instopt_write18_restricted (default 1)100663 -Node: install-tl ENVIRONMENT VARIABLES101982 -Ref: install-tl TEXLIVE_INSTALL_ENV_NOCHECK102373 -Ref: install-tl TEXLIVE_INSTALL_NO_CONTEXT_CACHE102575 -Ref: install-tl TEXLIVE_INSTALL_NO_WELCOME102685 -Ref: install-tl TEXLIVE_INSTALL_PREFIX102806 -Ref: install-tl TEXLIVE_INSTALL_TEXDIR102832 -Ref: install-tl TEXLIVE_INSTALL_TEXMFCONFIG102863 -Ref: install-tl TEXLIVE_INSTALL_TEXMFVAR102891 -Ref: install-tl TEXLIVE_INSTALL_TEXMFHOME102920 -Ref: install-tl TEXLIVE_INSTALL_TEXMFLOCAL102950 -Ref: install-tl TEXLIVE_INSTALL_TEXMFSYSCONFIG102984 -Ref: install-tl TEXLIVE_INSTALL_TEXMFSYSVAR103015 -Ref: install-tl NOPERLDOC103386 -Node: install-tl AUTHORS AND COPYRIGHT103450 -Node: tlmgr103866 -Node: tlmgr NAME104319 -Node: tlmgr SYNOPSIS104451 -Node: tlmgr DESCRIPTION104641 -Node: tlmgr EXAMPLES105737 -Ref: tlmgr tlmgr option repository ctan105988 -Ref: tlmgr tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet106060 -Ref: tlmgr tlmgr update --list106512 -Ref: tlmgr tlmgr update --all106605 -Ref: tlmgr tlmgr info _what_106762 -Node: tlmgr OPTIONS107024 -Ref: tlmgr *--repository* _url|path_107544 -Ref: tlmgr *--gui* [_action_]108269 -Ref: tlmgr *--gui-lang* _llcode_108676 -Ref: tlmgr *--debug-translation*109359 -Ref: tlmgr *--machine-readable*109562 -Ref: tlmgr *--no-execute-actions*109830 -Ref: tlmgr *--package-logfile* _file_110023 -Ref: tlmgr *--pause*110277 -Ref: tlmgr *--persistent-downloads*110432 -Ref: tlmgr *--no-persistent-downloads*110460 -Ref: tlmgr *--pin-file*110954 -Ref: tlmgr *--usermode*111172 -Ref: tlmgr *--usertree* _dir_111292 -Ref: tlmgr *--verify-repo=[none|main|all]*111418 -Node: tlmgr ACTIONS112317 -Node: tlmgr help113169 -Node: tlmgr version113645 -Node: tlmgr backup113908 -Ref: tlmgr *backup [_option_...] --all*114079 -Ref: tlmgr *backup [_option_...] _pkg_...*114112 -Ref: tlmgr *--backupdir* _directory_114967 -Ref: tlmgr *--all*115184 -Ref: tlmgr *--clean*[=_N_]115436 -Ref: tlmgr *--dry-run*115763 -Node: tlmgr candidates _pkg_115893 -Node: tlmgr check [_option_...] [files|depends|executes|runfiles|all]116239 -Ref: tlmgr *files*116612 -Ref: tlmgr *depends*116747 -Ref: tlmgr *executes*117089 -Ref: tlmgr *runfiles*117207 -Ref: tlmgr *--use-svn*117328 -Node: tlmgr conf117445 -Ref: tlmgr *conf [texmf|tlmgr|updmap [--conffile _file_] [--delete] [_key_ [_value_]]]*117724 -Ref: tlmgr *conf auxtrees [--conffile _file_] [show|add|delete] [_value_]*117788 -Node: tlmgr dump-tlpdb [_option_...] [--json]120133 -Ref: tlmgr *--local*120566 -Ref: tlmgr *--remote*120605 -Ref: tlmgr *--json*120643 -Node: tlmgr generate121214 -Ref: tlmgr *generate [_option_...] language*121410 -Ref: tlmgr *generate [_option_...] language.dat*121449 -Ref: tlmgr *generate [_option_...] language.def*121488 -Ref: tlmgr *generate [_option_...] language.dat.lua*121531 -Ref: tlmgr *--dest* _output_file_123857 -Ref: tlmgr *--localcfg* _local_conf_file_124433 -Ref: tlmgr *--rebuild-sys*124556 -Node: tlmgr gui125371 -Node: tlmgr info125549 -Ref: tlmgr *info [_option_...] _pkg_...*125711 -Ref: tlmgr *info [_option_...] collections*125745 -Ref: tlmgr *info [_option_...] schemes*125775 -Ref: tlmgr *--list*127305 -Ref: tlmgr *--only-installed*127619 -Ref: tlmgr *--data item1,item2,...*127818 -Ref: tlmgr *--json* 1128399 -Node: tlmgr init-usertree128782 -Node: tlmgr install [_option_...] _pkg_...129163 -Ref: tlmgr *--dry-run* 1129673 -Ref: tlmgr *--file*129790 -Ref: tlmgr *--force*130012 -Ref: tlmgr *--no-depends*130232 -Ref: tlmgr *--no-depends-at-all*130391 -Ref: tlmgr *--reinstall*130791 -Ref: tlmgr *--with-doc*131169 -Ref: tlmgr *--with-src*131182 -Node: tlmgr key131704 -Ref: tlmgr *key list*131862 -Ref: tlmgr *key add _file_*131880 -Ref: tlmgr *key remove _keyid_*131902 -Node: tlmgr list132497 -Node: tlmgr option132659 -Ref: tlmgr *option [--json] [show]*132814 -Ref: tlmgr *option [--json] showall*132840 -Ref: tlmgr *option _key_ [_value_]*132866 -Node: tlmgr paper137263 -Ref: tlmgr *paper [a4|letter]*137412 -Ref: tlmgr *[xdvi|pdftex|dvips|dvipdfmx|context|psutils] paper [_papersize_|--list]*137486 -Ref: tlmgr *paper --json*137501 -Node: tlmgr path138716 -Ref: tlmgr *path [--w32mode=user|admin] add*138877 -Ref: tlmgr *path [--w32mode=user|admin] remove*138914 -Node: tlmgr pinning140254 -Ref: tlmgr pinning show140495 -Ref: tlmgr pinning add _repo_ _pkgglob_...140568 -Ref: tlmgr pinning remove _repo_ _pkgglob_...140687 -Ref: tlmgr pinning remove _repo_ --all140840 -Node: tlmgr platform140894 -Ref: tlmgr *platform list|add|remove _platform_...*141080 -Ref: tlmgr *platform set _platform_*141107 -Ref: tlmgr *platform set auto*141128 -Ref: tlmgr *--dry-run* 2142014 -Node: tlmgr postaction142133 -Ref: tlmgr *postaction [_option_...] install [shortcut|fileassoc|script] [_pkg_...]*142363 -Ref: tlmgr *postaction [_option_...] remove [shortcut|fileassoc|script] [_pkg_...]*142437 -Ref: tlmgr *--w32mode=[user|admin]*142752 -Ref: tlmgr *--fileassocmode=[1|2]*143168 -Ref: tlmgr *--all* 1143453 -Node: tlmgr print-platform143508 -Node: tlmgr print-platform-info143839 -Node: tlmgr remove [_option_...] _pkg_...144139 -Ref: tlmgr *--all* 2144623 -Ref: tlmgr *--backup*144733 -Ref: tlmgr *--backupdir* _directory_ 1144759 -Ref: tlmgr *--no-depends* 1145164 -Ref: tlmgr *--no-depends-at-all* 1145226 -Ref: tlmgr *--force* 1145329 -Ref: tlmgr *--dry-run* 3145802 -Node: tlmgr repository145909 -Ref: tlmgr *repository list*146097 -Ref: tlmgr *repository list _path|tag_*146127 -Ref: tlmgr *repository add _path_ [_tag_]*146160 -Ref: tlmgr *repository remove _path|tag_*146192 -Ref: tlmgr *repository set _path_[#_tag_] [_path_[#_tag_] ...]*146246 -Node: tlmgr restore147299 -Ref: tlmgr *restore [_option_...] _pkg_ [_rev_]*147478 -Ref: tlmgr *restore [_option_...] --all*147508 -Ref: tlmgr *--all* 3148208 -Ref: tlmgr *--backupdir* _directory_ 2148422 -Ref: tlmgr *--dry-run* 4148603 -Ref: tlmgr *--force* 2148735 -Ref: tlmgr *--json* 2148781 -Node: tlmgr search149108 -Ref: tlmgr *search [_option_...] _what_*149272 -Ref: tlmgr *search [_option_...] --file _what_*149309 -Ref: tlmgr *search [_option_...] --all _what_*149345 -Ref: tlmgr *--file* 1149565 -Ref: tlmgr *--all* 4149627 -Ref: tlmgr *--global*149716 -Ref: tlmgr *--word*149843 -Node: tlmgr shell150158 -Ref: tlmgr protocol150893 -Ref: tlmgr help 1150957 -Ref: tlmgr version 1151010 -Ref: tlmgr quit, end, bye, byebye, EOF151078 -Ref: tlmgr restart151099 -Ref: tlmgr load [local|remote]151222 -Ref: tlmgr save151292 -Ref: tlmgr get [_var_] =item set [_var_ [_val_]]151415 -Node: tlmgr show152016 -Node: tlmgr uninstall152183 -Node: tlmgr update [_option_...] [_pkg_...]152413 -Ref: tlmgr *--all* 5152784 -Ref: tlmgr *--self*154525 -Ref: tlmgr *--dry-run* 5155289 -Ref: tlmgr *--list* [_pkg_]155466 -Ref: tlmgr *--exclude* _pkg_156155 -Ref: tlmgr *--no-auto-remove* [_pkg_...]156955 -Ref: tlmgr *--no-auto-install* [_pkg_...]157406 -Ref: tlmgr *--reinstall-forcibly-removed*158062 -Ref: tlmgr *--backup* 1158597 -Ref: tlmgr *--backupdir* _directory_ 3158623 -Ref: tlmgr *--no-depends* 2159789 -Ref: tlmgr *--no-depends-at-all* 2159992 -Ref: tlmgr *--force* 3160095 -Node: tlmgr CONFIGURATION FILE FOR TLMGR160910 -Ref: tlmgr auto-remove, value 0 or 1 (default 1), same as command-line option.161923 -Ref: tlmgr gui-expertmode, value 0 or 1 (default 1). This switches between the full GUI and a simplified GUI with only the most common settings.162060 -Ref: tlmgr gui-lang _llcode_, with a language code value as with the command-line option.162142 -Ref: tlmgr no-checksums, value 0 or 1 (default 0, see below).162196 -Ref: tlmgr persistent-downloads, value 0 or 1 (default 1), same as command-line option.162276 -Ref: tlmgr require-verification, value 0 or 1 (default 0), same as command-line option.162356 -Ref: tlmgr update-exclude, value: comma-separated list of packages (no space allowed). Same as the command line option --exclude for the action update.162504 -Ref: tlmgr verify-downloads, value 0 or 1 (default 1), same as command-line option.162580 -Ref: tlmgr allowed-actions _action1_ [,_action_,...] The value is a comma-separated list of tlmgr actions which are allowed to be executed when tlmgr is invoked in system mode (that is, without --usermode).162849 -Node: tlmgr CRYPTOGRAPHIC VERIFICATION163935 -Node: tlmgr Configuration of GnuPG invocation166084 -Node: tlmgr USER MODE166722 -Node: tlmgr User mode install169568 -Node: tlmgr User mode backup, restore, remove, update170712 -Node: tlmgr User mode generate, option, paper171154 -Node: tlmgr MULTIPLE REPOSITORIES171530 -Node: tlmgr Pinning173259 -Node: tlmgr GUI FOR TLMGR175234 -Node: tlmgr Main display176574 -Node: tlmgr Display configuration area176826 -Ref: tlmgr Status177187 -Ref: tlmgr Category177351 -Ref: tlmgr Match177537 -Ref: tlmgr Selection177718 -Ref: tlmgr Display configuration buttons177922 -Node: tlmgr Package list area178105 -Ref: tlmgr a checkbox178689 -Ref: tlmgr package name178825 -Ref: tlmgr local revision (and version)178924 -Ref: tlmgr remote revision (and version)179299 -Ref: tlmgr short description179596 -Node: tlmgr Main display action buttons179641 -Ref: tlmgr Update all installed179907 -Ref: tlmgr Update180279 -Ref: tlmgr Install180329 -Ref: tlmgr Remove180515 -Ref: tlmgr Backup180693 -Node: tlmgr Menu bar180850 -Ref: tlmgr tlmgr menu181073 -Ref: tlmgr Options menu181381 -Ref: tlmgr Actions menu182464 -Ref: tlmgr Help menu182892 -Node: tlmgr GUI options183025 -Ref: tlmgr -background _color_183271 -Ref: tlmgr -font " _fontname_ _fontsize_ "183336 -Ref: tlmgr -foreground _color_183494 -Ref: tlmgr -geometry _geomspec_183546 -Ref: tlmgr -xrm _xresource_183738 -Node: tlmgr MACHINE-READABLE OUTPUT184006 -Node: tlmgr Machine-readable update and install output184816 -Ref: tlmgr location-url _location_186092 -Ref: tlmgr total-bytes _count_186308 -Ref: tlmgr _pkgname_186718 -Ref: tlmgr _status_186928 -Ref: tlmgr d187006 -Ref: tlmgr f187066 -Ref: tlmgr u187245 -Ref: tlmgr r187291 -Ref: tlmgr a187414 -Ref: tlmgr i187592 -Ref: tlmgr I187711 -Ref: tlmgr _localrev_187813 -Ref: tlmgr _serverrev_187920 -Ref: tlmgr _size_188032 -Ref: tlmgr _runtime_188201 -Ref: tlmgr _esttot_188271 -Node: tlmgr Machine-readable option output188304 -Node: tlmgr AUTHORS AND COPYRIGHT188816 -Node: Index189215 +Node: Top-level directories29777 +Node: Autoconf macros32191 +Node: General setup macros32892 +Node: Macros for programs33759 +Node: Macros for compilers34571 +Node: Macros for libraries36005 +Node: Macros for library and header flags36431 +Node: Macros for Windows38311 +Node: Library modules39888 +Node: png library40377 +Node: zlib library42651 +Node: freetype library43166 +Node: kpathsea library43694 +Node: Program modules45093 +Node: t1utils package45521 +Node: xindy package46072 +Node: xdvik package47222 +Node: asymptote48295 +Node: Extending TeX Live48746 +Node: Adding a new program module49523 +Node: Adding a new generic library module52818 +Node: Adding a new TeX-specific library module55031 +Node: Configure options55718 +Node: Global configure options57101 +Node: --disable-native-texlive-build57643 +Node: --prefix --bindir ...58633 +Node: --disable-largefile59173 +Node: --disable-missing59858 +Node: --enable-compiler-warnings=LEVEL60259 +Node: --enable-cxx-runtime-hack60998 +Node: --enable-maintainer-mode61425 +Node: --enable-multiplatform61954 +Node: --enable-shared62492 +Node: --enable-silent-rules62863 +Node: --without-ln-s63319 +Node: --without-x63670 +Node: Program-specific configure options63858 +Node: --enable-PROG --disable-PROG64501 +Node: --disable-all-pkgs64778 +Node: Configure options for texk/web2c65764 +Node: Configure options for texk/bibtex-x68282 +Node: Configure options for texk/dvipdfm-x68825 +Node: Configure options for texk/dvisvgm69598 +Node: Configure options for texk/texlive70484 +Node: Configure options for texk/xdvik70905 +Node: Configure options for utils/xindy71509 +Node: Library-specific configure options72410 +Node: Configure options for kpathsea73421 +Node: Configure options for system poppler74130 +Node: Variables for configure74921 +Node: Coding conventions76349 +Node: Declarations and definitions77088 +Node: Const79270 +Node: Continuous integration81133 +Node: Transfer from Subversion to Github81787 +Node: Automatic update of the Git mirror83969 +Node: CI testing on Travis-CI84557 +Node: install-tl85237 +Node: install-tl NAME85606 +Node: install-tl SYNOPSIS85764 +Node: install-tl DESCRIPTION86022 +Node: install-tl REFERENCES87089 +Node: install-tl OPTIONS87615 +Ref: install-tl *-gui* [[=]_module_]87956 +Ref: install-tl text88166 +Ref: install-tl wizard88289 +Ref: install-tl perltk88443 +Ref: install-tl *-no-gui*88874 +Ref: install-tl *-lang* _llcode_88955 +Ref: install-tl *-repository* _url|path_89642 +Ref: install-tl *-select-repository*91522 +Ref: install-tl *-all-options*91958 +Ref: install-tl *-custom-bin* _path_92213 +Ref: install-tl *-debug-translation*93044 +Ref: install-tl *-force-platform* _platform_93263 +Ref: install-tl *-help*, *--help*, *-?*93507 +Ref: install-tl *-in-place*93914 +Ref: install-tl *-init-from-profile* _profile_file_94459 +Ref: install-tl *-logfile* _file_94679 +Ref: install-tl *-no-cls*95030 +Ref: install-tl *-non-admin*95164 +Ref: install-tl *-persistent-downloads*95269 +Ref: install-tl *-no-persistent-downloads*95297 +Ref: install-tl *-no-verify-downloads*95915 +Ref: install-tl *-portable*96276 +Ref: install-tl *-print-platform*96415 +Ref: install-tl *-profile* _profile_file_96613 +Ref: install-tl *-q*96793 +Ref: install-tl *-scheme* _scheme_96855 +Ref: install-tl *-v*97329 +Ref: install-tl *-version*, *--version*97484 +Node: install-tl PROFILES97615 +Ref: install-tl instopt_adjustpath (default 0 on Unix, 1 on Windows)100265 +Ref: install-tl instopt_adjustrepo (default 1)100341 +Ref: install-tl instopt_letter (default 0)100478 +Ref: install-tl instopt_portable (default 0)100569 +Ref: install-tl instopt_write18_restricted (default 1)100665 +Node: install-tl ENVIRONMENT VARIABLES101984 +Ref: install-tl TEXLIVE_INSTALL_ENV_NOCHECK102375 +Ref: install-tl TEXLIVE_INSTALL_NO_CONTEXT_CACHE102577 +Ref: install-tl TEXLIVE_INSTALL_NO_WELCOME102687 +Ref: install-tl TEXLIVE_INSTALL_PREFIX102808 +Ref: install-tl TEXLIVE_INSTALL_TEXDIR102834 +Ref: install-tl TEXLIVE_INSTALL_TEXMFCONFIG102865 +Ref: install-tl TEXLIVE_INSTALL_TEXMFVAR102893 +Ref: install-tl TEXLIVE_INSTALL_TEXMFHOME102922 +Ref: install-tl TEXLIVE_INSTALL_TEXMFLOCAL102952 +Ref: install-tl TEXLIVE_INSTALL_TEXMFSYSCONFIG102986 +Ref: install-tl TEXLIVE_INSTALL_TEXMFSYSVAR103017 +Ref: install-tl NOPERLDOC103388 +Node: install-tl AUTHORS AND COPYRIGHT103452 +Node: tlmgr103868 +Node: tlmgr NAME104321 +Node: tlmgr SYNOPSIS104453 +Node: tlmgr DESCRIPTION104643 +Node: tlmgr EXAMPLES105739 +Ref: tlmgr tlmgr option repository ctan105990 +Ref: tlmgr tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet106062 +Ref: tlmgr tlmgr update --list106514 +Ref: tlmgr tlmgr update --all106607 +Ref: tlmgr tlmgr info _what_106764 +Node: tlmgr OPTIONS107026 +Ref: tlmgr *--repository* _url|path_107546 +Ref: tlmgr *--gui* [_action_]108271 +Ref: tlmgr *--gui-lang* _llcode_108678 +Ref: tlmgr *--debug-translation*109361 +Ref: tlmgr *--machine-readable*109564 +Ref: tlmgr *--no-execute-actions*109832 +Ref: tlmgr *--package-logfile* _file_110025 +Ref: tlmgr *--pause*110279 +Ref: tlmgr *--persistent-downloads*110434 +Ref: tlmgr *--no-persistent-downloads*110462 +Ref: tlmgr *--pin-file*110956 +Ref: tlmgr *--usermode*111174 +Ref: tlmgr *--usertree* _dir_111294 +Ref: tlmgr *--verify-repo=[none|main|all]*111420 +Node: tlmgr ACTIONS112319 +Node: tlmgr help113171 +Node: tlmgr version113647 +Node: tlmgr backup113910 +Ref: tlmgr *backup [_option_...] --all*114081 +Ref: tlmgr *backup [_option_...] _pkg_...*114114 +Ref: tlmgr *--backupdir* _directory_114969 +Ref: tlmgr *--all*115186 +Ref: tlmgr *--clean*[=_N_]115438 +Ref: tlmgr *--dry-run*115765 +Node: tlmgr candidates _pkg_115895 +Node: tlmgr check [_option_...] [files|depends|executes|runfiles|all]116241 +Ref: tlmgr *files*116614 +Ref: tlmgr *depends*116749 +Ref: tlmgr *executes*117091 +Ref: tlmgr *runfiles*117209 +Ref: tlmgr *--use-svn*117330 +Node: tlmgr conf117447 +Ref: tlmgr *conf [texmf|tlmgr|updmap [--conffile _file_] [--delete] [_key_ [_value_]]]*117726 +Ref: tlmgr *conf auxtrees [--conffile _file_] [show|add|delete] [_value_]*117790 +Node: tlmgr dump-tlpdb [_option_...] [--json]120135 +Ref: tlmgr *--local*120568 +Ref: tlmgr *--remote*120607 +Ref: tlmgr *--json*120645 +Node: tlmgr generate121216 +Ref: tlmgr *generate [_option_...] language*121412 +Ref: tlmgr *generate [_option_...] language.dat*121451 +Ref: tlmgr *generate [_option_...] language.def*121490 +Ref: tlmgr *generate [_option_...] language.dat.lua*121533 +Ref: tlmgr *--dest* _output_file_123859 +Ref: tlmgr *--localcfg* _local_conf_file_124435 +Ref: tlmgr *--rebuild-sys*124558 +Node: tlmgr gui125373 +Node: tlmgr info125551 +Ref: tlmgr *info [_option_...] _pkg_...*125713 +Ref: tlmgr *info [_option_...] collections*125747 +Ref: tlmgr *info [_option_...] schemes*125777 +Ref: tlmgr *--list*127307 +Ref: tlmgr *--only-installed*127621 +Ref: tlmgr *--data item1,item2,...*127820 +Ref: tlmgr *--json* 1128401 +Node: tlmgr init-usertree128784 +Node: tlmgr install [_option_...] _pkg_...129165 +Ref: tlmgr *--dry-run* 1129675 +Ref: tlmgr *--file*129792 +Ref: tlmgr *--force*130014 +Ref: tlmgr *--no-depends*130234 +Ref: tlmgr *--no-depends-at-all*130393 +Ref: tlmgr *--reinstall*130793 +Ref: tlmgr *--with-doc*131171 +Ref: tlmgr *--with-src*131184 +Node: tlmgr key131706 +Ref: tlmgr *key list*131864 +Ref: tlmgr *key add _file_*131882 +Ref: tlmgr *key remove _keyid_*131904 +Node: tlmgr list132499 +Node: tlmgr option132661 +Ref: tlmgr *option [--json] [show]*132816 +Ref: tlmgr *option [--json] showall*132842 +Ref: tlmgr *option _key_ [_value_]*132868 +Node: tlmgr paper137265 +Ref: tlmgr *paper [a4|letter]*137414 +Ref: tlmgr *[xdvi|pdftex|dvips|dvipdfmx|context|psutils] paper [_papersize_|--list]*137488 +Ref: tlmgr *paper --json*137503 +Node: tlmgr path138718 +Ref: tlmgr *path [--w32mode=user|admin] add*138879 +Ref: tlmgr *path [--w32mode=user|admin] remove*138916 +Node: tlmgr pinning140256 +Ref: tlmgr pinning show140497 +Ref: tlmgr pinning add _repo_ _pkgglob_...140570 +Ref: tlmgr pinning remove _repo_ _pkgglob_...140689 +Ref: tlmgr pinning remove _repo_ --all140842 +Node: tlmgr platform140896 +Ref: tlmgr *platform list|add|remove _platform_...*141082 +Ref: tlmgr *platform set _platform_*141109 +Ref: tlmgr *platform set auto*141130 +Ref: tlmgr *--dry-run* 2142016 +Node: tlmgr postaction142135 +Ref: tlmgr *postaction [_option_...] install [shortcut|fileassoc|script] [_pkg_...]*142365 +Ref: tlmgr *postaction [_option_...] remove [shortcut|fileassoc|script] [_pkg_...]*142439 +Ref: tlmgr *--w32mode=[user|admin]*142754 +Ref: tlmgr *--fileassocmode=[1|2]*143170 +Ref: tlmgr *--all* 1143455 +Node: tlmgr print-platform143510 +Node: tlmgr print-platform-info143841 +Node: tlmgr remove [_option_...] _pkg_...144141 +Ref: tlmgr *--all* 2144625 +Ref: tlmgr *--backup*144735 +Ref: tlmgr *--backupdir* _directory_ 1144761 +Ref: tlmgr *--no-depends* 1145166 +Ref: tlmgr *--no-depends-at-all* 1145228 +Ref: tlmgr *--force* 1145331 +Ref: tlmgr *--dry-run* 3145804 +Node: tlmgr repository145911 +Ref: tlmgr *repository list*146099 +Ref: tlmgr *repository list _path|tag_*146129 +Ref: tlmgr *repository add _path_ [_tag_]*146162 +Ref: tlmgr *repository remove _path|tag_*146194 +Ref: tlmgr *repository set _path_[#_tag_] [_path_[#_tag_] ...]*146248 +Node: tlmgr restore147301 +Ref: tlmgr *restore [_option_...] _pkg_ [_rev_]*147480 +Ref: tlmgr *restore [_option_...] --all*147510 +Ref: tlmgr *--all* 3148210 +Ref: tlmgr *--backupdir* _directory_ 2148424 +Ref: tlmgr *--dry-run* 4148605 +Ref: tlmgr *--force* 2148737 +Ref: tlmgr *--json* 2148783 +Node: tlmgr search149110 +Ref: tlmgr *search [_option_...] _what_*149274 +Ref: tlmgr *search [_option_...] --file _what_*149311 +Ref: tlmgr *search [_option_...] --all _what_*149347 +Ref: tlmgr *--file* 1149567 +Ref: tlmgr *--all* 4149629 +Ref: tlmgr *--global*149718 +Ref: tlmgr *--word*149845 +Node: tlmgr shell150160 +Ref: tlmgr protocol150895 +Ref: tlmgr help 1150959 +Ref: tlmgr version 1151012 +Ref: tlmgr quit, end, bye, byebye, EOF151080 +Ref: tlmgr restart151101 +Ref: tlmgr load [local|remote]151224 +Ref: tlmgr save151294 +Ref: tlmgr get [_var_] =item set [_var_ [_val_]]151417 +Node: tlmgr show152018 +Node: tlmgr uninstall152185 +Node: tlmgr update [_option_...] [_pkg_...]152415 +Ref: tlmgr *--all* 5152786 +Ref: tlmgr *--self*154527 +Ref: tlmgr *--dry-run* 5155291 +Ref: tlmgr *--list* [_pkg_]155468 +Ref: tlmgr *--exclude* _pkg_156157 +Ref: tlmgr *--no-auto-remove* [_pkg_...]156957 +Ref: tlmgr *--no-auto-install* [_pkg_...]157408 +Ref: tlmgr *--reinstall-forcibly-removed*158064 +Ref: tlmgr *--backup* 1158599 +Ref: tlmgr *--backupdir* _directory_ 3158625 +Ref: tlmgr *--no-depends* 2159791 +Ref: tlmgr *--no-depends-at-all* 2159994 +Ref: tlmgr *--force* 3160097 +Node: tlmgr CONFIGURATION FILE FOR TLMGR160912 +Ref: tlmgr auto-remove, value 0 or 1 (default 1), same as command-line option.161925 +Ref: tlmgr gui-expertmode, value 0 or 1 (default 1). This switches between the full GUI and a simplified GUI with only the most common settings.162062 +Ref: tlmgr gui-lang _llcode_, with a language code value as with the command-line option.162144 +Ref: tlmgr no-checksums, value 0 or 1 (default 0, see below).162198 +Ref: tlmgr persistent-downloads, value 0 or 1 (default 1), same as command-line option.162278 +Ref: tlmgr require-verification, value 0 or 1 (default 0), same as command-line option.162358 +Ref: tlmgr update-exclude, value: comma-separated list of packages (no space allowed). Same as the command line option --exclude for the action update.162506 +Ref: tlmgr verify-downloads, value 0 or 1 (default 1), same as command-line option.162582 +Ref: tlmgr allowed-actions _action1_ [,_action_,...] The value is a comma-separated list of tlmgr actions which are allowed to be executed when tlmgr is invoked in system mode (that is, without --usermode).162851 +Node: tlmgr CRYPTOGRAPHIC VERIFICATION163937 +Node: tlmgr Configuration of GnuPG invocation166086 +Node: tlmgr USER MODE166724 +Node: tlmgr User mode install169570 +Node: tlmgr User mode backup, restore, remove, update170714 +Node: tlmgr User mode generate, option, paper171156 +Node: tlmgr MULTIPLE REPOSITORIES171532 +Node: tlmgr Pinning173261 +Node: tlmgr GUI FOR TLMGR175236 +Node: tlmgr Main display176576 +Node: tlmgr Display configuration area176828 +Ref: tlmgr Status177189 +Ref: tlmgr Category177353 +Ref: tlmgr Match177539 +Ref: tlmgr Selection177720 +Ref: tlmgr Display configuration buttons177924 +Node: tlmgr Package list area178107 +Ref: tlmgr a checkbox178691 +Ref: tlmgr package name178827 +Ref: tlmgr local revision (and version)178926 +Ref: tlmgr remote revision (and version)179301 +Ref: tlmgr short description179598 +Node: tlmgr Main display action buttons179643 +Ref: tlmgr Update all installed179909 +Ref: tlmgr Update180281 +Ref: tlmgr Install180331 +Ref: tlmgr Remove180517 +Ref: tlmgr Backup180695 +Node: tlmgr Menu bar180852 +Ref: tlmgr tlmgr menu181075 +Ref: tlmgr Options menu181383 +Ref: tlmgr Actions menu182466 +Ref: tlmgr Help menu182894 +Node: tlmgr GUI options183027 +Ref: tlmgr -background _color_183273 +Ref: tlmgr -font " _fontname_ _fontsize_ "183338 +Ref: tlmgr -foreground _color_183496 +Ref: tlmgr -geometry _geomspec_183548 +Ref: tlmgr -xrm _xresource_183740 +Node: tlmgr MACHINE-READABLE OUTPUT184008 +Node: tlmgr Machine-readable update and install output184818 +Ref: tlmgr location-url _location_186094 +Ref: tlmgr total-bytes _count_186310 +Ref: tlmgr _pkgname_186720 +Ref: tlmgr _status_186930 +Ref: tlmgr d187008 +Ref: tlmgr f187068 +Ref: tlmgr u187247 +Ref: tlmgr r187293 +Ref: tlmgr a187416 +Ref: tlmgr i187594 +Ref: tlmgr I187713 +Ref: tlmgr _localrev_187815 +Ref: tlmgr _serverrev_187922 +Ref: tlmgr _size_188034 +Ref: tlmgr _runtime_188203 +Ref: tlmgr _esttot_188273 +Node: tlmgr Machine-readable option output188306 +Node: tlmgr AUTHORS AND COPYRIGHT188818 +Node: Index189217 End Tag Table diff --git a/source/libs/Makefile.in b/source/libs/Makefile.in index 00d43edeee0f0880eaa76a6f46400eb3d047be10..d0df468c622700298dc12d8507d98ccf9fcf73ad 100644 --- a/source/libs/Makefile.in +++ b/source/libs/Makefile.in @@ -111,7 +111,6 @@ am__aclocal_m4_deps = $(top_srcdir)/../m4/kpse-common.m4 \ $(top_srcdir)/../libs/zziplib/ac/withenable.ac \ $(top_srcdir)/../libs/libpng/ac/withenable.ac \ $(top_srcdir)/../libs/luajit/ac/withenable.ac \ - $(top_srcdir)/../libs/lua52/ac/withenable.ac \ $(top_srcdir)/../libs/lua53/ac/withenable.ac \ $(top_srcdir)/../libs/zlib/ac/withenable.ac \ $(top_srcdir)/../texk/kpathsea/ac/withenable.ac \ diff --git a/source/libs/README b/source/libs/README index 0d4a6ab02ccb99f36af045126af0e5de40c4937d..ec47781e585fa4b0bf1cd64e1a2572e65ee4514f 100644 --- a/source/libs/README +++ b/source/libs/README @@ -1,4 +1,4 @@ -$Id: README 48527 2018-08-31 23:11:41Z karl $ +$Id: README 49473 2018-12-22 00:39:38Z kakuto $ Public domain. Originally created by Karl Berry, 2005. Libraries we compile for TeX Live. @@ -9,7 +9,7 @@ bypassing or using the original one. See also comments in ../texk/README. -cairo 1.14.12 - checked 07dec17 +cairo 1.16.0 - checked 20oct18 http://cairographics.org/releases/ freetype2 2.9.1 - checked 04may18 @@ -21,11 +21,11 @@ gd 2.2.5 - checked 30aug17 gmp 6.1.2 - checked 16dec16 http://ftp.gnu.org/gnu/gmp/ -graphite2 1.3.12 - checked 16aug18 +graphite2 1.3.13 - checked 21dec18 http://sourceforge.net/projects/silgraphite/files/graphite2/ (requires C++11) -harfbuzz 1.8.8 - checked 15aug18 +harfbuzz 2.3.0 - checked 22dec18 http://www.freedesktop.org/software/harfbuzz/release/ icu 61.1 - checked 29mar18 @@ -34,23 +34,26 @@ icu 61.1 - checked 29mar18 libpaper 1.1.24+nmu2 - checked 24oct13 ftp://ftp.de.debian.org/debian/pool/main/libp/libpaper/ -libpng 1.6.35 - checked 17jul18 +libpng 1.6.36 - checked 02dec18 https://sourceforge.net/projects/libpng/files/ - used by many -lua 5.2.3 - checked 11mar15 +lua 5.2.4 - checked 11mar15 http://www.lua.org/ftp/ -luajit 2.1.0-beta2 - checked 09mar16 - http://luajit.org/download/LuaJIT-2.1.0-beta1.tar.gz +lua 5.3.5 - checked 21jul18 + http://www.lua.org/ftp/ + +luajit 2.1.0-beta3 - checked 20jun17 + http://luajit.org/download/LuaJIT-2.1.0-beta3.tar.gz mpfr 4.0.1 - checked 10feb18 http://ftp.gnu.org/gnu/mpfr/ -pixman 0.34.0 - checked 04feb16 +pixman 0.36.0 - checked 22nov18 http://cairographics.org/releases/ poppler 0.68.0 - checked 20aug18 - http://poppler.freedesktop.org/ - used by luatex and xetex + http://poppler.freedesktop.org/ - used by xetex (requires C++11) teckit 2.5.8 - checked 24jul18 diff --git a/source/libs/configure b/source/libs/configure index ab496ae93cc35b4b1d0a60998124212734c659c2..622c42994a722783916391463a30914f3a3a253d 100755 --- a/source/libs/configure +++ b/source/libs/configure @@ -3686,9 +3686,6 @@ test "x$need_libpng" = xyes && { ## libs/luajit/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/luajit/ ## configure options and TL libraries required for luajit -## libs/lua52/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/lua52/ -## configure options and TL libraries required for lua52 - ## libs/lua53/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/lua53/ ## configure options and TL libraries required for lua53 @@ -4317,6 +4314,7 @@ else fi ;; esac +##tldbg KPSE_BASIC: Remember libs () as Kpse_Package (for future messages). if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output @@ -4673,7 +4671,7 @@ WARNING_CFLAGS=$kpse_cv_warning_cflags { $as_echo "$as_me:${as_lineno-$LINENO}: checking for generic libraries to build" >&5 $as_echo_n "checking for generic libraries to build... " >&6; } -echo 'dbg:_KPSE_RECURSE called: list=libs, text=generic libraries, cond=test "x$with_system_Kpse_pkg" != xyes && test "x$need_Kpse_pkg" = xyes, prefix=.' >&5 +echo 'tldbg:_KPSE_RECURSE called: list=libs, text=generic libraries, cond=test "x$with_system_[]Kpse_pkg" != xyes && test "x$need_[]Kpse_pkg" = xyes, prefix=.' >&5 MAKE_SUBDIRS= CONF_SUBDIRS= if test -x $srcdir/zziplib/configure; then @@ -4688,10 +4686,6 @@ if test -x $srcdir/luajit/configure; then test "x$with_system_luajit" != xyes && test "x$need_luajit" = xyes && MAKE_SUBDIRS="luajit $MAKE_SUBDIRS" CONF_SUBDIRS="luajit $CONF_SUBDIRS" fi -if test -x $srcdir/lua52/configure; then - test "x$with_system_lua52" != xyes && test "x$need_lua52" = xyes && MAKE_SUBDIRS="lua52 $MAKE_SUBDIRS" - CONF_SUBDIRS="lua52 $CONF_SUBDIRS" -fi if test -x $srcdir/lua53/configure; then test "x$with_system_lua53" != xyes && test "x$need_lua53" = xyes && MAKE_SUBDIRS="lua53 $MAKE_SUBDIRS" CONF_SUBDIRS="lua53 $CONF_SUBDIRS" diff --git a/source/libs/libpng/ChangeLog b/source/libs/libpng/ChangeLog index c424365b3118ef1020c22f88b92a28dca46e8e55..d46f26fabb73ba0f6b7fe89244ae01771802a6ed 100644 --- a/source/libs/libpng/ChangeLog +++ b/source/libs/libpng/ChangeLog @@ -1,3 +1,8 @@ +2018-12-02 Akira Kakuto <kakuto@fuk.kindai.ac.jp> + + Import libpng-1.6.36. + * version.ac: Adjust. + 2018-07-17 Akira Kakuto <kakuto@fuk.kindai.ac.jp> Import libpng-1.6.35. diff --git a/source/libs/libpng/README b/source/libs/libpng/README index 5cba5b7fa790e6d3f3c723cbbc11bdc73ebea206..39ad2e137a8fdc5e007fd4ff221b7a533347f776 100644 --- a/source/libs/libpng/README +++ b/source/libs/libpng/README @@ -1,4 +1,4 @@ - Building libpng-1.6.35 as part of the TL tree + Building libpng-1.6.36 as part of the TL tree ============================================= This directory libs/libpng/ uses a proxy Makefile.am to build the libpng library @@ -14,4 +14,4 @@ copied to libs/libpng/configure.ac. ============================= 2009-07-23 Peter Breitenlohner <peb@mppmu.mpg.de> -2018-07-17 Akira Kakuto <kakuto@fuk.kindai.ac.jp> +2018-12-02 Akira Kakuto <kakuto@fuk.kindai.ac.jp> diff --git a/source/libs/libpng/TLpatches/ChangeLog b/source/libs/libpng/TLpatches/ChangeLog index 30e2bd745b4bf8c01f75704d5cea4139ce02be7d..019b749e2da889ec04aebf923745963f078969da 100644 --- a/source/libs/libpng/TLpatches/ChangeLog +++ b/source/libs/libpng/TLpatches/ChangeLog @@ -1,3 +1,7 @@ +2018-12-02 Akira Kakuto <kakuto@fuk.kindai.ac.jp> + + Import libpng-1.6.36. + 2018-07-17 Akira Kakuto <kakuto@fuk.kindai.ac.jp> Import libpng-1.6.35. diff --git a/source/libs/libpng/TLpatches/TL-Changes b/source/libs/libpng/TLpatches/TL-Changes index 3b4b3224d693c330fe1c47964724343ebb939f78..5be3936c527dbbbe8d7b18b75e8171950e82a0a9 100644 --- a/source/libs/libpng/TLpatches/TL-Changes +++ b/source/libs/libpng/TLpatches/TL-Changes @@ -1,5 +1,5 @@ -Changes applied to the libpng-1.6.35/ tree as obtained from: - https://sourceforge.net/projects/libpng/files/libpng16/1.6.35/ +Changes applied to the libpng-1.6.36/ tree as obtained from: + https://sourceforge.net/projects/libpng/files/libpng16/1.6.36/ Copied: scripts/pnglibconf.h.prebuilt -> pnglibconf.h diff --git a/source/libs/libpng/configure b/source/libs/libpng/configure index c112de40d6304df985beae2614f79ffe5e14d0be..2bde70c5ce8e093e6b7d0fa22611712b95679b5a 100755 --- a/source/libs/libpng/configure +++ b/source/libs/libpng/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for libpng (TeX Live) 1.6.35. +# Generated by GNU Autoconf 2.69 for libpng (TeX Live) 1.6.36. # # Report bugs to <tex-k@tug.org>. # @@ -580,8 +580,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='libpng (TeX Live)' PACKAGE_TARNAME='libpng--tex-live-' -PACKAGE_VERSION='1.6.35' -PACKAGE_STRING='libpng (TeX Live) 1.6.35' +PACKAGE_VERSION='1.6.36' +PACKAGE_STRING='libpng (TeX Live) 1.6.36' PACKAGE_BUGREPORT='tex-k@tug.org' PACKAGE_URL='' @@ -1297,7 +1297,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libpng (TeX Live) 1.6.35 to adapt to many kinds of systems. +\`configure' configures libpng (TeX Live) 1.6.36 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1364,7 +1364,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libpng (TeX Live) 1.6.35:";; + short | recursive ) echo "Configuration of libpng (TeX Live) 1.6.36:";; esac cat <<\_ACEOF @@ -1478,7 +1478,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libpng (TeX Live) configure 1.6.35 +libpng (TeX Live) configure 1.6.36 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1901,7 +1901,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libpng (TeX Live) $as_me 1.6.35, which was +It was created by libpng (TeX Live) $as_me 1.6.36, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3801,6 +3801,7 @@ else fi ;; esac +##tldbg KPSE_BASIC: Remember libpng () as Kpse_Package (for future messages). if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output @@ -3824,7 +3825,7 @@ fi # Define the identity of the package. PACKAGE='libpng--tex-live-' - VERSION='1.6.35' + VERSION='1.6.36' cat >>confdefs.h <<_ACEOF @@ -4991,7 +4992,7 @@ $as_echo "no, using $LN_S" >&6; } fi -echo 'dbg:_KPSE_COMPILER_VISIBILITY called.' >&5 +echo 'tldbg:KPSE_COMPILER_VISIBILITY called.' >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for C to hide external symbols" >&5 $as_echo_n "checking CFLAGS for C to hide external symbols... " >&6; } if ${kpse_cv_visibility_cflags+:} false; then : @@ -5853,11 +5854,13 @@ fi kpse_save_CPPFLAGS=$CPPFLAGS kpse_save_LIBS=$LIBS -## _KPSE_INIT: Initialize TL infrastructure +##tldbg _KPSE_INIT: Initialize TL infrastructure. kpse_BLD=`(cd "./../../." && pwd)` kpse_SRC=`(cd "$srcdir/../../." && pwd)` -## _KPSE_LIB_FLAGS: Setup zlib (-lz) flags +##tldbg _KPSE_LIB_FLAGS: Setup zlib (-lz) flags. +echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=zlib, libname=z, options=, tlincl=-IBLD/libs/zlib/include, tllib=BLD/libs/zlib/libz.a, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/zlib/include/zconf.h.' >&5 +##tldbg _KPSE_LIB_FLAGS_TL: zlib (z) . # Check whether --with-system-zlib was given. if test "${with_system_zlib+set}" = set; then : @@ -5874,7 +5877,8 @@ if test "${with_zlib_libdir+set}" = set; then : withval=$with_zlib_libdir; fi if test "x$with_system_zlib" = xyes; then - if test "x$with_zlib_includes" != x && test "x$with_zlib_includes" != xyes; then + ##tldbg _KPSE_LIB_FLAGS_SYSTEM: zlib (z). +if test "x$with_zlib_includes" != x && test "x$with_zlib_includes" != xyes; then ZLIB_INCLUDES="-I$with_zlib_includes" fi ZLIB_LIBS="-lz" @@ -6578,7 +6582,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libpng (TeX Live) $as_me 1.6.35, which was +This file was extended by libpng (TeX Live) $as_me 1.6.36, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -6644,7 +6648,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -libpng (TeX Live) config.status 1.6.35 +libpng (TeX Live) config.status 1.6.36 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/source/libs/libpng/libpng-src/ANNOUNCE b/source/libs/libpng/libpng-src/ANNOUNCE index 9fc9021b5a89f0ce8ebff3d94caa447563c5d3e3..f1724c0d0d9fc2bfa1f3efd8068c2a4d94ce968f 100644 --- a/source/libs/libpng/libpng-src/ANNOUNCE +++ b/source/libs/libpng/libpng-src/ANNOUNCE @@ -1,48 +1,77 @@ -Libpng 1.6.35 - July 15, 2018 +libpng 1.6.36 - December 1, 2018 +================================ This is a public release of libpng, intended for use in production code. -Files available for download: + +Files available for download +---------------------------- Source files with LF line endings (for Unix/Linux): - libpng-1.6.35.tar.xz (LZMA-compressed, recommended) - libpng-1.6.35.tar.gz + * libpng-1.6.36.tar.xz (LZMA-compressed, recommended) + * libpng-1.6.36.tar.gz Source files with CRLF line endings (for Windows): - lp1635.7z (LZMA-compressed, recommended) - lp1635.zip + * lp1636.7z (LZMA-compressed, recommended) + * lp1636.zip Other information: - libpng-1.6.35-README.txt - libpng-1.6.35-LICENSE.txt - -Changes since the last public release (1.6.34): - - Restored 21 of the contrib/pngsuite/i*.png, which do not cause test - failures. Placed the remainder in contrib/pngsuite/interlaced/i*.png. - Added calls to png_set_*() transforms commonly used by browsers to - the fuzzer. - Removed some unnecessary brackets in pngrtran.c - Fixed miscellaneous typos (Patch by github user "luzpaz"). - Change "ASM C" to "C ASM" in CMakeLists.txt - Fixed incorrect handling of bKGD chunk in sub-8-bit files (Cosmin) - Added hardware optimization directories to zip and 7z distributions. - Fixed incorrect bitmask for options. - Fixed many spelling typos. - Make png_get_iCCP consistent with man page (allow compression-type argument - to be NULL, bug report by Lenard Szolnoki). - Replaced the remaining uses of png_size_t with size_t (Cosmin) - Fixed the calculation of row_factor in png_check_chunk_length - (reported by Thuan Pham in SourceForge issue #278) - Added missing parentheses to a macro definition - (suggested by "irwir" in GitHub issue #216) - -Send comments/corrections/commendations to png-mng-implement at lists.sf.net -(subscription required; visit -https://lists.sourceforge.net/lists/listinfo/png-mng-implement -to subscribe). + * README.md + * LICENSE.md + * AUTHORS.md + * TRADEMARK.md + + +IMPORTANT licensing update: libpng license v2 +--------------------------------------------- + +The new libpng license comprises the terms and conditions from the zlib +license, and the disclaimer from the Boost license. + +The legacy libpng license, used until libpng-1.6.35, is appended to the +new license, following the precedent established in the Python Software +Foundation License version 2. -Glenn R-P +From now on, the list of contributing authors shall be maintained in a +separate AUTHORS file. The lists of previous contributing authors, +mentioned in the legacy libpng license and considered to be an integral +part of that license, are kept intact, with no further updates. + + +Changes since the previous public release (version 1.6.35) +---------------------------------------------------------- + + * Optimized png_do_expand_palette for ARM processors. + Improved performance by around 10-22% on a recent ARM Chromebook. + (Contributed by Richard Townsend, ARM Holdings) + * Fixed manipulation of machine-specific optimization options. + (Contributed by Vicki Pfau) + * Used memcpy instead of manual pointer arithmetic on Intel SSE2. + (Contributed by Samuel Williams) + * Fixed build errors with MSVC on ARM64. + (Contributed by Zhijie Liang) + * Fixed detection of libm in CMakeLists. + (Contributed by Cameron Cawley) + * Fixed incorrect creation of pkg-config file in CMakeLists. + (Contributed by Kyle Bentley) + * Fixed the CMake build on Windows MSYS by avoiding symlinks. + * Fixed a build warning on OpenBSD. + (Contributed by Theo Buehler) + * Fixed various typos in comments. + (Contributed by "luz.paz") + * Raised the minimum required CMake version from 3.0.2 to 3.1. + * Removed yet more of the vestigial support for pre-ANSI C compilers. + * Removed ancient makefiles for ancient systems that have been broken + across all previous libpng-1.6.x versions. + * Removed the Y2K compliance statement and the export control + information. + * Applied various code style and documentation fixes. + + +Send comments/corrections/commendations to png-mng-implement at lists.sf.net. +Subscription is required; visit +https://lists.sourceforge.net/lists/listinfo/png-mng-implement +to subscribe. diff --git a/source/libs/libpng/libpng-src/AUTHORS b/source/libs/libpng/libpng-src/AUTHORS new file mode 100644 index 0000000000000000000000000000000000000000..79a3d1036144407c98479f109c1d29057670a1b1 --- /dev/null +++ b/source/libs/libpng/libpng-src/AUTHORS @@ -0,0 +1,45 @@ +PNG REFERENCE LIBRARY AUTHORS +============================= + +This is the list of PNG Reference Library ("libpng") Contributing +Authors, for copyright and licensing purposes. + + * Andreas Dilger + * Cosmin Truta + * Dave Martindale + * Eric S. Raymond + * Gilles Vollant + * Glenn Randers-Pehrson + * Greg Roelofs + * Guy Eric Schalnat + * James Yu + * John Bowler + * Kevin Bracey + * Magnus Holmgren + * Mandar Sahastrabuddhe + * Mans Rullgard + * Matt Sarett + * Mike Klein + * Paul Schmidt + * Sam Bushell + * Samuel Williams + * Simon-Pierre Cadieux + * Tim Wegner + * Tom Lane + * Tom Tanner + * Vadim Barkov + * Willem van Schaik + * Zhijie Liang + * Arm Holdings + - Richard Townsend + * Google Inc. + - Matt Sarett + - Mike Klein + +The build projects, the build scripts, the test scripts, and other +files in the "projects", "scripts" and "tests" directories, have other +copyright owners, but are released under the libpng license. + +Some files in the "contrib" directory, and some tools-generated files +that are distributed with libpng, have other copyright owners, and are +released under other open source licenses. diff --git a/source/libs/libpng/libpng-src/CHANGES b/source/libs/libpng/libpng-src/CHANGES index 0ed6a11872909bd0717270bd9953095284c1acc8..bdd44806549fd961bddd427b129103fed30869fd 100644 --- a/source/libs/libpng/libpng-src/CHANGES +++ b/source/libs/libpng/libpng-src/CHANGES @@ -6063,9 +6063,34 @@ Version 1.6.35 [July 15, 2018] Added missing parentheses to a macro definition (suggested by "irwir" in GitHub issue #216) +Version 1.6.36 [December 1, 2018] + Optimized png_do_expand_palette for ARM processors. + Improved performance by around 10-22% on a recent ARM Chromebook. + (Contributed by Richard Townsend, ARM Holdings) + Fixed manipulation of machine-specific optimization options. + (Contributed by Vicki Pfau) + Used memcpy instead of manual pointer arithmetic on Intel SSE2. + (Contributed by Samuel Williams) + Fixed build errors with MSVC on ARM64. + (Contributed by Zhijie Liang) + Fixed detection of libm in CMakeLists. + (Contributed by Cameron Cawley) + Fixed incorrect creation of pkg-config file in CMakeLists. + (Contributed by Kyle Bentley) + Fixed the CMake build on Windows MSYS by avoiding symlinks. + Fixed a build warning on OpenBSD. + (Contributed by Theo Buehler) + Fixed various typos in comments. + (Contributed by "luz.paz") + Raised the minimum required CMake version from 3.0.2 to 3.1. + Removed yet more of the vestigial support for pre-ANSI C compilers. + Removed ancient makefiles for ancient systems that have been broken + across all previous libpng-1.6.x versions. + Removed the Y2K compliance statement and the export control + information. + Applied various code style and documentation fixes. + Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit https://lists.sourceforge.net/lists/listinfo/png-mng-implement to subscribe). - -Glenn R-P diff --git a/source/libs/libpng/libpng-src/CMakeLists.txt b/source/libs/libpng/libpng-src/CMakeLists.txt index 4db9bb87ded4cd24e3bb20d4b8521e90c209e9cb..73044c96771b1c0777c4d12454efb06c2251f420 100644 --- a/source/libs/libpng/libpng-src/CMakeLists.txt +++ b/source/libs/libpng/libpng-src/CMakeLists.txt @@ -1,42 +1,32 @@ # CMakeLists.txt +# Copyright (C) 2018 Cosmin Truta # Copyright (C) 2007,2009-2018 Glenn Randers-Pehrson # Written by Christian Ehrlicher, 2007 # Revised by Roger Lowman, 2009-2010 -# Revised by Clifford Yapp, 2011-2012 +# Revised by Clifford Yapp, 2011-2012,2017 # Revised by Roger Leigh, 2016 # Revised by Andreas Franek, 2016 +# Revised by Sam Serrels, 2017 +# Revised by Vadim Barkov, 2017 +# Revised by Vicky Pfau, 2018 +# Revised by Cameron Cawley, 2018 +# Revised by Cosmin Truta, 2018 +# Revised by Kyle Bentley, 2018 # This code is released under the libpng license. # For conditions of distribution and use, see the disclaimer # and license in png.h -cmake_minimum_required(VERSION 3.0.2) -cmake_policy(VERSION 3.0.2) - -# Set MacOSX @rpath usage globally. -if (POLICY CMP0020) - cmake_policy(SET CMP0020 NEW) -endif(POLICY CMP0020) -if (POLICY CMP0042) - cmake_policy(SET CMP0042 NEW) -endif(POLICY CMP0042) -# Use new variable expansion policy. -if (POLICY CMP0053) - cmake_policy(SET CMP0053 NEW) -endif(POLICY CMP0053) -if (POLICY CMP0054) - cmake_policy(SET CMP0054 NEW) -endif(POLICY CMP0054) - -set(CMAKE_CONFIGURATION_TYPES "Release;Debug;MinSizeRel;RelWithDebInfo") +cmake_minimum_required(VERSION 3.1) +cmake_policy(VERSION 3.1) project(libpng C ASM) enable_testing() set(PNGLIB_MAJOR 1) set(PNGLIB_MINOR 6) -set(PNGLIB_RELEASE 35) +set(PNGLIB_RELEASE 36) set(PNGLIB_NAME libpng${PNGLIB_MAJOR}${PNGLIB_MINOR}) set(PNGLIB_VERSION ${PNGLIB_MAJOR}.${PNGLIB_MINOR}.${PNGLIB_RELEASE}) @@ -44,25 +34,19 @@ include(GNUInstallDirs) # needed packages -#Allow users to specify location of Zlib, -# Useful if zlib is being built alongside this as a sub-project +# Allow users to specify location of Zlib. +# Useful if zlib is being built alongside this as a sub-project. option(PNG_BUILD_ZLIB "Custom zlib Location, else find_package is used" OFF) -IF(NOT PNG_BUILD_ZLIB) +if(NOT PNG_BUILD_ZLIB) find_package(ZLIB REQUIRED) include_directories(${ZLIB_INCLUDE_DIR}) -ENDIF(NOT PNG_BUILD_ZLIB) - -if(NOT WIN32) - find_library(M_LIBRARY - NAMES m - PATHS /usr/lib /usr/local/lib - ) - if(NOT M_LIBRARY) - message(STATUS "math lib 'libm' not found; floating point support disabled") - endif() +endif() + +if(UNIX AND NOT APPLE AND NOT BEOS AND NOT HAIKU) + find_library(M_LIBRARY m) else() - # not needed on windows + # libm is not needed and/or not available set(M_LIBRARY "") endif() @@ -73,16 +57,14 @@ option(PNG_TESTS "Build libpng tests" ON) # Many more configuration options could be added here option(PNG_FRAMEWORK "Build OS X framework" OFF) -option(PNG_DEBUG "Build with debug output" OFF) -option(PNGARG "Disable ANSI-C prototypes" OFF) - -option(PNG_HARDWARE_OPTIMIZATIONS "Enable Hardware Optimizations" ON) - +option(PNG_DEBUG "Build with debug output" OFF) +option(PNG_HARDWARE_OPTIMIZATIONS "Enable hardware optimizations" ON) set(PNG_PREFIX "" CACHE STRING "Prefix to add to the API function names") set(DFA_XTRA "" CACHE FILEPATH "File containing extra configuration settings") if(PNG_HARDWARE_OPTIMIZATIONS) + # set definitions and sources for arm if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm" OR CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64") @@ -96,12 +78,13 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm" OR list(FIND PNG_ARM_NEON_POSSIBLE_VALUES ${PNG_ARM_NEON} index) if(index EQUAL -1) message(FATAL_ERROR - " PNG_ARM_NEON must be one of [${PNG_ARM_NEON_POSSIBLE_VALUES}]") - elseif(NOT ${PNG_ARM_NEON} STREQUAL "no") + "PNG_ARM_NEON must be one of [${PNG_ARM_NEON_POSSIBLE_VALUES}]") + elseif(NOT ${PNG_ARM_NEON} STREQUAL "off") set(libpng_arm_sources arm/arm_init.c arm/filter_neon.S - arm/filter_neon_intrinsics.c) + arm/filter_neon_intrinsics.c + arm/palette_neon_intrinsics.c) if(${PNG_ARM_NEON} STREQUAL "on") add_definitions(-DPNG_ARM_NEON_OPT=2) @@ -115,7 +98,7 @@ endif() # set definitions and sources for powerpc if(CMAKE_SYSTEM_PROCESSOR MATCHES "^powerpc*" OR - CMAKE_SYSTEM_PROCESSOR MATCHES "^ppc64*" ) + CMAKE_SYSTEM_PROCESSOR MATCHES "^ppc64*") set(PNG_POWERPC_VSX_POSSIBLE_VALUES on off) set(PNG_POWERPC_VSX "on" CACHE STRING "Enable POWERPC VSX optimizations: off: disable the optimizations.") @@ -124,8 +107,8 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "^powerpc*" OR list(FIND PNG_POWERPC_VSX_POSSIBLE_VALUES ${PNG_POWERPC_VSX} index) if(index EQUAL -1) message(FATAL_ERROR - " PNG_POWERPC_VSX must be one of [${PNG_POWERPC_VSX_POSSIBLE_VALUES}]") - elseif(NOT ${PNG_POWERPC_VSX} STREQUAL "no") + "PNG_POWERPC_VSX must be one of [${PNG_POWERPC_VSX_POSSIBLE_VALUES}]") + elseif(NOT ${PNG_POWERPC_VSX} STREQUAL "off") set(libpng_powerpc_sources powerpc/powerpc_init.c powerpc/filter_vsx_intrinsics.c) @@ -139,7 +122,7 @@ endif() # set definitions and sources for intel if(CMAKE_SYSTEM_PROCESSOR MATCHES "^i?86" OR - CMAKE_SYSTEM_PROCESSOR MATCHES "^x86_64*" ) + CMAKE_SYSTEM_PROCESSOR MATCHES "^x86_64*") set(PNG_INTEL_SSE_POSSIBLE_VALUES on off) set(PNG_INTEL_SSE "on" CACHE STRING "Enable INTEL_SSE optimizations: off: disable the optimizations") @@ -148,8 +131,8 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "^i?86" OR list(FIND PNG_INTEL_SSE_POSSIBLE_VALUES ${PNG_INTEL_SSE} index) if(index EQUAL -1) message(FATAL_ERROR - " PNG_INTEL_SSE must be one of [${PNG_INTEL_SSE_POSSIBLE_VALUES}]") - elseif(NOT ${PNG_INTEL_SSE} STREQUAL "no") + "PNG_INTEL_SSE must be one of [${PNG_INTEL_SSE_POSSIBLE_VALUES}]") + elseif(NOT ${PNG_INTEL_SSE} STREQUAL "off") set(libpng_intel_sources intel/intel_init.c intel/filter_sse2_intrinsics.c) @@ -163,7 +146,7 @@ endif() # set definitions and sources for MIPS if(CMAKE_SYSTEM_PROCESSOR MATCHES "mipsel*" OR - CMAKE_SYSTEM_PROCESSOR MATCHES "mips64el*" ) + CMAKE_SYSTEM_PROCESSOR MATCHES "mips64el*") set(PNG_MIPS_MSA_POSSIBLE_VALUES on off) set(PNG_MIPS_MSA "on" CACHE STRING "Enable MIPS_MSA optimizations: off: disable the optimizations") @@ -172,8 +155,8 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "mipsel*" OR list(FIND PNG_MIPS_MSA_POSSIBLE_VALUES ${PNG_MIPS_MSA} index) if(index EQUAL -1) message(FATAL_ERROR - " PNG_MIPS_MSA must be one of [${PNG_MIPS_MSA_POSSIBLE_VALUES}]") - elseif(NOT ${PNG_MIPS_MSA} STREQUAL "no") + "PNG_MIPS_MSA must be one of [${PNG_MIPS_MSA_POSSIBLE_VALUES}]") + elseif(NOT ${PNG_MIPS_MSA} STREQUAL "off") set(libpng_mips_sources mips/mips_init.c mips/filter_msa_intrinsics.c) @@ -184,6 +167,33 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "mipsel*" OR add_definitions(-DPNG_MIPS_MSA_OPT=0) endif() endif() + +else(PNG_HARDWARE_OPTIMIZATIONS) + +# set definitions and sources for arm +if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm" OR + CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64") + add_definitions(-DPNG_ARM_NEON_OPT=0) +endif() + +# set definitions and sources for powerpc +if(CMAKE_SYSTEM_PROCESSOR MATCHES "^powerpc*" OR + CMAKE_SYSTEM_PROCESSOR MATCHES "^ppc64*") + add_definitions(-DPNG_POWERPC_VSX_OPT=0) +endif() + +# set definitions and sources for intel +if(CMAKE_SYSTEM_PROCESSOR MATCHES "^i?86" OR + CMAKE_SYSTEM_PROCESSOR MATCHES "^x86_64*") + add_definitions(-DPNG_INTEL_SSE_OPT=0) +endif() + +# set definitions and sources for MIPS +if(CMAKE_SYSTEM_PROCESSOR MATCHES "mipsel*" OR + CMAKE_SYSTEM_PROCESSOR MATCHES "mips64el*") + add_definitions(-DPNG_MIPS_MSA_OPT=0) +endif() + endif(PNG_HARDWARE_OPTIMIZATIONS) # SET LIBNAME @@ -241,17 +251,17 @@ function(symbol_prefix) foreach(line ${OUT}) string(REGEX MATCH "^PREFIX=" found_match "${line}") if(found_match) - STRING(REGEX REPLACE "^PREFIX=(.*\)" "\\1" prefix "${line}") + string(REGEX REPLACE "^PREFIX=(.*\)" "\\1" prefix "${line}") string(REGEX MATCH "__USER_LABEL_PREFIX__" found_match "${prefix}") if(found_match) - STRING(REGEX REPLACE "(.*)__USER_LABEL_PREFIX__(.*)" "\\1\\2" prefix "${prefix}") + string(REGEX REPLACE "(.*)__USER_LABEL_PREFIX__(.*)" "\\1\\2" prefix "${prefix}") endif() set(SYMBOL_PREFIX "${prefix}") endif() endforeach() - message(STATUS "Symbol prefix: ${SYMBOL_PREFIX}") - set(SYMBOL_PREFIX "${SYMBOL_PREFIX}" PARENT_SCOPE) + message(STATUS "Symbol prefix: ${SYMBOL_PREFIX}") + set(SYMBOL_PREFIX "${SYMBOL_PREFIX}" PARENT_SCOPE) endfunction() if(UNIX) @@ -276,11 +286,11 @@ else() set(oneValueArgs INPUT OUTPUT) set(multiValueArgs DEPENDS) cmake_parse_arguments(_GC "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - if (NOT _GC_INPUT) - message(FATAL_ERROR "Invalid arguments. generate_out requires input.") + if(NOT _GC_INPUT) + message(FATAL_ERROR "generate_chk: Missing INPUT argument") endif() - if (NOT _GC_OUTPUT) - message(FATAL_ERROR "Invalid arguments. generate_out requires output.") + if(NOT _GC_OUTPUT) + message(FATAL_ERROR "generate_chk: Missing OUTPUT argument") endif() add_custom_command(OUTPUT "${_GC_OUTPUT}" @@ -299,11 +309,11 @@ else() set(oneValueArgs INPUT OUTPUT) set(multiValueArgs DEPENDS) cmake_parse_arguments(_GO "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - if (NOT _GO_INPUT) - message(FATAL_ERROR "Invalid arguments. generate_out requires input.") + if(NOT _GO_INPUT) + message(FATAL_ERROR "generate_out: Missing INPUT argument") endif() - if (NOT _GO_OUTPUT) - message(FATAL_ERROR "Invalid arguments. generate_out requires output.") + if(NOT _GO_OUTPUT) + message(FATAL_ERROR "generate_out: Missing OUTPUT argument") endif() add_custom_command(OUTPUT "${_GO_OUTPUT}" @@ -322,8 +332,8 @@ else() set(oneValueArgs OUTPUT) set(multiValueArgs DEPENDS) cmake_parse_arguments(_GSO "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - if (NOT _GSO_OUTPUT) - message(FATAL_ERROR "Invalid arguments. generate_source requires output.") + if(NOT _GSO_OUTPUT) + message(FATAL_ERROR "generate_source: Missing OUTPUT argument") endif() add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${_GSO_OUTPUT}" @@ -505,7 +515,7 @@ set(png_fix_itxt_sources if(MSVC) add_definitions(-D_CRT_SECURE_NO_DEPRECATE) -endif(MSVC) +endif() if(PNG_DEBUG) add_definitions(-DPNG_DEBUG) @@ -585,7 +595,7 @@ if(NOT PNG_LIB_TARGETS) message(SEND_ERROR "No library variant selected to build. " "Please enable at least one of the following options: " - " PNG_STATIC, PNG_SHARED, PNG_FRAMEWORK") + "PNG_STATIC, PNG_SHARED, PNG_FRAMEWORK") endif() if(PNG_SHARED AND WIN32) @@ -598,11 +608,11 @@ function(png_add_test) set(multiValueArgs OPTIONS FILES) cmake_parse_arguments(_PAT "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - if (NOT _PAT_NAME) - message(FATAL_ERROR "Invalid arguments. png_add_test requires name.") + if(NOT _PAT_NAME) + message(FATAL_ERROR "png_add_test: Missing NAME argument") endif() - if (NOT _PAT_COMMAND) - message(FATAL_ERROR "Invalid arguments. png_add_test requires command.") + if(NOT _PAT_COMMAND) + message(FATAL_ERROR "png_add_test: Missing COMMAND argument") endif() set(TEST_OPTIONS "${_PAT_OPTIONS}") @@ -610,19 +620,11 @@ function(png_add_test) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/scripts/test.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/tests/${_PAT_NAME}.cmake" @ONLY) - if(CMAKE_MAJOR_VERSION GREATER 2) # have generator expressions - add_test(NAME "${_PAT_NAME}" - COMMAND "${CMAKE_COMMAND}" - "-DLIBPNG=$<TARGET_FILE:png>" - "-DTEST_COMMAND=$<TARGET_FILE:${_PAT_COMMAND}>" - -P "${CMAKE_CURRENT_BINARY_DIR}/tests/${_PAT_NAME}.cmake") - else() # old 2.x add_test; limited and won't work well on Windows - # Note LIBPNG is a dummy value as there are no generator expressions - add_test("${_PAT_NAME}" "${CMAKE_COMMAND}" - "-DLIBPNG=${CMAKE_CURRENT_BINARY_DIR}/libpng.so" - "-DTEST_COMMAND=./${_PAT_COMMAND}" - -P "${CMAKE_CURRENT_BINARY_DIR}/tests/${_PAT_NAME}.cmake") - endif() + add_test(NAME "${_PAT_NAME}" + COMMAND "${CMAKE_COMMAND}" + "-DLIBPNG=$<TARGET_FILE:png>" + "-DTEST_COMMAND=$<TARGET_FILE:${_PAT_COMMAND}>" + -P "${CMAKE_CURRENT_BINARY_DIR}/tests/${_PAT_NAME}.cmake") endfunction() if(PNG_TESTS AND PNG_SHARED) @@ -687,11 +689,11 @@ if(PNG_TESTS AND PNG_SHARED) set(TEST_PNG_VALID TRUE) if(TEST_PNG_ALPHA) - if (NOT "${alpha_type}" STREQUAL "alpha") + if(NOT "${alpha_type}" STREQUAL "alpha") set(TEST_PNG_VALID FALSE) endif() else() - if ("${alpha_type}" STREQUAL "alpha") + if("${alpha_type}" STREQUAL "alpha") set(TEST_PNG_VALID FALSE) endif() endif() @@ -760,51 +762,44 @@ endif() # copies if different. include(CMakeParseArguments) -function(CREATE_SYMLINK DEST_FILE) +function(create_symlink DEST_FILE) cmake_parse_arguments(S "" "FILE;TARGET" "" ${ARGN}) if(NOT S_TARGET AND NOT S_FILE) - message(FATAL_ERROR "Specify either a TARGET or a FILE for CREATE_SYMLINK to link to.") - endif(NOT S_TARGET AND NOT S_FILE) + message(FATAL_ERROR "create_symlink: Missing TARGET or FILE argument") + endif() if(S_TARGET AND S_FILE) - message(FATAL_ERROR "CREATE_SYMLINK called with both source file ${S_FILE} and build target ${S_TARGET} arguments - can only handle 1 type per call.") - endif(S_TARGET AND S_FILE) + message(FATAL_ERROR "create_symlink: Both source file ${S_FILE} and build target ${S_TARGET} arguments are present; can only have one.") + endif() if(S_FILE) # If we don't need to symlink something that's coming from a build target, # we can go ahead and symlink/copy at configure time. - - if(CMAKE_HOST_WIN32 AND NOT CYGWIN AND NOT MSYS) + if(CMAKE_HOST_WIN32 AND NOT CYGWIN) execute_process( - COMMAND "${CMAKE_COMMAND}" -E copy_if_different ${S_FILE} ${DEST_FILE} - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" - ) - else(CMAKE_HOST_WIN32 AND NOT CYGWIN AND NOT MSYS) + COMMAND "${CMAKE_COMMAND}" -E copy_if_different ${S_FILE} ${DEST_FILE} + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") + else() execute_process( - COMMAND ${CMAKE_COMMAND} -E create_symlink ${S_FILE} ${DEST_FILE} - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" - ) - endif(CMAKE_HOST_WIN32 AND NOT CYGWIN AND NOT MSYS) - endif(S_FILE) + COMMAND ${CMAKE_COMMAND} -E create_symlink ${S_FILE} ${DEST_FILE} + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") + endif() + endif() if(S_TARGET) # We need to use generator expressions, which can be a bit tricky, so for # simplicity make the symlink a POST_BUILD step and use the TARGET # signature of add_custom_command. - - if(CMAKE_HOST_WIN32 AND NOT CYGWIN AND NOT MSYS) + if(CMAKE_HOST_WIN32 AND NOT CYGWIN) add_custom_command(TARGET ${S_TARGET} POST_BUILD - COMMAND "${CMAKE_COMMAND}" -E copy_if_different $<TARGET_LINKER_FILE_NAME:${S_TARGET}> $<TARGET_LINKER_FILE_DIR:${S_TARGET}>/${DEST_FILE} - ) - else(CMAKE_HOST_WIN32 AND NOT CYGWIN AND NOT MSYS) + COMMAND "${CMAKE_COMMAND}" -E copy_if_different $<TARGET_LINKER_FILE_NAME:${S_TARGET}> $<TARGET_LINKER_FILE_DIR:${S_TARGET}>/${DEST_FILE}) + else() add_custom_command(TARGET ${S_TARGET} POST_BUILD - COMMAND "${CMAKE_COMMAND}" -E create_symlink $<TARGET_LINKER_FILE_NAME:${S_TARGET}> $<TARGET_LINKER_FILE_DIR:${S_TARGET}>/${DEST_FILE} - ) - endif(CMAKE_HOST_WIN32 AND NOT CYGWIN AND NOT MSYS) - - endif(S_TARGET) + COMMAND "${CMAKE_COMMAND}" -E create_symlink $<TARGET_LINKER_FILE_NAME:${S_TARGET}> $<TARGET_LINKER_FILE_DIR:${S_TARGET}>/${DEST_FILE}) + endif() + endif() endfunction() @@ -816,103 +811,95 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/genout.cmake.in configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/gensrc.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/scripts/gensrc.cmake @ONLY) - # libpng is a library so default to 'lib' if(NOT DEFINED CMAKE_INSTALL_LIBDIR) set(CMAKE_INSTALL_LIBDIR lib) -endif(NOT DEFINED CMAKE_INSTALL_LIBDIR) +endif() # CREATE PKGCONFIG FILES -# we use the same files like ./configure, so we have to set its vars +# We use the same files like ./configure, so we have to set its vars. # Only do this on Windows for Cygwin - the files don't make much sense outside -# a UNIX look alike +# of a UNIX look-alike. if(NOT WIN32 OR CYGWIN OR MINGW) set(prefix ${CMAKE_INSTALL_PREFIX}) set(exec_prefix ${CMAKE_INSTALL_PREFIX}) - set(libdir ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}) - set(includedir ${CMAKE_INSTALL_PREFIX}/include) + set(libdir ${CMAKE_INSTALL_FULL_LIBDIR}) + set(includedir ${CMAKE_INSTALL_FULL_INCLUDEDIR}) set(LIBS "-lz -lm") configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng.pc.in ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}.pc @ONLY) - CREATE_SYMLINK(libpng.pc FILE ${PNGLIB_NAME}.pc) + create_symlink(libpng.pc FILE ${PNGLIB_NAME}.pc) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng-config.in ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config @ONLY) - CREATE_SYMLINK(libpng-config FILE ${PNGLIB_NAME}-config) -endif(NOT WIN32 OR CYGWIN OR MINGW) + create_symlink(libpng-config FILE ${PNGLIB_NAME}-config) +endif() # SET UP LINKS if(PNG_SHARED) set_target_properties(png PROPERTIES -# VERSION 16.${PNGLIB_RELEASE}.1.6.35 +# VERSION 16.${PNGLIB_RELEASE}.1.6.36 VERSION 16.${PNGLIB_RELEASE}.0 SOVERSION 16 CLEAN_DIRECT_OUTPUT 1) endif() -# If CMake > 2.4.x, we set a variable used below to export -# targets to an export file. -# TODO: Use VERSION_GREATER after our cmake_minimum_required >= 2.6.2 -if(CMAKE_MAJOR_VERSION GREATER 1 AND CMAKE_MINOR_VERSION GREATER 4) - set(PNG_EXPORT_RULE EXPORT libpng) -elseif(CMAKE_MAJOR_VERSION GREATER 2) # future proof - set(PNG_EXPORT_RULE EXPORT libpng) -endif() - # INSTALL -if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL ) +if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL) install(TARGETS ${PNG_LIB_TARGETS} - ${PNG_EXPORT_RULE} - RUNTIME DESTINATION bin - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}) + EXPORT libpng + RUNTIME DESTINATION bin + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}) if(PNG_SHARED) # Create a symlink for libpng.dll.a => libpng16.dll.a on Cygwin if(CYGWIN OR MINGW) - CREATE_SYMLINK(libpng${CMAKE_IMPORT_LIBRARY_SUFFIX} TARGET png) - install(FILES $<TARGET_LINKER_FILE_DIR:png>/libpng${CMAKE_IMPORT_LIBRARY_SUFFIX} DESTINATION ${CMAKE_INSTALL_LIBDIR}) - endif(CYGWIN OR MINGW) + create_symlink(libpng${CMAKE_IMPORT_LIBRARY_SUFFIX} TARGET png) + install(FILES $<TARGET_LINKER_FILE_DIR:png>/libpng${CMAKE_IMPORT_LIBRARY_SUFFIX} + DESTINATION ${CMAKE_INSTALL_LIBDIR}) + endif() if(NOT WIN32) - CREATE_SYMLINK(libpng${CMAKE_SHARED_LIBRARY_SUFFIX} TARGET png) - install(FILES $<TARGET_LINKER_FILE_DIR:png>/libpng${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION ${CMAKE_INSTALL_LIBDIR}) - endif(NOT WIN32) - endif(PNG_SHARED) + create_symlink(libpng${CMAKE_SHARED_LIBRARY_SUFFIX} TARGET png) + install(FILES $<TARGET_LINKER_FILE_DIR:png>/libpng${CMAKE_SHARED_LIBRARY_SUFFIX} + DESTINATION ${CMAKE_INSTALL_LIBDIR}) + endif() + endif() if(PNG_STATIC) if(NOT WIN32 OR CYGWIN OR MINGW) - CREATE_SYMLINK( libpng${CMAKE_STATIC_LIBRARY_SUFFIX} TARGET png_static) - install(FILES $<TARGET_LINKER_FILE_DIR:png_static>/libpng${CMAKE_STATIC_LIBRARY_SUFFIX} DESTINATION ${CMAKE_INSTALL_LIBDIR}) - endif(NOT WIN32 OR CYGWIN OR MINGW) - endif() + create_symlink(libpng${CMAKE_STATIC_LIBRARY_SUFFIX} TARGET png_static) + install(FILES $<TARGET_LINKER_FILE_DIR:png_static>/libpng${CMAKE_STATIC_LIBRARY_SUFFIX} + DESTINATION ${CMAKE_INSTALL_LIBDIR}) + endif() + endif() endif() -if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL ) - install(FILES ${libpng_public_hdrs} DESTINATION include) - install(FILES ${libpng_public_hdrs} DESTINATION include/${PNGLIB_NAME}) +if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL) + install(FILES ${libpng_public_hdrs} DESTINATION include) + install(FILES ${libpng_public_hdrs} DESTINATION include/${PNGLIB_NAME}) endif() -if(NOT SKIP_INSTALL_EXECUTABLES AND NOT SKIP_INSTALL_ALL ) +if(NOT SKIP_INSTALL_EXECUTABLES AND NOT SKIP_INSTALL_ALL) if(NOT WIN32 OR CYGWIN OR MINGW) install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/libpng-config DESTINATION bin) - install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config - DESTINATION bin) - endif(NOT WIN32 OR CYGWIN OR MINGW) + install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config DESTINATION bin) + endif() endif() -if(NOT SKIP_INSTALL_PROGRAMS AND NOT SKIP_INSTALL_ALL ) +if(NOT SKIP_INSTALL_PROGRAMS AND NOT SKIP_INSTALL_ALL) install(TARGETS ${PNG_BIN_TARGETS} - RUNTIME DESTINATION bin) + RUNTIME DESTINATION bin) endif() -if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL ) +if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL) # Install man pages if(NOT PNG_MAN_DIR) set(PNG_MAN_DIR "share/man") endif() - install(FILES libpng.3 libpngpf.3 DESTINATION ${PNG_MAN_DIR}/man3) - install(FILES png.5 DESTINATION ${PNG_MAN_DIR}/man5) + install(FILES libpng.3 libpngpf.3 DESTINATION ${PNG_MAN_DIR}/man3) + install(FILES png.5 DESTINATION ${PNG_MAN_DIR}/man5) # Install pkg-config files if(NOT CMAKE_HOST_WIN32 OR CYGWIN OR MINGW) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng.pc @@ -923,12 +910,11 @@ if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL ) DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config DESTINATION bin) - endif(NOT CMAKE_HOST_WIN32 OR CYGWIN OR MINGW) + endif() endif() -# On versions of CMake that support it, create an export file CMake -# users can include() to import our targets -if(PNG_EXPORT_RULE AND NOT SKIP_INSTALL_EXPORT AND NOT SKIP_INSTALL_ALL ) +# Create an export file that CMake users can include() to import our targets. +if(NOT SKIP_INSTALL_EXPORT AND NOT SKIP_INSTALL_ALL) install(EXPORT libpng DESTINATION lib/libpng FILE lib${PNG_LIB_NAME}.cmake) endif() diff --git a/source/libs/libpng/libpng-src/LICENSE b/source/libs/libpng/libpng-src/LICENSE index 6ee9c8f5548223ab91d4600840d2597bd5cdbe9f..62ab8e48dcf34e8d4a6e830a39bd9b7311334d05 100644 --- a/source/libs/libpng/libpng-src/LICENSE +++ b/source/libs/libpng/libpng-src/LICENSE @@ -1,14 +1,43 @@ +COPYRIGHT NOTICE, DISCLAIMER, and LICENSE +========================================= -This copy of the libpng notices is provided for your convenience. In case of -any discrepancy between this copy and the notices in the file png.h that is -included in the libpng distribution, the latter shall prevail. +PNG Reference Library License version 2 +--------------------------------------- -COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: + * Copyright (c) 1995-2018 The PNG Reference Library Authors. + * Copyright (c) 2018 Cosmin Truta. + * Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson. + * Copyright (c) 1996-1997 Andreas Dilger. + * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. -If you modify libpng you may insert additional notices immediately following -this sentence. +The software is supplied "as is", without warranty of any kind, +express or implied, including, without limitation, the warranties +of merchantability, fitness for a particular purpose, title, and +non-infringement. In no even shall the Copyright owners, or +anyone distributing the software, be liable for any damages or +other liability, whether in contract, tort or otherwise, arising +from, out of, or in connection with the software, or the use or +other dealings in the software, even if advised of the possibility +of such damage. -This code is released under the libpng license. +Permission is hereby granted to use, copy, modify, and distribute +this software, or portions hereof, for any purpose, without fee, +subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you + must not claim that you wrote the original software. If you + use this software in a product, an acknowledgment in the product + documentation would be appreciated, but is not required. + + 2. Altered source versions must be plainly marked as such, and must + not be misrepresented as being the original software. + + 3. This Copyright notice may not be removed or altered from any + source or altered source distribution. + + +PNG Reference Library License version 1 (for libpng 0.5 through 1.6.35) +----------------------------------------------------------------------- libpng versions 1.0.7, July 1, 2000 through 1.6.35, July 15, 2018 are Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson, are @@ -16,38 +45,38 @@ derived from libpng-1.0.6, and are distributed according to the same disclaimer and license as libpng-1.0.6 with the following individuals added to the list of Contributing Authors: - Simon-Pierre Cadieux - Eric S. Raymond - Mans Rullgard - Cosmin Truta - Gilles Vollant - James Yu - Mandar Sahastrabuddhe - Google Inc. - Vadim Barkov + Simon-Pierre Cadieux + Eric S. Raymond + Mans Rullgard + Cosmin Truta + Gilles Vollant + James Yu + Mandar Sahastrabuddhe + Google Inc. + Vadim Barkov and with the following additions to the disclaimer: - There is no warranty against interference with your enjoyment of the - library or against infringement. There is no warranty that our - efforts or the library will fulfill any of your particular purposes - or needs. This library is provided with all faults, and the entire - risk of satisfactory quality, performance, accuracy, and effort is with - the user. + There is no warranty against interference with your enjoyment of + the library or against infringement. There is no warranty that our + efforts or the library will fulfill any of your particular purposes + or needs. This library is provided with all faults, and the entire + risk of satisfactory quality, performance, accuracy, and effort is + with the user. Some files in the "contrib" directory and some configure-generated -files that are distributed with libpng have other copyright owners and +files that are distributed with libpng have other copyright owners, and are released under other open source licenses. libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are Copyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from libpng-0.96, and are distributed according to the same disclaimer and -license as libpng-0.96, with the following individuals added to the list -of Contributing Authors: +license as libpng-0.96, with the following individuals added to the +list of Contributing Authors: - Tom Lane - Glenn Randers-Pehrson - Willem van Schaik + Tom Lane + Glenn Randers-Pehrson + Willem van Schaik libpng versions 0.89, June 1996, through 0.96, May 1997, are Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88, @@ -55,14 +84,14 @@ and are distributed according to the same disclaimer and license as libpng-0.88, with the following individuals added to the list of Contributing Authors: - John Bowler - Kevin Bracey - Sam Bushell - Magnus Holmgren - Greg Roelofs - Tom Tanner + John Bowler + Kevin Bracey + Sam Bushell + Magnus Holmgren + Greg Roelofs + Tom Tanner -Some files in the "scripts" directory have other copyright owners +Some files in the "scripts" directory have other copyright owners, but are released under this license. libpng versions 0.5, May 1995, through 0.88, January 1996, are @@ -71,63 +100,35 @@ Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. For the purposes of this copyright and license, "Contributing Authors" is defined as the following set of individuals: - Andreas Dilger - Dave Martindale - Guy Eric Schalnat - Paul Schmidt - Tim Wegner - -The PNG Reference Library is supplied "AS IS". The Contributing Authors -and Group 42, Inc. disclaim all warranties, expressed or implied, -including, without limitation, the warranties of merchantability and of -fitness for any purpose. The Contributing Authors and Group 42, Inc. -assume no liability for direct, indirect, incidental, special, exemplary, -or consequential damages, which may result from the use of the PNG -Reference Library, even if advised of the possibility of such damage. + Andreas Dilger + Dave Martindale + Guy Eric Schalnat + Paul Schmidt + Tim Wegner + +The PNG Reference Library is supplied "AS IS". The Contributing +Authors and Group 42, Inc. disclaim all warranties, expressed or +implied, including, without limitation, the warranties of +merchantability and of fitness for any purpose. The Contributing +Authors and Group 42, Inc. assume no liability for direct, indirect, +incidental, special, exemplary, or consequential damages, which may +result from the use of the PNG Reference Library, even if advised of +the possibility of such damage. Permission is hereby granted to use, copy, modify, and distribute this source code, or portions hereof, for any purpose, without fee, subject to the following restrictions: - 1. The origin of this source code must not be misrepresented. - - 2. Altered versions must be plainly marked as such and must not - be misrepresented as being the original source. - - 3. This Copyright notice may not be removed or altered from any - source or altered source distribution. - -The Contributing Authors and Group 42, Inc. specifically permit, without -fee, and encourage the use of this source code as a component to -supporting the PNG file format in commercial products. If you use this -source code in a product, acknowledgment is not required but would be -appreciated. - -END OF COPYRIGHT NOTICE, DISCLAIMER, and LICENSE. - -TRADEMARK: - -The name "libpng" has not been registered by the Copyright owner -as a trademark in any jurisdiction. However, because libpng has -been distributed and maintained world-wide, continually since 1995, -the Copyright owner claims "common-law trademark protection" in any -jurisdiction where common-law trademark is recognized. - -OSI CERTIFICATION: - -Libpng is OSI Certified Open Source Software. OSI Certified Open Source is -a certification mark of the Open Source Initiative. OSI has not addressed -the additional disclaimers inserted at version 1.0.7. + 1. The origin of this source code must not be misrepresented. -EXPORT CONTROL: + 2. Altered versions must be plainly marked as such and must not + be misrepresented as being the original source. -The Copyright owner believes that the Export Control Classification -Number (ECCN) for libpng is EAR99, which means not subject to export -controls or International Traffic in Arms Regulations (ITAR) because -it is open source, publicly available software, that does not contain -any encryption software. See the EAR, paragraphs 734.3(b)(3) and -734.7(b). + 3. This Copyright notice may not be removed or altered from any + source or altered source distribution. -Glenn Randers-Pehrson -glennrp at users.sourceforge.net -July 15, 2018 +The Contributing Authors and Group 42, Inc. specifically permit, +without fee, and encourage the use of this source code as a component +to supporting the PNG file format in commercial products. If you use +this source code in a product, acknowledgment is not required but would +be appreciated. diff --git a/source/libs/libpng/libpng-src/Makefile.am b/source/libs/libpng/libpng-src/Makefile.am index 08db3e5990940045df9c1c7f784c276e2f309fc5..4f621aa4d6f210cd0b20434b760109aa775cb034 100644 --- a/source/libs/libpng/libpng-src/Makefile.am +++ b/source/libs/libpng/libpng-src/Makefile.am @@ -1,7 +1,7 @@ # Makefile.am, the source file for Makefile.in (and hence Makefile), is # +# Copyright (c) 2018 Cosmin Truta # Copyright (c) 2004-2016 Glenn Randers-Pehrson -# Last changed in libpng 1.6.25 [September 1, 2016] # # This code is released under the libpng license. # For conditions of distribution and use, see the disclaimer @@ -95,7 +95,8 @@ libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES = png.c pngerror.c\ if PNG_ARM_NEON libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES += arm/arm_init.c\ - arm/filter_neon.S arm/filter_neon_intrinsics.c + arm/filter_neon.S arm/filter_neon_intrinsics.c \ + arm/palette_neon_intrinsics.c endif if PNG_MIPS_MSA @@ -147,7 +148,7 @@ pkgconfig_DATA = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.pc # from those directories being included. This only works if the configure is # not done in the source directory! EXTRA_DIST= \ - ANNOUNCE CHANGES INSTALL LICENSE README TODO \ + ANNOUNCE AUTHORS CHANGES INSTALL LICENSE README TODO TRADEMARK \ pngtest.png pngbar.png pngnow.png pngbar.jpg autogen.sh \ ${srcdir}/contrib ${srcdir}/projects ${srcdir}/scripts \ $(TESTS) $(XFAIL_TESTS) tests/pngstest \ diff --git a/source/libs/libpng/libpng-src/README b/source/libs/libpng/libpng-src/README index f098b27f3971aec2dd120678d09c5aac707704d1..e41e0f549bb36ae3ac287d29211b60d032a47abe 100644 --- a/source/libs/libpng/libpng-src/README +++ b/source/libs/libpng/libpng-src/README @@ -1,15 +1,16 @@ -README for libpng version 1.6.35 - July 15, 2018 (shared library 16.0) -See the note about version numbers near the top of png.h +README for libpng version 1.6.36 - December 1, 2018 +=================================================== +See the note about version numbers near the top of png.h. See INSTALL for instructions on how to install libpng. Libpng comes in several distribution formats. Get libpng-*.tar.gz or -libpng-*.tar.xz or if you want UNIX-style line endings in the text files, -or lpng*.7z or lpng*.zip if you want DOS-style line endings. +libpng-*.tar.xz or if you want UNIX-style line endings in the text +files, or lpng*.7z or lpng*.zip if you want DOS-style line endings. Version 0.89 was the first official release of libpng. Don't let the -fact that it's the first release fool you. The libpng library has been in -extensive use and testing since mid-1995. By late 1997 it had +fact that it's the first release fool you. The libpng library has been +in extensive use and testing since mid-1995. By late 1997 it had finally gotten to the stage where there hadn't been significant changes to the API in some time, and people have a bad feeling about libraries with versions < 1.0. Version 1.0.0 was released in @@ -60,59 +61,37 @@ the library action on the detection of chunk CRC errors. It is possible to set different actions based on whether the CRC error occurred in a critical or an ancillary chunk. -The changes made to the library, and bugs fixed are based on discussions -on the PNG-implement mailing list and not on material submitted -privately to Guy, Andreas, or Glenn. They will forward any good -suggestions to the list. - -For a detailed description on using libpng, read libpng-manual.txt. For -examples of libpng in a program, see example.c and pngtest.c. For usage -information and restrictions (what little they are) on libpng, see -png.h. For a description on using zlib (the compression library used by -libpng) and zlib's restrictions, see zlib.h +For a detailed description on using libpng, read libpng-manual.txt. +For examples of libpng in a program, see example.c and pngtest.c. For +usage information and restrictions (what little they are) on libpng, +see png.h. For a description on using zlib (the compression library +used by libpng) and zlib's restrictions, see zlib.h I have included a general makefile, as well as several machine and -compiler specific ones, but you may have to modify one for your own needs. +compiler specific ones, but you may have to modify one for your own +needs. You should use zlib 1.0.4 or later to run this, but it MAY work with versions as old as zlib 0.95. Even so, there are bugs in older zlib versions which can cause the output of invalid compression streams for -some images. You will definitely need zlib 1.0.4 or later if you are -taking advantage of the MS-DOS "far" structure allocation for the small -and medium memory models. You should also note that zlib is a -compression library that is useful for more things than just PNG files. -You can use zlib as a drop-in replacement for fread() and fwrite() if -you are so inclined. +some images. + +You should also note that zlib is a compression library that is useful +for more things than just PNG files. You can use zlib as a drop-in +replacement for fread() and fwrite(), if you are so inclined. -zlib should be available at the same place that libpng is, or at zlib.net. +zlib should be available at the same place that libpng is, or at +https://zlib.net. You may also want a copy of the PNG specification. It is available as an RFC, a W3C Recommendation, and an ISO/IEC Standard. You can find these at http://www.libpng.org/pub/png/pngdocs.html . This code is currently being archived at libpng.sourceforge.io in the -[DOWNLOAD] area, and at http://libpng.download/src . If you -can't find it in any of those places, e-mail me, and I'll help you find it. - -I am not a lawyer, but I believe that the Export Control Classification -Number (ECCN) for libpng is EAR99, which means not subject to export -controls or International Traffic in Arms Regulations (ITAR) because it -is open source, publicly available software, that does not contain any -encryption software. See the EAR, paragraphs 734.3(b)(3) and 734.7(b). - -If you have any code changes, requests, problems, etc., please e-mail -them to me. Also, I'd appreciate any make files or project files, -and any modifications you needed to make to get libpng to compile, -along with a #define variable to tell what compiler/system you are on. -If you needed to add transformations to libpng, or wish libpng would -provide the image in a different way, drop me a note (and code, if -possible), so I can consider supporting the transformation. -Finally, if you get any warning messages when compiling libpng -(note: not zlib), and they are easy to fix, I'd appreciate the -fix. Please mention "libpng" somewhere in the subject line. Thanks. - -This release was created and will be supported by myself (of course -based in a large way on Guy's and Andreas' earlier work), and the PNG +[DOWNLOAD] area, and at http://libpng.download/src . + +This release, based in a large way on Glenn's, Guy's and Andreas' +earlier work, was created and will be supported by myself and the PNG development group. Send comments/corrections/commendations to png-mng-implement at @@ -120,34 +99,21 @@ lists.sourceforge.net (subscription required; visit https://lists.sourceforge.net/lists/listinfo/png-mng-implement to subscribe). -You can't reach Guy, the original libpng author, at the addresses -given in previous versions of this document. He and Andreas will -read mail addressed to the png-implement list, however. - -Please do not send general questions about PNG. Send them to -png-mng-misc at lists.sf.net (subscription required; visit +Send general questions about the PNG specification to png-mng-misc +at lists.sourceforge.net (subscription required; visit https://lists.sourceforge.net/lists/listinfo/png-mng-misc to -subscribe). If you have a question about something -in the PNG specification that is related to using libpng, send it -to me. Send me any questions that start with "I was using libpng, -and ...". If in doubt, send questions to me. I'll bounce them -to others, if necessary. - -Please do not send suggestions on how to change PNG. We have -been discussing PNG for twenty years now, and it is official and -finished. If you have suggestions for libpng, however, I'll -gladly listen. Even if your suggestion is not used immediately, -it may be used later. +subscribe). Files in this distribution: ANNOUNCE => Announcement of this version, with recent changes + AUTHORS => List of contributing authors CHANGES => Description of changes between libpng versions KNOWNBUG => List of known bugs and deficiencies LICENSE => License to use and redistribute libpng README => This file TODO => Things not implemented in the current library - Y2KINFO => Statement of Y2K compliance + TRADEMARK => Trademark information example.c => Example code for using libpng functions libpng.3 => manual page for libpng (includes libpng-manual.txt) libpng-manual.txt => Description of libpng and its functions @@ -208,15 +174,10 @@ Files in this distribution: scripts => Directory containing scripts for building libpng: (see scripts/README.txt for the list of scripts) -Good luck, and happy coding. - --Glenn Randers-Pehrson (current maintainer, since 1998) - Internet: glennrp at users.sourceforge.net - --Andreas Eric Dilger (former maintainer, 1996-1997) - Internet: adilger at enel.ucalgary.ca - Web: http://www-mddsp.enel.ucalgary.ca/People/adilger/ +Good luck, and happy coding! --Guy Eric Schalnat (original author and former maintainer, 1995-1996) - (formerly of Group 42, Inc) - Internet: gschal at infinet.com + * Cosmin Truta (current maintainer, since 2018) + * Glenn Randers-Pehrson (former maintainer, 1998-2018) + * Andreas Eric Dilger (former maintainer, 1996-1997) + * Guy Eric Schalnat (original author and former maintainer, 1995-1996) + (formerly of Group 42, Inc.) diff --git a/source/libs/libpng/libpng-src/TODO b/source/libs/libpng/libpng-src/TODO index 36d6092a2e7c7d3dc546e56d3f139344d135889c..562dab069665b43e55131d5bb4c5b32a1e1fd22c 100644 --- a/source/libs/libpng/libpng-src/TODO +++ b/source/libs/libpng/libpng-src/TODO @@ -1,30 +1,23 @@ -/* TODO - list of things to do for libpng: -Final bug fixes. -Better C++ wrapper/full C++ implementation? -Fix problem with C++ and EXTERN "C". -cHRM transformation. -Remove setjmp/longjmp usage in favor of returning error codes. As a start on - this, minimize the use of png_error(), replacing them with - png_warning(); return(0); or similar. -Palette creation. -Add "grayscale->palette" transformation and "palette->grayscale" detection. -Improved dithering. -Multi-lingual error and warning message support. -Complete sRGB transformation (presently it simply uses gamma=0.45455). -Man pages for function calls. -Better documentation. -Better filter selection - (counting huffman bits/precompression? filter inertia? filter costs?). -Histogram creation. -Text conversion between different code pages (Latin-1 -> Mac and DOS). -Avoid building gamma tables whenever possible. -Use greater precision when changing to linear gamma for compositing against - background and doing rgb-to-gray transformation. -Investigate pre-incremented loop counters and other loop constructions. -Add interpolated method of handling interlacing. -Extend pngvalid.c to validate more of the libpng transformations. -Refactor preprocessor conditionals to compile entire statements - -*/ +* Fix all defects (duh!) +* Better C++ wrapper / full C++ implementation (?) +* Fix the problems with C++ and 'extern "C"'. +* cHRM transformation. +* Palette creation. +* "grayscale->palette" transformation and "palette->grayscale" detection. +* Improved dithering. +* Multi-lingual error and warning message support. +* Complete sRGB transformation. (Currently it simply uses gamma=0.45455.) +* Man pages for function calls. +* Better documentation. +* Better filter selection + (e.g., counting huffman bits/precompression; filter inertia; filter costs). +* Histogram creation. +* Text conversion between different code pages (e.g., Latin-1 -> Mac). +* Avoid building gamma tables whenever possible. +* Greater precision in changing to linear gamma for compositing against + background, and in doing rgb-to-gray transformations. +* Investigate pre-incremented loop counters and other loop constructions. +* Interpolated method of handling interlacing. +* More validations for libpng transformations. diff --git a/source/libs/libpng/libpng-src/TRADEMARK b/source/libs/libpng/libpng-src/TRADEMARK new file mode 100644 index 0000000000000000000000000000000000000000..ac667187d67ffb97110e0b0df339859c0bd0f752 --- /dev/null +++ b/source/libs/libpng/libpng-src/TRADEMARK @@ -0,0 +1,8 @@ +TRADEMARK +========= + +The name "libpng" has not been registered by the Copyright owners +as a trademark in any jurisdiction. However, because libpng has +been distributed and maintained world-wide, continually since 1995, +the Copyright owners claim "common-law trademark protection" in any +jurisdiction where common-law trademark is recognized. diff --git a/source/libs/libpng/libpng-src/arm/arm_init.c b/source/libs/libpng/libpng-src/arm/arm_init.c index 02df812e775fafcd10b3dc7c514275c6b5565405..a34ecdbef7350a935f15aee8cfac6c75a75e4a87 100644 --- a/source/libs/libpng/libpng-src/arm/arm_init.c +++ b/source/libs/libpng/libpng-src/arm/arm_init.c @@ -1,14 +1,15 @@ /* arm_init.c - NEON optimised filter functions * + * Copyright (c) 2018 Cosmin Truta * Copyright (c) 2014,2016 Glenn Randers-Pehrson * Written by Mans Rullgard, 2011. - * Last changed in libpng 1.6.22 [May 26, 2016] * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer * and license in png.h */ + /* Below, after checking __linux__, various non-C90 POSIX 1003.1 functions are * called. */ diff --git a/source/libs/libpng/libpng-src/arm/filter_neon.S b/source/libs/libpng/libpng-src/arm/filter_neon.S index 000764cd212e73d7f68e9005a8f156fe54c51923..2308aad13e6394f01d31d131392ad18890294b09 100644 --- a/source/libs/libpng/libpng-src/arm/filter_neon.S +++ b/source/libs/libpng/libpng-src/arm/filter_neon.S @@ -1,9 +1,9 @@ /* filter_neon.S - NEON optimised filter functions * + * Copyright (c) 2018 Cosmin Truta * Copyright (c) 2014,2017 Glenn Randers-Pehrson * Written by Mans Rullgard, 2011. - * Last changed in libpng 1.6.31 [July 27, 2017] * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer diff --git a/source/libs/libpng/libpng-src/arm/filter_neon_intrinsics.c b/source/libs/libpng/libpng-src/arm/filter_neon_intrinsics.c index ea7e356bccf296af9e7fac01f81fa3e4f242aa6d..553c0be21c1051b2b1a950a593dabb661b2742b1 100644 --- a/source/libs/libpng/libpng-src/arm/filter_neon_intrinsics.c +++ b/source/libs/libpng/libpng-src/arm/filter_neon_intrinsics.c @@ -1,12 +1,11 @@ /* filter_neon_intrinsics.c - NEON optimised filter functions * + * Copyright (c) 2018 Cosmin Truta * Copyright (c) 2014,2016 Glenn Randers-Pehrson * Written by James Yu <james.yu at linaro.org>, October 2013. * Based on filter_neon.S, written by Mans Rullgard, 2011. * - * Last changed in libpng 1.6.22 [May 26, 2016] - * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer * and license in png.h @@ -19,7 +18,11 @@ /* This code requires -mfpu=neon on the command line: */ #if PNG_ARM_NEON_IMPLEMENTATION == 1 /* intrinsics code from pngpriv.h */ -#include <arm_neon.h> +#if defined(_MSC_VER) && defined(_M_ARM64) +# include <arm64_neon.h> +#else +# include <arm_neon.h> +#endif /* libpng row pointers are not necessarily aligned to any particular boundary, * however this code will only work with appropriate alignment. arm/arm_init.c @@ -33,6 +36,11 @@ * 'type'. This is written this way just to hide the GCC strict aliasing * warning; note that the code is safe because there never is an alias between * the input and output pointers. + * + * When compiling with MSVC ARM64, the png_ldr macro can't be passed directly + * to vst4_lane_u32, because of an internal compiler error inside MSVC. + * To avoid this compiler bug, we use a temporary variable (vdest_val) to store + * the result of png_ldr. */ #define png_ldr(type,pointer)\ (temp_pointer = png_ptr(type,pointer), *temp_pointer) @@ -125,12 +133,15 @@ png_read_filter_row_sub4_neon(png_row_infop row_info, png_bytep row, uint8x8x4_t *vrpt = png_ptr(uint8x8x4_t,&vtmp); uint8x8x4_t vrp = *vrpt; uint32x2x4_t *temp_pointer; + uint32x2x4_t vdest_val; vdest.val[0] = vadd_u8(vdest.val[3], vrp.val[0]); vdest.val[1] = vadd_u8(vdest.val[0], vrp.val[1]); vdest.val[2] = vadd_u8(vdest.val[1], vrp.val[2]); vdest.val[3] = vadd_u8(vdest.val[2], vrp.val[3]); - vst4_lane_u32(png_ptr(uint32_t,rp), png_ldr(uint32x2x4_t,&vdest), 0); + + vdest_val = png_ldr(uint32x2x4_t, &vdest); + vst4_lane_u32(png_ptr(uint32_t,rp), vdest_val, 0); } PNG_UNUSED(prev_row) @@ -223,6 +234,7 @@ png_read_filter_row_avg4_neon(png_row_infop row_info, png_bytep row, uint8x8x4_t *vrpt, *vppt; uint8x8x4_t vrp, vpp; uint32x2x4_t *temp_pointer; + uint32x2x4_t vdest_val; vtmp = vld4_u32(png_ptr(uint32_t,rp)); vrpt = png_ptr(uint8x8x4_t,&vtmp); @@ -240,7 +252,8 @@ png_read_filter_row_avg4_neon(png_row_infop row_info, png_bytep row, vdest.val[3] = vhadd_u8(vdest.val[2], vpp.val[3]); vdest.val[3] = vadd_u8(vdest.val[3], vrp.val[3]); - vst4_lane_u32(png_ptr(uint32_t,rp), png_ldr(uint32x2x4_t,&vdest), 0); + vdest_val = png_ldr(uint32x2x4_t, &vdest); + vst4_lane_u32(png_ptr(uint32_t,rp), vdest_val, 0); } } @@ -359,6 +372,7 @@ png_read_filter_row_paeth4_neon(png_row_infop row_info, png_bytep row, uint8x8x4_t *vrpt, *vppt; uint8x8x4_t vrp, vpp; uint32x2x4_t *temp_pointer; + uint32x2x4_t vdest_val; vtmp = vld4_u32(png_ptr(uint32_t,rp)); vrpt = png_ptr(uint8x8x4_t,&vtmp); @@ -378,7 +392,8 @@ png_read_filter_row_paeth4_neon(png_row_infop row_info, png_bytep row, vlast = vpp.val[3]; - vst4_lane_u32(png_ptr(uint32_t,rp), png_ldr(uint32x2x4_t,&vdest), 0); + vdest_val = png_ldr(uint32x2x4_t, &vdest); + vst4_lane_u32(png_ptr(uint32_t,rp), vdest_val, 0); } } diff --git a/source/libs/libpng/libpng-src/arm/palette_neon_intrinsics.c b/source/libs/libpng/libpng-src/arm/palette_neon_intrinsics.c new file mode 100644 index 0000000000000000000000000000000000000000..fa02d6a8b369d513ed51b5e38c608c4fc436b1c7 --- /dev/null +++ b/source/libs/libpng/libpng-src/arm/palette_neon_intrinsics.c @@ -0,0 +1,149 @@ + +/* palette_neon_intrinsics.c - NEON optimised palette expansion functions + * + * Copyright (c) 2018 Cosmin Truta + * Copyright (c) 2017-2018 Arm Holdings. All rights reserved. + * Written by Richard Townsend <Richard.Townsend@arm.com>, February 2017. + * + * This code is released under the libpng license. + * For conditions of distribution and use, see the disclaimer + * and license in png.h + */ + +#include "../pngpriv.h" + +#if PNG_ARM_NEON_IMPLEMENTATION == 1 + +#if defined(_MSC_VER) && defined(_M_ARM64) +# include <arm64_neon.h> +#else +# include <arm_neon.h> +#endif + +/* Build an RGBA palette from the RGB and separate alpha palettes. */ +void +png_riffle_palette_rgba(png_structrp png_ptr, png_row_infop row_info) +{ + png_const_colorp palette = png_ptr->palette; + png_bytep riffled_palette = png_ptr->riffled_palette; + png_const_bytep trans_alpha = png_ptr->trans_alpha; + int num_trans = png_ptr->num_trans; + int i; + + /* Initially black, opaque. */ + uint8x16x4_t w = {{ + vdupq_n_u8(0x00), + vdupq_n_u8(0x00), + vdupq_n_u8(0x00), + vdupq_n_u8(0xff), + }}; + + if (row_info->bit_depth != 8) + { + png_error(png_ptr, "bit_depth must be 8 for png_riffle_palette_rgba"); + return; + } + + /* First, riffle the RGB colours into a RGBA palette, the A value is + * set to opaque for now. + */ + for (i = 0; i < (1 << row_info->bit_depth); i += 16) + { + uint8x16x3_t v = vld3q_u8((png_const_bytep)(palette + i)); + w.val[0] = v.val[0]; + w.val[1] = v.val[1]; + w.val[2] = v.val[2]; + vst4q_u8(riffled_palette + (i << 2), w); + } + + /* Fix up the missing transparency values. */ + for (i = 0; i < num_trans; i++) + riffled_palette[(i << 2) + 3] = trans_alpha[i]; +} + +/* Expands a palettized row into RGBA. */ +int +png_do_expand_palette_neon_rgba(png_structrp png_ptr, png_row_infop row_info, + png_const_bytep row, png_bytepp ssp, png_bytepp ddp) +{ + png_uint_32 row_width = row_info->width; + const png_uint_32 *riffled_palette = + (const png_uint_32 *)png_ptr->riffled_palette; + const png_int_32 pixels_per_chunk = 4; + int i; + + if (row_width < pixels_per_chunk) + return 0; + + /* This function originally gets the last byte of the output row. + * The NEON part writes forward from a given position, so we have + * to seek this back by 4 pixels x 4 bytes. + */ + *ddp = *ddp - ((pixels_per_chunk * sizeof(png_uint_32)) - 1); + + for (i = 0; i < row_width; i += pixels_per_chunk) + { + uint32x4_t cur; + png_bytep sp = *ssp - i, dp = *ddp - (i << 2); + cur = vld1q_dup_u32 (riffled_palette + *(sp - 3)); + cur = vld1q_lane_u32(riffled_palette + *(sp - 2), cur, 1); + cur = vld1q_lane_u32(riffled_palette + *(sp - 1), cur, 2); + cur = vld1q_lane_u32(riffled_palette + *(sp - 0), cur, 3); + vst1q_u32((void *)dp, cur); + } + if (i != row_width) + { + /* Remove the amount that wasn't processed. */ + i -= pixels_per_chunk; + } + + /* Decrement output pointers. */ + *ssp = *ssp - i; + *ddp = *ddp - (i << 2); + return i; +} + +/* Expands a palettized row into RGB format. */ +int +png_do_expand_palette_neon_rgb(png_structrp png_ptr, png_row_infop row_info, + png_const_bytep row, png_bytepp ssp, png_bytepp ddp) +{ + png_uint_32 row_width = row_info->width; + png_const_bytep palette = (png_const_bytep)png_ptr->palette; + const png_uint_32 pixels_per_chunk = 8; + int i; + + if (row_width <= pixels_per_chunk) + return 0; + + /* Seeking this back by 8 pixels x 3 bytes. */ + *ddp = *ddp - ((pixels_per_chunk * sizeof(png_color)) - 1); + + for (i = 0; i < row_width; i += pixels_per_chunk) + { + uint8x8x3_t cur; + png_bytep sp = *ssp - i, dp = *ddp - ((i << 1) + i); + cur = vld3_dup_u8(palette + sizeof(png_color) * (*(sp - 7))); + cur = vld3_lane_u8(palette + sizeof(png_color) * (*(sp - 6)), cur, 1); + cur = vld3_lane_u8(palette + sizeof(png_color) * (*(sp - 5)), cur, 2); + cur = vld3_lane_u8(palette + sizeof(png_color) * (*(sp - 4)), cur, 3); + cur = vld3_lane_u8(palette + sizeof(png_color) * (*(sp - 3)), cur, 4); + cur = vld3_lane_u8(palette + sizeof(png_color) * (*(sp - 2)), cur, 5); + cur = vld3_lane_u8(palette + sizeof(png_color) * (*(sp - 1)), cur, 6); + cur = vld3_lane_u8(palette + sizeof(png_color) * (*(sp - 0)), cur, 7); + vst3_u8((void *)dp, cur); + } + + if (i != row_width) + { + /* Remove the amount that wasn't processed. */ + i -= pixels_per_chunk; + } + + /* Decrement output pointers. */ + *ssp = *ssp - i; + *ddp = *ddp - ((i << 1) + i); + return i; +} + +#endif /* PNG_ARM_NEON_IMPLEMENTATION */ diff --git a/source/libs/libpng/libpng-src/config.h.in b/source/libs/libpng/libpng-src/config.h.in index a0ec9bc142886fbcc9c6c3228036ee506f72062c..2931048bf4cae6cdcd3c5b30a63d5f97f46e153a 100644 --- a/source/libs/libpng/libpng-src/config.h.in +++ b/source/libs/libpng/libpng-src/config.h.in @@ -18,9 +18,6 @@ /* Define to 1 if you have the <memory.h> header file. */ #undef HAVE_MEMORY_H -/* Define to 1 if you have the `memset' function. */ -#undef HAVE_MEMSET - /* Define to 1 if you have the `pow' function. */ #undef HAVE_POW diff --git a/source/libs/libpng/libpng-src/configure.ac b/source/libs/libpng/libpng-src/configure.ac index d1787c5545e870ddfb0ba5a2aee8aee9fc5b74b5..1ed63eae7062d1fdbf6c3fce49f6bb37d5063a21 100644 --- a/source/libs/libpng/libpng-src/configure.ac +++ b/source/libs/libpng/libpng-src/configure.ac @@ -1,7 +1,7 @@ # configure.ac +# Copyright (c) 2018 Cosmin Truta # Copyright (c) 2004-2016 Glenn Randers-Pehrson -# Last changed in libpng 1.6.25 [September 1, 2016] # This code is released under the libpng license. # For conditions of distribution and use, see the disclaimer @@ -25,7 +25,7 @@ AC_PREREQ([2.68]) dnl Version number stuff here: -AC_INIT([libpng],[1.6.35],[png-mng-implement@lists.sourceforge.net]) +AC_INIT([libpng],[1.6.36],[png-mng-implement@lists.sourceforge.net]) AC_CONFIG_MACRO_DIR([scripts]) # libpng does not follow GNU file name conventions (hence 'foreign') @@ -46,10 +46,10 @@ dnl automake, so the following is not necessary (and is not defined anyway): dnl AM_PREREQ([1.11.2]) dnl stop configure from automagically running automake -PNGLIB_VERSION=1.6.35 +PNGLIB_VERSION=1.6.36 PNGLIB_MAJOR=1 PNGLIB_MINOR=6 -PNGLIB_RELEASE=35 +PNGLIB_RELEASE=36 dnl End of version number stuff @@ -144,7 +144,6 @@ AC_C_RESTRICT # Checks for library functions. AC_FUNC_STRTOD -AC_CHECK_FUNCS([memset], , AC_MSG_ERROR(memset not found in libc)) AC_CHECK_FUNCS([pow], , AC_CHECK_LIB(m, pow, , AC_MSG_ERROR(cannot find pow)) ) # Some later POSIX 1003.1 functions are required for test programs, failure here diff --git a/source/libs/libpng/libpng-src/contrib/conftest/pngcp.dfa b/source/libs/libpng/libpng-src/contrib/conftest/pngcp.dfa index acf200d325d8c3f1fbedee577d555d518abe13de..31c411d5f82ee23ec8dd0086f040877aa0ca5d7c 100644 --- a/source/libs/libpng/libpng-src/contrib/conftest/pngcp.dfa +++ b/source/libs/libpng/libpng-src/contrib/conftest/pngcp.dfa @@ -52,6 +52,6 @@ option TEXT on option USER_LIMITS on option SET_USER_LIMITS on -# these are are just required for specific customizations +# these are just required for specific customizations option WRITE_CUSTOMIZE_ZTXT_COMPRESSION on option WRITE_CUSTOMIZE_COMPRESSION on diff --git a/source/libs/libpng/libpng-src/contrib/examples/pngpixel.c b/source/libs/libpng/libpng-src/contrib/examples/pngpixel.c index f762379ed3ca2a80f29920f4be388706e9ff192f..9185d518fba60f8897f9ecc7a3a24f10f7a6ab5a 100644 --- a/source/libs/libpng/libpng-src/contrib/examples/pngpixel.c +++ b/source/libs/libpng/libpng-src/contrib/examples/pngpixel.c @@ -42,7 +42,7 @@ component(png_const_bytep row, png_uint_32 x, unsigned int c, png_uint_32 bit_offset_hi = bit_depth * ((x >> 6) * channels); png_uint_32 bit_offset_lo = bit_depth * ((x & 0x3f) * channels + c); - row = (png_const_bytep)(((PNG_CONST png_byte (*)[8])row) + bit_offset_hi); + row = (png_const_bytep)(((const png_byte (*)[8])row) + bit_offset_hi); row += bit_offset_lo >> 3; bit_offset_lo &= 0x07; @@ -73,7 +73,7 @@ static void print_pixel(png_structp png_ptr, png_infop info_ptr, png_const_bytep row, png_uint_32 x) { - PNG_CONST unsigned int bit_depth = png_get_bit_depth(png_ptr, info_ptr); + unsigned int bit_depth = png_get_bit_depth(png_ptr, info_ptr); switch (png_get_color_type(png_ptr, info_ptr)) { @@ -87,7 +87,7 @@ print_pixel(png_structp png_ptr, png_infop info_ptr, png_const_bytep row, */ case PNG_COLOR_TYPE_PALETTE: { - PNG_CONST int index = component(row, x, 0, bit_depth, 1); + int index = component(row, x, 0, bit_depth, 1); png_colorp palette = NULL; int num_palette = 0; diff --git a/source/libs/libpng/libpng-src/contrib/gregbook/readpng2.c b/source/libs/libpng/libpng-src/contrib/gregbook/readpng2.c index 5d13e15300db6e3ae98469a2e974b24325914d35..610b3cd87e0dd9f867cc4d5e72756fbce4534719 100644 --- a/source/libs/libpng/libpng-src/contrib/gregbook/readpng2.c +++ b/source/libs/libpng/libpng-src/contrib/gregbook/readpng2.c @@ -146,7 +146,7 @@ int readpng2_init(mainprog_info *mainprog_ptr) /* These byte strings were copied from png.h. If a future version * of readpng2.c recognizes more chunks, add them to this list. */ - static PNG_CONST png_byte chunks_to_process[] = { + static const png_byte chunks_to_process[] = { 98, 75, 71, 68, '\0', /* bKGD */ 103, 65, 77, 65, '\0', /* gAMA */ 115, 82, 71, 66, '\0', /* sRGB */ diff --git a/source/libs/libpng/libpng-src/contrib/libtests/makepng.c b/source/libs/libpng/libpng-src/contrib/libtests/makepng.c index e58a61d0234561ea288143fd9a823de747670dd6..312062bda7fdb7c5b254326ab7926596c234a9be 100644 --- a/source/libs/libpng/libpng-src/contrib/libtests/makepng.c +++ b/source/libs/libpng/libpng-src/contrib/libtests/makepng.c @@ -661,7 +661,7 @@ generate_row(png_bytep row, size_t rowbytes, unsigned int y, int color_type, { case 1: { - const png_uint_32 luma = colors[1]; + png_uint_32 luma = colors[1]; png_uint_32 x; for (x=0; x<=size_max; ++x) @@ -672,8 +672,8 @@ generate_row(png_bytep row, size_t rowbytes, unsigned int y, int color_type, case 2: { - const png_uint_32 luma = colors[1]; - const png_uint_32 alpha = colors[2]; + png_uint_32 luma = colors[1]; + png_uint_32 alpha = colors[2]; png_uint_32 x; for (x=0; x<size_max; ++x) @@ -688,9 +688,9 @@ generate_row(png_bytep row, size_t rowbytes, unsigned int y, int color_type, case 3: { - const png_uint_32 red = colors[1]; - const png_uint_32 green = colors[2]; - const png_uint_32 blue = colors[3]; + png_uint_32 red = colors[1]; + png_uint_32 green = colors[2]; + png_uint_32 blue = colors[3]; png_uint_32 x; for (x=0; x<=size_max; ++x) @@ -707,10 +707,10 @@ generate_row(png_bytep row, size_t rowbytes, unsigned int y, int color_type, case 4: { - const png_uint_32 red = colors[1]; - const png_uint_32 green = colors[2]; - const png_uint_32 blue = colors[3]; - const png_uint_32 alpha = colors[4]; + png_uint_32 red = colors[1]; + png_uint_32 green = colors[2]; + png_uint_32 blue = colors[3]; + png_uint_32 alpha = colors[4]; png_uint_32 x; for (x=0; x<=size_max; ++x) @@ -812,7 +812,7 @@ write_png(const char **name, FILE *fp, int color_type, int bit_depth, png_error(png_ptr, "OOM allocating info structure"); { - const unsigned int size = + unsigned int size = image_size_of_type(color_type, bit_depth, colors, small); unsigned int ysize; png_fixed_point real_gamma = 45455; /* For sRGB */ @@ -824,7 +824,7 @@ write_png(const char **name, FILE *fp, int color_type, int bit_depth, */ if (small) { - const unsigned int pixel_depth = + unsigned int pixel_depth = pixel_depth_of_type(color_type, bit_depth); if (pixel_depth <= 8U) @@ -1378,10 +1378,10 @@ static void insert_sBIT(png_structp png_ptr, png_infop info_ptr, int nparams, png_charpp params) { - const int ct = png_get_color_type(png_ptr, info_ptr); - const int c = (ct & PNG_COLOR_MASK_COLOR ? 3 : 1) + + int ct = png_get_color_type(png_ptr, info_ptr); + int c = (ct & PNG_COLOR_MASK_COLOR ? 3 : 1) + (ct & PNG_COLOR_MASK_ALPHA ? 1 : 0); - const unsigned int maxval = + unsigned int maxval = ct & PNG_COLOR_MASK_PALETTE ? 8U : png_get_bit_depth(png_ptr, info_ptr); png_color_8 sBIT; @@ -1856,7 +1856,7 @@ main(int argc, char **argv) /* Check the colors */ { - const unsigned int lim = (color_type == PNG_COLOR_TYPE_PALETTE ? 255U : + unsigned int lim = (color_type == PNG_COLOR_TYPE_PALETTE ? 255U : (1U<<bit_depth)-1); unsigned int i; diff --git a/source/libs/libpng/libpng-src/contrib/libtests/pngimage.c b/source/libs/libpng/libpng-src/contrib/libtests/pngimage.c index 998d58c504921ced1ef06ba690292adafd737b5c..f130c043dff24a78d3b8267c6bfd5af94a771334 100644 --- a/source/libs/libpng/libpng-src/contrib/libtests/pngimage.c +++ b/source/libs/libpng/libpng-src/contrib/libtests/pngimage.c @@ -1446,7 +1446,7 @@ test_one_file(struct display *dp, const char *filename) * unsigned, because some transforms are negative on a 16-bit system. */ unsigned int active = dp->active_transforms; - const int exhaustive = (dp->options & EXHAUSTIVE) != 0; + int exhaustive = (dp->options & EXHAUSTIVE) != 0; unsigned int current = first_transform(active); unsigned int bad_transforms = 0; unsigned int bad_combo = ~0U; /* bitwise AND of failing transforms */ @@ -1572,7 +1572,7 @@ do_test(struct display *dp, const char *file) } int -main(const int argc, const char * const * const argv) +main(int argc, char **argv) { /* For each file on the command line test it with a range of transforms */ int option_end, ilog = 0; @@ -1674,7 +1674,7 @@ main(const int argc, const char * const * const argv) /* Here on any return, including failures, except user/internal issues */ { - const int pass = (d.options & STRICT) ? + int pass = (d.options & STRICT) ? RESULT_STRICT(d.results) : RESULT_RELAXED(d.results); if (!pass) diff --git a/source/libs/libpng/libpng-src/contrib/libtests/pngstest.c b/source/libs/libpng/libpng-src/contrib/libtests/pngstest.c index 74c8d100c88c914295c01ee02cb4689867a50400..a368bf0f4d71fcee1bab803e950ccf51fdc2e231 100644 --- a/source/libs/libpng/libpng-src/contrib/libtests/pngstest.c +++ b/source/libs/libpng/libpng-src/contrib/libtests/pngstest.c @@ -372,7 +372,7 @@ print_opts(png_uint_32 opts) */ #define FORMAT_COUNT 64 #define FORMAT_MASK 0x3f -static PNG_CONST char * PNG_CONST format_names[FORMAT_COUNT] = +static const char * const format_names[FORMAT_COUNT] = { "sRGB-gray", "sRGB-gray+alpha", @@ -2346,8 +2346,8 @@ static int logpixel(const Transform *transform, png_uint_32 x, png_uint_32 y, const Pixel *in, const Pixel *calc, const Pixel *out, const char *reason) { - const png_uint_32 in_format = transform->in_image->image.format; - const png_uint_32 out_format = transform->out_image->image.format; + png_uint_32 in_format = transform->in_image->image.format; + png_uint_32 out_format = transform->out_image->image.format; png_uint_32 back_format = out_format & ~PNG_FORMAT_FLAG_ALPHA; const char *via_linear = ""; @@ -2602,12 +2602,12 @@ compare_two_images(Image *a, Image *b, int via_linear, ptrdiff_t strideb = b->stride; png_const_bytep rowa = a->buffer+16; png_const_bytep rowb = b->buffer+16; - const png_uint_32 width = a->image.width; - const png_uint_32 height = a->image.height; - const png_uint_32 formata = a->image.format; - const png_uint_32 formatb = b->image.format; - const unsigned int a_sample = PNG_IMAGE_SAMPLE_SIZE(formata); - const unsigned int b_sample = PNG_IMAGE_SAMPLE_SIZE(formatb); + png_uint_32 width = a->image.width; + png_uint_32 height = a->image.height; + png_uint_32 formata = a->image.format; + png_uint_32 formatb = b->image.format; + unsigned int a_sample = PNG_IMAGE_SAMPLE_SIZE(formata); + unsigned int b_sample = PNG_IMAGE_SAMPLE_SIZE(formatb); int alpha_added, alpha_removed; int bchannels; png_uint_32 y; @@ -2726,7 +2726,7 @@ compare_two_images(Image *a, Image *b, int via_linear, result = 0; } - /* If reqested copy the error values back from the Transform. */ + /* If requested, copy the error values back from the Transform. */ if (a->opts & ACCUMULATE) { tr.error_ptr[0] = tr.error[0]; @@ -2790,8 +2790,7 @@ compare_two_images(Image *a, Image *b, int via_linear, (formata & (formatb ^ PNG_FORMAT_FLAG_COLOR) & PNG_FORMAT_FLAG_COLOR))) { /* Was an alpha channel changed? */ - const png_uint_32 alpha_changed = (formata ^ formatb) & - PNG_FORMAT_FLAG_ALPHA; + png_uint_32 alpha_changed = (formata ^ formatb) & PNG_FORMAT_FLAG_ALPHA; /* Was an alpha channel removed? (The third test.) If so the direct * comparison is only possible if the input alpha is opaque. @@ -2932,7 +2931,7 @@ compare_two_images(Image *a, Image *b, int via_linear, } } - /* If reqested copy the error values back from the Transform. */ + /* If requested, copy the error values back from the Transform. */ if (a->opts & ACCUMULATE) { tr.error_ptr[0] = tr.error[0]; @@ -3627,7 +3626,7 @@ main(int argc, char **argv) if (arg[0] == '-') { - const int term = (arg[1] == '0' ? 0 : '\n'); + int term = (arg[1] == '0' ? 0 : '\n'); unsigned int ich = 0; /* Loop reading files, use a static buffer to simplify this and just diff --git a/source/libs/libpng/libpng-src/contrib/libtests/pngunknown.c b/source/libs/libpng/libpng-src/contrib/libtests/pngunknown.c index d9cc4488b806210e235b9b4ed4c01f6e689b5e90..05bdd833dbc5ed74448bb99f767fb51996e72bae 100644 --- a/source/libs/libpng/libpng-src/contrib/libtests/pngunknown.c +++ b/source/libs/libpng/libpng-src/contrib/libtests/pngunknown.c @@ -56,7 +56,7 @@ defined(PNG_SAVE_UNKNOWN_CHUNKS_SUPPORTED) #if PNG_LIBPNG_VER < 10500 -/* This deliberately lacks the PNG_CONST. */ +/* This deliberately lacks the const. */ typedef png_byte *png_const_bytep; /* This is copied from 1.5.1 png.h: */ diff --git a/source/libs/libpng/libpng-src/contrib/libtests/pngvalid.c b/source/libs/libpng/libpng-src/contrib/libtests/pngvalid.c index e66f2fa61ad9ff62d505d7d453c88e18be2476ca..d800110c7a410c2a132170ab28946ad4d8ec44e2 100644 --- a/source/libs/libpng/libpng-src/contrib/libtests/pngvalid.c +++ b/source/libs/libpng/libpng-src/contrib/libtests/pngvalid.c @@ -21,6 +21,7 @@ #define _POSIX_SOURCE 1 #define _ISOC99_SOURCE 1 /* For floating point */ #define _GNU_SOURCE 1 /* For the floating point exception extension */ +#define _BSD_SOURCE 1 /* For the floating point exception extension */ #include <signal.h> #include <stdio.h> @@ -961,7 +962,7 @@ bits_of(png_uint_32 num) return b; /* 0..32 */ } -/* Main interface to file storeage, after writing a new PNG file (see the API +/* Main interface to file storage, after writing a new PNG file (see the API * below) call store_storefile to store the result with the given name and id. */ static void @@ -2589,7 +2590,7 @@ static double digitize(double value, int depth, int do_round) * rounding and 'do_round' should be 1, if it is 0 the digitized value will * be truncated. */ - const unsigned int digitization_factor = (1U << depth) -1; + unsigned int digitization_factor = (1U << depth) - 1; /* Limiting the range is done as a convenience to the caller - it's easier to * do it once here than every time at the call site. @@ -3687,8 +3688,8 @@ init_standard_palette(png_store *ps, png_structp pp, png_infop pi, int npalette, #ifdef PNG_WRITE_tRNS_SUPPORTED static void -set_random_tRNS(png_structp pp, png_infop pi, const png_byte colour_type, - const int bit_depth) +set_random_tRNS(png_structp pp, png_infop pi, png_byte colour_type, + int bit_depth) { /* To make this useful the tRNS color needs to match at least one pixel. * Random values are fine for gray, including the 16-bit case where we know @@ -3696,7 +3697,7 @@ set_random_tRNS(png_structp pp, png_infop pi, const png_byte colour_type, * method as only 65536 different RGB values are generated. */ png_color_16 tRNS; - const png_uint_16 mask = (png_uint_16)((1U << bit_depth)-1); + png_uint_16 mask = (png_uint_16)((1U << bit_depth)-1); R8(tRNS); /* makes unset fields random */ @@ -4337,7 +4338,7 @@ make_size_image(png_store* const ps, png_byte const colour_type, /* Make a name and get an appropriate id for the store: */ char name[FILE_NAME_SIZE]; - const png_uint_32 id = FILEID(colour_type, bit_depth, 0/*palette*/, + png_uint_32 id = FILEID(colour_type, bit_depth, 0/*palette*/, interlace_type, w, h, do_interlace); standard_name_from_id(name, sizeof name, 0, id); @@ -4413,7 +4414,7 @@ make_size_image(png_store* const ps, png_byte const colour_type, for (pass=0; pass<npasses; ++pass) { /* The following two are for checking the macros: */ - const png_uint_32 wPass = PNG_PASS_COLS(w, pass); + png_uint_32 wPass = PNG_PASS_COLS(w, pass); /* If do_interlace is set we don't call png_write_row for every * row because some of them are empty. In fact, for a 1x1 image, @@ -4645,7 +4646,7 @@ make_error(png_store* const ps, png_byte const colour_type, Try { png_infop pi; - const png_structp pp = set_store_for_write(ps, &pi, name); + png_structp pp = set_store_for_write(ps, &pi, name); png_uint_32 w, h; gnu_volatile(pp) @@ -4705,7 +4706,7 @@ make_error(png_store* const ps, png_byte const colour_type, else { /* Now write the whole image, just to make sure that the detected, or - * undetected, errro has not created problems inside libpng. This + * undetected, error has not created problems inside libpng. This * doesn't work if there was a png_error in png_write_info because that * can abort before PLTE was written. */ @@ -5468,14 +5469,14 @@ progressive_row(png_structp ppIn, png_bytep new_row, png_uint_32 y, int pass) static void sequential_row(standard_display *dp, png_structp pp, png_infop pi, - const int iImage, const int iDisplay) + int iImage, int iDisplay) { - const int npasses = dp->npasses; - const int do_interlace = dp->do_interlace && + int npasses = dp->npasses; + int do_interlace = dp->do_interlace && dp->interlace_type == PNG_INTERLACE_ADAM7; - const png_uint_32 height = standard_height(pp, dp->id); - const png_uint_32 width = standard_width(pp, dp->id); - const png_store* ps = dp->ps; + png_uint_32 height = standard_height(pp, dp->id); + png_uint_32 width = standard_width(pp, dp->id); + const png_store* ps = dp->ps; int pass; for (pass=0; pass<npasses; ++pass) @@ -5869,7 +5870,7 @@ test_size(png_modifier* const pm, png_byte const colour_type, */ static const png_byte hinc[] = {1, 3, 11, 1, 5}; static const png_byte winc[] = {1, 9, 5, 7, 1}; - const int save_bdlo = bdlo; + int save_bdlo = bdlo; for (; bdlo <= bdhi; ++bdlo) { @@ -6077,12 +6078,12 @@ image_pixel_init(image_pixel *this, png_const_bytep row, png_byte colour_type, png_byte bit_depth, png_uint_32 x, store_palette palette, const image_pixel *format /*from pngvalid transform of input*/) { - const png_byte sample_depth = (png_byte)(colour_type == - PNG_COLOR_TYPE_PALETTE ? 8 : bit_depth); - const unsigned int max = (1U<<sample_depth)-1; - const int swap16 = (format != 0 && format->swap16); - const int littleendian = (format != 0 && format->littleendian); - const int sig_bits = (format != 0 && format->sig_bits); + png_byte sample_depth = + (png_byte)(colour_type == PNG_COLOR_TYPE_PALETTE ? 8 : bit_depth); + unsigned int max = (1U<<sample_depth)-1; + int swap16 = (format != 0 && format->swap16); + int littleendian = (format != 0 && format->littleendian); + int sig_bits = (format != 0 && format->sig_bits); /* Initially just set everything to the same number and the alpha to opaque. * Note that this currently assumes a simple palette where entry x has colour @@ -6100,7 +6101,7 @@ image_pixel_init(image_pixel *this, png_const_bytep row, png_byte colour_type, /* This permits the caller to default to the sample value. */ if (palette != 0) { - const unsigned int i = this->palette_index; + unsigned int i = this->palette_index; this->red = palette[i].red; this->green = palette[i].green; @@ -6431,8 +6432,8 @@ static void image_transform_mod_end(const image_transform *this, image_pixel *that, png_const_structp pp, const transform_display *display) { - const unsigned int scale = (1U<<that->sample_depth)-1; - const int sig_bits = that->sig_bits; + unsigned int scale = (1U<<that->sample_depth)-1; + int sig_bits = that->sig_bits; UNUSED(this) UNUSED(pp) @@ -6755,19 +6756,19 @@ transform_image_validate(transform_display *dp, png_const_structp pp, { /* Constants for the loop below: */ const png_store* const ps = dp->this.ps; - const png_byte in_ct = dp->this.colour_type; - const png_byte in_bd = dp->this.bit_depth; - const png_uint_32 w = dp->this.w; - const png_uint_32 h = dp->this.h; - const png_byte out_ct = dp->output_colour_type; - const png_byte out_bd = dp->output_bit_depth; - const png_byte sample_depth = (png_byte)(out_ct == - PNG_COLOR_TYPE_PALETTE ? 8 : out_bd); - const png_byte red_sBIT = dp->this.red_sBIT; - const png_byte green_sBIT = dp->this.green_sBIT; - const png_byte blue_sBIT = dp->this.blue_sBIT; - const png_byte alpha_sBIT = dp->this.alpha_sBIT; - const int have_tRNS = dp->this.is_transparent; + png_byte in_ct = dp->this.colour_type; + png_byte in_bd = dp->this.bit_depth; + png_uint_32 w = dp->this.w; + png_uint_32 h = dp->this.h; + png_byte out_ct = dp->output_colour_type; + png_byte out_bd = dp->output_bit_depth; + png_byte sample_depth = + (png_byte)(out_ct == PNG_COLOR_TYPE_PALETTE ? 8 : out_bd); + png_byte red_sBIT = dp->this.red_sBIT; + png_byte green_sBIT = dp->this.green_sBIT; + png_byte blue_sBIT = dp->this.blue_sBIT; + png_byte alpha_sBIT = dp->this.alpha_sBIT; + int have_tRNS = dp->this.is_transparent; double digitization_error; store_palette out_palette; @@ -6928,7 +6929,7 @@ transform_end(png_structp ppIn, png_infop pi) /* A single test run. */ static void -transform_test(png_modifier *pmIn, const png_uint_32 idIn, +transform_test(png_modifier *pmIn, png_uint_32 idIn, const image_transform* transform_listIn, const char * const name) { transform_display d; @@ -7763,7 +7764,7 @@ static void image_transform_png_set_rgb_to_gray_set(const image_transform *this, transform_display *that, png_structp pp, png_infop pi) { - const int error_action = 1; /* no error, no defines in png.h */ + int error_action = 1; /* no error, no defines in png.h */ # ifdef PNG_FLOATING_POINT_SUPPORTED png_set_rgb_to_gray(pp, error_action, data.red_to_set, data.green_to_set); @@ -7904,10 +7905,10 @@ image_transform_png_set_rgb_to_gray_mod(const image_transform *this, # if DIGITIZE { png_modifier *pm = display->pm; - const unsigned int sample_depth = that->sample_depth; - const unsigned int calc_depth = (pm->assume_16_bit_calculations ? 16 : + unsigned int sample_depth = that->sample_depth; + unsigned int calc_depth = (pm->assume_16_bit_calculations ? 16 : sample_depth); - const unsigned int gamma_depth = + unsigned int gamma_depth = (sample_depth == 16 ? display->max_gamma_8 : (pm->assume_16_bit_calculations ? @@ -8001,7 +8002,7 @@ image_transform_png_set_rgb_to_gray_mod(const image_transform *this, b * data.blue_coefficient; { - const int do_round = data.gamma != 1 || calc_depth == 16; + int do_round = data.gamma != 1 || calc_depth == 16; const double ce = 2. / 32768; graylo = DD(rlo * (data.red_coefficient-ce) + @@ -8625,7 +8626,7 @@ image_transform_png_set_filler_mod(const image_transform *this, (that->colour_type == PNG_COLOR_TYPE_RGB || that->colour_type == PNG_COLOR_TYPE_GRAY)) { - const unsigned int max = (1U << that->bit_depth)-1; + unsigned int max = (1U << that->bit_depth)-1; that->alpha = data.filler & max; that->alphaf = ((double)that->alpha) / max; that->alphae = 0; @@ -8692,7 +8693,7 @@ image_transform_png_set_add_alpha_mod(const image_transform *this, (that->colour_type == PNG_COLOR_TYPE_RGB || that->colour_type == PNG_COLOR_TYPE_GRAY)) { - const unsigned int max = (1U << that->bit_depth)-1; + unsigned int max = (1U << that->bit_depth)-1; that->alpha = data.filler & max; that->alphaf = ((double)that->alpha) / max; that->alphae = 0; @@ -8883,7 +8884,7 @@ image_transform_png_set_shift_set(const image_transform *this, * field is randomized independently. This acts as a check that * libpng does use the correct field. */ - const unsigned int depth = that->this.bit_depth; + unsigned int depth = that->this.bit_depth; data.red = (png_byte)/*SAFE*/(random_mod(depth)+1); data.green = (png_byte)/*SAFE*/(random_mod(depth)+1); @@ -9298,12 +9299,12 @@ gamma_info_imp(gamma_display *dp, png_structp pp, png_infop pi) int mode = dp->do_background - ALPHA_MODE_OFFSET; /* The gamma value is the output gamma, and is in the standard, - * non-inverted, represenation. It provides a default for the PNG file + * non-inverted, representation. It provides a default for the PNG file * gamma, but since the file has a gAMA chunk this does not matter. */ const double sg = dp->screen_gamma; # ifndef PNG_FLOATING_POINT_SUPPORTED - const png_fixed_point g = fix(sg); + png_fixed_point g = fix(sg); # endif # ifdef PNG_FLOATING_POINT_SUPPORTED @@ -9351,7 +9352,7 @@ gamma_info_imp(gamma_display *dp, png_structp pp, png_infop pi) */ const double bg = dp->background_gamma; # ifndef PNG_FLOATING_POINT_SUPPORTED - const png_fixed_point g = fix(bg); + png_fixed_point g = fix(bg); # endif # ifdef PNG_FLOATING_POINT_SUPPORTED @@ -9425,7 +9426,7 @@ static void init_validate_info(validate_info *vi, gamma_display *dp, png_const_structp pp, int in_depth, int out_depth) { - const unsigned int outmax = (1U<<out_depth)-1; + unsigned int outmax = (1U<<out_depth)-1; vi->pp = pp; vi->dp = dp; @@ -9587,14 +9588,14 @@ gamma_component_compose(int do_background, double input_sample, double alpha, /* This API returns the encoded *input* component, in the range 0..1 */ static double gamma_component_validate(const char *name, const validate_info *vi, - const unsigned int id, const unsigned int od, + unsigned int id, unsigned int od, const double alpha /* <0 for the alpha channel itself */, const double background /* component background value */) { - const unsigned int isbit = id >> vi->isbit_shift; - const unsigned int sbit_max = vi->sbit_max; - const unsigned int outmax = vi->outmax; - const int do_background = vi->do_background; + unsigned int isbit = id >> vi->isbit_shift; + unsigned int sbit_max = vi->sbit_max; + unsigned int outmax = vi->outmax; + int do_background = vi->do_background; double i; @@ -10160,13 +10161,13 @@ gamma_image_validate(gamma_display *dp, png_const_structp pp, { /* Get some constants derived from the input and output file formats: */ const png_store* const ps = dp->this.ps; - const png_byte in_ct = dp->this.colour_type; - const png_byte in_bd = dp->this.bit_depth; - const png_uint_32 w = dp->this.w; - const png_uint_32 h = dp->this.h; + png_byte in_ct = dp->this.colour_type; + png_byte in_bd = dp->this.bit_depth; + png_uint_32 w = dp->this.w; + png_uint_32 h = dp->this.h; const size_t cbRow = dp->this.cbRow; - const png_byte out_ct = png_get_color_type(pp, pi); - const png_byte out_bd = png_get_bit_depth(pp, pi); + png_byte out_ct = png_get_color_type(pp, pi); + png_byte out_bd = png_get_bit_depth(pp, pi); /* There are three sources of error, firstly the quantization in the * file encoding, determined by sbit and/or the file depth, secondly @@ -10207,11 +10208,11 @@ gamma_image_validate(gamma_display *dp, png_const_structp pp, * The basic tests below do not do this, however if 'use_input_precision' * is set a subsequent test is performed above. */ - const unsigned int samples_per_pixel = (out_ct & 2U) ? 3U : 1U; + unsigned int samples_per_pixel = (out_ct & 2U) ? 3U : 1U; int processing; png_uint_32 y; const store_palette_entry *in_palette = dp->this.palette; - const int in_is_transparent = dp->this.is_transparent; + int in_is_transparent = dp->this.is_transparent; int process_tRNS; int out_npalette = -1; int out_is_transparent = 0; /* Just refers to the palette case */ @@ -10259,9 +10260,9 @@ gamma_image_validate(gamma_display *dp, png_const_structp pp, double alpha = 1; /* serves as a flag value */ /* Record the palette index for index images. */ - const unsigned int in_index = + unsigned int in_index = in_ct == 3 ? sample(std, 3, in_bd, x, 0, 0, 0) : 256; - const unsigned int out_index = + unsigned int out_index = out_ct == 3 ? sample(std, 3, out_bd, x, 0, 0, 0) : 256; /* Handle input alpha - png_set_background will cause the output @@ -10270,7 +10271,7 @@ gamma_image_validate(gamma_display *dp, png_const_structp pp, if ((in_ct & PNG_COLOR_MASK_ALPHA) != 0 || (in_ct == 3 && in_is_transparent)) { - const unsigned int input_alpha = in_ct == 3 ? + unsigned int input_alpha = in_ct == 3 ? dp->this.palette[in_index].alpha : sample(std, in_ct, in_bd, x, samples_per_pixel, 0, 0); @@ -10395,14 +10396,14 @@ gamma_end(png_structp ppIn, png_infop pi) * maxpc: maximum percentage error (as a percentage) */ static void -gamma_test(png_modifier *pmIn, const png_byte colour_typeIn, - const png_byte bit_depthIn, const int palette_numberIn, - const int interlace_typeIn, +gamma_test(png_modifier *pmIn, png_byte colour_typeIn, + png_byte bit_depthIn, int palette_numberIn, + int interlace_typeIn, const double file_gammaIn, const double screen_gammaIn, - const png_byte sbitIn, const int threshold_testIn, + png_byte sbitIn, int threshold_testIn, const char *name, - const int use_input_precisionIn, const int scale16In, - const int expand16In, const int do_backgroundIn, + int use_input_precisionIn, int scale16In, + int expand16In, int do_backgroundIn, const png_color_16 *bkgd_colorIn, double bkgd_gammaIn) { gamma_display d; @@ -10606,11 +10607,11 @@ perform_gamma_threshold_tests(png_modifier *pm) } static void gamma_transform_test(png_modifier *pm, - const png_byte colour_type, const png_byte bit_depth, - const int palette_number, - const int interlace_type, const double file_gamma, - const double screen_gamma, const png_byte sbit, - const int use_input_precision, const int scale16) + png_byte colour_type, png_byte bit_depth, + int palette_number, + int interlace_type, const double file_gamma, + const double screen_gamma, png_byte sbit, + int use_input_precision, int scale16) { size_t pos = 0; char name[64]; @@ -10767,12 +10768,12 @@ static void perform_gamma_scale16_tests(png_modifier *pm) #if defined(PNG_READ_BACKGROUND_SUPPORTED) ||\ defined(PNG_READ_ALPHA_MODE_SUPPORTED) static void gamma_composition_test(png_modifier *pm, - const png_byte colour_type, const png_byte bit_depth, - const int palette_number, - const int interlace_type, const double file_gamma, + png_byte colour_type, png_byte bit_depth, + int palette_number, + int interlace_type, const double file_gamma, const double screen_gamma, - const int use_input_precision, const int do_background, - const int expand_16) + int use_input_precision, int do_background, + int expand_16) { size_t pos = 0; png_const_charp base; diff --git a/source/libs/libpng/libpng-src/contrib/libtests/tarith.c b/source/libs/libpng/libpng-src/contrib/libtests/tarith.c index c95226f030abd9d2336b14879f3a05dce2ed758f..c03f05a80bd7a90b79d3999763073ced39259c53 100644 --- a/source/libs/libpng/libpng-src/contrib/libtests/tarith.c +++ b/source/libs/libpng/libpng-src/contrib/libtests/tarith.c @@ -331,8 +331,8 @@ static int check_one_character(checkfp_command *co, checkfp_control c, int ch) */ size_t index = 0; const char test = (char)ch; - const int number_is_valid = png_check_fp_number(&test, 1, &c.state, &index); - const int character_accepted = (index == 1); + int number_is_valid = png_check_fp_number(&test, 1, &c.state, &index); + int character_accepted = (index == 1); if (c.check_state != exponent && isdigit(ch) && ch != '0') c.is_zero = 0; diff --git a/source/libs/libpng/libpng-src/contrib/powerpc-vsx/linux_aux.c b/source/libs/libpng/libpng-src/contrib/powerpc-vsx/linux_aux.c index 796922d77c1ded743a63cf3d24e367275c2ef48a..7828acafb84743d9590646329f870c8cffc428bf 100644 --- a/source/libs/libpng/libpng-src/contrib/powerpc-vsx/linux_aux.c +++ b/source/libs/libpng/libpng-src/contrib/powerpc-vsx/linux_aux.c @@ -23,14 +23,12 @@ static int png_have_vsx(png_structp png_ptr) { - - const unsigned long auxv = getauxval( AT_HWCAP ); + unsigned long auxv = getauxval(AT_HWCAP); PNG_UNUSED(png_ptr) - if(auxv & (PPC_FEATURE_HAS_ALTIVEC|PPC_FEATURE_HAS_VSX )) + if(auxv & (PPC_FEATURE_HAS_ALTIVEC|PPC_FEATURE_HAS_VSX)) return 1; else return 0; } - diff --git a/source/libs/libpng/libpng-src/contrib/tools/makesRGB.c b/source/libs/libpng/libpng-src/contrib/tools/makesRGB.c index e66c9f1576b685cd934711512640a213fd8ac504..d0c0ca931493ca40f3a117f054b56b447d058ff4 100644 --- a/source/libs/libpng/libpng-src/contrib/tools/makesRGB.c +++ b/source/libs/libpng/libpng-src/contrib/tools/makesRGB.c @@ -388,7 +388,7 @@ main(int argc, char **argv) if (!test_only) { - printf("PNG_CONST png_uint_16 png_sRGB_table[256] =\n{\n "); + printf("const png_uint_16 png_sRGB_table[256] =\n{\n "); for (i=0; i<255; ) { do @@ -401,7 +401,7 @@ main(int argc, char **argv) printf("%d\n};\n\n", png_sRGB_table[i]); - printf("PNG_CONST png_uint_16 png_sRGB_base[512] =\n{\n "); + printf("const png_uint_16 png_sRGB_base[512] =\n{\n "); for (i=0; i<511; ) { do @@ -413,7 +413,7 @@ main(int argc, char **argv) } printf("%d\n};\n\n", png_sRGB_base[i]); - printf("PNG_CONST png_byte png_sRGB_delta[512] =\n{\n "); + printf("const png_byte png_sRGB_delta[512] =\n{\n "); for (i=0; i<511; ) { do diff --git a/source/libs/libpng/libpng-src/contrib/tools/pngcp.c b/source/libs/libpng/libpng-src/contrib/tools/pngcp.c index f6a0d50f436c736cd6cde6213b96855b0162d123..16d4e7f4d1c47dbf34763b427f381a3d4e0032bf 100644 --- a/source/libs/libpng/libpng-src/contrib/tools/pngcp.c +++ b/source/libs/libpng/libpng-src/contrib/tools/pngcp.c @@ -735,7 +735,7 @@ option_index(struct display *dp, const char *opt, size_t len) static int get_option(struct display *dp, const char *opt, int *value) { - const png_byte i = option_index(dp, opt, strlen(opt)); + png_byte i = option_index(dp, opt, strlen(opt)); if (dp->entry[i]) /* option was set on command line */ { @@ -789,7 +789,7 @@ record_opt(struct display *dp, png_byte opt, const char *entry_name) * numerical value. */ { - const unsigned int sp = dp->csp; /* stack entry of next searched option */ + unsigned int sp = dp->csp; /* stack entry of next searched option */ if (sp >= dp->tsp) { @@ -797,7 +797,7 @@ record_opt(struct display *dp, png_byte opt, const char *entry_name) * searched entry or the start of the dp->curr buffer if there is nothing * on the stack yet (sp == 0). */ - const int offset = set_opt_string_(dp, sp, opt, entry_name); + int offset = set_opt_string_(dp, sp, opt, entry_name); if (sp > 0) dp->stack[sp-1].opt_string_end = offset; @@ -1222,7 +1222,7 @@ advance_opt(struct display *dp, png_byte opt, int search) } static int -getallopts_(struct display *dp, const png_byte opt, int *value, int record) +getallopts_(struct display *dp, png_byte opt, int *value, int record) /* Like getop but iterate over all the values if the option was set to "all". */ { @@ -1259,7 +1259,7 @@ getsearchopts(struct display *dp, const char *opt_str, int *value) /* As above except that if the option was not set try a search */ { png_byte istrat; - const png_byte opt = option_index(dp, opt_str, strlen(opt_str)); + png_byte opt = option_index(dp, opt_str, strlen(opt_str)); int record = options[opt].search; const char *entry_name; @@ -2220,7 +2220,7 @@ cp_one_file(struct display *dp, const char *filename, const char *destname) strcpy(dp->best, dp->curr); dp->best_size = dp->write_size; - if (dp->nsp > 0) /* interating over lists */ + if (dp->nsp > 0) /* iterating over lists */ { char *tmpname, tmpbuf[(sizeof dp->namebuf) + 4]; assert(dp->curr[0] == ' ' && dp->tsp > 0); @@ -2302,7 +2302,7 @@ cppng(struct display *dp, const char *file, const char *gv dest) } int -main(const int argc, const char * const * const argv) +main(int argc, char **argv) { /* For each file on the command line test it with a range of transforms */ int option_end; @@ -2379,7 +2379,7 @@ main(const int argc, const char * const * const argv) /* Here on any return, including failures, except user/internal issues */ { - const int pass = (d.options & STRICT) ? + int pass = (d.options & STRICT) ? RESULT_STRICT(d.results) : RESULT_RELAXED(d.results); if (!pass) diff --git a/source/libs/libpng/libpng-src/contrib/tools/pngfix.c b/source/libs/libpng/libpng-src/contrib/tools/pngfix.c index f494230d8ce371ddce4000ead50f5c136fddd00a..2fa5d13eaf8e748ee6545b907d1dda47e9e13f4e 100644 --- a/source/libs/libpng/libpng-src/contrib/tools/pngfix.c +++ b/source/libs/libpng/libpng-src/contrib/tools/pngfix.c @@ -772,7 +772,7 @@ skip_chunk_type(const struct global *global, png_uint_32 type) return 0; /* Chunks that specify gamma encoding which should therefore only be - * removed the the user insists: + * removed if the user insists: */ case png_gAMA: case png_sRGB: if (global->skip >= SKIP_ALL) @@ -2514,7 +2514,7 @@ zlib_run(struct zlib *zlib) */ for (;;) { - const unsigned int count = list->count; + unsigned int count = list->count; unsigned int i; for (i = 0; i<count; ++i) @@ -2791,7 +2791,7 @@ process_chunk(struct file *file, png_uint_32 file_crc, png_uint_32 next_length, * to read_chunk. */ { - const png_uint_32 type = file->type; + png_uint_32 type = file->type; if (file->global->verbose > 1) { @@ -3152,7 +3152,7 @@ read_chunk(struct file *file) } } - /* Control gets to here if the the stream seems invalid or damaged in some + /* Control gets to here if the stream seems invalid or damaged in some * way. Either there was a problem reading all the expected data (this * chunk's data, its CRC and the length and type of the next chunk) or the * next chunk length/type are invalid. Notice that the cases that end up @@ -3710,7 +3710,7 @@ usage(const char *prog) " practice most programs will ignore it.", " bKGD [transform]: This is used by libpng transforms." " --max=<number>:", -" Use IDAT chunks sized <number>. If no number is given the the IDAT", +" Use IDAT chunks sized <number>. If no number is given the IDAT", " chunks will be the maximum size permitted; 2^31-1 bytes. If the option", " is omitted the original chunk sizes will not be changed. When the", " option is given --strip=unsafe is set automatically. This may be", diff --git a/source/libs/libpng/libpng-src/example.c b/source/libs/libpng/libpng-src/example.c index 34ecfde22c7fe4199341b812c265bdbc8ad7960c..2e2afaafb66d29725af1794d525ce2a656e2ebe6 100644 --- a/source/libs/libpng/libpng-src/example.c +++ b/source/libs/libpng/libpng-src/example.c @@ -2,19 +2,20 @@ #if 0 /* in case someone actually tries to compile this */ /* example.c - an example of using libpng - * Last changed in libpng 1.6.35 [July 15, 2018] + * * Maintained 2018 Cosmin Truta * Maintained 1998-2016 Glenn Randers-Pehrson - * Maintained 1996, 1997 Andreas Dilger) - * Written 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * Maintained 1996-1997 Andreas Dilger + * Written 1995-1996 Guy Eric Schalnat, Group 42, Inc. + * * To the extent possible under law, the authors have waived * all copyright and related or neighboring rights to this file. * This work is published from: United States, Canada. */ /* This is an example of how to use libpng to read and write PNG files. - * The file libpng-manual.txt is much more verbose then this. If you have not - * read it, do so first. This was designed to be a starting point of an + * The file libpng-manual.txt is much more verbose then this. If you have + * not read it, do so first. This was designed to be a starting point of an * implementation. This is not officially part of libpng, is hereby placed * in the public domain, and therefore does not require a copyright notice. * @@ -25,16 +26,17 @@ * see also the programs in the contrib directory. */ -/* The simple, but restricted, approach to reading a PNG file or data stream - * just requires two function calls, as in the following complete program. - * Writing a file just needs one function call, so long as the data has an +/* The simple, but restricted approach to reading a PNG file or data stream + * requires just two function calls, as in the following complete program. + * Writing a file needs just one function call, so long as the data has an * appropriate layout. * * The following code reads PNG image data from a file and writes it, in a - * potentially new format, to a new file. While this code will compile there is - * minimal (insufficient) error checking; for a more realistic version look at - * contrib/examples/pngtopng.c + * potentially new format, to a new file. While this code will compile, there + * is minimal (insufficient) error checking. For a more realistic version, + * see contrib/examples/pngtopng.c */ + #include <stddef.h> #include <stdlib.h> #include <string.h> @@ -69,28 +71,28 @@ int main(int argc, const char **argv) */ buffer = malloc(PNG_IMAGE_SIZE(image)); - /* If enough memory was available read the image in the desired format - * then write the result out to the new file. 'background' is not - * necessary when reading the image because the alpha channel is + /* If enough memory was available, read the image in the desired + * format, then write the result out to the new file. 'background' is + * not necessary when reading the image, because the alpha channel is * preserved; if it were to be removed, for example if we requested * PNG_FORMAT_RGB, then either a solid background color would have to - * be supplied or the output buffer would have to be initialized to the - * actual background of the image. + * be supplied, or the output buffer would have to be initialized to + * the actual background of the image. * * The fourth argument to png_image_finish_read is the 'row_stride' - * this is the number of components allocated for the image in each * row. It has to be at least as big as the value returned by * PNG_IMAGE_ROW_STRIDE, but if you just allocate space for the - * default, minimum, size using PNG_IMAGE_SIZE as above you can pass + * default, minimum size, using PNG_IMAGE_SIZE as above, you can pass * zero. * * The final argument is a pointer to a buffer for the colormap; - * colormaps have exactly the same format as a row of image pixels (so - * you choose what format to make the colormap by setting + * colormaps have exactly the same format as a row of image pixels + * (so you choose what format to make the colormap by setting * image.format). A colormap is only returned if * PNG_FORMAT_FLAG_COLORMAP is also set in image.format, so in this * case NULL is passed as the final argument. If you do want to force - * all images into an index/color-mapped format then you can use: + * all images into an index/color-mapped format, then you can use: * * PNG_IMAGE_COLORMAP_SIZE(image) * @@ -112,17 +114,15 @@ int main(int argc, const char **argv) exit(0); } } - else { /* Calling png_image_free is optional unless the simplified API was - * not run to completion. In this case if there wasn't enough - * memory for 'buffer' we didn't complete the read, so we must free - * the image: + * not run to completion. In this case, if there wasn't enough + * memory for 'buffer', we didn't complete the read, so we must + * free the image: */ if (buffer == NULL) png_image_free(&image); - else free(buffer); } @@ -131,65 +131,67 @@ int main(int argc, const char **argv) * textual message in the 'png_image' structure: */ fprintf(stderr, "pngtopng: error: %s\n", image.message); - exit (1); + exit(1); } fprintf(stderr, "pngtopng: usage: pngtopng input-file output-file\n"); - exit(1); + exit(2); } /* That's it ;-) Of course you probably want to do more with PNG files than * just converting them all to 32-bit RGBA PNG files; you can do that between * the call to png_image_finish_read and png_image_write_to_file. You can also - * ask for the image data to be presented in a number of different formats. You - * do this by simply changing the 'format' parameter set before allocating the - * buffer. + * ask for the image data to be presented in a number of different formats. + * You do this by simply changing the 'format' parameter set before allocating + * the buffer. * * The format parameter consists of five flags that define various aspects of - * the image, you can simply add these together to get the format or you can use - * one of the predefined macros from png.h (as above): + * the image. You can simply add these together to get the format, or you can + * use one of the predefined macros from png.h (as above): * - * PNG_FORMAT_FLAG_COLOR: if set the image will have three color components per - * pixel (red, green and blue), if not set the image will just have one + * PNG_FORMAT_FLAG_COLOR: if set, the image will have three color components + * per pixel (red, green and blue); if not set, the image will just have one * luminance (grayscale) component. * - * PNG_FORMAT_FLAG_ALPHA: if set each pixel in the image will have an additional - * alpha value; a linear value that describes the degree the image pixel - * covers (overwrites) the contents of the existing pixel on the display. + * PNG_FORMAT_FLAG_ALPHA: if set, each pixel in the image will have an + * additional alpha value; a linear value that describes the degree the + * image pixel covers (overwrites) the contents of the existing pixel on the + * display. * - * PNG_FORMAT_FLAG_LINEAR: if set the components of each pixel will be returned - * as a series of 16-bit linear values, if not set the components will be - * returned as a series of 8-bit values encoded according to the 'sRGB' - * standard. The 8-bit format is the normal format for images intended for - * direct display, because almost all display devices do the inverse of the - * sRGB transformation to the data they receive. The 16-bit format is more - * common for scientific data and image data that must be further processed; - * because it is linear simple math can be done on the component values. - * Regardless of the setting of this flag the alpha channel is always linear, - * although it will be 8 bits or 16 bits wide as specified by the flag. + * PNG_FORMAT_FLAG_LINEAR: if set, the components of each pixel will be + * returned as a series of 16-bit linear values; if not set, the components + * will be returned as a series of 8-bit values encoded according to the + * sRGB standard. The 8-bit format is the normal format for images intended + * for direct display, because almost all display devices do the inverse of + * the sRGB transformation to the data they receive. The 16-bit format is + * more common for scientific data and image data that must be further + * processed; because it is linear, simple math can be done on the component + * values. Regardless of the setting of this flag, the alpha channel is + * always linear, although it will be 8 bits or 16 bits wide as specified by + * the flag. * - * PNG_FORMAT_FLAG_BGR: if set the components of a color pixel will be returned - * in the order blue, then green, then red. If not set the pixel components - * are in the order red, then green, then blue. + * PNG_FORMAT_FLAG_BGR: if set, the components of a color pixel will be + * returned in the order blue, then green, then red. If not set, the pixel + * components are in the order red, then green, then blue. * - * PNG_FORMAT_FLAG_AFIRST: if set the alpha channel (if present) precedes the - * color or grayscale components. If not set the alpha channel follows the + * PNG_FORMAT_FLAG_AFIRST: if set, the alpha channel (if present) precedes the + * color or grayscale components. If not set, the alpha channel follows the * components. * * You do not have to read directly from a file. You can read from memory or, * on systems that support it, from a <stdio.h> FILE*. This is controlled by - * the particular png_image_read_from_ function you call at the start. Likewise - * on write you can write to a FILE* if your system supports it. Check the - * macro PNG_STDIO_SUPPORTED to see if stdio support has been included in your - * libpng build. + * the particular png_image_read_from_ function you call at the start. + * Likewise, on write, you can write to a FILE* if your system supports it. + * Check the macro PNG_STDIO_SUPPORTED to see if stdio support has been + * included in your libpng build. * - * If you read 16-bit (PNG_FORMAT_FLAG_LINEAR) data you may need to write it in - * the 8-bit format for display. You do this by setting the convert_to_8bit + * If you read 16-bit (PNG_FORMAT_FLAG_LINEAR) data, you may need to write it + * in the 8-bit format for display. You do this by setting the convert_to_8bit * flag to 'true'. * * Don't repeatedly convert between the 8-bit and 16-bit forms. There is - * significant data loss when 16-bit data is converted to the 8-bit encoding and - * the current libpng implementation of conversion to 16-bit is also + * significant data loss when 16-bit data is converted to the 8-bit encoding, + * and the current libpng implementation of conversion to 16-bit is also * significantly lossy. The latter will be fixed in the future, but the former * is unavoidable - the 8-bit format just doesn't have enough resolution. */ @@ -200,10 +202,10 @@ int main(int argc, const char **argv) * interfaces. * * All these interfaces require that you do your own error handling - your - * program must be able to arrange for control to return to your own code any - * time libpng encounters a problem. There are several ways to do this, but the - * standard way is to use the ANSI-C (C90) <setjmp.h> interface to establish a - * return point within your own code. You must do this if you do not use the + * program must be able to arrange for control to return to your own code, any + * time libpng encounters a problem. There are several ways to do this, but + * the standard way is to use the <setjmp.h> interface to establish a return + * point within your own code. You must do this if you do not use the * simplified interface (above). * * The first step is to include the header files you need, including the libpng @@ -215,7 +217,7 @@ int main(int argc, const char **argv) /* The png_jmpbuf() macro, used in error handling, became available in * libpng version 1.0.6. If you want to be able to run your code with older * versions of libpng, you must define the macro yourself (but only if it - * is not already defined by libpng!). + * is not already defined by libpng!) */ #ifndef png_jmpbuf @@ -223,10 +225,10 @@ int main(int argc, const char **argv) #endif /* Check to see if a file is a PNG file using png_sig_cmp(). png_sig_cmp() - * returns zero if the image is a PNG and nonzero if it isn't a PNG. + * returns zero if the image is a PNG, and nonzero otherwise. * * The function check_if_png() shown here, but not used, returns nonzero (true) - * if the file can be opened and is a PNG, 0 (false) otherwise. + * if the file can be opened and is a PNG, and 0 (false) otherwise. * * If this call is successful, and you are going to keep the file open, * you should call png_set_sig_bytes(png_ptr, PNG_BYTES_TO_CHECK); once @@ -239,7 +241,7 @@ int main(int argc, const char **argv) * * Many applications already read the first 2 or 4 bytes from the start * of the image to determine the file type, so it would be easiest just - * to pass the bytes to png_sig_cmp() or even skip that if you know + * to pass the bytes to png_sig_cmp(), or even skip that if you know * you have a PNG file, and call png_set_sig_bytes(). */ #define PNG_BYTES_TO_CHECK 4 @@ -251,13 +253,13 @@ int check_if_png(char *file_name, FILE **fp) if ((*fp = fopen(file_name, "rb")) == NULL) return 0; - /* Read in some of the signature bytes */ + /* Read in some of the signature bytes. */ if (fread(buf, 1, PNG_BYTES_TO_CHECK, *fp) != PNG_BYTES_TO_CHECK) return 0; /* Compare the first PNG_BYTES_TO_CHECK bytes of the signature. - Return nonzero (true) if they match */ - + * Return nonzero (true) if they match. + */ return(!png_sig_cmp(buf, 0, PNG_BYTES_TO_CHECK)); } @@ -268,7 +270,7 @@ int check_if_png(char *file_name, FILE **fp) * some or all of the magic bytes read - see comments above). */ #ifdef open_file /* prototype 1 */ -void read_png(char *file_name) /* We need to open the file */ +void read_png(char *file_name) /* We need to open the file */ { png_structp png_ptr; png_infop info_ptr; @@ -281,7 +283,7 @@ void read_png(char *file_name) /* We need to open the file */ return (ERROR); #else no_open_file /* prototype 2 */ -void read_png(FILE *fp, int sig_read) /* File is already open */ +void read_png(FILE *fp, int sig_read) /* File is already open */ { png_structp png_ptr; png_infop info_ptr; @@ -293,7 +295,7 @@ void read_png(FILE *fp, int sig_read) /* File is already open */ * functions. If you want to use the default stderr and longjump method, * you can supply NULL for the last three parameters. We also supply the * the compiler header file version, so that we know if the application - * was compiled with a compatible version of the library. REQUIRED + * was compiled with a compatible version of the library. REQUIRED. */ png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, png_voidp user_error_ptr, user_error_fn, user_warning_fn); @@ -317,35 +319,33 @@ void read_png(FILE *fp, int sig_read) /* File is already open */ * the normal method of doing things with libpng). REQUIRED unless you * set up your own error handlers in the png_create_read_struct() earlier. */ - if (setjmp(png_jmpbuf(png_ptr))) { - /* Free all of the memory associated with the png_ptr and info_ptr */ + /* Free all of the memory associated with the png_ptr and info_ptr. */ png_destroy_read_struct(&png_ptr, &info_ptr, NULL); fclose(fp); - /* If we get here, we had a problem reading the file */ + /* If we get here, we had a problem reading the file. */ return (ERROR); } - /* One of the following I/O initialization methods is REQUIRED */ + /* One of the following I/O initialization methods is REQUIRED. */ #ifdef streams /* PNG file I/O method 1 */ - /* Set up the input control if you are using standard C streams */ + /* Set up the input control if you are using standard C streams. */ png_init_io(png_ptr, fp); #else no_streams /* PNG file I/O method 2 */ /* If you are using replacement read functions, instead of calling - * png_init_io() here you would call: + * png_init_io(), you would call: */ png_set_read_fn(png_ptr, (void *)user_io_ptr, user_read_fn); - /* where user_io_ptr is a structure you want available to the callbacks */ + /* where user_io_ptr is a structure you want available to the callbacks. */ #endif no_streams /* Use only one I/O method! */ /* If we have already read some of the signature */ png_set_sig_bytes(png_ptr, sig_read); #ifdef hilevel - /* - * If you have enough memory to read in the entire image at once, + /* If you have enough memory to read in the entire image at once, * and you need to specify only transforms that can be controlled * with one of the PNG_TRANSFORM_* bits (this presently excludes * quantizing, filling, setting background, and doing gamma @@ -355,10 +355,10 @@ void read_png(FILE *fp, int sig_read) /* File is already open */ png_read_png(png_ptr, info_ptr, png_transforms, NULL); #else - /* OK, you're doing it the hard way, with the lower-level functions */ + /* OK, you're doing it the hard way, with the lower-level functions. */ /* The call to png_read_info() gives us all of the information from the - * PNG file before the first IDAT (image data chunk). REQUIRED + * PNG file before the first IDAT (image data chunk). REQUIRED. */ png_read_info(png_ptr, info_ptr); @@ -386,20 +386,21 @@ void read_png(FILE *fp, int sig_read) /* File is already open */ */ png_set_strip_alpha(png_ptr); - /* Extract multiple pixels with bit depths of 1, 2, and 4 from a single + /* Extract multiple pixels with bit depths of 1, 2 or 4 from a single * byte into separate bytes (useful for paletted and grayscale images). */ png_set_packing(png_ptr); /* Change the order of packed pixels to least significant bit first - * (not useful if you are using png_set_packing). */ + * (not useful if you are using png_set_packing). + */ png_set_packswap(png_ptr); - /* Expand paletted colors into true RGB triplets */ + /* Expand paletted colors into true RGB triplets. */ if (color_type == PNG_COLOR_TYPE_PALETTE) png_set_palette_to_rgb(png_ptr); - /* Expand grayscale images to the full 8 bits from 1, 2, or 4 bits/pixel */ + /* Expand grayscale images to the full 8 bits from 1, 2 or 4 bits/pixel. */ if (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) png_set_expand_gray_1_2_4_to_8(png_ptr); @@ -410,12 +411,11 @@ void read_png(FILE *fp, int sig_read) /* File is already open */ png_set_tRNS_to_alpha(png_ptr); /* Set the background color to draw transparent and alpha images over. - * It is possible to set the red, green, and blue components directly - * for paletted images instead of supplying a palette index. Note that + * It is possible to set the red, green and blue components directly + * for paletted images, instead of supplying a palette index. Note that, * even if the PNG file supplies a background, you are not required to * use it - you should use the (solid) application background if it has one. */ - png_color_16 my_background, *image_background; if (png_get_bKGD(png_ptr, info_ptr, &image_background) != 0) @@ -425,32 +425,29 @@ void read_png(FILE *fp, int sig_read) /* File is already open */ png_set_background(png_ptr, &my_background, PNG_BACKGROUND_GAMMA_SCREEN, 0, 1.0); - /* Some suggestions as to how to get a screen gamma value + /* Some suggestions as to how to get a screen gamma value. * * Note that screen gamma is the display_exponent, which includes - * the CRT_exponent and any correction for viewing conditions + * the CRT_exponent and any correction for viewing conditions. */ if (/* We have a user-defined screen gamma value */) - { screen_gamma = user-defined screen_gamma; - } - /* This is one way that applications share the same screen gamma value */ + /* This is one way that applications share the same screen gamma value. */ else if ((gamma_str = getenv("SCREEN_GAMMA")) != NULL) - { screen_gamma = atof(gamma_str); - } /* If we don't have another value */ else { - screen_gamma = PNG_DEFAULT_sRGB; /* A good guess for a PC monitor - in a dimly lit room */ - screen_gamma = PNG_GAMMA_MAC_18 or 1.0; /* Good guesses for Mac systems */ + screen_gamma = PNG_DEFAULT_sRGB; /* A good guess for a PC monitor + in a dimly lit room */ + screen_gamma = PNG_GAMMA_MAC_18 or 1.0; /* Good guesses for Mac + systems */ } /* Tell libpng to handle the gamma conversion for you. The final call * is a good guess for PC generated images, but it should be configurable - * by the user at run time by the user. It is strongly suggested that - * your application support gamma correction. + * by the user at run time. Gamma correction support in your application + * is strongly recommended. */ int intent; @@ -467,7 +464,7 @@ void read_png(FILE *fp, int sig_read) /* File is already open */ } #ifdef PNG_READ_QUANTIZE_SUPPORTED - /* Quantize RGB files down to 8-bit palette or reduce palettes + /* Quantize RGB files down to 8-bit palette, or reduce palettes * to the number of colors available on your screen. */ if ((color_type & PNG_COLOR_MASK_COLOR) != 0) @@ -475,29 +472,26 @@ void read_png(FILE *fp, int sig_read) /* File is already open */ int num_palette; png_colorp palette; - /* This reduces the image to the application supplied palette */ + /* This reduces the image to the application-supplied palette. */ if (/* We have our own palette */) { - /* An array of colors to which the image should be quantized */ + /* An array of colors to which the image should be quantized. */ png_color std_color_cube[MAX_SCREEN_COLORS]; - png_set_quantize(png_ptr, std_color_cube, MAX_SCREEN_COLORS, MAX_SCREEN_COLORS, NULL, 0); } - /* This reduces the image to the palette supplied in the file */ + /* This reduces the image to the palette supplied in the file. */ else if (png_get_PLTE(png_ptr, info_ptr, &palette, &num_palette) != 0) { png_uint_16p histogram = NULL; - png_get_hIST(png_ptr, info_ptr, &histogram); - png_set_quantize(png_ptr, palette, num_palette, max_screen_colors, histogram, 0); } } #endif /* READ_QUANTIZE */ - /* Invert monochrome files to have 0 as white and 1 as black */ + /* Invert monochrome files to have 0 as white and 1 as black. */ png_set_invert_mono(png_ptr); /* If you want to shift the pixel values from the range [0,255] or @@ -507,22 +501,21 @@ void read_png(FILE *fp, int sig_read) /* File is already open */ if (png_get_valid(png_ptr, info_ptr, PNG_INFO_sBIT) != 0) { png_color_8p sig_bit_p; - png_get_sBIT(png_ptr, info_ptr, &sig_bit_p); png_set_shift(png_ptr, sig_bit_p); } - /* Flip the RGB pixels to BGR (or RGBA to BGRA) */ + /* Flip the RGB pixels to BGR (or RGBA to BGRA). */ if ((color_type & PNG_COLOR_MASK_COLOR) != 0) png_set_bgr(png_ptr); - /* Swap the RGBA or GA data to ARGB or AG (or BGRA to ABGR) */ + /* Swap the RGBA or GA data to ARGB or AG (or BGRA to ABGR). */ png_set_swap_alpha(png_ptr); - /* Swap bytes of 16-bit files to least significant byte first */ + /* Swap bytes of 16-bit files to least significant byte first. */ png_set_swap(png_ptr); - /* Add filler (or alpha) byte (before/after each RGB triplet) */ + /* Add filler (or alpha) byte (before/after each RGB triplet). */ png_set_filler(png_ptr, 0xffff, PNG_FILLER_AFTER); #ifdef PNG_READ_INTERLACING_SUPPORTED @@ -535,40 +528,31 @@ void read_png(FILE *fp, int sig_read) /* File is already open */ number_passes = 1; #endif /* READ_INTERLACING */ - /* Optional call to gamma correct and add the background to the palette * and update info structure. REQUIRED if you are expecting libpng to - * update the palette for you (ie you selected such a transform above). + * update the palette for you (i.e. you selected such a transform above). */ png_read_update_info(png_ptr, info_ptr); /* Allocate the memory to hold the image using the fields of info_ptr. */ - - /* The easiest way to read the image: */ png_bytep row_pointers[height]; - - /* Clear the pointer array */ for (row = 0; row < height; row++) - row_pointers[row] = NULL; - + row_pointers[row] = NULL; /* Clear the pointer array */ for (row = 0; row < height; row++) row_pointers[row] = png_malloc(png_ptr, png_get_rowbytes(png_ptr, info_ptr)); - /* Now it's time to read the image. One of these methods is REQUIRED */ + /* Now it's time to read the image. One of these methods is REQUIRED. */ #ifdef entire /* Read the entire image in one go */ png_read_image(png_ptr, row_pointers); #else no_entire /* Read the image one or more scanlines at a time */ /* The other way to read images - deal with interlacing: */ - for (pass = 0; pass < number_passes; pass++) { #ifdef single /* Read the image a single row at a time */ for (y = 0; y < height; y++) - { png_read_rows(png_ptr, &row_pointers[y], NULL, 1); - } #else no_single /* Read the image several rows at a time */ for (y = 0; y < height; y += number_of_rows) @@ -582,24 +566,24 @@ void read_png(FILE *fp, int sig_read) /* File is already open */ #endif no_sparkle /* Use only one of these two methods */ } - /* If you want to display the image after every pass, do so here */ + /* If you want to display the image after every pass, do so here. */ #endif no_single /* Use only one of these two methods */ } #endif no_entire /* Use only one of these two methods */ - /* Read rest of file, and get additional chunks in info_ptr - REQUIRED */ + /* Read rest of file, and get additional chunks in info_ptr. REQUIRED. */ png_read_end(png_ptr, info_ptr); #endif hilevel - /* At this point you have read the entire image */ + /* At this point you have read the entire image. */ - /* Clean up after the read, and free any memory allocated - REQUIRED */ + /* Clean up after the read, and free any memory allocated. REQUIRED. */ png_destroy_read_struct(&png_ptr, &info_ptr, NULL); - /* Close the file */ + /* Close the file. */ fclose(fp); - /* That's it */ + /* That's it! */ return (OK); } @@ -611,34 +595,30 @@ initialize_png_reader(png_structp *png_ptr, png_infop *info_ptr) /* Create and initialize the png_struct with the desired error handler * functions. If you want to use the default stderr and longjump method, * you can supply NULL for the last three parameters. We also check that - * the library version is compatible in case we are using dynamically + * the library version is compatible, in case we are using dynamically * linked libraries. */ *png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, png_voidp user_error_ptr, user_error_fn, user_warning_fn); - if (*png_ptr == NULL) { *info_ptr = NULL; return (ERROR); } - *info_ptr = png_create_info_struct(png_ptr); - if (*info_ptr == NULL) { png_destroy_read_struct(png_ptr, info_ptr, NULL); return (ERROR); } - if (setjmp(png_jmpbuf((*png_ptr)))) { png_destroy_read_struct(png_ptr, info_ptr, NULL); return (ERROR); } - /* This one's new. You will need to provide all three - * function callbacks, even if you aren't using them all. + /* You will need to provide all three function callbacks, + * even if you aren't using all of them. * If you aren't using all functions, you can specify NULL * parameters. Even when all three functions are NULL, * you need to call png_set_progressive_read_fn(). @@ -651,7 +631,6 @@ initialize_png_reader(png_structp *png_ptr, png_infop *info_ptr) */ png_set_progressive_read_fn(*png_ptr, (void *)stream_data, info_callback, row_callback, end_callback); - return (OK); } @@ -661,18 +640,18 @@ process_data(png_structp *png_ptr, png_infop *info_ptr, { if (setjmp(png_jmpbuf((*png_ptr)))) { - /* Free the png_ptr and info_ptr memory on error */ + /* Free the png_ptr and info_ptr memory on error. */ png_destroy_read_struct(png_ptr, info_ptr, NULL); return (ERROR); } - /* This one's new also. Simply give it chunks of data as - * they arrive from the data stream (in order, of course). + /* Give chunks of data as they arrive from the data stream + * (in order, of course). * On segmented machines, don't give it any more than 64K. * The library seems to run fine with sizes of 4K, although - * you can give it much less if necessary (I assume you can + * you can give it much less if necessary. (I assume you can * give it chunks of 1 byte, but I haven't tried with less - * than 256 bytes yet). When this function returns, you may + * than 256 bytes yet.) When this function returns, you may * want to display any rows that were generated in the row * callback, if you aren't already displaying them there. */ @@ -694,8 +673,7 @@ info_callback(png_structp png_ptr, png_infop info) row_callback(png_structp png_ptr, png_bytep new_row, png_uint_32 row_num, int pass) { - /* - * This function is called for every row in the image. If the + /* This function is called for every row in the image. If the * image is interlaced, and you turned on the interlace handler, * this function will be called for every row in every pass. * @@ -706,25 +684,22 @@ row_callback(png_structp png_ptr, png_bytep new_row, * The new row data pointer "new_row" may be NULL, indicating there is * no new data to be replaced (in cases of interlace loading). * - * If new_row is not NULL then you need to call - * png_progressive_combine_row() to replace the corresponding row as + * If new_row is not NULL, then you need to call + * png_progressive_combine_row(), to replace the corresponding row as * shown below: */ - /* Get pointer to corresponding row in our - * PNG read buffer. - */ + /* Get pointer to corresponding row in our PNG read buffer. */ png_bytep old_row = ((png_bytep *)our_data)[row_num]; #ifdef PNG_READ_INTERLACING_SUPPORTED - /* If both rows are allocated then copy the new row + /* If both rows are allocated, then copy the new row * data to the corresponding row data. */ - if ((old_row != NULL) && (new_row != NULL)) - png_progressive_combine_row(png_ptr, old_row, new_row); + if (old_row != NULL && new_row != NULL) + png_progressive_combine_row(png_ptr, old_row, new_row); - /* - * The rows and passes are called in order, so you don't really + /* The rows and passes are called in order, so you don't really * need the row_num and pass, but I'm supplying them because it * may make your life easier. * @@ -735,7 +710,6 @@ row_callback(png_structp png_ptr, png_bytep new_row, * (it just does the memcpy for you) if it will make the code * easier. Thus, you can just do this for all cases: */ - png_progressive_combine_row(png_ptr, old_row, new_row); /* where old_row is what was displayed for previous rows. Note @@ -782,14 +756,13 @@ void write_png(char *file_name /* , ... other image information ... */) */ png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, png_voidp user_error_ptr, user_error_fn, user_warning_fn); - if (png_ptr == NULL) { fclose(fp); return (ERROR); } - /* Allocate/initialize the image information data. REQUIRED */ + /* Allocate/initialize the image information data. REQUIRED. */ info_ptr = png_create_info_struct(png_ptr); if (info_ptr == NULL) { @@ -798,30 +771,30 @@ void write_png(char *file_name /* , ... other image information ... */) return (ERROR); } - /* Set error handling. REQUIRED if you aren't supplying your own + /* Set up error handling. REQUIRED if you aren't supplying your own * error handling functions in the png_create_write_struct() call. */ if (setjmp(png_jmpbuf(png_ptr))) { - /* If we get here, we had a problem writing the file */ + /* If we get here, we had a problem writing the file. */ fclose(fp); png_destroy_write_struct(&png_ptr, &info_ptr); return (ERROR); } - /* One of the following I/O initialization functions is REQUIRED */ + /* One of the following I/O initialization functions is REQUIRED. */ #ifdef streams /* I/O initialization method 1 */ - /* Set up the output control if you are using standard C streams */ + /* Set up the output control if you are using standard C streams. */ png_init_io(png_ptr, fp); #else no_streams /* I/O initialization method 2 */ /* If you are using replacement write functions, instead of calling - * png_init_io() here you would call + * png_init_io(), you would call: */ png_set_write_fn(png_ptr, (void *)user_io_ptr, user_write_fn, user_IO_flush_function); - /* where user_io_ptr is a structure you want available to the callbacks */ + /* where user_io_ptr is a structure you want available to the callbacks. */ #endif no_streams /* Only use one initialization method */ #ifdef hilevel @@ -832,30 +805,32 @@ void write_png(char *file_name /* , ... other image information ... */) png_write_png(png_ptr, info_ptr, png_transforms, NULL); #else - /* This is the hard way */ + /* This is the hard way. */ /* Set the image information here. Width and height are up to 2^31, - * bit_depth is one of 1, 2, 4, 8, or 16, but valid values also depend on - * the color_type selected. color_type is one of PNG_COLOR_TYPE_GRAY, + * bit_depth is one of 1, 2, 4, 8 or 16, but valid values also depend on + * the color_type selected. color_type is one of PNG_COLOR_TYPE_GRAY, * PNG_COLOR_TYPE_GRAY_ALPHA, PNG_COLOR_TYPE_PALETTE, PNG_COLOR_TYPE_RGB, * or PNG_COLOR_TYPE_RGB_ALPHA. interlace is either PNG_INTERLACE_NONE or * PNG_INTERLACE_ADAM7, and the compression_type and filter_type MUST - * currently be PNG_COMPRESSION_TYPE_BASE and PNG_FILTER_TYPE_BASE. REQUIRED + * currently be PNG_COMPRESSION_TYPE_BASE and PNG_FILTER_TYPE_BASE. + * REQUIRED. */ - png_set_IHDR(png_ptr, info_ptr, width, height, bit_depth, PNG_COLOR_TYPE_???, - PNG_INTERLACE_????, PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE); + png_set_IHDR(png_ptr, info_ptr, width, height, bit_depth, + PNG_COLOR_TYPE_???, PNG_INTERLACE_????, + PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE); - /* Set the palette if there is one. REQUIRED for indexed-color images */ - palette = (png_colorp)png_malloc(png_ptr, PNG_MAX_PALETTE_LENGTH - * (sizeof (png_color))); + /* Set the palette if there is one. REQUIRED for indexed-color images. */ + palette = (png_colorp)png_malloc(png_ptr, + PNG_MAX_PALETTE_LENGTH * (sizeof (png_color))); /* ... Set palette colors ... */ png_set_PLTE(png_ptr, info_ptr, palette, PNG_MAX_PALETTE_LENGTH); - /* You must not free palette here, because png_set_PLTE only makes a link to - * the palette that you malloced. Wait until you are about to destroy + /* You must not free palette here, because png_set_PLTE only makes a link + * to the palette that you allocated. Wait until you are about to destroy * the png structure. */ - /* Optional significant bit (sBIT) chunk */ + /* Optional significant bit (sBIT) chunk. */ png_color_8 sig_bit; /* If we are dealing with a grayscale image then */ @@ -871,18 +846,17 @@ void write_png(char *file_name /* , ... other image information ... */) png_set_sBIT(png_ptr, info_ptr, &sig_bit); - /* Optional gamma chunk is strongly suggested if you have any guess * as to the correct gamma of the image. */ png_set_gAMA(png_ptr, info_ptr, gamma); - /* Optionally write comments into the image */ + /* Optionally write comments into the image. */ { png_text text_ptr[3]; - char key0[]="Title"; - char text0[]="Mona Lisa"; + char key0[] = "Title"; + char text0[] = "Mona Lisa"; text_ptr[0].key = key0; text_ptr[0].text = text0; text_ptr[0].compression = PNG_TEXT_COMPRESSION_NONE; @@ -890,8 +864,8 @@ void write_png(char *file_name /* , ... other image information ... */) text_ptr[0].lang = NULL; text_ptr[0].lang_key = NULL; - char key1[]="Author"; - char text1[]="Leonardo DaVinci"; + char key1[] = "Author"; + char text1[] = "Leonardo DaVinci"; text_ptr[1].key = key1; text_ptr[1].text = text1; text_ptr[1].compression = PNG_TEXT_COMPRESSION_NONE; @@ -899,8 +873,8 @@ void write_png(char *file_name /* , ... other image information ... */) text_ptr[1].lang = NULL; text_ptr[1].lang_key = NULL; - char key2[]="Description"; - char text2[]="<long text>"; + char key2[] = "Description"; + char text2[] = "<long text>"; text_ptr[2].key = key2; text_ptr[2].text = text2; text_ptr[2].compression = PNG_TEXT_COMPRESSION_zTXt; @@ -911,14 +885,14 @@ void write_png(char *file_name /* , ... other image information ... */) png_set_text(write_ptr, write_info_ptr, text_ptr, 3); } - /* Other optional chunks like cHRM, bKGD, tRNS, tIME, oFFs, pHYs */ + /* Other optional chunks like cHRM, bKGD, tRNS, tIME, oFFs, pHYs. */ - /* Note that if sRGB is present the gAMA and cHRM chunks must be ignored + /* Note that if sRGB is present, the gAMA and cHRM chunks must be ignored * on read and, if your application chooses to write them, they must - * be written in accordance with the sRGB profile + * be written in accordance with the sRGB profile. */ - /* Write the file header information. REQUIRED */ + /* Write the file header information. REQUIRED. */ png_write_info(png_ptr, info_ptr); /* If you want, you can write the info in two steps, in case you need to @@ -942,7 +916,7 @@ void write_png(char *file_name /* , ... other image information ... */) * all optional. Only call them if you want them. */ - /* Invert monochrome pixels */ + /* Invert monochrome pixels. */ png_set_invert_mono(png_ptr); /* Shift the pixels up to a legal bit depth and fill in @@ -950,30 +924,29 @@ void write_png(char *file_name /* , ... other image information ... */) */ png_set_shift(png_ptr, &sig_bit); - /* Pack pixels into bytes */ + /* Pack pixels into bytes. */ png_set_packing(png_ptr); - /* Swap location of alpha bytes from ARGB to RGBA */ + /* Swap location of alpha bytes from ARGB to RGBA. */ png_set_swap_alpha(png_ptr); /* Get rid of filler (OR ALPHA) bytes, pack XRGB/RGBX/ARGB/RGBA into - * RGB (4 channels -> 3 channels). The second parameter is not used. + * RGB (4 channels -> 3 channels). The second parameter is not used. */ png_set_filler(png_ptr, 0, PNG_FILLER_BEFORE); - /* Flip BGR pixels to RGB */ + /* Flip BGR pixels to RGB. */ png_set_bgr(png_ptr); - /* Swap bytes of 16-bit files to most significant byte first */ + /* Swap bytes of 16-bit files to most significant byte first. */ png_set_swap(png_ptr); - /* Swap bits of 1-bit, 2-bit, 4-bit packed pixel formats */ + /* Swap bits of 1-bit, 2-bit, 4-bit packed pixel formats. */ png_set_packswap(png_ptr); - /* Turn on interlace handling if you are not using png_write_image() */ + /* Turn on interlace handling if you are not using png_write_image(). */ if (interlacing != 0) number_passes = png_set_interlace_handling(png_ptr); - else number_passes = 1; @@ -983,29 +956,28 @@ void write_png(char *file_name /* , ... other image information ... */) */ png_uint_32 k, height, width; - /* In this example, "image" is a one-dimensional array of bytes */ + /* In this example, "image" is a one-dimensional array of bytes. */ - /* Guard against integer overflow */ - if (height > PNG_SIZE_MAX/(width*bytes_per_pixel)) { - png_error(png_ptr, "Image_data buffer would be too large"); - } - png_byte image[height*width*bytes_per_pixel]; + /* Guard against integer overflow. */ + if (height > PNG_SIZE_MAX / (width * bytes_per_pixel)) + png_error(png_ptr, "Image data buffer would be too large"); + png_byte image[height * width * bytes_per_pixel]; png_bytep row_pointers[height]; - if (height > PNG_UINT_32_MAX/(sizeof (png_bytep))) - png_error (png_ptr, "Image is too tall to process in memory"); + if (height > PNG_UINT_32_MAX / (sizeof (png_bytep))) + png_error(png_ptr, "Image is too tall to process in memory"); - /* Set up pointers into your "image" byte array */ + /* Set up pointers into your "image" byte array. */ for (k = 0; k < height; k++) - row_pointers[k] = image + k*width*bytes_per_pixel; + row_pointers[k] = image + k * width * bytes_per_pixel; - /* One of the following output methods is REQUIRED */ + /* One of the following output methods is REQUIRED. */ #ifdef entire /* Write out the entire image data in one call */ png_write_image(png_ptr, row_pointers); - /* The other way to write the image - deal with interlacing */ + /* The other way to write the image - deal with interlacing. */ #else no_entire /* Write out the image data by one or more scanlines */ @@ -1017,27 +989,27 @@ void write_png(char *file_name /* , ... other image information ... */) /* Write a few rows at a time. */ png_write_rows(png_ptr, &row_pointers[first_row], number_of_rows); - /* If you are only writing one row at a time, this works */ + /* If you are only writing one row at a time, this works. */ for (y = 0; y < height; y++) png_write_rows(png_ptr, &row_pointers[y], 1); } #endif no_entire /* Use only one output method */ /* You can write optional chunks like tEXt, zTXt, and tIME at the end - * as well. Shouldn't be necessary in 1.2.0 and up as all the public - * chunks are supported and you can use png_set_unknown_chunks() to + * as well. Shouldn't be necessary in 1.2.0 and up, as all the public + * chunks are supported, and you can use png_set_unknown_chunks() to * register unknown chunks into the info structure to be written out. */ - /* It is REQUIRED to call this to finish writing the rest of the file */ + /* It is REQUIRED to call this to finish writing the rest of the file. */ png_write_end(png_ptr, info_ptr); #endif hilevel - /* If you png_malloced a palette, free it here (don't free info_ptr->palette, - * as recommended in versions 1.0.5m and earlier of this example; if - * libpng mallocs info_ptr->palette, libpng will free it). If you - * allocated it with malloc() instead of png_malloc(), use free() instead - * of png_free(). + /* If you png_malloced a palette, free it here. + * (Don't free info_ptr->palette, as shown in versions 1.0.5m and earlier of + * this example; if libpng mallocs info_ptr->palette, libpng will free it). + * If you allocated it with malloc() instead of png_malloc(), use free() + * instead of png_free(). */ png_free(png_ptr, palette); palette = NULL; @@ -1048,19 +1020,20 @@ void write_png(char *file_name /* , ... other image information ... */) */ png_free(png_ptr, trans); trans = NULL; - /* Whenever you use png_free() it is a good idea to set the pointer to + + /* Whenever you use png_free(), it is a good idea to set the pointer to * NULL in case your application inadvertently tries to png_free() it - * again. When png_free() sees a NULL it returns without action, thus - * avoiding the double-free security problem. + * again. When png_free() sees a NULL it returns without action, avoiding + * the double-free problem. */ - /* Clean up after the write, and free any memory allocated */ + /* Clean up after the write, and free any allocated memory. */ png_destroy_write_struct(&png_ptr, &info_ptr); - /* Close the file */ + /* Close the file. */ fclose(fp); - /* That's it */ + /* That's it! */ return (OK); } diff --git a/source/libs/libpng/libpng-src/intel/filter_sse2_intrinsics.c b/source/libs/libpng/libpng-src/intel/filter_sse2_intrinsics.c index ef1fc7d6b8d75f628076d5f91079e7cac2ac4672..f52aaa800a43450ab97b3e6f2435abfd76aa7e51 100644 --- a/source/libs/libpng/libpng-src/intel/filter_sse2_intrinsics.c +++ b/source/libs/libpng/libpng-src/intel/filter_sse2_intrinsics.c @@ -1,12 +1,11 @@ /* filter_sse2_intrinsics.c - SSE2 optimized filter functions * + * Copyright (c) 2018 Cosmin Truta * Copyright (c) 2016-2017 Glenn Randers-Pehrson * Written by Mike Klein and Matt Sarett * Derived from arm/filter_neon_intrinsics.c * - * Last changed in libpng 1.6.31 [July 27, 2017] - * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer * and license in png.h @@ -29,39 +28,25 @@ */ static __m128i load4(const void* p) { - return _mm_cvtsi32_si128(*(const int*)p); + int tmp; + memcpy(&tmp, p, sizeof(tmp)); + return _mm_cvtsi32_si128(tmp); } static void store4(void* p, __m128i v) { - *(int*)p = _mm_cvtsi128_si32(v); + int tmp = _mm_cvtsi128_si32(v); + memcpy(p, &tmp, sizeof(int)); } static __m128i load3(const void* p) { - /* We'll load 2 bytes, then 1 byte, - * then mask them together, and finally load into SSE. - */ - const png_uint_16* p01 = (png_const_uint_16p)p; - const png_byte* p2 = (const png_byte*)(p01+1); - - png_uint_32 v012 = (png_uint_32)(*p01) - | (png_uint_32)(*p2) << 16; - return load4(&v012); + png_uint_32 tmp = 0; + memcpy(&tmp, p, 3); + return _mm_cvtsi32_si128(tmp); } static void store3(void* p, __m128i v) { - /* We'll pull from SSE as a 32-bit int, then write - * its bottom two bytes, then its third byte. - */ - png_uint_32 v012; - png_uint_16* p01; - png_byte* p2; - - store4(&v012, v); - - p01 = (png_uint_16p)p; - p2 = (png_byte*)(p01+1); - *p01 = (png_uint_16)v012; - *p2 = (png_byte)(v012 >> 16); + int tmp = _mm_cvtsi128_si32(v); + memcpy(p, &tmp, 3); } void png_read_filter_row_sub3_sse2(png_row_infop row_info, png_bytep row, diff --git a/source/libs/libpng/libpng-src/intel/intel_init.c b/source/libs/libpng/libpng-src/intel/intel_init.c index 8f08baf8c51e049ca42b07503d8d0e6cf621c75c..2f8168b7c483718c185dd19a2162b747b47cc020 100644 --- a/source/libs/libpng/libpng-src/intel/intel_init.c +++ b/source/libs/libpng/libpng-src/intel/intel_init.c @@ -1,12 +1,11 @@ /* intel_init.c - SSE2 optimized filter functions * + * Copyright (c) 2018 Cosmin Truta * Copyright (c) 2016-2017 Glenn Randers-Pehrson * Written by Mike Klein and Matt Sarett, Google, Inc. * Derived from arm/arm_init.c * - * Last changed in libpng 1.6.29 [March 16, 2017] - * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer * and license in png.h diff --git a/source/libs/libpng/libpng-src/libpng-manual.txt b/source/libs/libpng/libpng-src/libpng-manual.txt index b14a534163bca22775f1cd38fe387d85113d7279..19cfed28add530530d8f80152b0ac4a5e3b25cda 100644 --- a/source/libs/libpng/libpng-src/libpng-manual.txt +++ b/source/libs/libpng/libpng-src/libpng-manual.txt @@ -1,7 +1,6 @@ libpng-manual.txt - A description on how to use and modify libpng - libpng version 1.6.35 - July 15, 2018 - Updated and distributed by Glenn Randers-Pehrson + Copyright (c) 2018 Cosmin Truta Copyright (c) 1998-2018 Glenn Randers-Pehrson This document is released under the libpng license. @@ -10,9 +9,13 @@ libpng-manual.txt - A description on how to use and modify libpng Based on: + libpng version 1.6.36 - December 1, 2018 + Updated and distributed by Cosmin Truta + Copyright (c) 2018 Cosmin Truta + libpng versions 0.97, January 1998, through 1.6.35 - July 15, 2018 Updated and distributed by Glenn Randers-Pehrson - Copyright (c) 1998-2017 Glenn Randers-Pehrson + Copyright (c) 1998-2018 Glenn Randers-Pehrson libpng 1.0 beta 6 - version 0.96 - May 28, 1997 Updated and distributed by Andreas Dilger @@ -44,7 +47,6 @@ libpng-manual.txt - A description on how to use and modify libpng XIII. Detecting libpng XIV. Source code repository XV. Coding style - XVI. Y2K Compliance in libpng I. Introduction @@ -65,7 +67,7 @@ file format in application programs. The PNG specification (second edition), November 2003, is available as a W3C Recommendation and as an ISO Standard (ISO/IEC 15948:2004 (E)) at -<https://www.w3.org/TR/2003/REC-PNG-20031110/ +<https://www.w3.org/TR/2003/REC-PNG-20031110/>. The W3C and ISO documents have identical technical content. The PNG-1.2 specification is available at @@ -73,9 +75,9 @@ The PNG-1.2 specification is available at It is technically equivalent to the PNG specification (second edition) but has some additional material. -The PNG-1.0 specification is available as RFC 2083 +The PNG-1.0 specification is available as RFC 2083 at <https://png-mng.sourceforge.io/pub/png/spec/1.0/> and as a -W3C Recommendation <https://www.w3.org/TR/REC-png-961001>. +W3C Recommendation at <https://www.w3.org/TR/REC-png-961001>. Some additional chunks are described in the special-purpose public chunks documents at <http://www.libpng.org/pub/png/spec/register/> @@ -4054,7 +4056,7 @@ Flags containing additional information about the image are held in the 'flags' field of png_image. PNG_IMAGE_FLAG_COLORSPACE_NOT_sRGB == 0x01 - This indicates the the RGB values of the in-memory bitmap do not + This indicates that the RGB values of the in-memory bitmap do not correspond to the red, green and blue end-points defined by sRGB. PNG_IMAGE_FLAG_FAST == 0x02 @@ -4520,7 +4522,7 @@ When PNG_DEBUG = 1, the macros are defined, but only png_debug statements having level = 0 will be printed. There aren't any such statements in this version of libpng, but if you insert some they will be printed. -VII. MNG support +VII. MNG support The MNG specification (available at http://www.libpng.org/pub/mng) allows certain extensions to PNG for PNG images that are embedded in MNG datastreams. @@ -4547,7 +4549,7 @@ or any other MNG chunks; your application must provide its own support for them. You may wish to consider using libmng (available at https://www.libmng.com/) instead. -VIII. Changes to Libpng from version 0.88 +VIII. Changes to Libpng from version 0.88 It should be noted that versions of libpng later than 0.96 are not distributed by the original libpng author, Guy Schalnat, nor by @@ -4602,7 +4604,7 @@ application: png_uint_32 application_vn = PNG_LIBPNG_VER; -IX. Changes to Libpng from version 1.0.x to 1.2.x +IX. Changes to Libpng from version 1.0.x to 1.2.x Support for user memory management was enabled by default. To accomplish this, the functions png_create_read_struct_2(), @@ -4699,7 +4701,7 @@ which also expands tRNS to alpha was replaced with png_set_expand_gray_1_2_4_to_8() which does not. It has been deprecated since libpng-1.0.18 and 1.2.9. -X. Changes to Libpng from version 1.0.x/1.2.x to 1.4.x +X. Changes to Libpng from version 1.0.x/1.2.x to 1.4.x Private libpng prototypes and macro definitions were moved from png.h and pngconf.h into a new pngpriv.h header file. @@ -4809,7 +4811,7 @@ was renamed to PNG_READ_QUANTIZE_SUPPORTED. We removed the trailing '.' from the warning and error messages. -XI. Changes to Libpng from version 1.4.x to 1.5.x +XI. Changes to Libpng from version 1.4.x to 1.5.x From libpng-1.4.0 until 1.4.4, the png_get_uint_16 macro (but not the function) incorrectly returned a value of type png_uint_32. @@ -4872,7 +4874,7 @@ to png_bytepp, and in png_set_iCCP, from png_charp to png_const_bytep. There are changes of form in png.h, including new and changed macros to declare parts of the API. Some API functions with arguments that are pointers to data not modified within the function have been corrected to -declare these arguments with PNG_CONST. +declare these arguments with const. Much of the internal use of C macros to control the library build has also changed and some of this is visible in the exported header files, in @@ -5067,7 +5069,7 @@ even though the default is to use the macros - this allows applications to choose at app buildtime whether or not to use macros (previously impossible because the functions weren't in the default build.) -XII. Changes to Libpng from version 1.5.x to 1.6.x +XII. Changes to Libpng from version 1.5.x to 1.6.x A "simplified API" has been added (see documentation in png.h and a simple example in contrib/examples/pngtopng.c). The new publicly visible API @@ -5230,7 +5232,7 @@ attempt to decode the Exif profile; it simply returns a byte array containing the profile to the calling application which must do its own decoding. -XIII. Detecting libpng +XIII. Detecting libpng The png_get_io_ptr() function has been present since libpng-0.88, has never changed, and is unaffected by conditional compilation macros. It is the @@ -5255,7 +5257,7 @@ or you can browse it with a web browser at https://sourceforge.net/p/libpng/code/ci/libpng16/tree/ Patches can be sent to png-mng-implement at lists.sourceforge.net or -you can upload them to the libpng bug tracker at +uploaded to the libpng bug tracker at https://libpng.sourceforge.io/ @@ -5405,58 +5407,3 @@ We do not use the TAB character for indentation in the C sources. Lines do not exceed 80 characters. Other rules can be inferred by inspecting the libpng source. - -XVI. Y2K Compliance in libpng - -Since the PNG Development group is an ad-hoc body, we can't make -an official declaration. - -This is your unofficial assurance that libpng from version 0.71 and -upward through 1.6.35 are Y2K compliant. It is my belief that earlier -versions were also Y2K compliant. - -Libpng only has two year fields. One is a 2-byte unsigned integer -that will hold years up to 65535. The other, which is deprecated, -holds the date in text format, and will hold years up to 9999. - -The integer is - "png_uint_16 year" in png_time_struct. - -The string is - "char time_buffer[29]" in png_struct. This is no longer used -in libpng-1.6.x and will be removed from libpng-1.7.0. - -There are seven time-related functions: - - png_convert_to_rfc_1123_buffer() in png.c - (formerly png_convert_to_rfc_1152() in error, and - also formerly png_convert_to_rfc_1123()) - png_convert_from_struct_tm() in pngwrite.c, called - in pngwrite.c - png_convert_from_time_t() in pngwrite.c - png_get_tIME() in pngget.c - png_handle_tIME() in pngrutil.c, called in pngread.c - png_set_tIME() in pngset.c - png_write_tIME() in pngwutil.c, called in pngwrite.c - -All appear to handle dates properly in a Y2K environment. The -png_convert_from_time_t() function calls gmtime() to convert from system -clock time, which returns (year - 1900), which we properly convert to -the full 4-digit year. There is a possibility that applications using -libpng are not passing 4-digit years into the png_convert_to_rfc_1123() -function, or that they are incorrectly passing only a 2-digit year -instead of "year - 1900" into the png_convert_from_struct_tm() function, -but this is not under our control. The libpng documentation has always -stated that it works with 4-digit years, and the APIs have been -documented as such. - -The tIME chunk itself is also Y2K compliant. It uses a 2-byte unsigned -integer to hold the year, and can hold years as large as 65535. - -zlib, upon which libpng depends, is also Y2K compliant. It contains -no date-related code. - - - Glenn Randers-Pehrson - libpng maintainer - PNG Development Group diff --git a/source/libs/libpng/libpng-src/libpng.3 b/source/libs/libpng/libpng-src/libpng.3 index 01cd905e6dd136d815eb7fb0b5f07ee2b18eb77a..9757debccd2c8911be39aa1257758048dcf9db0d 100644 --- a/source/libs/libpng/libpng-src/libpng.3 +++ b/source/libs/libpng/libpng-src/libpng.3 @@ -1,11 +1,11 @@ -.TH LIBPNG 3 "July 15, 2018" +.TH LIBPNG 3 "December 1, 2018" .SH NAME -libpng \- Portable Network Graphics (PNG) Reference Library 1.6.35 +libpng \- Portable Network Graphics (PNG) Reference Library 1.6.36 + .SH SYNOPSIS -\fB -#include <png.h>\fP +\fB#include <png.h>\fP -\fBpng_uint_32 png_access_version_number \fI(void\fP\fB);\fP +\fBpng_uint_32 png_access_version_number (void);\fP \fBvoid png_benign_error (png_structp \fP\fIpng_ptr\fP\fB, png_const_charp \fIerror\fP\fB);\fP @@ -35,7 +35,7 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.6.35 \fBpng_structp png_create_write_struct_2 (png_const_charp \fP\fIuser_png_ver\fP\fB, png_voidp \fP\fIerror_ptr\fP\fB, png_error_ptr \fP\fIerror_fn\fP\fB, png_error_ptr \fP\fIwarn_fn\fP\fB, png_voidp \fP\fImem_ptr\fP\fB, png_malloc_ptr \fP\fImalloc_fn\fP\fB, png_free_ptr \fIfree_fn\fP\fB);\fP -\fBvoid png_data_freer (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, int \fP\fIfreer\fP\fB, png_uint_32 \fImask)\fP\fB);\fP +\fBvoid png_data_freer (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, int \fP\fIfreer\fP\fB, png_uint_32 \fImask\fP\fB);\fP \fBvoid png_destroy_info_struct (png_structp \fP\fIpng_ptr\fP\fB, png_infopp \fIinfo_ptr_ptr\fP\fB);\fP @@ -233,9 +233,9 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.6.35 \fBint png_image_write_to_file (png_imagep \fP\fIimage\fP\fB, const char \fP\fI*file\fP\fB, int \fP\fIconvert_to_8bit\fP\fB, const void \fP\fI*buffer\fP\fB, png_int_32 \fP\fIrow_stride\fP\fB, void \fI*colormap\fP\fB);\fP -\fBint png_image_write_to_memory (png_imagep \fP\fIimage\fP\fB, void \fP\fI*memory\fP\fB, png_alloc_size_t * PNG_RESTRICT \fP\fImemory_bytes\fP\fB, int \fP\fIconvert_to_8_bit\fP\fB, const void \fP\fI*buffer\fP\fB, png_int_32 \fP\fIrow_stride\fP\fB, const void \fI*colormap)\fP\fB);\fP +\fBint png_image_write_to_memory (png_imagep \fP\fIimage\fP\fB, void \fP\fI*memory\fP\fB, png_alloc_size_t * PNG_RESTRICT \fP\fImemory_bytes\fP\fB, int \fP\fIconvert_to_8_bit\fP\fB, const void \fP\fI*buffer\fP\fB, png_int_32 \fP\fIrow_stride\fP\fB, const void \fI*colormap\fP\fB);\fP -\fBint png_image_write_to_stdio (png_imagep \fP\fIimage\fP\fB, FILE \fP\fI*file\fP\fB, int \fP\fIconvert_to_8_bit\fP\fB, const void \fP\fI*buffer\fP\fB, png_int_32 \fP\fIrow_stride\fP\fB, void \fI*colormap)\fP\fB);\fP +\fBint png_image_write_to_stdio (png_imagep \fP\fIimage\fP\fB, FILE \fP\fI*file\fP\fB, int \fP\fIconvert_to_8_bit\fP\fB, const void \fP\fI*buffer\fP\fB, png_int_32 \fP\fIrow_stride\fP\fB, void \fI*colormap\fP\fB);\fP \fBvoid png_info_init_3 (png_infopp \fP\fIinfo_ptr\fP\fB, size_t \fIpng_info_struct_size\fP\fB);\fP @@ -253,9 +253,9 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.6.35 \fBvoid png_process_data (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_bytep \fP\fIbuffer\fP\fB, size_t \fIbuffer_size\fP\fB);\fP -\fBsize_t png_process_data_pause \fP\fI(png_structp\fP\fB, int \fIsave\fP\fB);\fP +\fBsize_t png_process_data_pause (png_structp \fP\fIpng_ptr\fP\fB, int \fIsave\fP\fB);\fP -\fBpng_uint_32 png_process_data_skip \fI(png_structp\fP\fB);\fP +\fBpng_uint_32 png_process_data_skip (png_structp \fP\fIpng_ptr\fP\fB);\fP \fBvoid png_progressive_combine_row (png_structp \fP\fIpng_ptr\fP\fB, png_bytep \fP\fIold_row\fP\fB, png_bytep \fInew_row\fP\fB);\fP @@ -297,7 +297,7 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.6.35 \fBvoid png_set_bKGD (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_color_16p \fIbackground\fP\fB);\fP -\fBvoid png_set_check_for_invalid_index(png_structrp \fP\fIpng_ptr\fP\fB, int \fIallowed\fP\fB);\fP +\fBvoid png_set_check_for_invalid_index (png_structrp \fP\fIpng_ptr\fP\fB, int \fIallowed\fP\fB);\fP \fBvoid png_set_cHRM (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, double \fP\fIwhite_x\fP\fB, double \fP\fIwhite_y\fP\fB, double \fP\fIred_x\fP\fB, double \fP\fIred_y\fP\fB, double \fP\fIgreen_x\fP\fB, double \fP\fIgreen_y\fP\fB, double \fP\fIblue_x\fP\fB, double \fIblue_y\fP\fB);\fP @@ -353,7 +353,7 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.6.35 \fBvoid png_set_eXIf (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_bytep \fIexif\fP\fB);\fP -\fBvoid png_set_eXIf_1 (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, const png_uint_32 \fP\fInum_exif\fP\fB, png_bytep \fIexif\fP\fB);\fP +\fBvoid png_set_eXIf_1 (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fP\fInum_exif\fP\fB, png_bytep \fIexif\fP\fB);\fP \fBvoid png_set_hIST (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_16p \fIhist\fP\fB);\fP @@ -453,7 +453,7 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.6.35 \fBvoid png_set_text_compression_window_bits (png_structp \fP\fIpng_ptr\fP\fB, int \fIwindow_bits\fP\fB);\fP -\fBvoid \fP\fIpng_set_text_compression_method\fP\fB, (png_structp \fP\fIpng_ptr\fP\fB, int \fImethod)\fP\fB);\fP +\fBvoid png_set_text_compression_method (png_structp \fP\fIpng_ptr\fP\fB, int \fImethod\fP\fB);\fP \fBvoid png_set_tIME (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_timep \fImod_time\fP\fB);\fP @@ -515,11 +515,11 @@ the Portable Network Graphics (PNG) format image files. It uses the .IR zlib(3) compression library. Following is a copy of the libpng-manual.txt file that accompanies libpng. + .SH LIBPNG.TXT libpng-manual.txt - A description on how to use and modify libpng - libpng version 1.6.35 - July 15, 2018 - Updated and distributed by Glenn Randers-Pehrson + Copyright (c) 2018 Cosmin Truta Copyright (c) 1998-2018 Glenn Randers-Pehrson This document is released under the libpng license. @@ -528,9 +528,13 @@ libpng-manual.txt - A description on how to use and modify libpng Based on: + libpng version 1.6.36 - December 1, 2018 + Updated and distributed by Cosmin Truta + Copyright (c) 2018 Cosmin Truta + libpng versions 0.97, January 1998, through 1.6.35 - July 15, 2018 Updated and distributed by Glenn Randers-Pehrson - Copyright (c) 1998-2017 Glenn Randers-Pehrson + Copyright (c) 1998-2018 Glenn Randers-Pehrson libpng 1.0 beta 6 - version 0.96 - May 28, 1997 Updated and distributed by Andreas Dilger @@ -562,7 +566,6 @@ libpng-manual.txt - A description on how to use and modify libpng XIII. Detecting libpng XIV. Source code repository XV. Coding style - XVI. Y2K Compliance in libpng .SH I. Introduction @@ -583,7 +586,7 @@ file format in application programs. The PNG specification (second edition), November 2003, is available as a W3C Recommendation and as an ISO Standard (ISO/IEC 15948:2004 (E)) at -<https://www.w3.org/TR/2003/REC-PNG-20031110/ +<https://www.w3.org/TR/2003/REC-PNG-20031110/>. The W3C and ISO documents have identical technical content. The PNG-1.2 specification is available at @@ -591,9 +594,9 @@ The PNG-1.2 specification is available at It is technically equivalent to the PNG specification (second edition) but has some additional material. -The PNG-1.0 specification is available as RFC 2083 +The PNG-1.0 specification is available as RFC 2083 at <https://png-mng.sourceforge.io/pub/png/spec/1.0/> and as a -W3C Recommendation <https://www.w3.org/TR/REC-png-961001>. +W3C Recommendation at <https://www.w3.org/TR/REC-png-961001>. Some additional chunks are described in the special-purpose public chunks documents at <http://www.libpng.org/pub/png/spec/register/> @@ -4572,7 +4575,7 @@ Flags containing additional information about the image are held in the 'flags' field of png_image. PNG_IMAGE_FLAG_COLORSPACE_NOT_sRGB == 0x01 - This indicates the the RGB values of the in-memory bitmap do not + This indicates that the RGB values of the in-memory bitmap do not correspond to the red, green and blue end-points defined by sRGB. PNG_IMAGE_FLAG_FAST == 0x02 @@ -5038,7 +5041,7 @@ When PNG_DEBUG = 1, the macros are defined, but only png_debug statements having level = 0 will be printed. There aren't any such statements in this version of libpng, but if you insert some they will be printed. -.SH VII. MNG support +.SH VII. MNG support The MNG specification (available at http://www.libpng.org/pub/mng) allows certain extensions to PNG for PNG images that are embedded in MNG datastreams. @@ -5065,7 +5068,7 @@ or any other MNG chunks; your application must provide its own support for them. You may wish to consider using libmng (available at https://www.libmng.com/) instead. -.SH VIII. Changes to Libpng from version 0.88 +.SH VIII. Changes to Libpng from version 0.88 It should be noted that versions of libpng later than 0.96 are not distributed by the original libpng author, Guy Schalnat, nor by @@ -5120,7 +5123,7 @@ application: png_uint_32 application_vn = PNG_LIBPNG_VER; -.SH IX. Changes to Libpng from version 1.0.x to 1.2.x +.SH IX. Changes to Libpng from version 1.0.x to 1.2.x Support for user memory management was enabled by default. To accomplish this, the functions png_create_read_struct_2(), @@ -5217,7 +5220,7 @@ which also expands tRNS to alpha was replaced with png_set_expand_gray_1_2_4_to_8() which does not. It has been deprecated since libpng-1.0.18 and 1.2.9. -.SH X. Changes to Libpng from version 1.0.x/1.2.x to 1.4.x +.SH X. Changes to Libpng from version 1.0.x/1.2.x to 1.4.x Private libpng prototypes and macro definitions were moved from png.h and pngconf.h into a new pngpriv.h header file. @@ -5327,7 +5330,7 @@ was renamed to PNG_READ_QUANTIZE_SUPPORTED. We removed the trailing '.' from the warning and error messages. -.SH XI. Changes to Libpng from version 1.4.x to 1.5.x +.SH XI. Changes to Libpng from version 1.4.x to 1.5.x From libpng-1.4.0 until 1.4.4, the png_get_uint_16 macro (but not the function) incorrectly returned a value of type png_uint_32. @@ -5390,7 +5393,7 @@ to png_bytepp, and in png_set_iCCP, from png_charp to png_const_bytep. There are changes of form in png.h, including new and changed macros to declare parts of the API. Some API functions with arguments that are pointers to data not modified within the function have been corrected to -declare these arguments with PNG_CONST. +declare these arguments with const. Much of the internal use of C macros to control the library build has also changed and some of this is visible in the exported header files, in @@ -5585,7 +5588,7 @@ even though the default is to use the macros - this allows applications to choose at app buildtime whether or not to use macros (previously impossible because the functions weren't in the default build.) -.SH XII. Changes to Libpng from version 1.5.x to 1.6.x +.SH XII. Changes to Libpng from version 1.5.x to 1.6.x A "simplified API" has been added (see documentation in png.h and a simple example in contrib/examples/pngtopng.c). The new publicly visible API @@ -5748,7 +5751,7 @@ attempt to decode the Exif profile; it simply returns a byte array containing the profile to the calling application which must do its own decoding. -.SH XIII. Detecting libpng +.SH XIII. Detecting libpng The png_get_io_ptr() function has been present since libpng-0.88, has never changed, and is unaffected by conditional compilation macros. It is the @@ -5924,61 +5927,6 @@ Lines do not exceed 80 characters. Other rules can be inferred by inspecting the libpng source. -.SH XVI. Y2K Compliance in libpng - -Since the PNG Development group is an ad-hoc body, we can't make -an official declaration. - -This is your unofficial assurance that libpng from version 0.71 and -upward through 1.6.35 are Y2K compliant. It is my belief that earlier -versions were also Y2K compliant. - -Libpng only has two year fields. One is a 2-byte unsigned integer -that will hold years up to 65535. The other, which is deprecated, -holds the date in text format, and will hold years up to 9999. - -The integer is - "png_uint_16 year" in png_time_struct. - -The string is - "char time_buffer[29]" in png_struct. This is no longer used -in libpng-1.6.x and will be removed from libpng-1.7.0. - -There are seven time-related functions: - - png_convert_to_rfc_1123_buffer() in png.c - (formerly png_convert_to_rfc_1152() in error, and - also formerly png_convert_to_rfc_1123()) - png_convert_from_struct_tm() in pngwrite.c, called - in pngwrite.c - png_convert_from_time_t() in pngwrite.c - png_get_tIME() in pngget.c - png_handle_tIME() in pngrutil.c, called in pngread.c - png_set_tIME() in pngset.c - png_write_tIME() in pngwutil.c, called in pngwrite.c - -All appear to handle dates properly in a Y2K environment. The -png_convert_from_time_t() function calls gmtime() to convert from system -clock time, which returns (year - 1900), which we properly convert to -the full 4-digit year. There is a possibility that applications using -libpng are not passing 4-digit years into the png_convert_to_rfc_1123() -function, or that they are incorrectly passing only a 2-digit year -instead of "year - 1900" into the png_convert_from_struct_tm() function, -but this is not under our control. The libpng documentation has always -stated that it works with 4-digit years, and the APIs have been -documented as such. - -The tIME chunk itself is also Y2K compliant. It uses a 2-byte unsigned -integer to hold the year, and can hold years as large as 65535. - -zlib, upon which libpng depends, is also Y2K compliant. It contains -no date-related code. - - - Glenn Randers-Pehrson - libpng maintainer - PNG Development Group - .SH NOTE Note about libpng version numbers: @@ -5989,9 +5937,9 @@ on the library has not always been consistent and straightforward. The following table summarizes matters since version 0.89c, which was the first widely used release: - source png.h png.h shared-lib - version string int version - ------- ------ ----- ---------- + source png.h png.h shared-lib + version string int version + ------- ------ ----- ---------- 0.89c "1.0 beta 3" 0.89 89 1.0.89 0.90 "1.0 beta 4" 0.90 90 0.90 [should have been 2.0.90] 0.95 "1.0 beta 5" 0.95 95 0.95 [should have been 2.0.95] @@ -6026,23 +5974,25 @@ the first widely used release: 1.0.7rc1-2 1 10007 2.1.0.7rc1-2 (binary compatible) 1.0.7 1 10007 (still compatible) ... - 1.0.19 10 10019 10.so.0.19[.0] + 1.0.69 10 10069 10.so.0.69[.0] ... 1.2.59 13 10259 12.so.0.59[.0] ... + 1.4.20 14 10420 14.so.0.20[.0] + ... 1.5.30 15 10530 15.so.15.30[.0] ... 1.6.35 16 10635 16.so.16.35[.0] -Henceforth the source version will match the shared-library minor -and patch numbers; the shared-library major version number will be -used for changes in backward compatibility, as it is intended. The -PNG_PNGLIB_VER macro, which is not used within libpng but is available -for applications, is an unsigned integer of the form xyyzz corresponding -to the source version x.y.z (leading zeros in y and z). Beta versions -were given the previous public release number plus a letter, until -version 1.0.6j; from then on they were given the upcoming public -release number plus "betaNN" or "rcNN". +Henceforth the source version will match the shared-library minor and +patch numbers; the shared-library major version number will be used for +changes in backward compatibility, as it is intended. +The PNG_PNGLIB_VER macro, which is not used within libpng but is +available for applications, is an unsigned integer of the form XYYZZ +corresponding to the source version X.Y.Z (leading zeros in Y and Z). +Beta versions were given the previous public release number plus a +letter, until version 1.0.6j; from then on they were given the upcoming +public release number plus "betaNN" or "rcNN". .SH "SEE ALSO" .IR libpngpf(3) ", " png(5) @@ -6079,8 +6029,9 @@ In the case of any inconsistency between the PNG specification and this library, the specification takes precedence. .SH AUTHORS -This man page: Glenn Randers-Pehrson -<glennrp at users.sourceforge.net> +This man page: +Initially created by Glenn Randers-Pehrson. +Maintained by Cosmin Truta. The contributing authors would like to thank all those who helped with testing, bug fixes, and patience. This wouldn't have been @@ -6088,9 +6039,9 @@ possible without all of you. Thanks to Frank J. T. Wojcik for helping with the documentation. -Libpng version 1.6.35 - July 15, 2018: +Libpng: Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc. -Maintained by Glenn Randers-Pehrson. +Maintained by Cosmin Truta. Supported by the PNG development group .br @@ -6100,146 +6051,4 @@ png-mng-implement at lists.sourceforge.net (subscription required; visit https://lists.sourceforge.net/lists/listinfo/png-mng-implement to subscribe). -.SH NOTICES: - -This copy of the libpng notices is provided for your convenience. In case of -any discrepancy between this copy and the notices in the file png.h that is -included in the libpng distribution, the latter shall prevail. - -COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: - -If you modify libpng you may insert additional notices immediately following -this sentence. - -This code is released under the libpng license. - -libpng versions 1.0.7, July 1, 2000 through 1.6.35, July 15, 2018 are -Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson, are -derived from libpng-1.0.6, and are distributed according to the same -disclaimer and license as libpng-1.0.6 with the following individuals -added to the list of Contributing Authors: - - Simon-Pierre Cadieux - Eric S. Raymond - Mans Rullgard - Cosmin Truta - Gilles Vollant - James Yu - Mandar Sahastrabuddhe - Google Inc. - Vadim Barkov - -and with the following additions to the disclaimer: - - There is no warranty against interference with your enjoyment of the - library or against infringement. There is no warranty that our - efforts or the library will fulfill any of your particular purposes - or needs. This library is provided with all faults, and the entire - risk of satisfactory quality, performance, accuracy, and effort is with - the user. - -Some files in the "contrib" directory and some configure-generated -files that are distributed with libpng have other copyright owners and -are released under other open source licenses. - -libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are -Copyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from -libpng-0.96, and are distributed according to the same disclaimer and -license as libpng-0.96, with the following individuals added to the list -of Contributing Authors: - - Tom Lane - Glenn Randers-Pehrson - Willem van Schaik - -libpng versions 0.89, June 1996, through 0.96, May 1997, are -Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88, -and are distributed according to the same disclaimer and license as -libpng-0.88, with the following individuals added to the list of -Contributing Authors: - - John Bowler - Kevin Bracey - Sam Bushell - Magnus Holmgren - Greg Roelofs - Tom Tanner - -Some files in the "scripts" directory have other copyright owners -but are released under this license. - -libpng versions 0.5, May 1995, through 0.88, January 1996, are -Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - -For the purposes of this copyright and license, "Contributing Authors" -is defined as the following set of individuals: - - Andreas Dilger - Dave Martindale - Guy Eric Schalnat - Paul Schmidt - Tim Wegner - -The PNG Reference Library is supplied "AS IS". The Contributing Authors -and Group 42, Inc. disclaim all warranties, expressed or implied, -including, without limitation, the warranties of merchantability and of -fitness for any purpose. The Contributing Authors and Group 42, Inc. -assume no liability for direct, indirect, incidental, special, exemplary, -or consequential damages, which may result from the use of the PNG -Reference Library, even if advised of the possibility of such damage. - -Permission is hereby granted to use, copy, modify, and distribute this -source code, or portions hereof, for any purpose, without fee, subject -to the following restrictions: - - 1. The origin of this source code must not be misrepresented. - - 2. Altered versions must be plainly marked as such and must not - be misrepresented as being the original source. - - 3. This Copyright notice may not be removed or altered from any - source or altered source distribution. - -The Contributing Authors and Group 42, Inc. specifically permit, without -fee, and encourage the use of this source code as a component to -supporting the PNG file format in commercial products. If you use this -source code in a product, acknowledgment is not required but would be -appreciated. - -END OF COPYRIGHT NOTICE, DISCLAIMER, and LICENSE. - -TRADEMARK: - -The name "libpng" has not been registered by the Copyright owner -as a trademark in any jurisdiction. However, because libpng has -been distributed and maintained world-wide, continually since 1995, -the Copyright owner claims "common-law trademark protection" in any -jurisdiction where common-law trademark is recognized. - -OSI CERTIFICATION: - -Libpng is OSI Certified Open Source Software. OSI Certified Open Source is -a certification mark of the Open Source Initiative. OSI has not addressed -the additional disclaimers inserted at version 1.0.7. - -EXPORT CONTROL: - -The Copyright owner believes that the Export Control Classification -Number (ECCN) for libpng is EAR99, which means not subject to export -controls or International Traffic in Arms Regulations (ITAR) because -it is open source, publicly available software, that does not contain -any encryption software. See the EAR, paragraphs 734.3(b)(3) and -734.7(b). - -A "png_get_copyright" function is available, for convenient use in "about" -boxes and the like: - - printf("%s", png_get_copyright(NULL)); - -Also, the PNG logo (in PNG format, of course) is supplied in the -files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31). - -Glenn Randers-Pehrson -July 15, 2018 - .\" end of man page diff --git a/source/libs/libpng/libpng-src/libpngpf.3 b/source/libs/libpng/libpng-src/libpngpf.3 index ed371a41a38cb672c6681559134103509d6509c5..b736d82c407e07dc99bae5bcb64ca9b936fc1d7d 100644 --- a/source/libs/libpng/libpng-src/libpngpf.3 +++ b/source/libs/libpng/libpng-src/libpngpf.3 @@ -1,7 +1,8 @@ -.TH LIBPNGPF 3 "July 15, 2018" +.TH LIBPNGPF 3 "December 1, 2018" .SH NAME -libpng \- Portable Network Graphics (PNG) Reference Library 1.6.35 +libpng \- Portable Network Graphics (PNG) Reference Library 1.6.36 (private functions) + .SH SYNOPSIS \fB#include \fI"pngpriv.h" @@ -16,7 +17,8 @@ The functions previously listed here are used privately by libpng and are not available for use by applications. They are not "exported" to applications using shared libraries. -.SH SEE ALSO +.SH "SEE ALSO" .BR "png"(5), " libpng"(3), " zlib"(3), " deflate"(5), " " and " zlib"(5) -.SH AUTHOR -Glenn Randers-Pehrson + +.SH AUTHORS +Cosmin Truta, Glenn Randers-Pehrson diff --git a/source/libs/libpng/libpng-src/mips/filter_msa_intrinsics.c b/source/libs/libpng/libpng-src/mips/filter_msa_intrinsics.c index 570562801b5ad6618010edf8b5c8e25abb2c3680..a579179421cc16a221604edadbb1552e801fbc7f 100644 --- a/source/libs/libpng/libpng-src/mips/filter_msa_intrinsics.c +++ b/source/libs/libpng/libpng-src/mips/filter_msa_intrinsics.c @@ -1,14 +1,15 @@ /* filter_msa_intrinsics.c - MSA optimised filter functions * + * Copyright (c) 2018 Cosmin Truta * Copyright (c) 2016 Glenn Randers-Pehrson * Written by Mandar Sahastrabuddhe, August 2016. - * Last changed in libpng 1.6.25 [September 1, 2016] * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer * and license in png.h */ + #include <stdio.h> #include <stdint.h> #include "../pngpriv.h" diff --git a/source/libs/libpng/libpng-src/mips/mips_init.c b/source/libs/libpng/libpng-src/mips/mips_init.c index 0bfb7a32e990a5bf3b1791deed5f49b529439bbf..8dd283deefec4693a3e065a8e852fb3656a01bb9 100644 --- a/source/libs/libpng/libpng-src/mips/mips_init.c +++ b/source/libs/libpng/libpng-src/mips/mips_init.c @@ -1,14 +1,15 @@ /* mips_init.c - MSA optimised filter functions * + * Copyright (c) 2018 Cosmin Truta * Copyright (c) 2016 Glenn Randers-Pehrson * Written by Mandar Sahastrabuddhe, 2016. - * Last changed in libpng 1.6.25 [September 1, 2016] * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer * and license in png.h */ + /* Below, after checking __linux__, various non-C90 POSIX 1003.1 functions are * called. */ diff --git a/source/libs/libpng/libpng-src/png.5 b/source/libs/libpng/libpng-src/png.5 index b0cbd2cfa638262d8e31f636a5ea220e1d635f56..2077d1f2afbb467b02c9de18b8721eefe3be20ee 100644 --- a/source/libs/libpng/libpng-src/png.5 +++ b/source/libs/libpng/libpng-src/png.5 @@ -1,47 +1,49 @@ -.TH PNG 5 "April 1, 2017" +.TH PNG 5 "December 1, 2018" .SH NAME png \- Portable Network Graphics (PNG) format + .SH DESCRIPTION PNG (Portable Network Graphics) is an extensible file format for the -lossless, portable, well-compressed storage of raster images. PNG provides -a patent-free replacement for GIF and can also replace many +lossless, portable, well-compressed storage of raster images. PNG +provides a patent-free replacement for GIF, and can also replace many common uses of TIFF. Indexed-color, grayscale, and truecolor images are -supported, plus an optional alpha channel. Sample depths range from +supported, plus an optional alpha channel. Sample depths range from 1 to 16 bits. .br - -PNG is designed to work well in online viewing applications, such as the -World Wide Web, so it is fully streamable with a progressive display -option. PNG is robust, providing both full file integrity checking and -fast, simple detection of common transmission errors. Also, PNG can store -gamma and chromaticity data for improved color matching on heterogeneous -platforms. +PNG is designed to work well in online viewing applications, such +as the World Wide Web, so it is fully streamable with a progressive +display option. PNG is robust, providing both full file integrity +checking and fast, simple detection of common transmission errors. +Also, PNG can store gamma and chromaticity data for improved color +matching on heterogeneous platforms. .SH "SEE ALSO" .BR "libpng"(3), " libpngpf"(3), " zlib"(3), " deflate"(5), " " and " zlib"(5) .LP -PNG specification (second edition), November 2003: +PNG Specification (Second Edition), November 2003: .IP .br - <https://www.w3.org/TR/2003/REC-PNG-20031110/ -PNG 1.2 specification, July 1999: +https://www.w3.org/TR/2003/REC-PNG-20031110/ +.LP +PNG 1.2 Specification, July 1999: .IP .br https://png-mng.sourceforge.io/pub/png/spec/1.2/ .LP -PNG 1.0 specification, October 1996: +PNG 1.0 Specification, October 1996: .IP .br RFC 2083 -.IP .br https://www.ietf.org/rfc/rfc2083.txt +.IP .br -or (as a W3C Recommendation) at +or W3C Recommendation .br https://www.w3.org/TR/REC-png-961001 + .SH AUTHORS -This man page: Glenn Randers-Pehrson +This man page: Cosmin Truta, Glenn Randers-Pehrson .LP Portable Network Graphics (PNG) Specification (Second Edition) Information technology - Computer graphics and image processing - @@ -53,22 +55,30 @@ Glenn Randers-Pehrson and others (png-list). .LP Portable Network Graphics (PNG) Specification Version 1.0 (October 1, 1996): Thomas Boutell and others (png-list). -.LP - -.SH COPYRIGHT NOTICE +.SH COPYRIGHT .LP -This man page is Copyright (c) 1998-2006 Glenn Randers-Pehrson. See png.h -for conditions of use and distribution. +This man page is +.br +Copyright (c) 2018 Cosmin Truta. +.br +Copyright (c) 1998-2006 Glenn Randers-Pehrson. +.br +See png.h for conditions of use and distribution. .LP The PNG Specification (Second Edition) is +.br Copyright (c) 2003 W3C. (MIT, ERCIM, Keio), All Rights Reserved. .LP -The PNG-1.2 specification is copyright (c) 1999 Glenn Randers-Pehrson. +The PNG-1.2 Specification is +.br +Copyright (c) 1999 Glenn Randers-Pehrson. +.br See the specification for conditions of use and distribution. .LP -The PNG-1.0 specification is copyright (c) 1996 Massachusetts Institute of -Technology. See the specification for conditions of use and distribution. -.LP +The PNG-1.0 Specification is +.br +Copyright (c) 1996 Massachusetts Institute of Technology. +.br +See the specification for conditions of use and distribution. .\" end of man page - diff --git a/source/libs/libpng/libpng-src/png.c b/source/libs/libpng/libpng-src/png.c index a25afebcc8c6c15dedcab23fa3ef23858419a71c..3dce191d17ea060d90076c05234fa19ac797d0f0 100644 --- a/source/libs/libpng/libpng-src/png.c +++ b/source/libs/libpng/libpng-src/png.c @@ -1,10 +1,10 @@ /* png.c - location for general purpose libpng functions * - * Last changed in libpng 1.6.35 [July 15, 2018] + * Copyright (c) 2018 Cosmin Truta * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson - * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) - * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * Copyright (c) 1996-1997 Andreas Dilger + * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer @@ -14,7 +14,7 @@ #include "pngpriv.h" /* Generate a compiler error if there is an old png.h in the search path. */ -typedef png_libpng_version_1_6_35 Your_png_h_is_not_version_1_6_35; +typedef png_libpng_version_1_6_36 Your_png_h_is_not_version_1_6_36; #ifdef __GNUC__ /* The version tests may need to be added to, but the problem warning has @@ -736,7 +736,7 @@ png_save_int_32(png_bytep buf, png_int_32 i) int PNGAPI png_convert_to_rfc1123_buffer(char out[29], png_const_timep ptime) { - static PNG_CONST char short_months[12][4] = + static const char short_months[12][4] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; @@ -814,20 +814,14 @@ png_get_copyright(png_const_structrp png_ptr) #ifdef PNG_STRING_COPYRIGHT return PNG_STRING_COPYRIGHT #else -# ifdef __STDC__ return PNG_STRING_NEWLINE \ - "libpng version 1.6.35 - July 15, 2018" PNG_STRING_NEWLINE \ + "libpng version 1.6.36" PNG_STRING_NEWLINE \ + "Copyright (c) 2018 Cosmin Truta" PNG_STRING_NEWLINE \ "Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson" \ PNG_STRING_NEWLINE \ "Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \ "Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \ PNG_STRING_NEWLINE; -# else - return "libpng version 1.6.35 - July 15, 2018\ - Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson\ - Copyright (c) 1996-1997 Andreas Dilger\ - Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc."; -# endif #endif } @@ -1121,7 +1115,7 @@ png_colorspace_set_gamma(png_const_structrp png_ptr, png_colorspacerp colorspace, png_fixed_point gAMA) { /* Changed in libpng-1.5.4 to limit the values to ensure overflow can't - * occur. Since the fixed point representation is asymetrical it is + * occur. Since the fixed point representation is asymmetrical it is * possible for 1/gamma to overflow the limit of 21474 and this means the * gamma value must be at least 5/100000 and hence at most 20000.0. For * safety the limits here are a little narrower. The values are 0.00016 to @@ -3134,11 +3128,11 @@ png_ascii_from_fp(png_const_structrp png_ptr, png_charp ascii, size_t size, /* The total output count (max) is now 4+precision */ /* Check for an exponent, if we don't need one we are - * done and just need to terminate the string. At - * this point exp_b10==(-1) is effectively a flag - it got - * to '-1' because of the decrement after outputting - * the decimal point above (the exponent required is - * *not* -1!) + * done and just need to terminate the string. At this + * point, exp_b10==(-1) is effectively a flag: it got + * to '-1' because of the decrement, after outputting + * the decimal point above. (The exponent required is + * *not* -1.) */ if (exp_b10 >= (-1) && exp_b10 <= 2) { @@ -3976,18 +3970,18 @@ png_gamma_correct(png_structrp png_ptr, unsigned int value, */ static void png_build_16bit_table(png_structrp png_ptr, png_uint_16pp *ptable, - PNG_CONST unsigned int shift, PNG_CONST png_fixed_point gamma_val) + unsigned int shift, png_fixed_point gamma_val) { /* Various values derived from 'shift': */ - PNG_CONST unsigned int num = 1U << (8U - shift); + unsigned int num = 1U << (8U - shift); #ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED /* CSE the division and work round wacky GCC warnings (see the comments * in png_gamma_8bit_correct for where these come from.) */ - PNG_CONST double fmax = 1./(((png_int_32)1 << (16U - shift))-1); + double fmax = 1.0 / (((png_int_32)1 << (16U - shift)) - 1); #endif - PNG_CONST unsigned int max = (1U << (16U - shift))-1U; - PNG_CONST unsigned int max_by_2 = 1U << (15U-shift); + unsigned int max = (1U << (16U - shift)) - 1U; + unsigned int max_by_2 = 1U << (15U - shift); unsigned int i; png_uint_16pp table = *ptable = @@ -4053,10 +4047,10 @@ png_build_16bit_table(png_structrp png_ptr, png_uint_16pp *ptable, */ static void png_build_16to8_table(png_structrp png_ptr, png_uint_16pp *ptable, - PNG_CONST unsigned int shift, PNG_CONST png_fixed_point gamma_val) + unsigned int shift, png_fixed_point gamma_val) { - PNG_CONST unsigned int num = 1U << (8U - shift); - PNG_CONST unsigned int max = (1U << (16U - shift))-1U; + unsigned int num = 1U << (8U - shift); + unsigned int max = (1U << (16U - shift))-1U; unsigned int i; png_uint_32 last; @@ -4121,7 +4115,7 @@ png_build_16to8_table(png_structrp png_ptr, png_uint_16pp *ptable, */ static void png_build_8bit_table(png_structrp png_ptr, png_bytepp ptable, - PNG_CONST png_fixed_point gamma_val) + png_fixed_point gamma_val) { unsigned int i; png_bytep table = *ptable = (png_bytep)png_malloc(png_ptr, 256); diff --git a/source/libs/libpng/libpng-src/png.h b/source/libs/libpng/libpng-src/png.h index 19e464cc17ea6063af51f5bd116f6306d5f7927d..8e272a05532491ba2a7455e3b1e906133248fa68 100644 --- a/source/libs/libpng/libpng-src/png.h +++ b/source/libs/libpng/libpng-src/png.h @@ -1,29 +1,65 @@ /* png.h - header file for PNG reference library * - * libpng version 1.6.35, July 15, 2018 + * libpng version 1.6.36 - December 1, 2018 * + * Copyright (c) 2018 Cosmin Truta * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson - * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) - * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * Copyright (c) 1996-1997 Andreas Dilger + * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. * - * This code is released under the libpng license (See LICENSE, below) + * This code is released under the libpng license. (See LICENSE, below.) * * Authors and maintainers: * libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat * libpng versions 0.89, June 1996, through 0.96, May 1997: Andreas Dilger - * libpng versions 0.97, January 1998, through 1.6.35, July 15, 2018: + * libpng versions 0.97, January 1998, through 1.6.35, July 2018: * Glenn Randers-Pehrson. + * libpng version 1.6.36, December 1, 2018: Cosmin Truta * See also "Contributing Authors", below. */ /* - * COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: + * COPYRIGHT NOTICE, DISCLAIMER, and LICENSE + * ========================================= + * + * PNG Reference Library License version 2 + * --------------------------------------- + * + * * Copyright (c) 1995-2018 The PNG Reference Library Authors. + * * Copyright (c) 2018 Cosmin Truta. + * * Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson. + * * Copyright (c) 1996-1997 Andreas Dilger. + * * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. + * + * The software is supplied "as is", without warranty of any kind, + * express or implied, including, without limitation, the warranties + * of merchantability, fitness for a particular purpose, title, and + * non-infringement. In no even shall the Copyright owners, or + * anyone distributing the software, be liable for any damages or + * other liability, whether in contract, tort or otherwise, arising + * from, out of, or in connection with the software, or the use or + * other dealings in the software, even if advised of the possibility + * of such damage. + * + * Permission is hereby granted to use, copy, modify, and distribute + * this software, or portions hereof, for any purpose, without fee, + * subject to the following restrictions: * - * If you modify libpng you may insert additional notices immediately following - * this sentence. + * 1. The origin of this software must not be misrepresented; you + * must not claim that you wrote the original software. If you + * use this software in a product, an acknowledgment in the product + * documentation would be appreciated, but is not required. * - * This code is released under the libpng license. + * 2. Altered source versions must be plainly marked as such, and must + * not be misrepresented as being the original software. + * + * 3. This Copyright notice may not be removed or altered from any + * source or altered source distribution. + * + * + * PNG Reference Library License version 1 (for libpng 0.5 through 1.6.35) + * ----------------------------------------------------------------------- * * libpng versions 1.0.7, July 1, 2000 through 1.6.35, July 15, 2018 are * Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson, are @@ -31,38 +67,38 @@ * disclaimer and license as libpng-1.0.6 with the following individuals * added to the list of Contributing Authors: * - * Simon-Pierre Cadieux - * Eric S. Raymond - * Mans Rullgard - * Cosmin Truta - * Gilles Vollant - * James Yu - * Mandar Sahastrabuddhe - * Google Inc. - * Vadim Barkov + * Simon-Pierre Cadieux + * Eric S. Raymond + * Mans Rullgard + * Cosmin Truta + * Gilles Vollant + * James Yu + * Mandar Sahastrabuddhe + * Google Inc. + * Vadim Barkov * * and with the following additions to the disclaimer: * - * There is no warranty against interference with your enjoyment of the - * library or against infringement. There is no warranty that our - * efforts or the library will fulfill any of your particular purposes - * or needs. This library is provided with all faults, and the entire - * risk of satisfactory quality, performance, accuracy, and effort is with - * the user. + * There is no warranty against interference with your enjoyment of + * the library or against infringement. There is no warranty that our + * efforts or the library will fulfill any of your particular purposes + * or needs. This library is provided with all faults, and the entire + * risk of satisfactory quality, performance, accuracy, and effort is + * with the user. * * Some files in the "contrib" directory and some configure-generated - * files that are distributed with libpng have other copyright owners and + * files that are distributed with libpng have other copyright owners, and * are released under other open source licenses. * * libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are * Copyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from * libpng-0.96, and are distributed according to the same disclaimer and - * license as libpng-0.96, with the following individuals added to the list - * of Contributing Authors: + * license as libpng-0.96, with the following individuals added to the + * list of Contributing Authors: * - * Tom Lane - * Glenn Randers-Pehrson - * Willem van Schaik + * Tom Lane + * Glenn Randers-Pehrson + * Willem van Schaik * * libpng versions 0.89, June 1996, through 0.96, May 1997, are * Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88, @@ -70,14 +106,14 @@ * libpng-0.88, with the following individuals added to the list of * Contributing Authors: * - * John Bowler - * Kevin Bracey - * Sam Bushell - * Magnus Holmgren - * Greg Roelofs - * Tom Tanner + * John Bowler + * Kevin Bracey + * Sam Bushell + * Magnus Holmgren + * Greg Roelofs + * Tom Tanner * - * Some files in the "scripts" directory have other copyright owners + * Some files in the "scripts" directory have other copyright owners, * but are released under this license. * * libpng versions 0.5, May 1995, through 0.88, January 1996, are @@ -86,62 +122,49 @@ * For the purposes of this copyright and license, "Contributing Authors" * is defined as the following set of individuals: * - * Andreas Dilger - * Dave Martindale - * Guy Eric Schalnat - * Paul Schmidt - * Tim Wegner - * - * The PNG Reference Library is supplied "AS IS". The Contributing Authors - * and Group 42, Inc. disclaim all warranties, expressed or implied, - * including, without limitation, the warranties of merchantability and of - * fitness for any purpose. The Contributing Authors and Group 42, Inc. - * assume no liability for direct, indirect, incidental, special, exemplary, - * or consequential damages, which may result from the use of the PNG - * Reference Library, even if advised of the possibility of such damage. + * Andreas Dilger + * Dave Martindale + * Guy Eric Schalnat + * Paul Schmidt + * Tim Wegner + * + * The PNG Reference Library is supplied "AS IS". The Contributing + * Authors and Group 42, Inc. disclaim all warranties, expressed or + * implied, including, without limitation, the warranties of + * merchantability and of fitness for any purpose. The Contributing + * Authors and Group 42, Inc. assume no liability for direct, indirect, + * incidental, special, exemplary, or consequential damages, which may + * result from the use of the PNG Reference Library, even if advised of + * the possibility of such damage. * * Permission is hereby granted to use, copy, modify, and distribute this * source code, or portions hereof, for any purpose, without fee, subject * to the following restrictions: * - * 1. The origin of this source code must not be misrepresented. + * 1. The origin of this source code must not be misrepresented. * - * 2. Altered versions must be plainly marked as such and must not - * be misrepresented as being the original source. + * 2. Altered versions must be plainly marked as such and must not + * be misrepresented as being the original source. * - * 3. This Copyright notice may not be removed or altered from any - * source or altered source distribution. + * 3. This Copyright notice may not be removed or altered from any + * source or altered source distribution. * - * The Contributing Authors and Group 42, Inc. specifically permit, without - * fee, and encourage the use of this source code as a component to - * supporting the PNG file format in commercial products. If you use this - * source code in a product, acknowledgment is not required but would be - * appreciated. + * The Contributing Authors and Group 42, Inc. specifically permit, + * without fee, and encourage the use of this source code as a component + * to supporting the PNG file format in commercial products. If you use + * this source code in a product, acknowledgment is not required but would + * be appreciated. * * END OF COPYRIGHT NOTICE, DISCLAIMER, and LICENSE. * - * TRADEMARK: + * TRADEMARK + * ========= * - * The name "libpng" has not been registered by the Copyright owner + * The name "libpng" has not been registered by the Copyright owners * as a trademark in any jurisdiction. However, because libpng has * been distributed and maintained world-wide, continually since 1995, - * the Copyright owner claims "common-law trademark protection" in any + * the Copyright owners claim "common-law trademark protection" in any * jurisdiction where common-law trademark is recognized. - * - * OSI CERTIFICATION: - * - * Libpng is OSI Certified Open Source Software. OSI Certified Open Source is - * a certification mark of the Open Source Initiative. OSI has not addressed - * the additional disclaimers inserted at version 1.0.7. - * - * EXPORT CONTROL: - * - * The Copyright owner believes that the Export Control Classification - * Number (ECCN) for libpng is EAR99, which means not subject to export - * controls or International Traffic in Arms Regulations (ITAR) because - * it is open source, publicly available software, that does not contain - * any encryption software. See the EAR, paragraphs 734.3(b)(3) and - * 734.7(b). */ /* @@ -207,23 +230,25 @@ * 1.0.7rc1-2 1 10007 2.1.0.7rc1-2 (binary compatible) * 1.0.7 1 10007 (still compatible) * ... - * 1.0.19 10 10019 10.so.0.19[.0] + * 1.0.69 10 10069 10.so.0.69[.0] * ... - * 1.2.59 13 10257 12.so.0.59[.0] + * 1.2.59 13 10259 12.so.0.59[.0] * ... - * 1.5.30 15 10527 15.so.15.30[.0] + * 1.4.20 14 10420 14.so.0.20[.0] * ... - * 1.6.35 16 10635 16.so.16.35[.0] - * - * Henceforth the source version will match the shared-library major - * and minor numbers; the shared-library major version number will be - * used for changes in backward compatibility, as it is intended. The - * PNG_LIBPNG_VER macro, which is not used within libpng but is available - * for applications, is an unsigned integer of the form xyyzz corresponding - * to the source version x.y.z (leading zeros in y and z). Beta versions - * were given the previous public release number plus a letter, until - * version 1.0.6j; from then on they were given the upcoming public - * release number plus "betaNN" or "rcNN". + * 1.5.30 15 10530 15.so.15.30[.0] + * ... + * 1.6.36 16 10636 16.so.16.36[.0] + * + * Henceforth the source version will match the shared-library major and + * minor numbers; the shared-library major version number will be used for + * changes in backward compatibility, as it is intended. + * The PNG_LIBPNG_VER macro, which is not used within libpng but is + * available for applications, is an unsigned integer of the form XYYZZ + * corresponding to the source version X.Y.Z (leading zeros in Y and Z). + * Beta versions were given the previous public release number plus a + * letter, until version 1.0.6j; from then on they were given the upcoming + * public release number plus "betaNN" or "rcNN". * * Binary incompatibility exists only when applications make direct access * to the info_ptr or png_ptr members through png.h, and the compiled @@ -233,65 +258,8 @@ * in binary compatibility (e.g., when a new feature is added). * * See libpng.txt or libpng.3 for more information. The PNG specification - * is available as a W3C Recommendation and as an ISO Specification, - * <https://www.w3.org/TR/2003/REC-PNG-20031110/ - */ - -/* - * Y2K compliance in libpng: - * ========================= - * - * July 15, 2018 - * - * Since the PNG Development group is an ad-hoc body, we can't make - * an official declaration. - * - * This is your unofficial assurance that libpng from version 0.71 and - * upward through 1.6.35 are Y2K compliant. It is my belief that - * earlier versions were also Y2K compliant. - * - * Libpng only has two year fields. One is a 2-byte unsigned integer - * that will hold years up to 65535. The other, which is deprecated, - * holds the date in text format, and will hold years up to 9999. - * - * The integer is - * "png_uint_16 year" in png_time_struct. - * - * The string is - * "char time_buffer[29]" in png_struct. This is no longer used - * in libpng-1.6.x and will be removed from libpng-1.7.0. - * - * There are seven time-related functions: - * png.c: png_convert_to_rfc_1123_buffer() in png.c - * (formerly png_convert_to_rfc_1123() prior to libpng-1.5.x and - * png_convert_to_rfc_1152() in error prior to libpng-0.98) - * png_convert_from_struct_tm() in pngwrite.c, called in pngwrite.c - * png_convert_from_time_t() in pngwrite.c - * png_get_tIME() in pngget.c - * png_handle_tIME() in pngrutil.c, called in pngread.c - * png_set_tIME() in pngset.c - * png_write_tIME() in pngwutil.c, called in pngwrite.c - * - * All handle dates properly in a Y2K environment. The - * png_convert_from_time_t() function calls gmtime() to convert from system - * clock time, which returns (year - 1900), which we properly convert to - * the full 4-digit year. There is a possibility that libpng applications - * are not passing 4-digit years into the png_convert_to_rfc_1123_buffer() - * function, or that they are incorrectly passing only a 2-digit year - * instead of "year - 1900" into the png_convert_from_struct_tm() function, - * but this is not under our control. The libpng documentation has always - * stated that it works with 4-digit years, and the APIs have been - * documented as such. - * - * The tIME chunk itself is also Y2K compliant. It uses a 2-byte unsigned - * integer to hold the year, and can hold years as large as 65535. - * - * zlib, upon which libpng depends, is also Y2K compliant. It contains - * no date-related code. - * - * Glenn Randers-Pehrson - * libpng maintainer - * PNG Development Group + * is available as a W3C Recommendation and as an ISO/IEC Standard; see + * <https://www.w3.org/TR/2003/REC-PNG-20031110/> */ #ifndef PNG_H @@ -309,8 +277,8 @@ */ /* Version information for png.h - this should match the version in png.c */ -#define PNG_LIBPNG_VER_STRING "1.6.35" -#define PNG_HEADER_VERSION_STRING " libpng version 1.6.35 - July 15, 2018\n" +#define PNG_LIBPNG_VER_STRING "1.6.36" +#define PNG_HEADER_VERSION_STRING " libpng version 1.6.36 - December 1, 2018\n" #define PNG_LIBPNG_VER_SONUM 16 #define PNG_LIBPNG_VER_DLLNUM 16 @@ -318,13 +286,13 @@ /* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */ #define PNG_LIBPNG_VER_MAJOR 1 #define PNG_LIBPNG_VER_MINOR 6 -#define PNG_LIBPNG_VER_RELEASE 35 +#define PNG_LIBPNG_VER_RELEASE 36 /* This should match the numeric part of the final component of * PNG_LIBPNG_VER_STRING, omitting any leading zero: */ -#define PNG_LIBPNG_VER_BUILD 02 +#define PNG_LIBPNG_VER_BUILD 0 /* Release Status */ #define PNG_LIBPNG_BUILD_ALPHA 1 @@ -341,15 +309,16 @@ #define PNG_LIBPNG_BUILD_SPECIAL 32 /* Cannot be OR'ed with PNG_LIBPNG_BUILD_PRIVATE */ -#define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_BETA +#define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_STABLE -/* Careful here. At one time, Guy wanted to use 082, but that would be octal. - * We must not include leading zeros. - * Versions 0.7 through 1.0.0 were in the range 0 to 100 here (only - * version 1.0.0 was mis-numbered 100 instead of 10000). From - * version 1.0.1 it's xxyyzz, where x=major, y=minor, z=release +/* Careful here. At one time, Guy wanted to use 082, but that + * would be octal. We must not include leading zeros. + * Versions 0.7 through 1.0.0 were in the range 0 to 100 here + * (only version 1.0.0 was mis-numbered 100 instead of 10000). + * From version 1.0.1 it is: + * XXYYZZ, where XX=major, YY=minor, ZZ=release */ -#define PNG_LIBPNG_VER 10635 /* 1.6.35 */ +#define PNG_LIBPNG_VER 10636 /* 1.6.36 */ /* Library configuration: these options cannot be changed after * the library has been built. @@ -459,7 +428,7 @@ extern "C" { /* This triggers a compiler error in png.c, if png.c and png.h * do not agree upon the version number. */ -typedef char* png_libpng_version_1_6_35; +typedef char* png_libpng_version_1_6_36; /* Basic control structions. Read libpng-manual.txt or libpng.3 for more info. * @@ -2013,12 +1982,12 @@ PNG_FIXED_EXPORT(233, void, png_set_cHRM_XYZ_fixed, (png_const_structrp png_ptr, PNG_EXPORT(246, png_uint_32, png_get_eXIf, (png_const_structrp png_ptr, png_inforp info_ptr, png_bytep *exif)); PNG_EXPORT(247, void, png_set_eXIf, (png_const_structrp png_ptr, - png_inforp info_ptr, const png_bytep exif)); + png_inforp info_ptr, png_bytep exif)); PNG_EXPORT(248, png_uint_32, png_get_eXIf_1, (png_const_structrp png_ptr, png_const_inforp info_ptr, png_uint_32 *num_exif, png_bytep *exif)); PNG_EXPORT(249, void, png_set_eXIf_1, (png_const_structrp png_ptr, - png_inforp info_ptr, const png_uint_32 num_exif, const png_bytep exif)); + png_inforp info_ptr, png_uint_32 num_exif, png_bytep exif)); #endif #ifdef PNG_gAMA_SUPPORTED @@ -2764,7 +2733,7 @@ typedef struct * * When the simplified API needs to convert between sRGB and linear colorspaces, * the actual sRGB transfer curve defined in the sRGB specification (see the - * article at https://en.wikipedia.org/wiki/SRGB) is used, not the gamma=1/2.2 + * article at <https://en.wikipedia.org/wiki/SRGB>) is used, not the gamma=1/2.2 * approximation used elsewhere in libpng. * * When an alpha channel is present it is expected to denote pixel coverage @@ -2967,7 +2936,7 @@ typedef struct * 'flags' field of png_image. */ #define PNG_IMAGE_FLAG_COLORSPACE_NOT_sRGB 0x01 - /* This indicates the the RGB values of the in-memory bitmap do not + /* This indicates that the RGB values of the in-memory bitmap do not * correspond to the red, green and blue end-points defined by sRGB. */ diff --git a/source/libs/libpng/libpng-src/pngconf.h b/source/libs/libpng/libpng-src/pngconf.h index a4646bab858543d3ac041750c4eba10e4d0239a5..5e641b250983946bf04e01c4782d2b064109fb85 100644 --- a/source/libs/libpng/libpng-src/pngconf.h +++ b/source/libs/libpng/libpng-src/pngconf.h @@ -1,11 +1,12 @@ /* pngconf.h - machine configurable file for libpng * - * libpng version 1.6.35, July 15, 2018 + * libpng version 1.6.36 * + * Copyright (c) 2018 Cosmin Truta * Copyright (c) 1998-2002,2004,2006-2016,2018 Glenn Randers-Pehrson - * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) - * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * Copyright (c) 1996-1997 Andreas Dilger + * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer @@ -57,14 +58,13 @@ #endif /* PNG_BUILDING_SYMBOL_TABLE */ -/* Prior to 1.6.0 it was possible to turn off 'const' in declarations using - * PNG_NO_CONST; this is no longer supported except for data declarations which - * apparently still cause problems in 2011 on some compilers. +/* Prior to 1.6.0, it was possible to turn off 'const' in declarations, + * using PNG_NO_CONST. This is no longer supported. */ #define PNG_CONST const /* backward compatibility only */ -/* This controls optimization of the reading of 16-bit and 32-bit values - * from PNG files. It can be set on a per-app-file basis - it +/* This controls optimization of the reading of 16-bit and 32-bit + * values from PNG files. It can be set on a per-app-file basis: it * just changes whether a macro is used when the function is called. * The library builder sets the default; if read functions are not * built into the library the macro implementation is forced on. diff --git a/source/libs/libpng/libpng-src/pngdebug.h b/source/libs/libpng/libpng-src/pngdebug.h index 15a7ed0c95f002722b55b5637fd75cf00e778304..00d5a4569e4d8b9f1b33e118129b0045949e7b43 100644 --- a/source/libs/libpng/libpng-src/pngdebug.h +++ b/source/libs/libpng/libpng-src/pngdebug.h @@ -1,10 +1,10 @@ /* pngdebug.h - Debugging macros for libpng, also used in pngtest.c * - * Last changed in libpng 1.6.8 [December 19, 2013] + * Copyright (c) 2018 Cosmin Truta * Copyright (c) 1998-2002,2004,2006-2013 Glenn Randers-Pehrson - * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) - * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * Copyright (c) 1996-1997 Andreas Dilger + * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer diff --git a/source/libs/libpng/libpng-src/pngerror.c b/source/libs/libpng/libpng-src/pngerror.c index ad48bfb9864979fdf763613ef60edd050f05d344..ec3a709b9d2c5873995237679d6f7b3b4ffd1d84 100644 --- a/source/libs/libpng/libpng-src/pngerror.c +++ b/source/libs/libpng/libpng-src/pngerror.c @@ -1,10 +1,10 @@ /* pngerror.c - stub functions for i/o and memory allocation * - * Last changed in libpng 1.6.31 [July 27, 2017] + * Copyright (c) 2018 Cosmin Truta * Copyright (c) 1998-2002,2004,2006-2017 Glenn Randers-Pehrson - * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) - * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * Copyright (c) 1996-1997 Andreas Dilger + * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer @@ -425,7 +425,7 @@ png_app_error(png_const_structrp png_ptr, png_const_charp error_message) * if the character is invalid. */ #define isnonalpha(c) ((c) < 65 || (c) > 122 || ((c) > 90 && (c) < 97)) -static PNG_CONST char png_digit[16] = { +static const char png_digit[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; @@ -885,7 +885,7 @@ PNG_FUNCTION(void /* PRIVATE */, (PNGCBAPI png_safe_error),(png_structp png_nonconst_ptr, png_const_charp error_message), PNG_NORETURN) { - const png_const_structrp png_ptr = png_nonconst_ptr; + png_const_structrp png_ptr = png_nonconst_ptr; png_imagep image = png_voidcast(png_imagep, png_ptr->error_ptr); /* An error is always logged here, overwriting anything (typically a warning) @@ -920,7 +920,7 @@ png_safe_error),(png_structp png_nonconst_ptr, png_const_charp error_message), void /* PRIVATE */ PNGCBAPI png_safe_warning(png_structp png_nonconst_ptr, png_const_charp warning_message) { - const png_const_structrp png_ptr = png_nonconst_ptr; + png_const_structrp png_ptr = png_nonconst_ptr; png_imagep image = png_voidcast(png_imagep, png_ptr->error_ptr); /* A warning is only logged if there is no prior warning or error. */ diff --git a/source/libs/libpng/libpng-src/pngget.c b/source/libs/libpng/libpng-src/pngget.c index 2325508f1dc0f6045322b6067923cbb044b59d54..5abf1efd9f73bffbc5561eab4057bc0f29465e62 100644 --- a/source/libs/libpng/libpng-src/pngget.c +++ b/source/libs/libpng/libpng-src/pngget.c @@ -1,10 +1,10 @@ /* pngget.c - retrieval of values from info struct * - * Last changed in libpng 1.6.35 [July 15, 2018] + * Copyright (c) 2018 Cosmin Truta * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson - * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) - * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * Copyright (c) 1996-1997 Andreas Dilger + * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer diff --git a/source/libs/libpng/libpng-src/pnginfo.h b/source/libs/libpng/libpng-src/pnginfo.h index 2fcf868dacd3c95463d85d172b3c13c241a26b5d..1f98dedc4284bf788ad884ef5e9350aa5bcaaee4 100644 --- a/source/libs/libpng/libpng-src/pnginfo.h +++ b/source/libs/libpng/libpng-src/pnginfo.h @@ -1,10 +1,10 @@ /* pnginfo.h - header file for PNG reference library * - * Last changed in libpng 1.6.35 [July 15, 2018] + * Copyright (c) 2018 Cosmin Truta * Copyright (c) 1998-2002,2004,2006-2013,2018 Glenn Randers-Pehrson - * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) - * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * Copyright (c) 1996-1997 Andreas Dilger + * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer diff --git a/source/libs/libpng/libpng-src/pnglibconf.h b/source/libs/libpng/libpng-src/pnglibconf.h index 00acecc69b7f76766607f871ceec78909e24947f..00340c678beb4953098ca0ee23d80748bca0afeb 100644 --- a/source/libs/libpng/libpng-src/pnglibconf.h +++ b/source/libs/libpng/libpng-src/pnglibconf.h @@ -1,10 +1,9 @@ -/* libpng 1.6.35 STANDARD API DEFINITION */ - /* pnglibconf.h - library build configuration */ -/* Libpng version 1.6.35 - July 15, 2018 */ +/* libpng version 1.6.36 */ -/* Copyright (c) 1998-2018 Glenn Randers-Pehrson */ +/* Copyright (c) 2018 Cosmin Truta */ +/* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson */ /* This code is released under the libpng license. */ /* For conditions of distribution and use, see the disclaimer */ @@ -20,8 +19,6 @@ #define PNG_ALIGNED_MEMORY_SUPPORTED /*#undef PNG_ARM_NEON_API_SUPPORTED*/ /*#undef PNG_ARM_NEON_CHECK_SUPPORTED*/ -/*#undef PNG_POWERPC_VSX_API_SUPPORTED*/ -/*#undef PNG_POWERPC_VSX_CHECK_SUPPORTED*/ #define PNG_BENIGN_ERRORS_SUPPORTED #define PNG_BENIGN_READ_ERRORS_SUPPORTED /*#undef PNG_BENIGN_WRITE_ERRORS_SUPPORTED*/ @@ -46,6 +43,8 @@ #define PNG_IO_STATE_SUPPORTED #define PNG_MNG_FEATURES_SUPPORTED #define PNG_POINTER_INDEXING_SUPPORTED +/*#undef PNG_POWERPC_VSX_API_SUPPORTED*/ +/*#undef PNG_POWERPC_VSX_CHECK_SUPPORTED*/ #define PNG_PROGRESSIVE_READ_SUPPORTED #define PNG_READ_16BIT_SUPPORTED #define PNG_READ_ALPHA_MODE_SUPPORTED diff --git a/source/libs/libpng/libpng-src/pngmem.c b/source/libs/libpng/libpng-src/pngmem.c index ff3ef7e88c297794b9e5d740d80e9ac2dc23ebe9..09ed9c1c990681aa51a6bf5eba49c256dadfc292 100644 --- a/source/libs/libpng/libpng-src/pngmem.c +++ b/source/libs/libpng/libpng-src/pngmem.c @@ -1,10 +1,10 @@ /* pngmem.c - stub functions for memory allocation * - * Last changed in libpng 1.6.26 [October 20, 2016] + * Copyright (c) 2018 Cosmin Truta * Copyright (c) 1998-2002,2004,2006-2014,2016 Glenn Randers-Pehrson - * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) - * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * Copyright (c) 1996-1997 Andreas Dilger + * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer diff --git a/source/libs/libpng/libpng-src/pngpread.c b/source/libs/libpng/libpng-src/pngpread.c index c4ba51c4d4d63b8485a07037a24b1e06a62bdedf..e283627b77cd34e25e5ccccbf14137332a999ac6 100644 --- a/source/libs/libpng/libpng-src/pngpread.c +++ b/source/libs/libpng/libpng-src/pngpread.c @@ -1,10 +1,10 @@ /* pngpread.c - read a png file in push mode * - * Last changed in libpng 1.6.35 [July 15, 2018] + * Copyright (c) 2018 Cosmin Truta * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson - * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) - * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * Copyright (c) 1996-1997 Andreas Dilger + * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer @@ -972,20 +972,20 @@ png_read_push_finish_row(png_structrp png_ptr) /* Arrays to facilitate easy interlacing - use pass (0 - 6) as index */ /* Start of interlace block */ - static PNG_CONST png_byte png_pass_start[] = {0, 4, 0, 2, 0, 1, 0}; + static const png_byte png_pass_start[] = {0, 4, 0, 2, 0, 1, 0}; /* Offset to next interlace block */ - static PNG_CONST png_byte png_pass_inc[] = {8, 8, 4, 4, 2, 2, 1}; + static const png_byte png_pass_inc[] = {8, 8, 4, 4, 2, 2, 1}; /* Start of interlace block in the y direction */ - static PNG_CONST png_byte png_pass_ystart[] = {0, 0, 4, 0, 2, 0, 1}; + static const png_byte png_pass_ystart[] = {0, 0, 4, 0, 2, 0, 1}; /* Offset to next interlace block in the y direction */ - static PNG_CONST png_byte png_pass_yinc[] = {8, 8, 8, 4, 4, 2, 2}; + static const png_byte png_pass_yinc[] = {8, 8, 8, 4, 4, 2, 2}; /* Height of interlace block. This is not currently used - if you need * it, uncomment it here and in png.h - static PNG_CONST png_byte png_pass_height[] = {8, 8, 4, 4, 2, 2, 1}; + static const png_byte png_pass_height[] = {8, 8, 4, 4, 2, 2, 1}; */ #endif diff --git a/source/libs/libpng/libpng-src/pngpriv.h b/source/libs/libpng/libpng-src/pngpriv.h index 3581f6791999d085fe54d0a65f87e15918c908cd..973c3eac1f9dadeb8cf330cf5dc0ba2cc6a866d9 100644 --- a/source/libs/libpng/libpng-src/pngpriv.h +++ b/source/libs/libpng/libpng-src/pngpriv.h @@ -1,10 +1,10 @@ /* pngpriv.h - private declarations for use inside libpng * - * Last changed in libpng 1.6.35 [July 15, 2018] + * Copyright (c) 2018 Cosmin Truta * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson - * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) - * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * Copyright (c) 1996-1997 Andreas Dilger + * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer @@ -174,7 +174,10 @@ # else /* !defined __ARM_NEON__ */ /* The 'intrinsics' code simply won't compile without this -mfpu=neon: */ -# define PNG_ARM_NEON_IMPLEMENTATION 2 +# if !defined(__aarch64__) + /* The assembler code currently does not work on ARM64 */ +# define PNG_ARM_NEON_IMPLEMENTATION 2 +# endif /* __aarch64__ */ # endif /* __ARM_NEON__ */ # endif /* !PNG_ARM_NEON_IMPLEMENTATION */ @@ -1534,10 +1537,10 @@ PNG_INTERNAL_FUNCTION(void,png_handle_zTXt,(png_structrp png_ptr, #endif PNG_INTERNAL_FUNCTION(void,png_check_chunk_name,(png_const_structrp png_ptr, - const png_uint_32 chunk_name),PNG_EMPTY); + png_uint_32 chunk_name),PNG_EMPTY); PNG_INTERNAL_FUNCTION(void,png_check_chunk_length,(png_const_structrp png_ptr, - const png_uint_32 chunk_length),PNG_EMPTY); + png_uint_32 chunk_length),PNG_EMPTY); PNG_INTERNAL_FUNCTION(void,png_handle_unknown,(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length, int keep),PNG_EMPTY); @@ -2114,6 +2117,29 @@ PNG_INTERNAL_FUNCTION(void, png_init_filter_functions_sse2, PNG_INTERNAL_FUNCTION(png_uint_32, png_check_keyword, (png_structrp png_ptr, png_const_charp key, png_bytep new_key), PNG_EMPTY); +#if PNG_ARM_NEON_IMPLEMENTATION == 1 +PNG_INTERNAL_FUNCTION(void, + png_riffle_palette_rgba, + (png_structrp, png_row_infop), + PNG_EMPTY); +PNG_INTERNAL_FUNCTION(int, + png_do_expand_palette_neon_rgba, + (png_structrp, + png_row_infop, + png_const_bytep, + const png_bytepp, + const png_bytepp), + PNG_EMPTY); +PNG_INTERNAL_FUNCTION(int, + png_do_expand_palette_neon_rgb, + (png_structrp, + png_row_infop, + png_const_bytep, + const png_bytepp, + const png_bytepp), + PNG_EMPTY); +#endif + /* Maintainer: Put new private prototypes here ^ */ #include "pngdebug.h" diff --git a/source/libs/libpng/libpng-src/pngread.c b/source/libs/libpng/libpng-src/pngread.c index bff7503ee3b7f7123820b00311de7e57f1bac6ec..f8e762196eb1ad9ab19a6758be9eab59dd63b796 100644 --- a/source/libs/libpng/libpng-src/pngread.c +++ b/source/libs/libpng/libpng-src/pngread.c @@ -1,10 +1,10 @@ /* pngread.c - read a PNG file * - * Last changed in libpng 1.6.35 [July 15, 2018] + * Copyright (c) 2018 Cosmin Truta * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson - * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) - * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * Copyright (c) 1996-1997 Andreas Dilger + * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer @@ -1621,7 +1621,7 @@ png_image_skip_unused_chunks(png_structrp png_ptr) * errors (which are unfortunately quite common.) */ { - static PNG_CONST png_byte chunks_to_process[] = { + static const png_byte chunks_to_process[] = { 98, 75, 71, 68, '\0', /* bKGD */ 99, 72, 82, 77, '\0', /* cHRM */ 103, 65, 77, 65, '\0', /* gAMA */ @@ -1758,9 +1758,9 @@ png_create_colormap_entry(png_image_read_control *display, png_uint_32 alpha, int encoding) { png_imagep image = display->image; - const int output_encoding = (image->format & PNG_FORMAT_FLAG_LINEAR) != 0 ? + int output_encoding = (image->format & PNG_FORMAT_FLAG_LINEAR) != 0 ? P_LINEAR : P_sRGB; - const int convert_to_Y = (image->format & PNG_FORMAT_FLAG_COLOR) == 0 && + int convert_to_Y = (image->format & PNG_FORMAT_FLAG_COLOR) == 0 && (red != green || green != blue); if (ip > 255) @@ -1869,13 +1869,13 @@ png_create_colormap_entry(png_image_read_control *display, /* Store the value. */ { # ifdef PNG_FORMAT_AFIRST_SUPPORTED - const int afirst = (image->format & PNG_FORMAT_FLAG_AFIRST) != 0 && + int afirst = (image->format & PNG_FORMAT_FLAG_AFIRST) != 0 && (image->format & PNG_FORMAT_FLAG_ALPHA) != 0; # else # define afirst 0 # endif # ifdef PNG_FORMAT_BGR_SUPPORTED - const int bgr = (image->format & PNG_FORMAT_FLAG_BGR) != 0 ? 2 : 0; + int bgr = (image->format & PNG_FORMAT_FLAG_BGR) != 0 ? 2 : 0; # else # define bgr 0 # endif @@ -2085,11 +2085,11 @@ png_image_read_colormap(png_voidp argument) { png_image_read_control *display = png_voidcast(png_image_read_control*, argument); - const png_imagep image = display->image; + png_imagep image = display->image; - const png_structrp png_ptr = image->opaque->png_ptr; - const png_uint_32 output_format = image->format; - const int output_encoding = (output_format & PNG_FORMAT_FLAG_LINEAR) != 0 ? + png_structrp png_ptr = image->opaque->png_ptr; + png_uint_32 output_format = image->format; + int output_encoding = (output_format & PNG_FORMAT_FLAG_LINEAR) != 0 ? P_LINEAR : P_sRGB; unsigned int cmap_entries; @@ -2802,7 +2802,7 @@ png_image_read_colormap(png_voidp argument) unsigned int num_trans = png_ptr->num_trans; png_const_bytep trans = num_trans > 0 ? png_ptr->trans_alpha : NULL; png_const_colorp colormap = png_ptr->palette; - const int do_background = trans != NULL && + int do_background = trans != NULL && (output_format & PNG_FORMAT_FLAG_ALPHA) == 0; unsigned int i; @@ -3946,7 +3946,7 @@ png_image_read_direct(png_voidp argument) */ if (linear != 0) { - PNG_CONST png_uint_16 le = 0x0001; + png_uint_16 le = 0x0001; if ((*(png_const_bytep) & le) != 0) png_set_swap(png_ptr); @@ -4108,7 +4108,7 @@ png_image_finish_read(png_imagep image, png_const_colorp background, * original PNG format because it may not occur in the output PNG format * and libpng deals with the issues of reading the original. */ - const unsigned int channels = PNG_IMAGE_PIXEL_CHANNELS(image->format); + unsigned int channels = PNG_IMAGE_PIXEL_CHANNELS(image->format); /* The following checks just the 'row_stride' calculation to ensure it * fits in a signed 32-bit value. Because channels/components can be @@ -4119,7 +4119,7 @@ png_image_finish_read(png_imagep image, png_const_colorp background, if (image->width <= 0x7fffffffU/channels) /* no overflow */ { png_uint_32 check; - const png_uint_32 png_row_stride = image->width * channels; + png_uint_32 png_row_stride = image->width * channels; if (row_stride == 0) row_stride = (png_int_32)/*SAFE*/png_row_stride; diff --git a/source/libs/libpng/libpng-src/pngrio.c b/source/libs/libpng/libpng-src/pngrio.c index 372221483fe8e4e682ce00c13584f6689b0fc700..7946358101bb894710530a871ae4879a1307d232 100644 --- a/source/libs/libpng/libpng-src/pngrio.c +++ b/source/libs/libpng/libpng-src/pngrio.c @@ -1,10 +1,10 @@ /* pngrio.c - functions for data input * - * Last changed in libpng 1.6.35 [July 15, 2018] + * Copyright (c) 2018 Cosmin Truta * Copyright (c) 1998-2002,2004,2006-2016,2018 Glenn Randers-Pehrson - * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) - * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * Copyright (c) 1996-1997 Andreas Dilger + * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer diff --git a/source/libs/libpng/libpng-src/pngrtran.c b/source/libs/libpng/libpng-src/pngrtran.c index 67d1f249a6868623b3bc8f03ce3385630c2a62eb..ccc58ce6f1d9a5b83491ed0441f70a4dbed4f6e5 100644 --- a/source/libs/libpng/libpng-src/pngrtran.c +++ b/source/libs/libpng/libpng-src/pngrtran.c @@ -1,10 +1,10 @@ /* pngrtran.c - transforms the data in a row for PNG readers * - * Last changed in libpng 1.6.35 [July 15, 2018] + * Copyright (c) 2018 Cosmin Truta * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson - * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) - * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * Copyright (c) 1996-1997 Andreas Dilger + * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer @@ -18,6 +18,17 @@ #include "pngpriv.h" +#ifdef PNG_ARM_NEON_IMPLEMENTATION +# if PNG_ARM_NEON_IMPLEMENTATION == 1 +# define PNG_ARM_NEON_INTRINSICS_AVAILABLE +# if defined(_MSC_VER) && defined(_M_ARM64) +# include <arm64_neon.h> +# else +# include <arm_neon.h> +# endif +# endif +#endif + #ifdef PNG_READ_SUPPORTED /* Set the action on getting a CRC error for an ancillary or critical chunk. */ @@ -2986,7 +2997,6 @@ png_do_gray_to_rgb(png_row_infop row_info, png_bytep row) */ static int png_do_rgb_to_gray(png_structrp png_ptr, png_row_infop row_info, png_bytep row) - { int rgb_error = 0; @@ -2995,12 +3005,11 @@ png_do_rgb_to_gray(png_structrp png_ptr, png_row_infop row_info, png_bytep row) if ((row_info->color_type & PNG_COLOR_MASK_PALETTE) == 0 && (row_info->color_type & PNG_COLOR_MASK_COLOR) != 0) { - PNG_CONST png_uint_32 rc = png_ptr->rgb_to_gray_red_coeff; - PNG_CONST png_uint_32 gc = png_ptr->rgb_to_gray_green_coeff; - PNG_CONST png_uint_32 bc = 32768 - rc - gc; - PNG_CONST png_uint_32 row_width = row_info->width; - PNG_CONST int have_alpha = - (row_info->color_type & PNG_COLOR_MASK_ALPHA) != 0; + png_uint_32 rc = png_ptr->rgb_to_gray_red_coeff; + png_uint_32 gc = png_ptr->rgb_to_gray_green_coeff; + png_uint_32 bc = 32768 - rc - gc; + png_uint_32 row_width = row_info->width; + int have_alpha = (row_info->color_type & PNG_COLOR_MASK_ALPHA) != 0; if (row_info->bit_depth == 8) { @@ -4143,12 +4152,11 @@ png_do_encode_alpha(png_row_infop row_info, png_bytep row, png_structrp png_ptr) { if (row_info->bit_depth == 8) { - PNG_CONST png_bytep table = png_ptr->gamma_from_1; + png_bytep table = png_ptr->gamma_from_1; if (table != NULL) { - PNG_CONST int step = - (row_info->color_type & PNG_COLOR_MASK_COLOR) ? 4 : 2; + int step = (row_info->color_type & PNG_COLOR_MASK_COLOR) ? 4 : 2; /* The alpha channel is the last component: */ row += step - 1; @@ -4162,13 +4170,12 @@ png_do_encode_alpha(png_row_infop row_info, png_bytep row, png_structrp png_ptr) else if (row_info->bit_depth == 16) { - PNG_CONST png_uint_16pp table = png_ptr->gamma_16_from_1; - PNG_CONST int gamma_shift = png_ptr->gamma_shift; + png_uint_16pp table = png_ptr->gamma_16_from_1; + int gamma_shift = png_ptr->gamma_shift; if (table != NULL) { - PNG_CONST int step = - (row_info->color_type & PNG_COLOR_MASK_COLOR) ? 8 : 4; + int step = (row_info->color_type & PNG_COLOR_MASK_COLOR) ? 8 : 4; /* The alpha channel is the last component: */ row += step - 2; @@ -4199,8 +4206,9 @@ png_do_encode_alpha(png_row_infop row_info, png_bytep row, png_structrp png_ptr) * upon whether you supply trans and num_trans. */ static void -png_do_expand_palette(png_row_infop row_info, png_bytep row, - png_const_colorp palette, png_const_bytep trans_alpha, int num_trans) +png_do_expand_palette(png_structrp png_ptr, png_row_infop row_info, + png_bytep row, png_const_colorp palette, png_const_bytep trans_alpha, + int num_trans) { int shift, value; png_bytep sp, dp; @@ -4304,14 +4312,25 @@ png_do_expand_palette(png_row_infop row_info, png_bytep row, sp = row + (size_t)row_width - 1; dp = row + ((size_t)row_width << 2) - 1; - for (i = 0; i < row_width; i++) + i = 0; +#ifdef PNG_ARM_NEON_INTRINSICS_AVAILABLE + if (png_ptr->riffled_palette != NULL) + { + /* The RGBA optimization works with png_ptr->bit_depth == 8 + * but sometimes row_info->bit_depth has been changed to 8. + * In these cases, the palette hasn't been riffled. + */ + i = png_do_expand_palette_neon_rgba(png_ptr, row_info, row, + &sp, &dp); + } +#endif + + for (; i < row_width; i++) { if ((int)(*sp) >= num_trans) *dp-- = 0xff; - else *dp-- = trans_alpha[*sp]; - *dp-- = palette[*sp].blue; *dp-- = palette[*sp].green; *dp-- = palette[*sp].red; @@ -4328,8 +4347,13 @@ png_do_expand_palette(png_row_infop row_info, png_bytep row, { sp = row + (size_t)row_width - 1; dp = row + (size_t)(row_width * 3) - 1; + i = 0; +#ifdef PNG_ARM_NEON_INTRINSICS_AVAILABLE + i = png_do_expand_palette_neon_rgb(png_ptr, row_info, row, + &sp, &dp); +#endif - for (i = 0; i < row_width; i++) + for (; i < row_width; i++) { *dp-- = palette[*sp].blue; *dp-- = palette[*sp].green; @@ -4743,8 +4767,22 @@ png_do_read_transformations(png_structrp png_ptr, png_row_infop row_info) { if (row_info->color_type == PNG_COLOR_TYPE_PALETTE) { - png_do_expand_palette(row_info, png_ptr->row_buf + 1, - png_ptr->palette, png_ptr->trans_alpha, png_ptr->num_trans); +#ifdef PNG_ARM_NEON_INTRINSICS_AVAILABLE + if ((png_ptr->num_trans > 0) && (png_ptr->bit_depth == 8)) + { + /* Allocate space for the decompressed full palette. */ + if (png_ptr->riffled_palette == NULL) + { + png_ptr->riffled_palette = png_malloc(png_ptr, 256*4); + if (png_ptr->riffled_palette == NULL) + png_error(png_ptr, "NULL row buffer"); + /* Build the RGBA palette. */ + png_riffle_palette_rgba(png_ptr, row_info); + } + } +#endif + png_do_expand_palette(png_ptr, row_info, png_ptr->row_buf + 1, + png_ptr->palette, png_ptr->trans_alpha, png_ptr->num_trans); } else diff --git a/source/libs/libpng/libpng-src/pngrutil.c b/source/libs/libpng/libpng-src/pngrutil.c index 7001f1976e72d588b059d4552763da7b9bfeb0ae..d5fa08c397d1413e8de83ddafc0f0839de5e71f8 100644 --- a/source/libs/libpng/libpng-src/pngrutil.c +++ b/source/libs/libpng/libpng-src/pngrutil.c @@ -1,10 +1,10 @@ /* pngrutil.c - utilities to read a PNG file * - * Last changed in libpng 1.6.35 [July 15, 2018] + * Copyright (c) 2018 Cosmin Truta * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson - * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) - * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * Copyright (c) 1996-1997 Andreas Dilger + * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer @@ -1461,8 +1461,7 @@ png_handle_iCCP(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length) { /* We have the ICC profile header; do the basic header checks. */ - const png_uint_32 profile_length = - png_get_uint_32(profile_header); + png_uint_32 profile_length = png_get_uint_32(profile_header); if (png_icc_check_length(png_ptr, &png_ptr->colorspace, keyword, profile_length) != 0) @@ -1479,8 +1478,8 @@ png_handle_iCCP(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length) * profile. The header check has already validated * that none of this stuff will overflow. */ - const png_uint_32 tag_count = png_get_uint_32( - profile_header+128); + png_uint_32 tag_count = + png_get_uint_32(profile_header + 128); png_bytep profile = png_read_buffer(png_ptr, profile_length, 2/*silent*/); @@ -3132,7 +3131,7 @@ png_handle_unknown(png_structrp png_ptr, png_inforp info_ptr, */ void /* PRIVATE */ -png_check_chunk_name(png_const_structrp png_ptr, const png_uint_32 chunk_name) +png_check_chunk_name(png_const_structrp png_ptr, png_uint_32 chunk_name) { int i; png_uint_32 cn=chunk_name; @@ -3151,7 +3150,7 @@ png_check_chunk_name(png_const_structrp png_ptr, const png_uint_32 chunk_name) } void /* PRIVATE */ -png_check_chunk_length(png_const_structrp png_ptr, const png_uint_32 length) +png_check_chunk_length(png_const_structrp png_ptr, png_uint_32 length) { png_alloc_size_t limit = PNG_UINT_31_MAX; @@ -3363,7 +3362,7 @@ png_combine_row(png_const_structrp png_ptr, png_bytep dp, int display) /* Hence the pre-compiled masks indexed by PACKSWAP (or not), depth and * then pass: */ - static PNG_CONST png_uint_32 row_mask[2/*PACKSWAP*/][3/*depth*/][6] = + static const png_uint_32 row_mask[2/*PACKSWAP*/][3/*depth*/][6] = { /* Little-endian byte masks for PACKSWAP */ { S_MASKS(1,0), S_MASKS(2,0), S_MASKS(4,0) }, @@ -3374,7 +3373,7 @@ png_combine_row(png_const_structrp png_ptr, png_bytep dp, int display) /* display_mask has only three entries for the odd passes, so index by * pass>>1. */ - static PNG_CONST png_uint_32 display_mask[2][3][3] = + static const png_uint_32 display_mask[2][3][3] = { /* Little-endian byte masks for PACKSWAP */ { B_MASKS(1,0), B_MASKS(2,0), B_MASKS(4,0) }, @@ -3687,7 +3686,7 @@ png_do_read_interlace(png_row_infop row_info, png_bytep row, int pass, { /* Arrays to facilitate easy interlacing - use pass (0 - 6) as index */ /* Offset to next interlace block */ - static PNG_CONST unsigned int png_pass_inc[7] = {8, 8, 4, 4, 2, 2, 1}; + static const unsigned int png_pass_inc[7] = {8, 8, 4, 4, 2, 2, 1}; png_debug(1, "in png_do_read_interlace"); if (row != NULL && row_info != NULL) @@ -4329,16 +4328,16 @@ png_read_finish_row(png_structrp png_ptr) /* Arrays to facilitate easy interlacing - use pass (0 - 6) as index */ /* Start of interlace block */ - static PNG_CONST png_byte png_pass_start[7] = {0, 4, 0, 2, 0, 1, 0}; + static const png_byte png_pass_start[7] = {0, 4, 0, 2, 0, 1, 0}; /* Offset to next interlace block */ - static PNG_CONST png_byte png_pass_inc[7] = {8, 8, 4, 4, 2, 2, 1}; + static const png_byte png_pass_inc[7] = {8, 8, 4, 4, 2, 2, 1}; /* Start of interlace block in the y direction */ - static PNG_CONST png_byte png_pass_ystart[7] = {0, 0, 4, 0, 2, 0, 1}; + static const png_byte png_pass_ystart[7] = {0, 0, 4, 0, 2, 0, 1}; /* Offset to next interlace block in the y direction */ - static PNG_CONST png_byte png_pass_yinc[7] = {8, 8, 8, 4, 4, 2, 2}; + static const png_byte png_pass_yinc[7] = {8, 8, 8, 4, 4, 2, 2}; png_debug(1, "in png_read_finish_row"); png_ptr->row_number++; @@ -4394,16 +4393,16 @@ png_read_start_row(png_structrp png_ptr) /* Arrays to facilitate easy interlacing - use pass (0 - 6) as index */ /* Start of interlace block */ - static PNG_CONST png_byte png_pass_start[7] = {0, 4, 0, 2, 0, 1, 0}; + static const png_byte png_pass_start[7] = {0, 4, 0, 2, 0, 1, 0}; /* Offset to next interlace block */ - static PNG_CONST png_byte png_pass_inc[7] = {8, 8, 4, 4, 2, 2, 1}; + static const png_byte png_pass_inc[7] = {8, 8, 4, 4, 2, 2, 1}; /* Start of interlace block in the y direction */ - static PNG_CONST png_byte png_pass_ystart[7] = {0, 0, 4, 0, 2, 0, 1}; + static const png_byte png_pass_ystart[7] = {0, 0, 4, 0, 2, 0, 1}; /* Offset to next interlace block in the y direction */ - static PNG_CONST png_byte png_pass_yinc[7] = {8, 8, 8, 4, 4, 2, 2}; + static const png_byte png_pass_yinc[7] = {8, 8, 8, 4, 4, 2, 2}; unsigned int max_pixel_depth; size_t row_bytes; diff --git a/source/libs/libpng/libpng-src/pngset.c b/source/libs/libpng/libpng-src/pngset.c index 7cf54d9248d826fdac04df022f7ba1092c726148..ec75dbe36903e642a2fe9fe0db834b88a6ee7a81 100644 --- a/source/libs/libpng/libpng-src/pngset.c +++ b/source/libs/libpng/libpng-src/pngset.c @@ -1,10 +1,10 @@ /* pngset.c - storage of image information into info struct * - * Last changed in libpng 1.6.35 [July 15, 2018] + * Copyright (c) 2018 Cosmin Truta * Copyright (c) 1998-2018 Glenn Randers-Pehrson - * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) - * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * Copyright (c) 1996-1997 Andreas Dilger + * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer @@ -137,7 +137,7 @@ png_set_cHRM_XYZ(png_const_structrp png_ptr, png_inforp info_ptr, double red_X, #ifdef PNG_eXIf_SUPPORTED void PNGAPI png_set_eXIf(png_const_structrp png_ptr, png_inforp info_ptr, - const png_bytep eXIf_buf) + png_bytep eXIf_buf) { png_warning(png_ptr, "png_set_eXIf does not work; use png_set_eXIf_1"); PNG_UNUSED(info_ptr) @@ -146,7 +146,7 @@ png_set_eXIf(png_const_structrp png_ptr, png_inforp info_ptr, void PNGAPI png_set_eXIf_1(png_const_structrp png_ptr, png_inforp info_ptr, - const png_uint_32 num_exif, const png_bytep eXIf_buf) + png_uint_32 num_exif, png_bytep eXIf_buf) { int i; @@ -1399,7 +1399,7 @@ png_set_keep_unknown_chunks(png_structrp png_ptr, int keep, /* Ignore all unknown chunks and all chunks recognized by * libpng except for IHDR, PLTE, tRNS, IDAT, and IEND */ - static PNG_CONST png_byte chunks_to_ignore[] = { + static const png_byte chunks_to_ignore[] = { 98, 75, 71, 68, '\0', /* bKGD */ 99, 72, 82, 77, '\0', /* cHRM */ 101, 88, 73, 102, '\0', /* eXIf */ diff --git a/source/libs/libpng/libpng-src/pngstruct.h b/source/libs/libpng/libpng-src/pngstruct.h index 699e8ac68a282827fd55ca191c1119bcbbe1e4be..94a6d041fffc0d63b40557cf2a785f03fb2d832e 100644 --- a/source/libs/libpng/libpng-src/pngstruct.h +++ b/source/libs/libpng/libpng-src/pngstruct.h @@ -1,10 +1,10 @@ /* pngstruct.h - header file for PNG reference library * - * Last changed in libpng 1.6.35 [July 15, 2018] + * Copyright (c) 2018 Cosmin Truta * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson - * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) - * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * Copyright (c) 1996-1997 Andreas Dilger + * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer @@ -228,6 +228,10 @@ struct png_struct_def * big_row_buf; while writing it is separately * allocated. */ +#ifdef PNG_READ_EXPAND_SUPPORTED + /* Buffer to accelerate palette transformations. */ + png_bytep riffled_palette; +#endif #ifdef PNG_WRITE_FILTER_SUPPORTED png_bytep try_row; /* buffer to save trial row when filtering */ png_bytep tst_row; /* buffer to save best trial row when filtering */ diff --git a/source/libs/libpng/libpng-src/pngtest.c b/source/libs/libpng/libpng-src/pngtest.c index 4411fd985d100cd8fa3f432a4604564f2d865e14..f27e91eb84722ab2332d847e634342718a9fb026 100644 --- a/source/libs/libpng/libpng-src/pngtest.c +++ b/source/libs/libpng/libpng-src/pngtest.c @@ -1,10 +1,10 @@ /* pngtest.c - a simple test program to test libpng * - * Last changed in libpng 1.6.35 [July 15, 2018] + * Copyright (c) 2018 Cosmin Truta * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson - * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) - * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * Copyright (c) 1996-1997 Andreas Dilger + * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer @@ -449,13 +449,13 @@ pngtest_write_data(png_structp png_ptr, png_bytep data, size_t length) */ typedef struct { - PNG_CONST char *file_name; + const char *file_name; } pngtest_error_parameters; static void PNGCBAPI pngtest_warning(png_structp png_ptr, png_const_charp message) { - PNG_CONST char *name = "UNKNOWN (ERROR!)"; + const char *name = "UNKNOWN (ERROR!)"; pngtest_error_parameters *test = (pngtest_error_parameters*)png_get_error_ptr(png_ptr); @@ -850,7 +850,7 @@ pngtest_check_text_support(png_structp png_ptr, png_textp text_ptr, /* Test one file */ static int -test_one_file(PNG_CONST char *inname, PNG_CONST char *outname) +test_one_file(const char *inname, const char *outname) { static png_FILE_p fpin; static png_FILE_p fpout; /* "static" prevents setjmp corruption */ @@ -1809,11 +1809,11 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname) /* Input and output filenames */ #ifdef RISCOS -static PNG_CONST char *inname = "pngtest/png"; -static PNG_CONST char *outname = "pngout/png"; +static const char *inname = "pngtest/png"; +static const char *outname = "pngout/png"; #else -static PNG_CONST char *inname = "pngtest.png"; -static PNG_CONST char *outname = "pngout.png"; +static const char *inname = "pngtest.png"; +static const char *outname = "pngout.png"; #endif int @@ -2153,4 +2153,4 @@ main(void) #endif /* Generate a compiler error if there is an old png.h in the search path. */ -typedef png_libpng_version_1_6_35 Your_png_h_is_not_version_1_6_35; +typedef png_libpng_version_1_6_36 Your_png_h_is_not_version_1_6_36; diff --git a/source/libs/libpng/libpng-src/pngtrans.c b/source/libs/libpng/libpng-src/pngtrans.c index de84aa6d6b037a334d57cd9d96314af6c20d936c..1100f46ebec27b509b8bdb2a726e74e0c151daa4 100644 --- a/source/libs/libpng/libpng-src/pngtrans.c +++ b/source/libs/libpng/libpng-src/pngtrans.c @@ -1,10 +1,10 @@ /* pngtrans.c - transforms the data in a row (used by both readers and writers) * - * Last changed in libpng 1.6.35 [July 15, 2018] + * Copyright (c) 2018 Cosmin Truta * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson - * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) - * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * Copyright (c) 1996-1997 Andreas Dilger + * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer @@ -345,7 +345,7 @@ png_do_swap(png_row_infop row_info, png_bytep row) #endif #if defined(PNG_READ_PACKSWAP_SUPPORTED)||defined(PNG_WRITE_PACKSWAP_SUPPORTED) -static PNG_CONST png_byte onebppswaptable[256] = { +static const png_byte onebppswaptable[256] = { 0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0, 0x10, 0x90, 0x50, 0xD0, 0x30, 0xB0, 0x70, 0xF0, 0x08, 0x88, 0x48, 0xC8, 0x28, 0xA8, 0x68, 0xE8, @@ -380,7 +380,7 @@ static PNG_CONST png_byte onebppswaptable[256] = { 0x1F, 0x9F, 0x5F, 0xDF, 0x3F, 0xBF, 0x7F, 0xFF }; -static PNG_CONST png_byte twobppswaptable[256] = { +static const png_byte twobppswaptable[256] = { 0x00, 0x40, 0x80, 0xC0, 0x10, 0x50, 0x90, 0xD0, 0x20, 0x60, 0xA0, 0xE0, 0x30, 0x70, 0xB0, 0xF0, 0x04, 0x44, 0x84, 0xC4, 0x14, 0x54, 0x94, 0xD4, @@ -415,7 +415,7 @@ static PNG_CONST png_byte twobppswaptable[256] = { 0x2F, 0x6F, 0xAF, 0xEF, 0x3F, 0x7F, 0xBF, 0xFF }; -static PNG_CONST png_byte fourbppswaptable[256] = { +static const png_byte fourbppswaptable[256] = { 0x00, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, 0x80, 0x90, 0xA0, 0xB0, 0xC0, 0xD0, 0xE0, 0xF0, 0x01, 0x11, 0x21, 0x31, 0x41, 0x51, 0x61, 0x71, diff --git a/source/libs/libpng/libpng-src/pngwio.c b/source/libs/libpng/libpng-src/pngwio.c index e5391687a2eeabda2754fd371d999d73d3c5f3d1..10e919dd03819f62ba53a85acfcb4e4be176d9c8 100644 --- a/source/libs/libpng/libpng-src/pngwio.c +++ b/source/libs/libpng/libpng-src/pngwio.c @@ -1,10 +1,10 @@ /* pngwio.c - functions for data output * - * Last changed in libpng 1.6.35 [July 15, 2018] + * Copyright (c) 2018 Cosmin Truta * Copyright (c) 1998-2002,2004,2006-2014,2016,2018 Glenn Randers-Pehrson - * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) - * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * Copyright (c) 1996-1997 Andreas Dilger + * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer diff --git a/source/libs/libpng/libpng-src/pngwrite.c b/source/libs/libpng/libpng-src/pngwrite.c index 5bd87f373e4ad6baae774e6a76bd900d925415f2..160c877d38516605db8f786b2b4ffe5813edccec 100644 --- a/source/libs/libpng/libpng-src/pngwrite.c +++ b/source/libs/libpng/libpng-src/pngwrite.c @@ -1,10 +1,10 @@ /* pngwrite.c - general routines to write a PNG file * - * Last changed in libpng 1.6.35 [July 15, 2018] + * Copyright (c) 2018 Cosmin Truta * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson - * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) - * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * Copyright (c) 1996-1997 Andreas Dilger + * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer @@ -469,7 +469,7 @@ png_write_end(png_structrp png_ptr, png_inforp info_ptr) #ifdef PNG_CONVERT_tIME_SUPPORTED void PNGAPI -png_convert_from_struct_tm(png_timep ptime, PNG_CONST struct tm * ttime) +png_convert_from_struct_tm(png_timep ptime, const struct tm * ttime) { png_debug(1, "in png_convert_from_struct_tm"); @@ -948,6 +948,10 @@ png_write_destroy(png_structrp png_ptr) png_free_buffer_list(png_ptr, &png_ptr->zbuffer_list); png_free(png_ptr, png_ptr->row_buf); png_ptr->row_buf = NULL; +#ifdef PNG_READ_EXPANDED_SUPPORTED + png_free(png_ptr, png_ptr->riffled_palette); + png_ptr->riffled_palette = NULL; +#endif #ifdef PNG_WRITE_FILTER_SUPPORTED png_free(png_ptr, png_ptr->prev_row); png_free(png_ptr, png_ptr->try_row); @@ -1536,7 +1540,7 @@ png_write_image_16bit(png_voidp argument) display->first_row); png_uint_16p output_row = png_voidcast(png_uint_16p, display->local_row); png_uint_16p row_end; - const unsigned int channels = (image->format & PNG_FORMAT_FLAG_COLOR) != 0 ? + unsigned int channels = (image->format & PNG_FORMAT_FLAG_COLOR) != 0 ? 3 : 1; int aindex = 0; png_uint_32 y = image->height; @@ -1573,7 +1577,7 @@ png_write_image_16bit(png_voidp argument) while (out_ptr < row_end) { - const png_uint_16 alpha = in_ptr[aindex]; + png_uint_16 alpha = in_ptr[aindex]; png_uint_32 reciprocal = 0; int c; @@ -1695,7 +1699,7 @@ png_write_image_8bit(png_voidp argument) display->first_row); png_bytep output_row = png_voidcast(png_bytep, display->local_row); png_uint_32 y = image->height; - const unsigned int channels = (image->format & PNG_FORMAT_FLAG_COLOR) != 0 ? + unsigned int channels = (image->format & PNG_FORMAT_FLAG_COLOR) != 0 ? 3 : 1; if ((image->format & PNG_FORMAT_FLAG_ALPHA) != 0) @@ -1783,25 +1787,25 @@ png_write_image_8bit(png_voidp argument) static void png_image_set_PLTE(png_image_write_control *display) { - const png_imagep image = display->image; + png_imagep image = display->image; const void *cmap = display->colormap; - const int entries = image->colormap_entries > 256 ? 256 : + int entries = image->colormap_entries > 256 ? 256 : (int)image->colormap_entries; /* NOTE: the caller must check for cmap != NULL and entries != 0 */ - const png_uint_32 format = image->format; - const unsigned int channels = PNG_IMAGE_SAMPLE_CHANNELS(format); + png_uint_32 format = image->format; + unsigned int channels = PNG_IMAGE_SAMPLE_CHANNELS(format); # if defined(PNG_FORMAT_BGR_SUPPORTED) &&\ defined(PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED) - const int afirst = (format & PNG_FORMAT_FLAG_AFIRST) != 0 && + int afirst = (format & PNG_FORMAT_FLAG_AFIRST) != 0 && (format & PNG_FORMAT_FLAG_ALPHA) != 0; # else # define afirst 0 # endif # ifdef PNG_FORMAT_BGR_SUPPORTED - const int bgr = (format & PNG_FORMAT_FLAG_BGR) != 0 ? 2 : 0; + int bgr = (format & PNG_FORMAT_FLAG_BGR) != 0 ? 2 : 0; # else # define bgr 0 # endif @@ -1951,12 +1955,12 @@ png_image_write_main(png_voidp argument) * and total image size to ensure that they are within the system limits. */ { - const unsigned int channels = PNG_IMAGE_PIXEL_CHANNELS(image->format); + unsigned int channels = PNG_IMAGE_PIXEL_CHANNELS(image->format); if (image->width <= 0x7fffffffU/channels) /* no overflow */ { png_uint_32 check; - const png_uint_32 png_row_stride = image->width * channels; + png_uint_32 png_row_stride = image->width * channels; if (display->row_stride == 0) display->row_stride = (png_int_32)/*SAFE*/png_row_stride; @@ -2052,7 +2056,7 @@ png_image_write_main(png_voidp argument) */ if (write_16bit != 0) { - PNG_CONST png_uint_16 le = 0x0001; + png_uint_16 le = 0x0001; if ((*(png_const_bytep) & le) != 0) png_set_swap(png_ptr); @@ -2166,7 +2170,7 @@ image_memory_write)(png_structp png_ptr, png_bytep/*const*/ data, size_t size) { png_image_write_control *display = png_voidcast(png_image_write_control*, png_ptr->io_ptr/*backdoor: png_get_io_ptr(png_ptr)*/); - const png_alloc_size_t ob = display->output_bytes; + png_alloc_size_t ob = display->output_bytes; /* Check for overflow; this should never happen: */ if (size <= ((png_alloc_size_t)-1) - ob) diff --git a/source/libs/libpng/libpng-src/pngwtran.c b/source/libs/libpng/libpng-src/pngwtran.c index 3a1e0a21d2578f413174909474c5f84a20aaf8d6..49a13c1e98d993818f85a77a509965a2adf8ee3b 100644 --- a/source/libs/libpng/libpng-src/pngwtran.c +++ b/source/libs/libpng/libpng-src/pngwtran.c @@ -1,10 +1,10 @@ /* pngwtran.c - transforms the data in a row for PNG writers * - * Last changed in libpng 1.6.35 [July 15, 2018] + * Copyright (c) 2018 Cosmin Truta * Copyright (c) 1998-2002,2004,2006-2016,2018 Glenn Randers-Pehrson - * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) - * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * Copyright (c) 1996-1997 Andreas Dilger + * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer @@ -254,8 +254,7 @@ png_do_shift(png_row_infop row_info, png_bytep row, for (i = 0; i < istop; i++, bp++) { - - const unsigned int c = i%channels; + unsigned int c = i%channels; int j; unsigned int v, out; @@ -283,7 +282,7 @@ png_do_shift(png_row_infop row_info, png_bytep row, for (bp = row, i = 0; i < istop; i++) { - const unsigned int c = i%channels; + unsigned int c = i%channels; int j; unsigned int value, v; diff --git a/source/libs/libpng/libpng-src/pngwutil.c b/source/libs/libpng/libpng-src/pngwutil.c index ab431e712c94c2a56548b912fca1a6ba9b67c2fe..16345e4c0baaf82da6f36e5f3e6b8cc5d8a4aed3 100644 --- a/source/libs/libpng/libpng-src/pngwutil.c +++ b/source/libs/libpng/libpng-src/pngwutil.c @@ -1,10 +1,10 @@ /* pngwutil.c - utilities to write a PNG file * - * Last changed in libpng 1.6.35 [July 15, 2018] + * Copyright (c) 2018 Cosmin Truta * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson - * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) - * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * Copyright (c) 1996-1997 Andreas Dilger + * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer @@ -1893,16 +1893,16 @@ png_write_start_row(png_structrp png_ptr) /* Arrays to facilitate easy interlacing - use pass (0 - 6) as index */ /* Start of interlace block */ - static PNG_CONST png_byte png_pass_start[7] = {0, 4, 0, 2, 0, 1, 0}; + static const png_byte png_pass_start[7] = {0, 4, 0, 2, 0, 1, 0}; /* Offset to next interlace block */ - static PNG_CONST png_byte png_pass_inc[7] = {8, 8, 4, 4, 2, 2, 1}; + static const png_byte png_pass_inc[7] = {8, 8, 4, 4, 2, 2, 1}; /* Start of interlace block in the y direction */ - static PNG_CONST png_byte png_pass_ystart[7] = {0, 0, 4, 0, 2, 0, 1}; + static const png_byte png_pass_ystart[7] = {0, 0, 4, 0, 2, 0, 1}; /* Offset to next interlace block in the y direction */ - static PNG_CONST png_byte png_pass_yinc[7] = {8, 8, 8, 4, 4, 2, 2}; + static const png_byte png_pass_yinc[7] = {8, 8, 8, 4, 4, 2, 2}; #endif png_alloc_size_t buf_size; @@ -2008,16 +2008,16 @@ png_write_finish_row(png_structrp png_ptr) /* Arrays to facilitate easy interlacing - use pass (0 - 6) as index */ /* Start of interlace block */ - static PNG_CONST png_byte png_pass_start[7] = {0, 4, 0, 2, 0, 1, 0}; + static const png_byte png_pass_start[7] = {0, 4, 0, 2, 0, 1, 0}; /* Offset to next interlace block */ - static PNG_CONST png_byte png_pass_inc[7] = {8, 8, 4, 4, 2, 2, 1}; + static const png_byte png_pass_inc[7] = {8, 8, 4, 4, 2, 2, 1}; /* Start of interlace block in the y direction */ - static PNG_CONST png_byte png_pass_ystart[7] = {0, 0, 4, 0, 2, 0, 1}; + static const png_byte png_pass_ystart[7] = {0, 0, 4, 0, 2, 0, 1}; /* Offset to next interlace block in the y direction */ - static PNG_CONST png_byte png_pass_yinc[7] = {8, 8, 8, 4, 4, 2, 2}; + static const png_byte png_pass_yinc[7] = {8, 8, 8, 4, 4, 2, 2}; #endif png_debug(1, "in png_write_finish_row"); @@ -2098,10 +2098,10 @@ png_do_write_interlace(png_row_infop row_info, png_bytep row, int pass) /* Arrays to facilitate easy interlacing - use pass (0 - 6) as index */ /* Start of interlace block */ - static PNG_CONST png_byte png_pass_start[7] = {0, 4, 0, 2, 0, 1, 0}; + static const png_byte png_pass_start[7] = {0, 4, 0, 2, 0, 1, 0}; /* Offset to next interlace block */ - static PNG_CONST png_byte png_pass_inc[7] = {8, 8, 4, 4, 2, 2, 1}; + static const png_byte png_pass_inc[7] = {8, 8, 4, 4, 2, 2, 1}; png_debug(1, "in png_do_write_interlace"); @@ -2276,7 +2276,7 @@ png_write_filtered_row(png_structrp png_ptr, png_bytep filtered_row, #ifdef PNG_WRITE_FILTER_SUPPORTED static size_t /* PRIVATE */ -png_setup_sub_row(png_structrp png_ptr, const png_uint_32 bpp, +png_setup_sub_row(png_structrp png_ptr, png_uint_32 bpp, size_t row_bytes, size_t lmins) { png_bytep rp, dp, lp; @@ -2315,7 +2315,7 @@ png_setup_sub_row(png_structrp png_ptr, const png_uint_32 bpp, } static void /* PRIVATE */ -png_setup_sub_row_only(png_structrp png_ptr, const png_uint_32 bpp, +png_setup_sub_row_only(png_structrp png_ptr, png_uint_32 bpp, size_t row_bytes) { png_bytep rp, dp, lp; @@ -2380,7 +2380,7 @@ png_setup_up_row_only(png_structrp png_ptr, size_t row_bytes) } static size_t /* PRIVATE */ -png_setup_avg_row(png_structrp png_ptr, const png_uint_32 bpp, +png_setup_avg_row(png_structrp png_ptr, png_uint_32 bpp, size_t row_bytes, size_t lmins) { png_bytep rp, dp, pp, lp; @@ -2420,7 +2420,7 @@ png_setup_avg_row(png_structrp png_ptr, const png_uint_32 bpp, return (sum); } static void /* PRIVATE */ -png_setup_avg_row_only(png_structrp png_ptr, const png_uint_32 bpp, +png_setup_avg_row_only(png_structrp png_ptr, png_uint_32 bpp, size_t row_bytes) { png_bytep rp, dp, pp, lp; @@ -2442,7 +2442,7 @@ png_setup_avg_row_only(png_structrp png_ptr, const png_uint_32 bpp, } static size_t /* PRIVATE */ -png_setup_paeth_row(png_structrp png_ptr, const png_uint_32 bpp, +png_setup_paeth_row(png_structrp png_ptr, png_uint_32 bpp, size_t row_bytes, size_t lmins) { png_bytep rp, dp, pp, cp, lp; @@ -2503,7 +2503,7 @@ png_setup_paeth_row(png_structrp png_ptr, const png_uint_32 bpp, return (sum); } static void /* PRIVATE */ -png_setup_paeth_row_only(png_structrp png_ptr, const png_uint_32 bpp, +png_setup_paeth_row_only(png_structrp png_ptr, png_uint_32 bpp, size_t row_bytes) { png_bytep rp, dp, pp, cp, lp; diff --git a/source/libs/libpng/libpng-src/powerpc/filter_vsx_intrinsics.c b/source/libs/libpng/libpng-src/powerpc/filter_vsx_intrinsics.c index 39521cfc8af34ff7791ed53271cbed8699667dac..01cf8800dc47e3540d59e60e3aa57573eae2a065 100644 --- a/source/libs/libpng/libpng-src/powerpc/filter_vsx_intrinsics.c +++ b/source/libs/libpng/libpng-src/powerpc/filter_vsx_intrinsics.c @@ -1,13 +1,14 @@ /* filter_vsx_intrinsics.c - PowerPC optimised filter functions * + * Copyright (c) 2018 Cosmin Truta * Copyright (c) 2017 Glenn Randers-Pehrson * Written by Vadim Barkov, 2017. - * Last changed in libpng 1.6.29 [March 16, 2017] * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer * and license in png.h */ + #include <stdio.h> #include <stdint.h> #include "../pngpriv.h" @@ -173,7 +174,7 @@ static const vector unsigned char VSX_SHORT_TO_CHAR4_3 = {16,16,16,16,16,16,16,1 void png_read_filter_row_sub4_vsx(png_row_infop row_info, png_bytep row, png_const_bytep prev_row) { - const png_byte bpp = 4; + png_byte bpp = 4; vector unsigned char rp_vec; vector unsigned char part_vec; @@ -230,7 +231,7 @@ void png_read_filter_row_sub4_vsx(png_row_infop row_info, png_bytep row, void png_read_filter_row_sub3_vsx(png_row_infop row_info, png_bytep row, png_const_bytep prev_row) { - const png_byte bpp = 3; + png_byte bpp = 3; vector unsigned char rp_vec; vector unsigned char part_vec; @@ -294,7 +295,7 @@ void png_read_filter_row_sub3_vsx(png_row_infop row_info, png_bytep row, void png_read_filter_row_avg4_vsx(png_row_infop row_info, png_bytep row, png_const_bytep prev_row) { - const png_byte bpp = 4; + png_byte bpp = 4; vector unsigned char rp_vec; vector unsigned char pp_vec; @@ -381,7 +382,7 @@ void png_read_filter_row_avg4_vsx(png_row_infop row_info, png_bytep row, void png_read_filter_row_avg3_vsx(png_row_infop row_info, png_bytep row, png_const_bytep prev_row) { - const png_byte bpp = 3; + png_byte bpp = 3; vector unsigned char rp_vec; vector unsigned char pp_vec; @@ -499,7 +500,7 @@ void png_read_filter_row_avg3_vsx(png_row_infop row_info, png_bytep row, void png_read_filter_row_paeth4_vsx(png_row_infop row_info, png_bytep row, png_const_bytep prev_row) { - const png_byte bpp = 4; + png_byte bpp = 4; int a, b, c, pa, pb, pc, p; vector unsigned char rp_vec; @@ -619,7 +620,7 @@ void png_read_filter_row_paeth4_vsx(png_row_infop row_info, png_bytep row, void png_read_filter_row_paeth3_vsx(png_row_infop row_info, png_bytep row, png_const_bytep prev_row) { - const png_byte bpp = 3; + png_byte bpp = 3; int a, b, c, pa, pb, pc, p; vector unsigned char rp_vec; diff --git a/source/libs/libpng/libpng-src/powerpc/powerpc_init.c b/source/libs/libpng/libpng-src/powerpc/powerpc_init.c index 07016177c5fc40a87e040230c64b2ebdb4f11692..54426c558e5540c8108d7e6b6101859b6cbc5061 100644 --- a/source/libs/libpng/libpng-src/powerpc/powerpc_init.c +++ b/source/libs/libpng/libpng-src/powerpc/powerpc_init.c @@ -1,14 +1,15 @@ /* powerpc_init.c - POWERPC optimised filter functions * + * Copyright (c) 2018 Cosmin Truta * Copyright (c) 2017 Glenn Randers-Pehrson * Written by Vadim Barkov, 2017. - * Last changed in libpng 1.6.29 [March 16, 2017] * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer * and license in png.h */ + /* Below, after checking __linux__, various non-C90 POSIX 1003.1 functions are * called. */ diff --git a/source/libs/libpng/libpng-src/projects/vstudio/README.txt b/source/libs/libpng/libpng-src/projects/vstudio/README.txt index b8b4a3a8e0e3366858a825215bd115ef4f9f874a..e28ec9549addd7d603fbc9845ac8e70d2e1e580c 100644 --- a/source/libs/libpng/libpng-src/projects/vstudio/README.txt +++ b/source/libs/libpng/libpng-src/projects/vstudio/README.txt @@ -1,76 +1,77 @@ +Instructions for building libpng using Microsoft Visual Studio +============================================================== -VisualStudio instructions - -libpng version 1.6.35 - July 15, 2018 - +Copyright (c) 2018 Cosmin Truta Copyright (c) 2010,2013,2015 Glenn Randers-Pehrson This code is released under the libpng license. -For conditions of distribution and use, see the disclaimer -and license in png.h +For conditions of distribution and use, see the disclaimer and license +in png.h -This directory contains support for building libpng under MicroSoft -VisualStudio 2010. It may also work under later versions of VisualStudio. -You should be familiar with VisualStudio before using this directory. +This directory contains a solution for building libpng under Microsoft +Visual Studio 2010. It may also work under later versions of Visual +Studio. You should be familiar with Visual Studio before using this +solution. Initial preparations -==================== -You must enter some information in zlib.props before attempting to build -with this 'solution'. Please read and edit zlib.props first. You will -probably not be familiar with the contents of zlib.props - do not worry, -it is mostly harmless. +-------------------- +You must enter some information in zlib.props before attempting to +build with this 'solution'. Please read and edit zlib.props first. +You will probably not be familiar with the contents of zlib.props - +do not worry, it is mostly harmless. This is all you need to do to build the 'release' and 'release library' configurations. Debugging -========= +--------- The release configurations default to /Ox optimization. Full debugging -information is produced (in the .pdb), but if you encounter a problem the -optimization may make it difficult to debug. Simply rebuild with a lower -optimization level (e.g. /Od.) +information is produced (in the .pdb), but if you encounter a problem +the optimization may make it difficult to debug. Simply rebuild with a +lower optimization level (e.g. /Od.) Linking your application -======================== -Normally you should link against the 'release' configuration. This builds a -DLL for libpng with the default runtime options used by Visual Studio 2010. -In particular the runtime library is the "MultiThreaded DLL" version. -If you use Visual Studio defaults to build your application you will have no -problems. - -If you don't use the Visual Studio defaults your application must still be -built with the default runtime option (/MD). If, for some reason, it is not -then your application will crash inside libpng16.dll as soon as libpng -tries to read from a file handle you pass in. - -If you do not want to use the DLL, for example for a very small application, -the 'release library' configuration may be more appropriate. This is built -with a non-standard runtime library - the "MultiThreaded" version. When you -build your application it must be compiled with this option (/MT), otherwise -it will not build (if you are lucky) or crash (if you are not.) See the -WARNING file that is distributed along with this readme.txt. +------------------------ +Normally you should link against the 'release' configuration. This +builds a DLL for libpng with the default runtime options used by Visual +Studio. In particular the runtime library is the "MultiThreaded DLL" +version. If you use Visual Studio defaults to build your application, +you should have no problems. + +If you don't use the Visual Studio defaults your application must still +be built with the default runtime option (/MD). If, for some reason, +it is not then your application will crash inside libpng16.dll as soon +as libpng tries to read from a file handle you pass in. + +If you do not want to use the DLL, and prefer static linking instead, +you may choose the 'release library' configuration. This is built with +a non-standard runtime library - the "MultiThreaded" version. When you +build your application, it must be compiled with this option (/MT), +otherwise it will not build (if you are lucky) or it will crash (if you +are not.) See the WARNING file that is distributed with this README. Stop reading here -================= +----------------- You have enough information to build a working application. Debug versions have limited support -=================================== -This solution includes limited support for debug versions of libpng. You -do not need these unless your own solution itself uses debug builds (it is -far more effective to debug on the release builds, there is no point building -a special debug build unless you have heap corruption problems that you can't -track down.) +----------------------------------- +This solution includes limited support for debug versions of libpng. +You do not need these unless your own solution itself uses debug builds +(it is far more effective to debug on the release builds, there is no +point building a special debug build unless you have heap corruption +problems that you can't track down.) -The debug build of libpng is minimally supported. Support for debug builds of -zlib is also minimal. You really don't want to do this. +The debug build of libpng is minimally supported. Support for debug +builds of zlib is also minimal. Please keep this in mind, if you want +to use it. WARNING -======= -Libpng 1.6.x does not use the default run-time library when building static -library builds of libpng; instead of the shared DLL runtime it uses a static -runtime. If you need to change this make sure to change the setting on all the -relevant projects: +------- +Libpng 1.6.x does not use the default run-time library when building +static library builds of libpng; instead of the shared DLL runtime, it +uses a static runtime. If you need to change this, make sure to change +the setting on all the relevant projects: libpng zlib @@ -82,16 +83,5 @@ The runtime library settings for each build are as follows: DLL /MD /MDd Library /MT /MTd -NOTICE that libpng 1.5.x erroneously used /MD for Debug DLL builds; if you used -the debug builds in your app and you changed your app to use /MD you will need -to change it back to /MDd for libpng 1.6.0 and later. - -The Visual Studio 2010 defaults for a Win32 DLL or Static Library project are -as follows: - - Release Debug - DLL /MD /MDd - Static Library /MD /MDd - -Also, be sure to build libpng, zlib, and your project all for the same +Also, be sure to build libpng, zlib, and your project, all for the same platform (e.g., 32-bit or 64-bit). diff --git a/source/libs/libpng/libpng-src/projects/vstudio/zlib.props b/source/libs/libpng/libpng-src/projects/vstudio/zlib.props index 5bf6e28fb69275fe9a3652015dfb647bdfa7b42e..87862796614be97f985ada3b02f2d00f8b9fdcd5 100644 --- a/source/libs/libpng/libpng-src/projects/vstudio/zlib.props +++ b/source/libs/libpng/libpng-src/projects/vstudio/zlib.props @@ -2,16 +2,15 @@ <!-- * zlib.props - location of zlib source * - * libpng version 1.6.35 - July 15, 2018 - * + * Copyright (c) 2018 Cosmin Truta * Copyright (c) 1998-2011 Glenn Randers-Pehrson * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer * and license in png.h - * You must edit this file to record the location of the zlib - * source code. + * You may need to edit this file in order to update the location + * of the zlib source code. --> <Project ToolsVersion="4.0" @@ -32,7 +31,7 @@ versions do not match. The zlib version used in this build is recorded below: --> - <ZLibSrcDir>..\..\..\..\zlib-1.2.8</ZLibSrcDir> + <ZLibSrcDir>..\..\..\..\zlib</ZLibSrcDir> <!-- The following line allows compilation for an ARM target with Visual Studio 2012. Notice that this is not supported by the Visual Studio diff --git a/source/libs/libpng/libpng-src/scripts/README.txt b/source/libs/libpng/libpng-src/scripts/README.txt index 4faf115f1f03aa43d6a02e953d99af0bbd8aadc4..3d911ef2f6d8d69b2d58d78ba4d069a3ca513318 100644 --- a/source/libs/libpng/libpng-src/scripts/README.txt +++ b/source/libs/libpng/libpng-src/scripts/README.txt @@ -1,24 +1,20 @@ -Makefiles for libpng version 1.6.35 - July 15, 2018 +Makefiles for libpng -pnglibconf.h.prebuilt => Stores configuration settings +pnglibconf.h.prebuilt => Configuration settings makefile.linux => Linux/ELF makefile - (gcc, creates libpng16.so.16.1.6.35) + (gcc, creates shared libpng16.so.16.1.6.*) makefile.linux-opt=> Linux/ELF makefile with hardware optimizations on - (gcc, creates libpng16.so.16.1.6.35) + (gcc, creates shared libpng16.so.16.1.6.*) makefile.gcc => Generic makefile (gcc, creates static libpng.a) - makefile.knr => Archaic UNIX Makefile that converts files with - ansi2knr (Requires ansi2knr.c from - ftp://ftp.cs.wisc.edu/ghost) makefile.acorn => Acorn makefile makefile.aix => AIX/gcc makefile makefile.amiga => Amiga makefile makefile.atari => Atari makefile makefile.bc32 => 32-bit Borland C++ (all modules compiled in C mode) - makefile.beos => beos makefile - makefile.bor => Borland makefile (uses bcc) + makefile.beos => BeOS makefile makefile.cegcc => minge32ce for Windows CE makefile - makefile.darwin => Darwin makefile, can use on MacosX + makefile.darwin => Darwin makefile, for macOS (formerly Mac OS X) makefile.dec => DEC Alpha UNIX makefile makefile.dj2 => DJGPP 2 makefile makefile.freebsd => FreeBSD makefile @@ -29,23 +25,20 @@ pnglibconf.h.prebuilt => Stores configuration settings makefile.ibmc => IBM C/C++ version 3.x for Win32 and OS/2 (static) makefile.intel => Intel C/C++ version 4.0 and later makefile.mips => MIPS makefile - makefile.msc => Microsoft C makefile - makefile.netbsd => NetBSD/cc makefile, makes libpng.so. + makefile.netbsd => NetBSD/cc makefile, makes shared libpng.so makefile.openbsd => OpenBSD makefile - makefile.os2 => OS/2 Makefile (gcc and emx, requires libpng.def) - makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc - makefile.sggcc => Silicon Graphics (gcc, - creates libpng16.so.16.1.6.35) + makefile.sco => SCO OSr5 ELF and Unixware 7 with Native cc + makefile.sggcc => Silicon Graphics makefile + (gcc, creates shared libpng16.so.16.1.6.*) makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib) - makefile.solaris => Solaris 2.X makefile (gcc, - creates libpng16.so.16.1.6.35) - makefile.so9 => Solaris 9 makefile (gcc, - creates libpng16.so.16.1.6.35) + makefile.solaris => Solaris 2.X makefile + (gcc, creates shared libpng16.so.16.1.6.*) + makefile.so9 => Solaris 9 makefile + (gcc, creates shared libpng16.so.16.1.6.*) makefile.std => Generic UNIX makefile (cc, creates static libpng.a) makefile.sunos => Sun makefile makefile.32sunu => Sun Ultra 32-bit makefile makefile.64sunu => Sun Ultra 64-bit makefile - makefile.tc3 => Turbo C 3.0 makefile makefile.vcwin32 => makefile for Microsoft Visual C++ 4.0 and later makevms.com => VMS build script smakefile.ppc => AMIGA smakefile for SAS C V6.58/7.00 PPC compiler @@ -57,20 +50,20 @@ Other supporting scripts: libpng-config-body.in => used by several makefiles to create libpng-config libpng-config-head.in => used by several makefiles to create libpng-config libpng.pc.in => Used by several makefiles to create libpng.pc - pngwin.rc => Used by the visualc71 project. + pngwin.rc => Used by the visualc71 project pngwin.def => Used by makefile.os2 pngwin.dfn => Used to maintain pngwin.def SCOPTIONS.ppc => Used with smakefile.ppc - checksym.awk => Used for maintaining pnglibconf.h - def.dfn => Used for maintaining pnglibconf.h - options.awk => Used for maintaining pnglibconf.h - pnglibconf.dfa => Used for maintaining pnglibconf.h - pnglibconf.mak => Used for maintaining pnglibconf.h - sym.dfn => Used for symbol versioning - symbols.def => Used for symbol versioning - symbols.dfn => Used for symbol versioning - vers.dfn => Used for symbol versioning + checksym.awk => Used for maintaining pnglibconf.h + def.dfn => Used for maintaining pnglibconf.h + options.awk => Used for maintaining pnglibconf.h + pnglibconf.dfa => Used for maintaining pnglibconf.h + pnglibconf.mak => Used for maintaining pnglibconf.h + sym.dfn => Used for symbol versioning + symbols.def => Used for symbol versioning + symbols.dfn => Used for symbol versioning + vers.dfn => Used for symbol versioning libtool.m4 => Used by autoconf tools ltoptions.m4 => Used by autoconf tools diff --git a/source/libs/libpng/libpng-src/scripts/def.c b/source/libs/libpng/libpng-src/scripts/def.c deleted file mode 100644 index 5a159052c859e07e681b54bcda629f46ebf1e0a8..0000000000000000000000000000000000000000 --- a/source/libs/libpng/libpng-src/scripts/def.c +++ /dev/null @@ -1,29 +0,0 @@ -/* def.c - define format of libpng.def - * - * Last changed in libpng version 1.6.16 [December 22, 2014] - * Copyright (c) 2011-2014 Glenn Randers-Pehrson - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - */ - -/* Write the export file header: */ -PNG_DFN ";--------------------------------------------------------------" -PNG_DFN "; LIBPNG module definition file for OS/2" -PNG_DFN ";--------------------------------------------------------------" -PNG_DFN "" -PNG_DFN "; If you give the library an explicit name one or other files" -PNG_DFN "; may need modifying to support the new name on one or more" -PNG_DFN "; systems." -PNG_DFN "LIBRARY" -PNG_DFN "OS2 DESCRIPTION "PNG image compression library"" -PNG_DFN "OS2 CODE PRELOAD MOVEABLE DISCARDABLE" -PNG_DFN "" -PNG_DFN "EXPORTS" -PNG_DFN ";Version 1.6.35" - -#define PNG_EXPORTA(ordinal, type, name, args, attributes)\ - PNG_DFN "@" SYMBOL_PREFIX "@@" name "@" - -#include "../png.h" diff --git a/source/libs/libpng/libpng-src/scripts/descrip.mms b/source/libs/libpng/libpng-src/scripts/descrip.mms index 463c4251e7e9634bdebc7012c624834d13621237..a3aefbf4c81b0c780f529a5a2f0b251e57867b4f 100644 --- a/source/libs/libpng/libpng-src/scripts/descrip.mms +++ b/source/libs/libpng/libpng-src/scripts/descrip.mms @@ -16,10 +16,10 @@ OBJS = png.obj, pngset.obj, pngget.obj, pngrutil.obj, pngtrans.obj,\ CFLAGS= $(C_DEB) $(CC_DEFS) $(PREF) all : pngtest.exe libpng.olb - @ write sys$output " pngtest available" + @ write sys$output " pngtest available" libpng.olb : libpng.olb($(OBJS)) - @ write sys$output " Libpng available" + @ write sys$output " libpng available" pngtest.exe : pngtest.obj libpng.olb diff --git a/source/libs/libpng/libpng-src/scripts/libpng-config-head.in b/source/libs/libpng/libpng-src/scripts/libpng-config-head.in index c601ccdf2ccceb01a31033a544b50c2877268503..985271af44e3d5f8f7fb225b06e6ceb5894ec16e 100644 --- a/source/libs/libpng/libpng-src/scripts/libpng-config-head.in +++ b/source/libs/libpng/libpng-src/scripts/libpng-config-head.in @@ -11,7 +11,7 @@ # Modeled after libxml-config. -version=1.6.35 +version=1.6.36 prefix="" libdir="" libs="" diff --git a/source/libs/libpng/libpng-src/scripts/libpng.pc.in b/source/libs/libpng/libpng-src/scripts/libpng.pc.in index 985db64cefd84ea21753003236ba35834e64517b..2f749239712b594b53970dc7b59a4e60aea51ffe 100644 --- a/source/libs/libpng/libpng-src/scripts/libpng.pc.in +++ b/source/libs/libpng/libpng-src/scripts/libpng.pc.in @@ -5,6 +5,6 @@ includedir=@includedir@/libpng16 Name: libpng Description: Loads and saves PNG files -Version: 1.6.35 +Version: 1.6.36 Libs: -L${libdir} -lpng16 Cflags: -I${includedir} diff --git a/source/libs/libpng/libpng-src/scripts/makefile.32sunu b/source/libs/libpng/libpng-src/scripts/makefile.32sunu index 7d4b7c53a07e22228b76dd756f0387538e94375d..c849ecd277acbc6e13e6f4cca0f28322b49df44b 100644 --- a/source/libs/libpng/libpng-src/scripts/makefile.32sunu +++ b/source/libs/libpng/libpng-src/scripts/makefile.32sunu @@ -219,7 +219,7 @@ clean: libpng-config $(LIBSO) $(LIBSOMAJ)* \ libpng.pc -DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO +DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO writelock: chmod a-w *.[ch35] $(DOCS) scripts/* diff --git a/source/libs/libpng/libpng-src/scripts/makefile.64sunu b/source/libs/libpng/libpng-src/scripts/makefile.64sunu index 341fce969b9a3b85ef2ae89890502cb45d1063d8..8880fa9b9218855ff0698ac54423ce7200e09405 100644 --- a/source/libs/libpng/libpng-src/scripts/makefile.64sunu +++ b/source/libs/libpng/libpng-src/scripts/makefile.64sunu @@ -219,7 +219,7 @@ clean: libpng-config $(LIBSO) $(LIBSOMAJ)* \ libpng.pc -DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO +DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO writelock: chmod a-w *.[ch35] $(DOCS) scripts/* diff --git a/source/libs/libpng/libpng-src/scripts/makefile.bor b/source/libs/libpng/libpng-src/scripts/makefile.bor deleted file mode 100644 index 6693772dbe6738703ee75fafc0fdd830a5ae63e6..0000000000000000000000000000000000000000 --- a/source/libs/libpng/libpng-src/scripts/makefile.bor +++ /dev/null @@ -1,170 +0,0 @@ -# Makefile for libpng -# 16-bit Borland C++ (Note: All modules are compiled in C mode) -# To build the library, do: -# "make -fmakefile.bor -DMODEL=c" -# or: "make -fmakefile.bor -DMODEL=l" -# -# ------------ Borland C++ ------------ - -### Absolutely necessary for this makefile to work -.AUTODEPEND - -## Where zlib.h, zconf.h and zlib_MODEL.lib are -ZLIB_DIR=..\zlib - -## Compiler, linker, librarian and other tools -CC=bcc -LD=bcc -LIB=tlib -CP=copy - -!ifndef MODEL -MODEL=l -!endif - -MODEL_ARG=-m$(MODEL) - -#TARGET_CPU=3 -# 2 = 286, 3 = 386, etc. -!ifndef TARGET_CPU -TARGET_CPU=2 -!endif - -# Use this if you don't want Borland's fancy exception handling -# (for Borland C++ 4.0 or later) -#NOEHLIB=noeh$(MODEL).lib - -!ifdef DEBUG -CDEBUG=-v -LDEBUG=-v -!else -CDEBUG= -LDEBUG= -!endif - -# STACKOFLOW=1 -!ifdef STACKOFLOW -CDEBUG=$(CDEBUG) -N -LDEBUG=$(LDEBUG) -N -!endif - -# -X- turn on dependency generation in the object file -# -w set all warnings on -# -O2 optimize for speed -# -Z global optimization -CPPFLAGS=-I$(ZLIB_DIR) -CFLAGS=-O2 -Z -X- -w -$(TARGET_CPU) $(MODEL_ARG) $(CDEBUG) - -# -M generate map file -LDFLAGS=-M -L$(ZLIB_DIR) $(MODEL_ARG) $(LDEBUG) - -# Pre-built configuration -# See scripts\pnglibconf.mak for more options -!ifndef PNGLIBCONF_H_PREBUILT -PNGLIBCONF_H_PREBUILT = scripts\pnglibconf.h.prebuilt -!endif - -## Variables - -OBJS = \ - png.obj \ - pngerror.obj \ - pngget.obj \ - pngmem.obj \ - pngpread.obj \ - pngread.obj \ - pngrio.obj \ - pngrtran.obj \ - pngrutil.obj \ - pngset.obj \ - pngtrans.obj \ - pngwio.obj \ - pngwrite.obj \ - pngwtran.obj \ - pngwutil.obj - -LIBOBJS = \ - +png.obj \ - +pngerror.obj \ - +pngget.obj \ - +pngmem.obj \ - +pngpread.obj \ - +pngread.obj \ - +pngrio.obj \ - +pngrtran.obj \ - +pngrutil.obj \ - +pngset.obj \ - +pngtrans.obj \ - +pngwio.obj \ - +pngwrite.obj \ - +pngwtran.obj \ - +pngwutil.obj - -LIBNAME=libpng$(MODEL).lib - -## Implicit rules - -# Braces let make "batch" calls to the compiler, -# 2 calls instead of 12; space is important. -.c.obj: - $(CC) $(CPPFLAGS) $(CFLAGS) -c {$*.c } - -.c.exe: - $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $*.c \ - $(LIBNAME) zlib_$(MODEL).lib $(NOEHLIB) - -## Major targets - -all: libpng pngtest - -# try !include scripts\pnglibconf.mak for more options -pnglibconf.h: $(PNGLIBCONF_H_PREBUILT) - $(CP) $(PNGLIBCONF_H_PREBUILT) $@ - -libpng: $(LIBNAME) - -pngtest: pngtest$(MODEL).exe - -test: pngtest$(MODEL).exe - pngtest$(MODEL) - -## Minor Targets - -png.obj: png.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngerror.obj: pngerror.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngget.obj: pngget.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngmem.obj: pngmem.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngpread.obj: pngpread.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngread.obj: pngread.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngrio.obj: pngrio.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngrtran.obj: pngrtran.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngrutil.obj: pngrutil.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngset.obj: pngset.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngtrans.obj: pngtrans.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngwio.obj: pngwio.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngwrite.obj: pngwrite.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngwtran.obj: pngwtran.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngwutil.obj: pngwutil.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - -$(LIBNAME): $(OBJS) - -del $(LIBNAME) - $(LIB) $(LIBNAME) @&&| -$(LIBOBJS), libpng$(MODEL) -| - -pngtest$(MODEL).obj: pngtest.c png.h pngconf.h pnglibconf.h - $(CC) $(CFLAGS) -opngtest$(MODEL) -c pngtest.c - -pngtest$(MODEL).exe: pngtest$(MODEL).obj - $(LD) $(LDFLAGS) pngtest$(MODEL).obj $(LIBNAME) zlib_$(MODEL).lib $(NOEHLIB) - -# Clean up anything else you want -clean: - -del pnglibconf.h - -del *.obj - -del *.exe - -del *.lib - -del *.lst - -del *.map - -# End of makefile for libpng diff --git a/source/libs/libpng/libpng-src/scripts/makefile.cegcc b/source/libs/libpng/libpng-src/scripts/makefile.cegcc index 31d2078fd408622f76edc41e030393bb54092961..60fb113cf5d32e4370f0d77ca40f574cca58145f 100644 --- a/source/libs/libpng/libpng-src/scripts/makefile.cegcc +++ b/source/libs/libpng/libpng-src/scripts/makefile.cegcc @@ -23,7 +23,7 @@ VERMAJ = 1 VERMIN = 6 -VERMIC = 35 +VERMIC = 36 VER = $(VERMAJ).$(VERMIN).$(VERMIC) NAME = libpng PACKAGE = $(NAME)-$(VER) diff --git a/source/libs/libpng/libpng-src/scripts/makefile.darwin b/source/libs/libpng/libpng-src/scripts/makefile.darwin index be3f92c54b4406cab6f707231ae92c0f56eca374..33c27cc1f03b61f3493e43c137d256258e298fa0 100644 --- a/source/libs/libpng/libpng-src/scripts/makefile.darwin +++ b/source/libs/libpng/libpng-src/scripts/makefile.darwin @@ -200,7 +200,7 @@ clean: $(RM_F) *.o libpng.a pngtest pngout.png libpng-config \ libpng.pc $(LIBNAME).*dylib pngtesti pnglibconf.h -DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO +DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO writelock: chmod a-w *.[ch35] $(DOCS) scripts/* diff --git a/source/libs/libpng/libpng-src/scripts/makefile.freebsd b/source/libs/libpng/libpng-src/scripts/makefile.freebsd index cad1a5aa873c66ffbd9645ba81c854f002153f2e..5fec61e351baf6be1d3ea54b364de6679a1bc5d4 100644 --- a/source/libs/libpng/libpng-src/scripts/makefile.freebsd +++ b/source/libs/libpng/libpng-src/scripts/makefile.freebsd @@ -62,7 +62,7 @@ test: pngtest pnglibconf.h: $(PNGLIBCONF_H_PREBUILT) cp $(PNGLIBCONF_H_PREBUILT) $@ -DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO +DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO writelock: chmod a-w *.[ch35] $(DOCS) scripts/* diff --git a/source/libs/libpng/libpng-src/scripts/makefile.hp64 b/source/libs/libpng/libpng-src/scripts/makefile.hp64 index 5948be8ecf243b35b565d22b8309c75b36c8d1f9..4421e787d44f0baeb364eac5f841bf82637a344c 100644 --- a/source/libs/libpng/libpng-src/scripts/makefile.hp64 +++ b/source/libs/libpng/libpng-src/scripts/makefile.hp64 @@ -1,7 +1,7 @@ # makefile for libpng, HPUX (10.20 and 11.00) using the ANSI/C product. # Copyright (C) 1999-2002, 2006, 2009, 2010-2014 Glenn Randers-Pehrson # Copyright (C) 1995 Guy Eric Schalnat, Group 42 -# contributed by Jim Rice and updated by Chris Schleicher, Hewlett Packard +# Contributed by Jim Rice and updated by Chris Schleicher, Hewlett Packard # # This code is released under the libpng license. # For conditions of distribution and use, see the disclaimer @@ -206,7 +206,7 @@ clean: libpng-config $(LIBSO) $(LIBSOMAJ)* \ libpng.pc pnglibconf.h -DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO +DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO writelock: chmod a-w *.[ch35] $(DOCS) scripts/* diff --git a/source/libs/libpng/libpng-src/scripts/makefile.hpgcc b/source/libs/libpng/libpng-src/scripts/makefile.hpgcc index 5c8791b13372d8eb518eecba813b4f0802e9f23a..efef1f3fbbdafa5d083f66ec821528ce4ea14b9c 100644 --- a/source/libs/libpng/libpng-src/scripts/makefile.hpgcc +++ b/source/libs/libpng/libpng-src/scripts/makefile.hpgcc @@ -209,7 +209,7 @@ clean: libpng-config $(LIBSO) $(LIBSOMAJ)* \ libpng.pc pnglibconf.h -DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO +DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO writelock: chmod a-w *.[ch35] $(DOCS) scripts/* diff --git a/source/libs/libpng/libpng-src/scripts/makefile.hpux b/source/libs/libpng/libpng-src/scripts/makefile.hpux index b07612dc7dec0e0cecbfeb5550d79114d289f0ae..27b312a383b24c7703d2c8f4865a3c86ec8e1b44 100644 --- a/source/libs/libpng/libpng-src/scripts/makefile.hpux +++ b/source/libs/libpng/libpng-src/scripts/makefile.hpux @@ -1,7 +1,7 @@ # makefile for libpng, HPUX (10.20 and 11.00) using the ANSI/C product. # Copyright (C) 1999-2002, 2006, 2010-2014 Glenn Randers-Pehrson # Copyright (C) 1995 Guy Eric Schalnat, Group 42 -# contributed by Jim Rice and updated by Chris Schleicher, Hewlett Packard +# Contributed by Jim Rice and updated by Chris Schleicher, Hewlett Packard # # This code is released under the libpng license. # For conditions of distribution and use, see the disclaimer @@ -204,7 +204,7 @@ clean: libpng-config $(LIBSO) $(LIBSOMAJ)* \ libpng.pc pnglibconf.h -DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO +DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO writelock: chmod a-w *.[ch35] $(DOCS) scripts/* diff --git a/source/libs/libpng/libpng-src/scripts/makefile.knr b/source/libs/libpng/libpng-src/scripts/makefile.knr deleted file mode 100644 index d8de064c4df9838e5a5532206abf65e1f1b1b540..0000000000000000000000000000000000000000 --- a/source/libs/libpng/libpng-src/scripts/makefile.knr +++ /dev/null @@ -1,116 +0,0 @@ -# makefile for libpng -# Copyright (C) 2002, 2006, 2009, 2014 Glenn Randers-Pehrson -# Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc. -# -# This code is released under the libpng license. -# For conditions of distribution and use, see the disclaimer -# and license in png.h -# -# This makefile requires the file ansi2knr.c, which you can get -# from the Ghostscript ftp site at ftp://ftp.cs.wisc.edu/ghost/ -# If you have libjpeg, you probably already have ansi2knr.c in the jpeg -# source distribution. - -# where make install puts libpng.a and png.h -prefix=/usr/local -INCPATH=$(prefix)/include -LIBPATH=$(prefix)/lib - -# override DESTDIR= on the make install command line to easily support -# installing into a temporary location. Example: -# -# make install DESTDIR=/tmp/build/libpng -# -# If you're going to install into a temporary location -# via DESTDIR, $(DESTDIR)$(prefix) must already exist before -# you execute make install. -DESTDIR= - -CC = cc -CPPFLAGS = -I../zlib -CFLAGS = -O -LDFLAGS = -L. -L../zlib/ -lpng -lz -lm -# flags for ansi2knr -ANSI2KNRFLAGS= - -RANLIB = ranlib -#RANLIB = echo - -CP = cp -RM_F = rm -f - -# Pre-built configuration -# See scripts/pnglibconf.mak for more options -PNGLIBCONF_H_PREBUILT = scripts/pnglibconf.h.prebuilt - -OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \ - pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \ - pngwtran.o pngmem.o pngerror.o pngpread.o - -all: ansi2knr libpng.a pngtest - -pnglibconf.h: $(PNGLIBCONF_H_PREBUILT) - $(CP) $(PNGLIBCONF_H_PREBUILT) $@ - -# general rule to allow ansi2knr to work -.c.o: - ./ansi2knr $*.c T$*.c - $(CC) $(CPPFLAGS) $(CFLAGS) -c T$*.c - rm -f T$*.c $*.o - mv T$*.o $*.o - -ansi2knr: ansi2knr.c - $(CC) $(CPPFLAGS) $(CFLAGS) $(ANSI2KNRFLAGS) -o ansi2knr ansi2knr.c - -libpng.a: ansi2knr $(OBJS) - ar rc $@ $(OBJS) - $(RANLIB) $@ - -pngtest: pngtest.o libpng.a - $(CC) -o pngtest $(CFLAGS) pngtest.o $(LDFLAGS) - -test: pngtest - ./pngtest - -install: libpng.a png.h pngconf.h pnglibconf.h - -@mkdir $(DESTDIR)$(INCPATH) - -@mkdir $(DESTDIR)$(INCPATH)/libpng - -@mkdir $(DESTDIR)$(LIBPATH) - -@rm -f $(DESTDIR)$(INCPATH)/png.h - -@rm -f $(DESTDIR)$(INCPATH)/pngconf.h - cp png.h $(DESTDIR)$(INCPATH)/libpng - cp pngconf.h $(DESTDIR)$(INCPATH)/libpng - cp pnglibconf.h $(DESTDIR)$(INCPATH)/libpng - chmod 644 $(DESTDIR)$(INCPATH)/libpng/png.h - chmod 644 $(DESTDIR)$(INCPATH)/libpng/pngconf.h - chmod 644 $(DESTDIR)$(INCPATH)/libpng/pnglibconf.h - (cd $(DESTDIR)$(INCPATH); ln -f -s libpng/* .) - cp libpng.a $(DESTDIR)$(LIBPATH) - chmod 644 $(DESTDIR)$(LIBPATH)/libpng.a - -clean: - $(RM_F) *.o libpng.a pngtest pngout.png ansi2knr pnglibconf.h - -DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO -writelock: - chmod a-w *.[ch35] $(DOCS) scripts/* - -# DO NOT DELETE THIS LINE -- make depend depends on it. - -png.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngerror.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngrio.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngwio.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngmem.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngset.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngget.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngread.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngpread.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngrtran.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngrutil.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngtrans.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngwrite.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngwtran.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngwutil.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - -pngtest.o: png.h pngconf.h pnglibconf.h diff --git a/source/libs/libpng/libpng-src/scripts/makefile.linux b/source/libs/libpng/libpng-src/scripts/makefile.linux index 55689125219ee333dd84274190b8bf5f17b597d4..32eb859b025facbfb0f437e7865b6ef886512e80 100644 --- a/source/libs/libpng/libpng-src/scripts/makefile.linux +++ b/source/libs/libpng/libpng-src/scripts/makefile.linux @@ -10,7 +10,7 @@ # Library name: LIBNAME = libpng16 PNGMAJ = 16 -RELEASE = 35 +RELEASE = 36 # Shared library names: LIBSO=$(LIBNAME).so @@ -50,8 +50,7 @@ WARNMORE=-Wwrite-strings -Wpointer-arith -Wshadow \ # for pgcc version 2.95.1, -O3 is buggy; don't use it. CPPFLAGS=-I$(ZLIBINC) # -DPNG_DEBUG=5 -CFLAGS= -W -Wall -O3 -funroll-loops \ - $(ALIGN) # $(WARNMORE) -g -DPNG_DEBUG=5 +CFLAGS=-W -Wall -O3 -funroll-loops $(ALIGN) # $(WARNMORE) -g LDFLAGS=-L. -Wl,-rpath,. -L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) -lpng16 -lz -lm LDFLAGS_A=-L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) libpng.a -lz -lm @@ -222,7 +221,7 @@ clean: $(LIBSO) $(LIBSOMAJ)* pngtest-static pngtesti \ libpng.pc pnglibconf.h -DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO +DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO writelock: chmod a-w *.[ch35] $(DOCS) scripts/* diff --git a/source/libs/libpng/libpng-src/scripts/makefile.linux-opt b/source/libs/libpng/libpng-src/scripts/makefile.linux-opt index d4a5e3b4e3c4284a8779b87c21beda9cb9634d2e..76f6d1afc16419acf6dc27bc879274df38484a98 100644 --- a/source/libs/libpng/libpng-src/scripts/makefile.linux-opt +++ b/source/libs/libpng/libpng-src/scripts/makefile.linux-opt @@ -10,7 +10,7 @@ # Library name: LIBNAME = libpng16 PNGMAJ = 16 -RELEASE = 35 +RELEASE = 36 # Shared library names: LIBSO=$(LIBNAME).so @@ -232,7 +232,7 @@ clean: $(LIBSO) $(LIBSOMAJ)* pngtest-static pngtesti \ libpng.pc pnglibconf.h -DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO +DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO writelock: chmod a-w *.[ch35] $(DOCS) scripts/* diff --git a/source/libs/libpng/libpng-src/scripts/makefile.mips b/source/libs/libpng/libpng-src/scripts/makefile.mips index 5633608c8b8f2305616d47daa4956373fa91d9b6..0357ae81c16a17217463f3af64530f31e29027e4 100644 --- a/source/libs/libpng/libpng-src/scripts/makefile.mips +++ b/source/libs/libpng/libpng-src/scripts/makefile.mips @@ -78,7 +78,7 @@ install: libpng.a clean: rm -f *.o libpng.a pngtest pngout.png pnglibconf.h -DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO +DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO writelock: chmod a-w *.[ch35] $(DOCS) scripts/* diff --git a/source/libs/libpng/libpng-src/scripts/makefile.msc b/source/libs/libpng/libpng-src/scripts/makefile.msc deleted file mode 100644 index 539d62e94ee7b20c83d97459ea6a2dbea9354701..0000000000000000000000000000000000000000 --- a/source/libs/libpng/libpng-src/scripts/makefile.msc +++ /dev/null @@ -1,100 +0,0 @@ -# makefile for libpng -# Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc. -# Copyright (C) 2006, 2009, 2014 Glenn Randers-Pehrson -# -# This code is released under the libpng license. -# For conditions of distribution and use, see the disclaimer -# and license in png.h -# -# Assumes that zlib.lib, zconf.h, and zlib.h have been copied to ..\zlib - -# -------- Microsoft C 5.1 and later, does not use assembler code -------- -MODEL=L -CPPFLAGS=-I..\zlib -CFLAGS=-Oait -Gs -nologo -W3 -A$(MODEL) -#-Ox generates bad code with MSC 5.1 -CC=cl -LD=link -LDFLAGS=/e/st:0x1500/noe -CP=copy -O=.obj - -# Pre-built configuration -# See scripts\pnglibconf.mak for more options -PNGLIBCONF_H_PREBUILT = scripts\pnglibconf.h.prebuilt - -#uncomment next to put error messages in a file -ERRFILE= >> pngerrs - -# variables -OBJS1 = png$(O) pngset$(O) pngget$(O) pngrutil$(O) pngtrans$(O) pngwutil$(O) -OBJS2 = pngmem$(O) pngpread$(O) pngread$(O) pngerror$(O) pngwrite$(O) -OBJS3 = pngrtran$(O) pngwtran$(O) pngrio$(O) pngwio$(O) - -all: libpng.lib - -pnglibconf.h: $(PNGLIBCONF_H_PREBUILT) - $(CP) $(PNGLIBCONF_H_PREBUILT) $@ - -png$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) - -pngset$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) - -pngget$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) - -pngread$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) - -pngpread$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) - -pngrtran$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) - -pngrutil$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) - -pngerror$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) - -pngmem$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) - -pngrio$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) - -pngwio$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) - -pngtrans$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) - -pngwrite$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) - -pngwtran$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) - -pngwutil$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) - -libpng.lib: $(OBJS1) $(OBJS2) $(OBJS3) - del libpng.lib - lib libpng $(OBJS1); - lib libpng $(OBJS2); - lib libpng $(OBJS3); - -pngtest$(O): png.h pngconf.h pnglibconf.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) - -pngtest.exe: pngtest.obj libpng.lib - $(LD) $(LDFLAGS) pngtest.obj,,,libpng.lib ..\zlib\zlib.lib ; - -test: pngtest.exe - pngtest - -# End of makefile for libpng - diff --git a/source/libs/libpng/libpng-src/scripts/makefile.msys b/source/libs/libpng/libpng-src/scripts/makefile.msys index 209ad4f0fd4b37ab610b7df465e84920da7dd78b..2af7a6aeb8ab4a611cf6432f6bd2e67cc922006c 100644 --- a/source/libs/libpng/libpng-src/scripts/makefile.msys +++ b/source/libs/libpng/libpng-src/scripts/makefile.msys @@ -18,7 +18,7 @@ exec_prefix=$(prefix) # Library name: LIBNAME = libpng16 PNGMAJ = 16 -RELEASE = 35 +RELEASE = 36 # Shared library names: LIBSO=$(LIBNAME).dll diff --git a/source/libs/libpng/libpng-src/scripts/makefile.ne12bsd b/source/libs/libpng/libpng-src/scripts/makefile.ne12bsd index 8a490352c9d5616a6ac66472f4189ff431a58804..d0a6a37647f728fbf3b1d1d03a3bf5abfce264f0 100644 --- a/source/libs/libpng/libpng-src/scripts/makefile.ne12bsd +++ b/source/libs/libpng/libpng-src/scripts/makefile.ne12bsd @@ -17,7 +17,7 @@ INCSDIR=${LOCALBASE}/include/libpng16 LIB= png16 SHLIB_MAJOR= 0 -SHLIB_MINOR= 1.6.35 +SHLIB_MINOR= 1.6.36 SRCS= png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \ pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \ pngwtran.c pngmem.c pngerror.c pngpread.c diff --git a/source/libs/libpng/libpng-src/scripts/makefile.netbsd b/source/libs/libpng/libpng-src/scripts/makefile.netbsd index b1e8e957924c6a79b0431c18e5401cc2797adad7..589c1f8e5097fe3310646b6d53b56ef32f8a0fa7 100644 --- a/source/libs/libpng/libpng-src/scripts/makefile.netbsd +++ b/source/libs/libpng/libpng-src/scripts/makefile.netbsd @@ -17,7 +17,7 @@ INCSDIR=${LOCALBASE}/include LIB= png SHLIB_MAJOR= 16 -SHLIB_MINOR= 1.6.35 +SHLIB_MINOR= 1.6.36 SRCS= png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \ pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \ pngwtran.c pngmem.c pngerror.c pngpread.c diff --git a/source/libs/libpng/libpng-src/scripts/makefile.openbsd b/source/libs/libpng/libpng-src/scripts/makefile.openbsd index 5edac0f03b9b2fd8119b9d1977403d9543b57a0a..4057b2ee8e3efa4c75fa8e7da1656e9362a7a656 100644 --- a/source/libs/libpng/libpng-src/scripts/makefile.openbsd +++ b/source/libs/libpng/libpng-src/scripts/makefile.openbsd @@ -11,7 +11,7 @@ LIBDIR= ${PREFIX}/lib MANDIR= ${PREFIX}/man/cat SHLIB_MAJOR= 16 -SHLIB_MINOR= 1.6.35 +SHLIB_MINOR= 1.6.36 LIB= png SRCS= png.c pngerror.c pngget.c pngmem.c pngpread.c \ @@ -28,7 +28,7 @@ NOPROFILE= Yes CLEANFILES+= pngtest.o pngtest pnglibconf.h MAN= libpng.3 libpngpf.3 png.5 -DOCS= ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO \ +DOCS= ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO \ libpng-manual.txt # Pre-built configuration diff --git a/source/libs/libpng/libpng-src/scripts/makefile.sco b/source/libs/libpng/libpng-src/scripts/makefile.sco index 67d84aaac3dfe64e1af8cb440991d1e527b85354..01d7eaaaaf5854958764c4d8626c5842a2004caa 100644 --- a/source/libs/libpng/libpng-src/scripts/makefile.sco +++ b/source/libs/libpng/libpng-src/scripts/makefile.sco @@ -201,7 +201,7 @@ clean: $(LIBSO) $(LIBSOMAJ)* pngtest-static pngtesti \ pnglibconf.h libpng.pc -DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO +DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO writelock: chmod a-w *.[ch35] $(DOCS) scripts/* diff --git a/source/libs/libpng/libpng-src/scripts/makefile.sggcc b/source/libs/libpng/libpng-src/scripts/makefile.sggcc index a0d051dbda87a43cd5fdc04b30a9dd4f7962a241..82efe7a220dce775b1469197b09da38df710d479 100644 --- a/source/libs/libpng/libpng-src/scripts/makefile.sggcc +++ b/source/libs/libpng/libpng-src/scripts/makefile.sggcc @@ -211,7 +211,7 @@ clean: $(RM_F) libpng.a pngtest pngtesti pngout.png libpng.pc \ so_locations libpng-config $(LIBSO) $(LIBSOMAJ)* pnglibconf.h -DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO +DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO writelock: chmod a-w *.[ch35] $(DOCS) scripts/* diff --git a/source/libs/libpng/libpng-src/scripts/makefile.sgi b/source/libs/libpng/libpng-src/scripts/makefile.sgi index 7df09022208443dc23fac43ebcae4ce0c7cb547d..5d9c23fa904ddc5c1e3b2cff90dd234f1f47e595 100644 --- a/source/libs/libpng/libpng-src/scripts/makefile.sgi +++ b/source/libs/libpng/libpng-src/scripts/makefile.sgi @@ -212,7 +212,7 @@ clean: $(LIBSO) $(LIBSOMAJ)* \ so_locations pnglibconf.h -DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO +DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO writelock: chmod a-w *.[ch35] $(DOCS) scripts/* diff --git a/source/libs/libpng/libpng-src/scripts/makefile.so9 b/source/libs/libpng/libpng-src/scripts/makefile.so9 index ba9308c8a0e181b5d0df9553a20bb02cdea834c6..93166f30e85b744465abc99034b098a02f125cb8 100644 --- a/source/libs/libpng/libpng-src/scripts/makefile.so9 +++ b/source/libs/libpng/libpng-src/scripts/makefile.so9 @@ -222,7 +222,7 @@ clean: libpng-config $(LIBSO) $(LIBSOMAJ)* \ libpng.pc pnglibconf.h -DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO +DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO writelock: chmod a-w *.[ch35] $(DOCS) scripts/* diff --git a/source/libs/libpng/libpng-src/scripts/makefile.solaris b/source/libs/libpng/libpng-src/scripts/makefile.solaris index 8a450d37157214e96dc692d281b0a669bb2d908c..f6d7b5860ed8adcf2f5bf29bd9bbdc90621e0e3e 100644 --- a/source/libs/libpng/libpng-src/scripts/makefile.solaris +++ b/source/libs/libpng/libpng-src/scripts/makefile.solaris @@ -44,8 +44,7 @@ WARNMORE=-Wwrite-strings -Wpointer-arith -Wshadow \ -Wmissing-declarations -Wtraditional -Wcast-align \ -Wstrict-prototypes -Wmissing-prototypes #-Wconversion CPPFLAGS=-I$(ZLIBINC) # -DPNG_DEBUG=5 -CFLAGS= -W -Wall -O \ - # $(WARNMORE) -g -DPNG_DEBUG=5 +CFLAGS=-W -Wall -O # $(WARNMORE) -g LDFLAGS=-L. -R. -L$(ZLIBLIB) -R$(ZLIBLIB) -lpng16 -lz -lm INCPATH=$(prefix)/include @@ -219,7 +218,7 @@ clean: libpng-config $(LIBSO) $(LIBSOMAJ)* \ libpng.pc pnglibconf.h -DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO +DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO writelock: chmod a-w *.[ch35] $(DOCS) scripts/* diff --git a/source/libs/libpng/libpng-src/scripts/makefile.solaris-x86 b/source/libs/libpng/libpng-src/scripts/makefile.solaris-x86 deleted file mode 100644 index 2ee3c14a53d56fc63496d15f53eeac81e790160a..0000000000000000000000000000000000000000 --- a/source/libs/libpng/libpng-src/scripts/makefile.solaris-x86 +++ /dev/null @@ -1,243 +0,0 @@ -# makefile for libpng on Solaris 2.x with gcc -# Copyright (C) 2004, 2006-2008, 2010-2014 Glenn Randers-Pehrson -# Contributed by William L. Sebok, based on makefile.linux -# Copyright (C) 1998 Greg Roelofs -# Copyright (C) 1996, 1997 Andreas Dilger - -# This code is released under the libpng license. -# For conditions of distribution and use, see the disclaimer -# and license in png.h - -# Library name: -LIBNAME = libpng16 -PNGMAJ = 16 - -# Shared library names: -LIBSO=$(LIBNAME).so -LIBSOMAJ=$(LIBNAME).so.$(PNGMAJ) -LIBSOREL=$(LIBSOMAJ).$(RELEASE) -OLDSO=libpng.so - -# Utilities: -AR_RC=ar rc -CC=gcc -MKDIR_P=mkdir -p -LN_SF=ln -f -s -RANLIB=echo -CP=cp -RM_F=/bin/rm -f - -# Where make install puts libpng.a, libpng16.so*, and png.h -prefix=/usr/local -exec_prefix=$(prefix) - -# Where the zlib library and include files are located -# Changing these to ../zlib poses a security risk. If you want -# to have zlib in an adjacent directory, specify the full path instead of "..". -#ZLIBLIB=../zlib -#ZLIBINC=../zlib - -ZLIBLIB=/usr/local/lib -ZLIBINC=/usr/local/include - -WARNMORE=-Wwrite-strings -Wpointer-arith -Wshadow \ - -Wmissing-declarations -Wtraditional -Wcast-align \ - -Wstrict-prototypes -Wmissing-prototypes #-Wconversion -CPPFLAGS=-I$(ZLIBINC) # -DPNG_DEBUG=5 -CFLAGS=-W -Wall -O # $(WARNMORE) -g -LDFLAGS=-L. -R. -L$(ZLIBLIB) -R$(ZLIBLIB) -lpng16 -lz -lm - -INCPATH=$(prefix)/include -LIBPATH=$(exec_prefix)/lib -MANPATH=$(prefix)/man -BINPATH=$(exec_prefix)/bin - -# override DESTDIR= on the make install command line to easily support -# installing into a temporary location. Example: -# -# make install DESTDIR=/tmp/build/libpng -# -# If you're going to install into a temporary location -# via DESTDIR, $(DESTDIR)$(prefix) must already exist before -# you execute make install. -DESTDIR= - -DB=$(DESTDIR)$(BINPATH) -DI=$(DESTDIR)$(INCPATH) -DL=$(DESTDIR)$(LIBPATH) -DM=$(DESTDIR)$(MANPATH) - -# Pre-built configuration -# See scripts/pnglibconf.mak for more options -PNGLIBCONF_H_PREBUILT = scripts/pnglibconf.h.prebuilt - -OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \ - pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \ - pngwtran.o pngmem.o pngerror.o pngpread.o - -OBJSDLL = $(OBJS:.o=.pic.o) - -.SUFFIXES: .c .o .pic.o - -.c.o: - $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $< - -.c.pic.o: - $(CC) -c $(CPPFLAGS) $(CFLAGS) -fPIC -o $@ $*.c - -all: libpng.a $(LIBSO) pngtest libpng.pc libpng-config - -pnglibconf.h: $(PNGLIBCONF_H_PREBUILT) - $(CP) $(PNGLIBCONF_H_PREBUILT) $@ - -libpng.a: $(OBJS) - $(AR_RC) $@ $(OBJS) - $(RANLIB) $@ - -libpng.pc: - cat scripts/libpng.pc.in | sed -e s!@prefix@!$(prefix)! \ - -e s!@exec_prefix@!$(exec_prefix)! \ - -e s!@libdir@!$(LIBPATH)! \ - -e s!@includedir@!$(INCPATH)! \ - -e s!-lpng16!-lpng16\ -lz\ -lm! > libpng.pc - -libpng-config: - ( cat scripts/libpng-config-head.in; \ - echo prefix=\"$(prefix)\"; \ - echo I_opts=\"-I$(INCPATH)/$(LIBNAME)\"; \ - echo cppflags=\""; \ - echo L_opts=\"-L$(LIBPATH)\"; \ - echo R_opts=\"-R$(LIBPATH)\"; \ - echo libs=\"-lpng16 -lz -lm\"; \ - cat scripts/libpng-config-body.in ) > libpng-config - chmod +x libpng-config - -$(LIBSO): $(LIBSOMAJ) - $(LN_SF) $(LIBSOMAJ) $(LIBSO) - -$(LIBSOMAJ): $(OBJSDLL) - @case "`type ld`" in *ucb*) \ - echo; \ - echo '## WARNING:'; \ - echo '## The commands "CC" and "LD" must NOT refer to /usr/ucb/cc'; \ - echo '## and /usr/ucb/ld. If they do, you need to adjust your PATH'; \ - echo '## environment variable to put /usr/ccs/bin ahead of /usr/ucb.'; \ - echo '## The environment variable LD_LIBRARY_PATH should not be set'; \ - echo '## at all. If it is, things are likely to break because of'; \ - echo '## the libucb dependency that is created.'; \ - echo; \ - ;; \ - esac - $(LD) -G -h $(LIBSOMAJ) \ - -o $(LIBSOMAJ) $(OBJSDLL) - -pngtest: pngtest.o $(LIBSO) - $(CC) -o pngtest $(CFLAGS) pngtest.o $(LDFLAGS) - -test: pngtest - ./pngtest - -install-headers: png.h pngconf.h pnglibconf.h - -@if [ ! -d $(DI) ]; then $(MKDIR_P) $(DI); fi - -@if [ ! -d $(DI)/$(LIBNAME) ]; then $(MKDIR_P) $(DI)/$(LIBNAME); fi - cp png.h pngconf.h pnglibconf.h $(DI)/$(LIBNAME) - chmod 644 $(DI)/$(LIBNAME)/png.h $(DI)/$(LIBNAME)/pngconf.h $(DI)/$(LIBNAME)/pnglibconf.h - -@$(RM_F) $(DI)/png.h $(DI)/pngconf.h $(DI)/pnglibconf.h - -@$(RM_F) $(DI)/libpng - (cd $(DI); $(LN_SF) $(LIBNAME) libpng; $(LN_SF) $(LIBNAME)/* .) - -install-static: install-headers libpng.a - -@if [ ! -d $(DL) ]; then $(MKDIR_P) $(DL); fi - cp libpng.a $(DL)/$(LIBNAME).a - chmod 644 $(DL)/$(LIBNAME).a - -@$(RM_F) $(DL)/libpng.a - (cd $(DL); $(LN_SF) $(LIBNAME).a libpng.a) - -install-shared: install-headers $(LIBSOMAJ) libpng.pc - -@if [ ! -d $(DL) ]; then $(MKDIR_P) $(DL); fi - -@$(RM_F) $(DL)/$(LIBSO) - -@$(RM_F) $(DL)/$(LIBSOREL) - -@$(RM_F) $(DL)/$(OLDSO) - cp $(LIBSOMAJ) $(DL)/$(LIBSOREL) - chmod 755 $(DL)/$(LIBSOREL) - (cd $(DL); \ - $(LN_SF) $(LIBSOREL) $(LIBSO); \ - $(LN_SF) $(LIBSO) $(OLDSO)) - -@if [ ! -d $(DL)/pkgconfig ]; then $(MKDIR_P) $(DL)/pkgconfig; fi - -@$(RM_F) $(DL)/pkgconfig/$(LIBNAME).pc - -@$(RM_F) $(DL)/pkgconfig/libpng.pc - cp libpng.pc $(DL)/pkgconfig/$(LIBNAME).pc - chmod 644 $(DL)/pkgconfig/$(LIBNAME).pc - (cd $(DL)/pkgconfig; $(LN_SF) $(LIBNAME).pc libpng.pc) - -install-man: libpng.3 libpngpf.3 png.5 - -@if [ ! -d $(DM) ]; then $(MKDIR_P) $(DM); fi - -@if [ ! -d $(DM)/man3 ]; then $(MKDIR_P) $(DM)/man3; fi - -@$(RM_F) $(DM)/man3/libpng.3 - -@$(RM_F) $(DM)/man3/libpngpf.3 - cp libpng.3 $(DM)/man3 - cp libpngpf.3 $(DM)/man3 - -@if [ ! -d $(DM)/man5 ]; then $(MKDIR_P) $(DM)/man5; fi - -@$(RM_F) $(DM)/man5/png.5 - cp png.5 $(DM)/man5 - -install-config: libpng-config - -@if [ ! -d $(DB) ]; then $(MKDIR_P) $(DB); fi - -@$(RM_F) $(DB)/libpng-config - -@$(RM_F) $(DB)/$(LIBNAME)-config - cp libpng-config $(DB)/$(LIBNAME)-config - chmod 755 $(DB)/$(LIBNAME)-config - (cd $(DB); $(LN_SF) $(LIBNAME)-config libpng-config) - -install: install-static install-shared install-man install-config - -# If you installed in $(DESTDIR), test-installed won't work until you -# move the library to its final location. Use test-dd to test it -# before then. - -test-dd: - echo - echo Testing installed dynamic shared library in $(DL). - $(CC) -I$(DI) $(CPPFLAGS) \ - `$(BINPATH)/$(LIBNAME)-config --cflags` pngtest.c \ - -o pngtestd `$(BINPATH)/$(LIBNAME)-config --ldflags` \ - -L$(DL) -L$(ZLIBLIB) -R$(ZLIBLIB) -R$(DL) - ./pngtestd pngtest.png - -test-installed: - echo - echo Testing installed dynamic shared library. - $(CC) $(CPPFLAGS) \ - `$(BINPATH)/$(LIBNAME)-config --cflags` pngtest.c \ - -o pngtesti `$(BINPATH)/$(LIBNAME)-config --ldflags` \ - -L$(ZLIBLIB) -R$(ZLIBLIB) - ./pngtesti pngtest.png - -clean: - $(RM_F) *.o libpng.a pngtest pngtesti pngout.png \ - libpng-config $(LIBSO) $(LIBSOMAJ)* \ - libpng.pc pnglibconf.h - -DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO -writelock: - chmod a-w *.[ch35] $(DOCS) scripts/* - -# DO NOT DELETE THIS LINE -- make depend depends on it. - -png.o png.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngerror.o pngerror.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngrio.o pngrio.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngwio.o pngwio.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngmem.o pngmem.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngset.o pngset.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngget.o pngget.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngread.o pngread.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngrtran.o pngrtran.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngrutil.o pngrutil.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngtrans.o pngtrans.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngwrite.o pngwrite.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngwtran.o pngwtran.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngwutil.o pngwutil.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngpread.o pngpread.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - -pngtest.o: png.h pngconf.h pnglibconf.h diff --git a/source/libs/libpng/libpng-src/scripts/makefile.std b/source/libs/libpng/libpng-src/scripts/makefile.std index ee6a868354570176c0ffa8f5ad9b9b3bf5e18a16..2f4871df90e51c5ebfda7ee36913e57971c93ce9 100644 --- a/source/libs/libpng/libpng-src/scripts/makefile.std +++ b/source/libs/libpng/libpng-src/scripts/makefile.std @@ -109,7 +109,7 @@ clean: $(RM_F) *.o libpng.a pngtest pngout.png pnglibconf.h pnglibconf.c \ pnglibconf.out -DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO +DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO writelock: chmod a-w *.[ch35] $(DOCS) scripts/* @@ -122,6 +122,7 @@ pngwio.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug. pngmem.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h pngset.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h pngget.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h +pngpread.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h pngread.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h pngrtran.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h pngrutil.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h @@ -129,6 +130,5 @@ pngtrans.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebu pngwrite.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h pngwtran.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h pngwutil.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngpread.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h pngtest.o: png.h pngconf.h pnglibconf.h diff --git a/source/libs/libpng/libpng-src/scripts/makefile.sunos b/source/libs/libpng/libpng-src/scripts/makefile.sunos index efe308c4781f315ef315ca154e568be09d7faeeb..9a0e28e7226140f5b25efe2924c7581c56a59dd2 100644 --- a/source/libs/libpng/libpng-src/scripts/makefile.sunos +++ b/source/libs/libpng/libpng-src/scripts/makefile.sunos @@ -90,7 +90,7 @@ install: libpng.a clean: $(RM_F) *.o libpng.a pngtest pngout.png pnglibconf.h -DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO +DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO writelock: chmod a-w *.[ch35] $(DOCS) scripts/* diff --git a/source/libs/libpng/libpng-src/scripts/makefile.tc3 b/source/libs/libpng/libpng-src/scripts/makefile.tc3 deleted file mode 100644 index 1d015026cbc96bfc3331e36e6fa59a2c87c5bcc0..0000000000000000000000000000000000000000 --- a/source/libs/libpng/libpng-src/scripts/makefile.tc3 +++ /dev/null @@ -1,100 +0,0 @@ -# Makefile for libpng -# TurboC/C++ (Note: All modules are compiled in C mode) - -# To use, do "make -fmakefile.tc3" - -# ----- Turbo C++ 3.0 ----- - -MODEL=l -CPPFLAGS=-I..\zlib -CFLAGS=-O2 -Z -m$(MODEL) -CC=tcc -LD=tcc -LIB=tlib -LDFLAGS=-m$(MODEL) -L..\zlib -CP=copy - -# Pre-built configuration -# See scripts\pnglibconf.mak for more options -!ifndef PNGLIBCONF_H_PREBUILT -PNGLIBCONF_H_PREBUILT = scripts\pnglibconf.h.prebuilt -!endif - -O=.obj -E=.exe - -# variables -OBJS1 = png$(O) pngset$(O) pngget$(O) pngrutil$(O) pngtrans$(O) pngwutil$(O) -OBJS2 = pngmem$(O) pngpread$(O) pngread$(O) pngerror$(O) pngwrite$(O) -OBJS3 = pngrtran$(O) pngwtran$(O) pngrio$(O) pngwio$(O) -OBJSL1 = +png$(O) +pngset$(O) +pngget$(O) +pngrutil$(O) +pngtrans$(O) -OBJSL2 = +pngwutil$(O) +pngmem$(O) +pngpread$(O) +pngread$(O) +pngerror$(O) -OBJSL3 = +pngwrite$(O) +pngrtran$(O) +pngwtran$(O) +pngrio$(O) +pngwio$(O) - -all: libpng$(MODEL).lib pngtest$(E) - -pnglibconf.h: $(PNGLIBCONF_H_PREBUILT) - $(CP) $(PNGLIBCONF_H_PREBUILT) $@ - -pngtest: pngtest$(E) - -test: pngtest$(E) - pngtest$(E) - -png$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c - -pngset$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c - -pngget$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c - -pngread$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c - -pngpread$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c - -pngrtran$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c - -pngrutil$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c - -pngerror$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c - -pngmem$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c - -pngrio$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c - -pngwio$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c - -pngtest$(O): png.h pngconf.h pnglibconf.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c - -pngtrans$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c - -pngwrite$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c - -pngwtran$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c - -pngwutil$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c - -libpng$(MODEL).lib: $(OBJS1) $(OBJS2) $(OBJS3) - $(LIB) libpng$(MODEL) +$(OBJSL1) - $(LIB) libpng$(MODEL) +$(OBJSL2) - $(LIB) libpng$(MODEL) +$(OBJSL3) - -pngtest$(E): pngtest$(O) libpng$(MODEL).lib - $(LD) $(LDFLAGS) pngtest.obj libpng$(MODEL).lib zlib_$(MODEL).lib - -# End of makefile for libpng diff --git a/source/libs/libpng/libpng-src/scripts/pnglibconf.dfa b/source/libs/libpng/libpng-src/scripts/pnglibconf.dfa index b298a72f3be5595e394a908e34e5ddeedd51546c..15bd08e903dc07c994f69b665c7cd0b875a274a7 100644 --- a/source/libs/libpng/libpng-src/scripts/pnglibconf.dfa +++ b/source/libs/libpng/libpng-src/scripts/pnglibconf.dfa @@ -8,7 +8,8 @@ com pnglibconf.h - library build configuration com version com -com Copyright (c) 1998-2017 Glenn Randers-Pehrson +com Copyright (c) 2018 Cosmin Truta +com Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson com com This code is released under the libpng license. com For conditions of distribution and use, see the disclaimer diff --git a/source/libs/libpng/libpng-src/scripts/pnglibconf.h.prebuilt b/source/libs/libpng/libpng-src/scripts/pnglibconf.h.prebuilt index 00acecc69b7f76766607f871ceec78909e24947f..00340c678beb4953098ca0ee23d80748bca0afeb 100644 --- a/source/libs/libpng/libpng-src/scripts/pnglibconf.h.prebuilt +++ b/source/libs/libpng/libpng-src/scripts/pnglibconf.h.prebuilt @@ -1,10 +1,9 @@ -/* libpng 1.6.35 STANDARD API DEFINITION */ - /* pnglibconf.h - library build configuration */ -/* Libpng version 1.6.35 - July 15, 2018 */ +/* libpng version 1.6.36 */ -/* Copyright (c) 1998-2018 Glenn Randers-Pehrson */ +/* Copyright (c) 2018 Cosmin Truta */ +/* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson */ /* This code is released under the libpng license. */ /* For conditions of distribution and use, see the disclaimer */ @@ -20,8 +19,6 @@ #define PNG_ALIGNED_MEMORY_SUPPORTED /*#undef PNG_ARM_NEON_API_SUPPORTED*/ /*#undef PNG_ARM_NEON_CHECK_SUPPORTED*/ -/*#undef PNG_POWERPC_VSX_API_SUPPORTED*/ -/*#undef PNG_POWERPC_VSX_CHECK_SUPPORTED*/ #define PNG_BENIGN_ERRORS_SUPPORTED #define PNG_BENIGN_READ_ERRORS_SUPPORTED /*#undef PNG_BENIGN_WRITE_ERRORS_SUPPORTED*/ @@ -46,6 +43,8 @@ #define PNG_IO_STATE_SUPPORTED #define PNG_MNG_FEATURES_SUPPORTED #define PNG_POINTER_INDEXING_SUPPORTED +/*#undef PNG_POWERPC_VSX_API_SUPPORTED*/ +/*#undef PNG_POWERPC_VSX_CHECK_SUPPORTED*/ #define PNG_PROGRESSIVE_READ_SUPPORTED #define PNG_READ_16BIT_SUPPORTED #define PNG_READ_ALPHA_MODE_SUPPORTED diff --git a/source/libs/libpng/libpng-src/scripts/symbols.def b/source/libs/libpng/libpng-src/scripts/symbols.def index a8f7ce28751bc5faad55f44fd43d8cc17c04e7e1..82494bbf94cce670ab08f6cf7ecd317b445e9958 100644 --- a/source/libs/libpng/libpng-src/scripts/symbols.def +++ b/source/libs/libpng/libpng-src/scripts/symbols.def @@ -1,4 +1,3 @@ -;Version 1.6.35 ;-------------------------------------------------------------- ; LIBPNG symbol list as a Win32 DEF file ; Contains all the symbols that can be exported from libpng diff --git a/source/libs/libpng/version.ac b/source/libs/libpng/version.ac index 794227d044c6b0d8008f75d0431d07ef212437c9..1d6a2edb813ee2b740f84cae1addc70d9de3efa7 100644 --- a/source/libs/libpng/version.ac +++ b/source/libs/libpng/version.ac @@ -8,4 +8,4 @@ dnl dnl -------------------------------------------------------- dnl dnl m4-include this file to define the current libpng version -m4_define([libpng_version], [1.6.35]) +m4_define([libpng_version], [1.6.36]) diff --git a/source/libs/lua52/ChangeLog b/source/libs/lua52/ChangeLog deleted file mode 100644 index b8ad27b00f853460fa3b679ddff6424cc56bb6b5..0000000000000000000000000000000000000000 --- a/source/libs/lua52/ChangeLog +++ /dev/null @@ -1,75 +0,0 @@ -2018-09-09 Karl Berry <karl@tug.org> - - * luaerror.test: LC_ALL=LANGUAGE=C. - -2016-02-18 Akira Kakuto <kakuto@fuk.kindai.ac.jp> - - * Makefile.am, configure.ac: New convention. - -2015-07-06 Peter Breitenlohner <peb@mppmu.mpg.de> - - * Makefile.am: Better dependencies for 'make check'. - -2015-03-11 Peter Breitenlohner <peb@mppmu.mpg.de> - - Import lua-5.2.4. - * version.ac: Adjust. - -2015-02-16 Peter Breitenlohner <peb@mppmu.mpg.de> - - * Makefile.am: Use the fragment ../../am/dist_hook.am. - -2014-10-22 Peter Breitenlohner <peb@mppmu.mpg.de> - - * Makefile.am, configure.ac: Build lua52 as (possibly shared) - Libtool library, install headers, library, and .pc file. - * luaerror.test: Adapted. - -2014-06-02 Peter Breitenlohner <peb@mppmu.mpg.de> - - * Makefile.am (AM_CPPFLAGS): Drop LUAI_HASHLIMIT. - -2014-03-21 Peter Breitenlohner <peb@mppmu.mpg.de> - - * configure.ac: Add -DHAVE_UNISTD_H to LUA52_DEFINES because - config.h is not used. - -2014-03-15 Peter Breitenlohner <peb@mppmu.mpg.de> - - * Makefile.am (AM_CPPFLAGS): Define LUAI_HASHLIMIT=6 for LuaTeX. - -2014-03-03 Peter Breitenlohner <peb@mppmu.mpg.de> - - * luaerror.test (new): Shell script to test error handling. - * error.exp (new): Expected test output. - * Makefile.am: Add the new files. - * configure.ac: The test program requires sqrt(). - -2014-02-11 Peter Breitenlohner <peb@mppmu.mpg.de> - - * lua52.test (new): Shell script for a basic test. - * luatest.c (new): Source code for test program. - * Makefile.am: Add the new files. - -2013-12-07 Peter Breitenlohner <peb@mppmu.mpg.de> - - Import lua-5.2.3. - * version.ac: Adjust. - -2013-07-06 Peter Breitenlohner <peb@mppmu.mpg.de> - - * Makefile.am: Use ../../am/rebuild.am. - -2013-07-05 Peter Breitenlohner <peb@mppmu.mpg.de> - - * include/Makefile.am: Moved Makefile fragments to ../../am/. - -2012-06-25 Peter Breitenlohner <peb@mppmu.mpg.de> - - Import lua-5.2.2. - * version.ac: Adjust. - -2012-06-18 Peter Breitenlohner <peb@mppmu.mpg.de> - - Import lua-5.2.1/ from http://www.lua.org/ftp/lua-5.2.1.tar.gz. - diff --git a/source/libs/lua52/Makefile.am b/source/libs/lua52/Makefile.am deleted file mode 100644 index 808681eebdfecd3534b86eeb26247a2712761942..0000000000000000000000000000000000000000 --- a/source/libs/lua52/Makefile.am +++ /dev/null @@ -1,106 +0,0 @@ -## $Id: Makefile.am 43567 2017-03-21 17:43:10Z karl $ -## Proxy Makefile.am to build Lua52 for TeX Live. -## -## Copyright 2017 Karl Berry <tex-live@tug.org> -## Copyright 2013-2015 Peter Breitenlohner <tex-live@tug.org> -## -## This file is free software; the copyright holder -## gives unlimited permission to copy and/or distribute it, -## with or without modifications, as long as this notice is preserved. -## -## We want to re-distribute the whole Lua52 source tree. -## -EXTRA_DIST = $(LUA52_TREE) - -## Changes applied to the original source tree -## -EXTRA_DIST += TLpatches - -# Files not to be distributed -include $(srcdir)/../../am/dist_hook.am -NEVER_NAMES += $(NEVER_NAMES_SUB) $(NEVER_NAMES_LT) - -SUBDIRS = . include - -AM_CPPFLAGS = -I$(top_srcdir)/$(LUA52_TREE)/src $(LUA52_DEFINES) -AM_CFLAGS = $(WARNING_CFLAGS) - -lib_LTLIBRARIES = libtexlua52.la - -libtexlua52_la_LDFLAGS = -bindir @bindir@ -no-undefined -version-info $(LUA52_LT_VERSINFO) - -nodist_libtexlua52_la_SOURCES = \ - @LUA52_TREE@/src/lapi.c \ - @LUA52_TREE@/src/lauxlib.c \ - @LUA52_TREE@/src/lbaselib.c \ - @LUA52_TREE@/src/lbitlib.c \ - @LUA52_TREE@/src/lcode.c \ - @LUA52_TREE@/src/lcorolib.c \ - @LUA52_TREE@/src/lctype.c \ - @LUA52_TREE@/src/ldblib.c \ - @LUA52_TREE@/src/ldebug.c \ - @LUA52_TREE@/src/ldo.c \ - @LUA52_TREE@/src/ldump.c \ - @LUA52_TREE@/src/lfunc.c \ - @LUA52_TREE@/src/lgc.c \ - @LUA52_TREE@/src/linit.c \ - @LUA52_TREE@/src/liolib.c \ - @LUA52_TREE@/src/llex.c \ - @LUA52_TREE@/src/lmathlib.c \ - @LUA52_TREE@/src/lmem.c \ - @LUA52_TREE@/src/loadlib.c \ - @LUA52_TREE@/src/lobject.c \ - @LUA52_TREE@/src/lopcodes.c \ - @LUA52_TREE@/src/loslib.c \ - @LUA52_TREE@/src/lparser.c \ - @LUA52_TREE@/src/lstate.c \ - @LUA52_TREE@/src/lstring.c \ - @LUA52_TREE@/src/lstrlib.c \ - @LUA52_TREE@/src/ltable.c \ - @LUA52_TREE@/src/ltablib.c \ - @LUA52_TREE@/src/ltm.c \ - @LUA52_TREE@/src/luaconf.h \ - @LUA52_TREE@/src/lundump.c \ - @LUA52_TREE@/src/lvm.c \ - @LUA52_TREE@/src/lzio.c - -lua52includedir = ${includedir}/texlua52 - -lua52include_HEADERS = \ - $(LUA52_TREE)/src/lauxlib.h \ - $(LUA52_TREE)/src/luaconf.h \ - $(LUA52_TREE)/src/lua.h \ - $(LUA52_TREE)/src/lua.hpp \ - $(LUA52_TREE)/src/lualib.h - -pkgconfigdir = ${libdir}/pkgconfig - -pkgconfig_DATA = texlua52.pc - -if build -check_PROGRAMS = luatest luatry -dist_check_SCRIPTS = lua52.test luaerror.test -TESTS = lua52.test luaerror.test -endif build -lua52.log: luatest$(EXEEXT) -luaerror.log: luatry$(EXEEXT) - -luatest_SOURCES = luatest.c - -luatest_CPPFLAGS = -Iinclude - -nodist_luatry_SOURCES = @LUA52_TREE@/src/lua.c - -luatry_CPPFLAGS = -Iinclude - -LDADD = libtexlua52.la - -EXTRA_DIST += error.exp -CLEANFILES = error.out error.tmp - -# Rebuild -rebuild_prereq = -rebuild_target = all - -include $(srcdir)/../../am/rebuild.am - diff --git a/source/libs/lua52/Makefile.in b/source/libs/lua52/Makefile.in deleted file mode 100644 index 37e8ded805de38147fe4ea8154c7b968336ed268..0000000000000000000000000000000000000000 --- a/source/libs/lua52/Makefile.in +++ /dev/null @@ -1,1763 +0,0 @@ -# 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 = : -build_triplet = @build@ -host_triplet = @host@ -@build_TRUE@check_PROGRAMS = luatest$(EXEEXT) luatry$(EXEEXT) -subdir = . -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/../../m4/kpse-common.m4 \ - $(top_srcdir)/../../m4/kpse-dll-name.m4 \ - $(top_srcdir)/../../m4/kpse-largefile.m4 \ - $(top_srcdir)/../../m4/kpse-lib-version.m4 \ - $(top_srcdir)/../../m4/kpse-lua52-flags.m4 \ - $(top_srcdir)/../../m4/kpse-warnings.m4 \ - $(top_srcdir)/../../m4/kpse-win32.m4 \ - $(top_srcdir)/../../m4/libtool.m4 \ - $(top_srcdir)/../../m4/ltoptions.m4 \ - $(top_srcdir)/../../m4/ltsugar.m4 \ - $(top_srcdir)/../../m4/ltversion.m4 \ - $(top_srcdir)/../../m4/lt~obsolete.m4 $(top_srcdir)/version.ac \ - $(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_check_SCRIPTS_DIST) \ - $(lua52include_HEADERS) $(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 = texlua52.pc -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)$(pkgconfigdir)" \ - "$(DESTDIR)$(lua52includedir)" -LTLIBRARIES = $(lib_LTLIBRARIES) -libtexlua52_la_LIBADD = -am__dirstamp = $(am__leading_dot)dirstamp -nodist_libtexlua52_la_OBJECTS = @LUA52_TREE@/src/lapi.lo \ - @LUA52_TREE@/src/lauxlib.lo @LUA52_TREE@/src/lbaselib.lo \ - @LUA52_TREE@/src/lbitlib.lo @LUA52_TREE@/src/lcode.lo \ - @LUA52_TREE@/src/lcorolib.lo @LUA52_TREE@/src/lctype.lo \ - @LUA52_TREE@/src/ldblib.lo @LUA52_TREE@/src/ldebug.lo \ - @LUA52_TREE@/src/ldo.lo @LUA52_TREE@/src/ldump.lo \ - @LUA52_TREE@/src/lfunc.lo @LUA52_TREE@/src/lgc.lo \ - @LUA52_TREE@/src/linit.lo @LUA52_TREE@/src/liolib.lo \ - @LUA52_TREE@/src/llex.lo @LUA52_TREE@/src/lmathlib.lo \ - @LUA52_TREE@/src/lmem.lo @LUA52_TREE@/src/loadlib.lo \ - @LUA52_TREE@/src/lobject.lo @LUA52_TREE@/src/lopcodes.lo \ - @LUA52_TREE@/src/loslib.lo @LUA52_TREE@/src/lparser.lo \ - @LUA52_TREE@/src/lstate.lo @LUA52_TREE@/src/lstring.lo \ - @LUA52_TREE@/src/lstrlib.lo @LUA52_TREE@/src/ltable.lo \ - @LUA52_TREE@/src/ltablib.lo @LUA52_TREE@/src/ltm.lo \ - @LUA52_TREE@/src/lundump.lo @LUA52_TREE@/src/lvm.lo \ - @LUA52_TREE@/src/lzio.lo -libtexlua52_la_OBJECTS = $(nodist_libtexlua52_la_OBJECTS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -libtexlua52_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(AM_CFLAGS) $(CFLAGS) $(libtexlua52_la_LDFLAGS) $(LDFLAGS) -o \ - $@ -am_luatest_OBJECTS = luatest-luatest.$(OBJEXT) -luatest_OBJECTS = $(am_luatest_OBJECTS) -luatest_LDADD = $(LDADD) -luatest_DEPENDENCIES = libtexlua52.la -nodist_luatry_OBJECTS = @LUA52_TREE@/src/luatry-lua.$(OBJEXT) -luatry_OBJECTS = $(nodist_luatry_OBJECTS) -luatry_LDADD = $(LDADD) -luatry_DEPENDENCIES = libtexlua52.la -am__dist_check_SCRIPTS_DIST = lua52.test luaerror.test -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@ -depcomp = $(SHELL) $(top_srcdir)/../../build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/luatest-luatest.Po \ - @LUA52_TREE@/src/$(DEPDIR)/lapi.Plo \ - @LUA52_TREE@/src/$(DEPDIR)/lauxlib.Plo \ - @LUA52_TREE@/src/$(DEPDIR)/lbaselib.Plo \ - @LUA52_TREE@/src/$(DEPDIR)/lbitlib.Plo \ - @LUA52_TREE@/src/$(DEPDIR)/lcode.Plo \ - @LUA52_TREE@/src/$(DEPDIR)/lcorolib.Plo \ - @LUA52_TREE@/src/$(DEPDIR)/lctype.Plo \ - @LUA52_TREE@/src/$(DEPDIR)/ldblib.Plo \ - @LUA52_TREE@/src/$(DEPDIR)/ldebug.Plo \ - @LUA52_TREE@/src/$(DEPDIR)/ldo.Plo \ - @LUA52_TREE@/src/$(DEPDIR)/ldump.Plo \ - @LUA52_TREE@/src/$(DEPDIR)/lfunc.Plo \ - @LUA52_TREE@/src/$(DEPDIR)/lgc.Plo \ - @LUA52_TREE@/src/$(DEPDIR)/linit.Plo \ - @LUA52_TREE@/src/$(DEPDIR)/liolib.Plo \ - @LUA52_TREE@/src/$(DEPDIR)/llex.Plo \ - @LUA52_TREE@/src/$(DEPDIR)/lmathlib.Plo \ - @LUA52_TREE@/src/$(DEPDIR)/lmem.Plo \ - @LUA52_TREE@/src/$(DEPDIR)/loadlib.Plo \ - @LUA52_TREE@/src/$(DEPDIR)/lobject.Plo \ - @LUA52_TREE@/src/$(DEPDIR)/lopcodes.Plo \ - @LUA52_TREE@/src/$(DEPDIR)/loslib.Plo \ - @LUA52_TREE@/src/$(DEPDIR)/lparser.Plo \ - @LUA52_TREE@/src/$(DEPDIR)/lstate.Plo \ - @LUA52_TREE@/src/$(DEPDIR)/lstring.Plo \ - @LUA52_TREE@/src/$(DEPDIR)/lstrlib.Plo \ - @LUA52_TREE@/src/$(DEPDIR)/ltable.Plo \ - @LUA52_TREE@/src/$(DEPDIR)/ltablib.Plo \ - @LUA52_TREE@/src/$(DEPDIR)/ltm.Plo \ - @LUA52_TREE@/src/$(DEPDIR)/luatry-lua.Po \ - @LUA52_TREE@/src/$(DEPDIR)/lundump.Plo \ - @LUA52_TREE@/src/$(DEPDIR)/lvm.Plo \ - @LUA52_TREE@/src/$(DEPDIR)/lzio.Plo -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=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 = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=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 = $(nodist_libtexlua52_la_SOURCES) $(luatest_SOURCES) \ - $(nodist_luatry_SOURCES) -DIST_SOURCES = $(luatest_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 -DATA = $(pkgconfig_DATA) -HEADERS = $(lua52include_HEADERS) -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 check recheck 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 -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) -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -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)/../../build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -DIST_SUBDIRS = $(SUBDIRS) -am__DIST_COMMON = $(srcdir)/../../am/dist_hook.am \ - $(srcdir)/../../am/rebuild.am $(srcdir)/Makefile.in \ - $(srcdir)/config.h.in $(srcdir)/texlua52.pc.in \ - $(top_srcdir)/../../build-aux/compile \ - $(top_srcdir)/../../build-aux/config.guess \ - $(top_srcdir)/../../build-aux/config.sub \ - $(top_srcdir)/../../build-aux/depcomp \ - $(top_srcdir)/../../build-aux/install-sh \ - $(top_srcdir)/../../build-aux/ltmain.sh \ - $(top_srcdir)/../../build-aux/missing \ - $(top_srcdir)/../../build-aux/test-driver \ - ../../build-aux/ar-lib ../../build-aux/compile \ - ../../build-aux/config.guess ../../build-aux/config.sub \ - ../../build-aux/depcomp ../../build-aux/install-sh \ - ../../build-aux/ltmain.sh ../../build-aux/missing \ - ../../build-aux/texinfo.tex ../../build-aux/ylwrap ChangeLog -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@ -AR = @AR@ -AS = @AS@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -LUA52VERSION = @LUA52VERSION@ -LUA52_DEFINES = @LUA52_DEFINES@ -LUA52_LT_VERSINFO = @LUA52_LT_VERSINFO@ -LUA52_TREE = @LUA52_TREE@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -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@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -WARNING_CFLAGS = @WARNING_CFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -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 = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -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@ -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@ -EXTRA_DIST = $(LUA52_TREE) TLpatches error.exp -NEVER_DIST = `find . $(NEVER_NAMES)` - -# Files not to be distributed -NEVER_NAMES = -name .svn $(NEVER_NAMES_SUB) $(NEVER_NAMES_LT) -NEVER_NAMES_SUB = -o -name .deps -o -name .dirstamp -o -name '*.$(OBJEXT)' -NEVER_NAMES_LT = -o -name .libs -o -name '*.lo' -SUBDIRS = . include -AM_CPPFLAGS = -I$(top_srcdir)/$(LUA52_TREE)/src $(LUA52_DEFINES) -AM_CFLAGS = $(WARNING_CFLAGS) -lib_LTLIBRARIES = libtexlua52.la -libtexlua52_la_LDFLAGS = -bindir @bindir@ -no-undefined -version-info $(LUA52_LT_VERSINFO) -nodist_libtexlua52_la_SOURCES = \ - @LUA52_TREE@/src/lapi.c \ - @LUA52_TREE@/src/lauxlib.c \ - @LUA52_TREE@/src/lbaselib.c \ - @LUA52_TREE@/src/lbitlib.c \ - @LUA52_TREE@/src/lcode.c \ - @LUA52_TREE@/src/lcorolib.c \ - @LUA52_TREE@/src/lctype.c \ - @LUA52_TREE@/src/ldblib.c \ - @LUA52_TREE@/src/ldebug.c \ - @LUA52_TREE@/src/ldo.c \ - @LUA52_TREE@/src/ldump.c \ - @LUA52_TREE@/src/lfunc.c \ - @LUA52_TREE@/src/lgc.c \ - @LUA52_TREE@/src/linit.c \ - @LUA52_TREE@/src/liolib.c \ - @LUA52_TREE@/src/llex.c \ - @LUA52_TREE@/src/lmathlib.c \ - @LUA52_TREE@/src/lmem.c \ - @LUA52_TREE@/src/loadlib.c \ - @LUA52_TREE@/src/lobject.c \ - @LUA52_TREE@/src/lopcodes.c \ - @LUA52_TREE@/src/loslib.c \ - @LUA52_TREE@/src/lparser.c \ - @LUA52_TREE@/src/lstate.c \ - @LUA52_TREE@/src/lstring.c \ - @LUA52_TREE@/src/lstrlib.c \ - @LUA52_TREE@/src/ltable.c \ - @LUA52_TREE@/src/ltablib.c \ - @LUA52_TREE@/src/ltm.c \ - @LUA52_TREE@/src/luaconf.h \ - @LUA52_TREE@/src/lundump.c \ - @LUA52_TREE@/src/lvm.c \ - @LUA52_TREE@/src/lzio.c - -lua52includedir = ${includedir}/texlua52 -lua52include_HEADERS = \ - $(LUA52_TREE)/src/lauxlib.h \ - $(LUA52_TREE)/src/luaconf.h \ - $(LUA52_TREE)/src/lua.h \ - $(LUA52_TREE)/src/lua.hpp \ - $(LUA52_TREE)/src/lualib.h - -pkgconfigdir = ${libdir}/pkgconfig -pkgconfig_DATA = texlua52.pc -@build_TRUE@dist_check_SCRIPTS = lua52.test luaerror.test -@build_TRUE@TESTS = lua52.test luaerror.test -luatest_SOURCES = luatest.c -luatest_CPPFLAGS = -Iinclude -nodist_luatry_SOURCES = @LUA52_TREE@/src/lua.c -luatry_CPPFLAGS = -Iinclude -LDADD = libtexlua52.la -CLEANFILES = error.out error.tmp rebuild.stamp - -# Rebuild -rebuild_prereq = -rebuild_target = all -all: config.h - $(MAKE) $(AM_MAKEFLAGS) all-recursive - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -am--refresh: Makefile - @: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/../../am/dist_hook.am $(srcdir)/../../am/rebuild.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ - $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign 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; -$(srcdir)/../../am/dist_hook.am $(srcdir)/../../am/rebuild.am $(am__empty): - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - $(am__cd) $(srcdir) && $(AUTOCONF) -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) - rm -f stamp-h1 - touch $@ - -distclean-hdr: - -rm -f config.h stamp-h1 -texlua52.pc: $(top_builddir)/config.status $(srcdir)/texlua52.pc.in - cd $(top_builddir) && $(SHELL) ./config.status $@ - -clean-checkPROGRAMS: - @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -install-libLTLIBRARIES: $(lib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(lib_LTLIBRARIES)'; 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 " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ - } - -uninstall-libLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ - done - -clean-libLTLIBRARIES: - -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) - @list='$(lib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } -@LUA52_TREE@/src/$(am__dirstamp): - @$(MKDIR_P) @LUA52_TREE@/src - @: > @LUA52_TREE@/src/$(am__dirstamp) -@LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) @LUA52_TREE@/src/$(DEPDIR) - @: > @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@LUA52_TREE@/src/lapi.lo: @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@LUA52_TREE@/src/lauxlib.lo: @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@LUA52_TREE@/src/lbaselib.lo: @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@LUA52_TREE@/src/lbitlib.lo: @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@LUA52_TREE@/src/lcode.lo: @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@LUA52_TREE@/src/lcorolib.lo: @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@LUA52_TREE@/src/lctype.lo: @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@LUA52_TREE@/src/ldblib.lo: @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@LUA52_TREE@/src/ldebug.lo: @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@LUA52_TREE@/src/ldo.lo: @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@LUA52_TREE@/src/ldump.lo: @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@LUA52_TREE@/src/lfunc.lo: @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@LUA52_TREE@/src/lgc.lo: @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@LUA52_TREE@/src/linit.lo: @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@LUA52_TREE@/src/liolib.lo: @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@LUA52_TREE@/src/llex.lo: @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@LUA52_TREE@/src/lmathlib.lo: @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@LUA52_TREE@/src/lmem.lo: @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@LUA52_TREE@/src/loadlib.lo: @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@LUA52_TREE@/src/lobject.lo: @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@LUA52_TREE@/src/lopcodes.lo: @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@LUA52_TREE@/src/loslib.lo: @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@LUA52_TREE@/src/lparser.lo: @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@LUA52_TREE@/src/lstate.lo: @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@LUA52_TREE@/src/lstring.lo: @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@LUA52_TREE@/src/lstrlib.lo: @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@LUA52_TREE@/src/ltable.lo: @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@LUA52_TREE@/src/ltablib.lo: @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@LUA52_TREE@/src/ltm.lo: @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@LUA52_TREE@/src/lundump.lo: @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@LUA52_TREE@/src/lvm.lo: @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) -@LUA52_TREE@/src/lzio.lo: @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) - -libtexlua52.la: $(libtexlua52_la_OBJECTS) $(libtexlua52_la_DEPENDENCIES) $(EXTRA_libtexlua52_la_DEPENDENCIES) - $(AM_V_CCLD)$(libtexlua52_la_LINK) -rpath $(libdir) $(libtexlua52_la_OBJECTS) $(libtexlua52_la_LIBADD) $(LIBS) - -luatest$(EXEEXT): $(luatest_OBJECTS) $(luatest_DEPENDENCIES) $(EXTRA_luatest_DEPENDENCIES) - @rm -f luatest$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(luatest_OBJECTS) $(luatest_LDADD) $(LIBS) -@LUA52_TREE@/src/luatry-lua.$(OBJEXT): \ - @LUA52_TREE@/src/$(am__dirstamp) \ - @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) - -luatry$(EXEEXT): $(luatry_OBJECTS) $(luatry_DEPENDENCIES) $(EXTRA_luatry_DEPENDENCIES) - @rm -f luatry$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(luatry_OBJECTS) $(luatry_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -rm -f @LUA52_TREE@/src/*.$(OBJEXT) - -rm -f @LUA52_TREE@/src/*.lo - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/luatest-luatest.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/lapi.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/lauxlib.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/lbaselib.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/lbitlib.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/lcode.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/lcorolib.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/lctype.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/ldblib.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/ldebug.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/ldo.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/ldump.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/lfunc.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/lgc.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/linit.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/liolib.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/llex.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/lmathlib.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/lmem.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/loadlib.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/lobject.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/lopcodes.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/loslib.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/lparser.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/lstate.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/lstring.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/lstrlib.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/ltable.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/ltablib.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/ltm.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/luatry-lua.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/lundump.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/lvm.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@@LUA52_TREE@/src/$(DEPDIR)/lzio.Plo@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)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.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)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.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) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -luatest-luatest.o: luatest.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luatest_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatest-luatest.o -MD -MP -MF $(DEPDIR)/luatest-luatest.Tpo -c -o luatest-luatest.o `test -f 'luatest.c' || echo '$(srcdir)/'`luatest.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/luatest-luatest.Tpo $(DEPDIR)/luatest-luatest.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatest.c' object='luatest-luatest.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luatest_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatest-luatest.o `test -f 'luatest.c' || echo '$(srcdir)/'`luatest.c - -luatest-luatest.obj: luatest.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luatest_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatest-luatest.obj -MD -MP -MF $(DEPDIR)/luatest-luatest.Tpo -c -o luatest-luatest.obj `if test -f 'luatest.c'; then $(CYGPATH_W) 'luatest.c'; else $(CYGPATH_W) '$(srcdir)/luatest.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/luatest-luatest.Tpo $(DEPDIR)/luatest-luatest.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatest.c' object='luatest-luatest.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luatest_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatest-luatest.obj `if test -f 'luatest.c'; then $(CYGPATH_W) 'luatest.c'; else $(CYGPATH_W) '$(srcdir)/luatest.c'; fi` - -@LUA52_TREE@/src/luatry-lua.o: @LUA52_TREE@/src/lua.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luatry_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT @LUA52_TREE@/src/luatry-lua.o -MD -MP -MF @LUA52_TREE@/src/$(DEPDIR)/luatry-lua.Tpo -c -o @LUA52_TREE@/src/luatry-lua.o `test -f '@LUA52_TREE@/src/lua.c' || echo '$(srcdir)/'`@LUA52_TREE@/src/lua.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) @LUA52_TREE@/src/$(DEPDIR)/luatry-lua.Tpo @LUA52_TREE@/src/$(DEPDIR)/luatry-lua.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='@LUA52_TREE@/src/lua.c' object='@LUA52_TREE@/src/luatry-lua.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luatry_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o @LUA52_TREE@/src/luatry-lua.o `test -f '@LUA52_TREE@/src/lua.c' || echo '$(srcdir)/'`@LUA52_TREE@/src/lua.c - -@LUA52_TREE@/src/luatry-lua.obj: @LUA52_TREE@/src/lua.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luatry_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT @LUA52_TREE@/src/luatry-lua.obj -MD -MP -MF @LUA52_TREE@/src/$(DEPDIR)/luatry-lua.Tpo -c -o @LUA52_TREE@/src/luatry-lua.obj `if test -f '@LUA52_TREE@/src/lua.c'; then $(CYGPATH_W) '@LUA52_TREE@/src/lua.c'; else $(CYGPATH_W) '$(srcdir)/@LUA52_TREE@/src/lua.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) @LUA52_TREE@/src/$(DEPDIR)/luatry-lua.Tpo @LUA52_TREE@/src/$(DEPDIR)/luatry-lua.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='@LUA52_TREE@/src/lua.c' object='@LUA52_TREE@/src/luatry-lua.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luatry_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o @LUA52_TREE@/src/luatry-lua.obj `if test -f '@LUA52_TREE@/src/lua.c'; then $(CYGPATH_W) '@LUA52_TREE@/src/lua.c'; else $(CYGPATH_W) '$(srcdir)/@LUA52_TREE@/src/lua.c'; fi` - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -rm -rf @LUA52_TREE@/src/.libs @LUA52_TREE@/src/_libs - -distclean-libtool: - -rm -f libtool config.lt -install-pkgconfigDATA: $(pkgconfig_DATA) - @$(NORMAL_INSTALL) - @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || 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_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ - done - -uninstall-pkgconfigDATA: - @$(NORMAL_UNINSTALL) - @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) -install-lua52includeHEADERS: $(lua52include_HEADERS) - @$(NORMAL_INSTALL) - @list='$(lua52include_HEADERS)'; test -n "$(lua52includedir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(lua52includedir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(lua52includedir)" || 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)$(lua52includedir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(lua52includedir)" || exit $$?; \ - done - -uninstall-lua52includeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(lua52include_HEADERS)'; test -n "$(lua52includedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(lua52includedir)'; $(am__uninstall_files_from_dir) - -# 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 - -# 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) $(dist_check_SCRIPTS) - @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) $(dist_check_SCRIPTS) - @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: - @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) - $(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 - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$(top_distdir)" distdir="$(distdir)" \ - dist-hook - -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 - $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) \ - $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-recursive -all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) config.h -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(lua52includedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -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: - -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) - -rm -f @LUA52_TREE@/src/$(DEPDIR)/$(am__dirstamp) - -rm -f @LUA52_TREE@/src/$(am__dirstamp) - -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-checkPROGRAMS clean-generic clean-libLTLIBRARIES \ - clean-libtool mostlyclean-am - -distclean: distclean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -f ./$(DEPDIR)/luatest-luatest.Po - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lapi.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lauxlib.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lbaselib.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lbitlib.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lcode.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lcorolib.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lctype.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/ldblib.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/ldebug.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/ldo.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/ldump.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lfunc.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lgc.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/linit.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/liolib.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/llex.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lmathlib.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lmem.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/loadlib.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lobject.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lopcodes.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/loslib.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lparser.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lstate.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lstring.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lstrlib.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/ltable.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/ltablib.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/ltm.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/luatry-lua.Po - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lundump.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lvm.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lzio.Plo - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-hdr distclean-libtool distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -html-am: - -info: info-recursive - -info-am: - -install-data-am: install-lua52includeHEADERS install-pkgconfigDATA - -install-dvi: install-dvi-recursive - -install-dvi-am: - -install-exec-am: install-libLTLIBRARIES - -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 ./$(DEPDIR)/luatest-luatest.Po - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lapi.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lauxlib.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lbaselib.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lbitlib.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lcode.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lcorolib.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lctype.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/ldblib.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/ldebug.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/ldo.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/ldump.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lfunc.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lgc.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/linit.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/liolib.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/llex.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lmathlib.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lmem.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/loadlib.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lobject.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lopcodes.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/loslib.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lparser.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lstate.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lstring.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lstrlib.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/ltable.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/ltablib.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/ltm.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/luatry-lua.Po - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lundump.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lvm.Plo - -rm -f @LUA52_TREE@/src/$(DEPDIR)/lzio.Plo - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: uninstall-libLTLIBRARIES uninstall-lua52includeHEADERS \ - uninstall-pkgconfigDATA - -.MAKE: $(am__recursive_targets) all check-am install-am install-strip - -.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ - am--depfiles am--refresh check check-TESTS check-am clean \ - clean-checkPROGRAMS clean-cscope clean-generic \ - clean-libLTLIBRARIES clean-libtool cscope cscopelist-am ctags \ - ctags-am dist dist-all dist-bzip2 dist-gzip dist-hook \ - dist-lzip dist-shar dist-tarZ dist-xz dist-zip distcheck \ - distclean distclean-compile distclean-generic distclean-hdr \ - distclean-libtool 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-libLTLIBRARIES install-lua52includeHEADERS install-man \ - install-pdf install-pdf-am install-pkgconfigDATA install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am \ - uninstall-libLTLIBRARIES uninstall-lua52includeHEADERS \ - uninstall-pkgconfigDATA - -.PRECIOUS: Makefile - -dist-hook: - cd "$(distdir)" && rm -rf $(NEVER_DIST) -lua52.log: luatest$(EXEEXT) -luaerror.log: luatry$(EXEEXT) -rebuild.stamp: $(rebuild_target) - echo timestamp >$@ - -.PHONY: rebuild -rebuild: $(rebuild_prereq) - @dry=; for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=*|--*);; \ - *n*) dry=:;; \ - esac; \ - done; \ - if test -f rebuild.stamp; then :; else \ - $$dry trap 'rm -rf rebuild.lock' 1 2 13 15; \ - if $$dry mkdir rebuild.lock 2>/dev/null; then \ - $(MAKE) $(AM_MAKEFLAGS) rebuild.stamp; \ - $$dry rmdir rebuild.lock; \ - else \ - while test -d rebuild.lock && test -z "$$dry"; do sleep 1; done; \ - fi; \ - $$dry test -f rebuild.stamp; exit $$?; \ - fi - -# 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: diff --git a/source/libs/lua52/TLpatches/ChangeLog b/source/libs/lua52/TLpatches/ChangeLog deleted file mode 100644 index a8f1b4d385ffbec4eaa03eb7d033ff960e511b8f..0000000000000000000000000000000000000000 --- a/source/libs/lua52/TLpatches/ChangeLog +++ /dev/null @@ -1,36 +0,0 @@ -2015-03-11 Peter Breitenlohner <peb@mppmu.mpg.de> - - Import lua-5.2.4/ from http://www.lua.org/ftp/lua-5.2.4.tar.gz. - - * patch-01-utf-8, patch-02-FreeBSD, patch-03-export: Adapted. - -2014-10-22 Peter Breitenlohner <peb@mppmu.mpg.de> - - * patch-03-export (new): Export symbols for LuaTeX (from Luigi). - -2014-02-13 Peter Breitenlohner <peb@mppmu.mpg.de> - - * patch-02-FreeBSD (new): Required for FreeBSD. - From Nikola Lecic <nikola.lecic@anthesphoria.net>. - -2014-02-13 Peter Breitenlohner <peb@mppmu.mpg.de> - - * patch-01-utf-8 (new): Allow utf-8 chars in identifiers. - From Luigi Scarso <luigi.scarso@gmail.com>. - -2012-12-07 Peter Breitenlohner <peb@mppmu.mpg.de> - - Import lua-5.2.3/ from http://www.lua.org/ftp/lua-5.2.3.tar.gz. - -2012-06-25 Peter Breitenlohner <peb@mppmu.mpg.de> - - Import lua-5.2.2/ from http://www.lua.org/ftp/lua-5.2.2.tar.gz. - - * patch-01-const (removed): Now included upstream. - -2012-06-18 Peter Breitenlohner <peb@mppmu.mpg.de> - - Import lua-5.2.1/ from http://www.lua.org/ftp/lua-5.2.1.tar.gz. - - * patch-01-const (new): Add const to avoid warning. - diff --git a/source/libs/lua52/TLpatches/patch-01-utf-8 b/source/libs/lua52/TLpatches/patch-01-utf-8 deleted file mode 100644 index 9ad9749410600bf91b357a34ec8415ce1f14b4ac..0000000000000000000000000000000000000000 --- a/source/libs/lua52/TLpatches/patch-01-utf-8 +++ /dev/null @@ -1,26 +0,0 @@ -diff -ur lua-5.2.4.orig/src/lctype.h lua-5.2.4/src/lctype.h ---- lua-5.2.4.orig/src/lctype.h 2013-04-12 20:48:47.000000000 +0200 -+++ lua-5.2.4/src/lctype.h 2014-02-13 13:17:33.000000000 +0100 -@@ -7,6 +7,8 @@ - #ifndef lctype_h - #define lctype_h - -+#include <ctype.h> -+ - #include "lua.h" - - -@@ -53,9 +55,11 @@ - - /* - ** 'lalpha' (Lua alphabetic) and 'lalnum' (Lua alphanumeric) both include '_' -+** -+** all utf-8 chars (greater than 0x7f) are always alphabetic - */ --#define lislalpha(c) testprop(c, MASK(ALPHABIT)) --#define lislalnum(c) testprop(c, (MASK(ALPHABIT) | MASK(DIGITBIT))) -+#define lislalpha(c) (isalpha(c) || (c) == '_' || (c) > 0x7f) -+#define lislalnum(c) (isalnum(c) || (c) == '_' || (c) > 0x7f) - #define lisdigit(c) testprop(c, MASK(DIGITBIT)) - #define lisspace(c) testprop(c, MASK(SPACEBIT)) - #define lisprint(c) testprop(c, MASK(PRINTBIT)) diff --git a/source/libs/lua52/TLpatches/patch-02-FreeBSD b/source/libs/lua52/TLpatches/patch-02-FreeBSD deleted file mode 100644 index c9465de94460da7bf543f8120e919fce2c27b9c2..0000000000000000000000000000000000000000 --- a/source/libs/lua52/TLpatches/patch-02-FreeBSD +++ /dev/null @@ -1,13 +0,0 @@ -diff -ur lua-5.2.4.orig/src/liolib.c lua-5.2.4/src/liolib.c ---- lua-5.2.4.orig/src/liolib.c 2013-04-12 20:48:47.000000000 +0200 -+++ lua-5.2.4/src/liolib.c 2014-03-19 15:03:49.727286832 +0100 -@@ -19,6 +19,9 @@ - #include <stdio.h> - #include <stdlib.h> - #include <string.h> -+#if defined(HAVE_UNISTD_H) -+#include <unistd.h> -+#endif - - #define liolib_c - #define LUA_LIB diff --git a/source/libs/lua52/TLpatches/patch-03-export b/source/libs/lua52/TLpatches/patch-03-export deleted file mode 100644 index 2c2edd01b6a3bd15b9fc7f47b4caa9063e62d26d..0000000000000000000000000000000000000000 --- a/source/libs/lua52/TLpatches/patch-03-export +++ /dev/null @@ -1,33 +0,0 @@ -diff -ur lua-5.2.4.orig/src/lopcodes.h lua-5.2.4/src/lopcodes.h ---- lua-5.2.4.orig/src/lopcodes.h 2014-10-20 20:32:09.000000000 +0200 -+++ lua-5.2.4/src/lopcodes.h 2015-03-11 08:31:42.000000000 +0100 -@@ -269,7 +269,7 @@ - OpArgK /* argument is a constant or register/constant */ - }; - --LUAI_DDEC const lu_byte luaP_opmodes[NUM_OPCODES]; -+LUA_API const lu_byte luaP_opmodes[NUM_OPCODES]; - - #define getOpMode(m) (cast(enum OpMode, luaP_opmodes[m] & 3)) - #define getBMode(m) (cast(enum OpArgMask, (luaP_opmodes[m] >> 4) & 3)) -@@ -278,7 +278,7 @@ - #define testTMode(m) (luaP_opmodes[m] & (1 << 7)) - - --LUAI_DDEC const char *const luaP_opnames[NUM_OPCODES+1]; /* opcode names */ -+LUA_API const char *const luaP_opnames[NUM_OPCODES+1]; /* opcode names */ - - - /* number of list items to accumulate before a SETLIST instruction */ -diff -ur lua-5.2.4.orig/src/lundump.h lua-5.2.4/src/lundump.h ---- lua-5.2.4.orig/src/lundump.h 2013-04-12 20:48:47.000000000 +0200 -+++ lua-5.2.4/src/lundump.h 2014-10-22 11:14:59.000000000 +0200 -@@ -17,7 +17,7 @@ - LUAI_FUNC void luaU_header (lu_byte* h); - - /* dump one chunk; from ldump.c */ --LUAI_FUNC int luaU_dump (lua_State* L, const Proto* f, lua_Writer w, void* data, int strip); -+LUA_API int luaU_dump (lua_State* L, const Proto* f, lua_Writer w, void* data, int strip); - - /* data to catch conversion errors */ - #define LUAC_TAIL "\x19\x93\r\n\x1a\n" diff --git a/source/libs/lua52/ac/withenable.ac b/source/libs/lua52/ac/withenable.ac deleted file mode 100644 index 2f44378ef48d65b5426f8a01c1b65332c0b0cdc1..0000000000000000000000000000000000000000 --- a/source/libs/lua52/ac/withenable.ac +++ /dev/null @@ -1,7 +0,0 @@ -## libs/lua52/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/lua52/ -dnl -dnl Copyright (C) 2013 Peter Breitenlohner <tex-live@tug.org> -dnl You may freely use, modify and/or distribute this file. -dnl -## configure options and TL libraries required for lua52 -KPSE_WITH_LIB([lua52], , [tree]) diff --git a/source/libs/lua52/aclocal.m4 b/source/libs/lua52/aclocal.m4 deleted file mode 100644 index f614d40abae1e5e4f4d3ba9f09d34dde7c99d1c8..0000000000000000000000000000000000000000 --- a/source/libs/lua52/aclocal.m4 +++ /dev/null @@ -1,1183 +0,0 @@ -# generated automatically by aclocal 1.16.1 -*- Autoconf -*- - -# Copyright (C) 1996-2018 Free Software Foundation, Inc. - -# This file 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. - -m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, -[m4_warning([this file was generated for autoconf 2.69. -You have another version of autoconf. It may work, but is not guaranteed to. -If you have problems, you may need to regenerate the build system entirely. -To do so, use the procedure documented by the package, typically 'autoreconf'.])]) - -# Copyright (C) 2002-2018 Free Software Foundation, Inc. -# -# This file 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. - -# AM_AUTOMAKE_VERSION(VERSION) -# ---------------------------- -# Automake X.Y traces this macro to ensure aclocal.m4 has been -# generated from the m4 files accompanying Automake X.Y. -# (This private macro should not be called outside this file.) -AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.16' -dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to -dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.16.1], [], - [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl -]) - -# _AM_AUTOCONF_VERSION(VERSION) -# ----------------------------- -# aclocal traces this macro to find the Autoconf version. -# This is a private macro too. Using m4_define simplifies -# the logic in aclocal, which can simply ignore this definition. -m4_define([_AM_AUTOCONF_VERSION], []) - -# AM_SET_CURRENT_AUTOMAKE_VERSION -# ------------------------------- -# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. -# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. -AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.16.1])dnl -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) - -# AM_AUX_DIR_EXPAND -*- Autoconf -*- - -# Copyright (C) 2001-2018 Free Software Foundation, Inc. -# -# This file 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. - -# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to -# '$srcdir', '$srcdir/..', or '$srcdir/../..'. -# -# Of course, Automake must honor this variable whenever it calls a -# tool from the auxiliary directory. The problem is that $srcdir (and -# therefore $ac_aux_dir as well) can be either absolute or relative, -# depending on how configure is run. This is pretty annoying, since -# it makes $ac_aux_dir quite unusable in subdirectories: in the top -# source directory, any form will work fine, but in subdirectories a -# relative path needs to be adjusted first. -# -# $ac_aux_dir/missing -# fails when called from a subdirectory if $ac_aux_dir is relative -# $top_srcdir/$ac_aux_dir/missing -# fails if $ac_aux_dir is absolute, -# fails when called from a subdirectory in a VPATH build with -# a relative $ac_aux_dir -# -# The reason of the latter failure is that $top_srcdir and $ac_aux_dir -# are both prefixed by $srcdir. In an in-source build this is usually -# harmless because $srcdir is '.', but things will broke when you -# start a VPATH build or use an absolute $srcdir. -# -# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, -# iff we strip the leading $srcdir from $ac_aux_dir. That would be: -# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` -# and then we would define $MISSING as -# MISSING="\${SHELL} $am_aux_dir/missing" -# This will work as long as MISSING is not called from configure, because -# unfortunately $(top_srcdir) has no meaning in configure. -# However there are other variables, like CC, which are often used in -# configure, and could therefore not use this "fixed" $ac_aux_dir. -# -# Another solution, used here, is to always expand $ac_aux_dir to an -# absolute PATH. The drawback is that using absolute paths prevent a -# configured tree to be moved without reconfiguration. - -AC_DEFUN([AM_AUX_DIR_EXPAND], -[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl -# Expand $ac_aux_dir to an absolute path. -am_aux_dir=`cd "$ac_aux_dir" && pwd` -]) - -# AM_CONDITIONAL -*- Autoconf -*- - -# Copyright (C) 1997-2018 Free Software Foundation, Inc. -# -# This file 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. - -# AM_CONDITIONAL(NAME, SHELL-CONDITION) -# ------------------------------------- -# Define a conditional. -AC_DEFUN([AM_CONDITIONAL], -[AC_PREREQ([2.52])dnl - m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl -AC_SUBST([$1_TRUE])dnl -AC_SUBST([$1_FALSE])dnl -_AM_SUBST_NOTMAKE([$1_TRUE])dnl -_AM_SUBST_NOTMAKE([$1_FALSE])dnl -m4_define([_AM_COND_VALUE_$1], [$2])dnl -if $2; then - $1_TRUE= - $1_FALSE='#' -else - $1_TRUE='#' - $1_FALSE= -fi -AC_CONFIG_COMMANDS_PRE( -[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then - AC_MSG_ERROR([[conditional "$1" was never defined. -Usually this means the macro was only invoked conditionally.]]) -fi])]) - -# Copyright (C) 1999-2018 Free Software Foundation, Inc. -# -# This file 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. - - -# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be -# written in clear, in which case automake, when reading aclocal.m4, -# will think it sees a *use*, and therefore will trigger all it's -# C support machinery. Also note that it means that autoscan, seeing -# CC etc. in the Makefile, will ask for an AC_PROG_CC use... - - -# _AM_DEPENDENCIES(NAME) -# ---------------------- -# See how the compiler implements dependency checking. -# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". -# We try a few techniques and use that to set a single cache variable. -# -# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was -# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular -# dependency, and given that the user is not expected to run this macro, -# just rely on AC_PROG_CC. -AC_DEFUN([_AM_DEPENDENCIES], -[AC_REQUIRE([AM_SET_DEPDIR])dnl -AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl -AC_REQUIRE([AM_MAKE_INCLUDE])dnl -AC_REQUIRE([AM_DEP_TRACK])dnl - -m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], - [$1], [CXX], [depcc="$CXX" am_compiler_list=], - [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], - [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], - [$1], [UPC], [depcc="$UPC" am_compiler_list=], - [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], - [depcc="$$1" am_compiler_list=]) - -AC_CACHE_CHECK([dependency style of $depcc], - [am_cv_$1_dependencies_compiler_type], -[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_$1_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` - fi - am__universal=false - m4_case([$1], [CC], - [case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac], - [CXX], - [case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac]) - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_$1_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_$1_dependencies_compiler_type=none -fi -]) -AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) -AM_CONDITIONAL([am__fastdep$1], [ - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) -]) - - -# AM_SET_DEPDIR -# ------------- -# Choose a directory name for dependency files. -# This macro is AC_REQUIREd in _AM_DEPENDENCIES. -AC_DEFUN([AM_SET_DEPDIR], -[AC_REQUIRE([AM_SET_LEADING_DOT])dnl -AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl -]) - - -# AM_DEP_TRACK -# ------------ -AC_DEFUN([AM_DEP_TRACK], -[AC_ARG_ENABLE([dependency-tracking], [dnl -AS_HELP_STRING( - [--enable-dependency-tracking], - [do not reject slow dependency extractors]) -AS_HELP_STRING( - [--disable-dependency-tracking], - [speeds up one-time build])]) -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' - am__nodep='_no' -fi -AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -AC_SUBST([AMDEPBACKSLASH])dnl -_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl -AC_SUBST([am__nodep])dnl -_AM_SUBST_NOTMAKE([am__nodep])dnl -]) - -# Generate code to set up dependency tracking. -*- Autoconf -*- - -# Copyright (C) 1999-2018 Free Software Foundation, Inc. -# -# This file 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. - -# _AM_OUTPUT_DEPENDENCY_COMMANDS -# ------------------------------ -AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], -[{ - # Older Autoconf quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - # TODO: see whether this extra hack can be removed once we start - # requiring Autoconf 2.70 or later. - AS_CASE([$CONFIG_FILES], - [*\'*], [eval set x "$CONFIG_FILES"], - [*], [set x $CONFIG_FILES]) - shift - # Used to flag and report bootstrapping failures. - am_rc=0 - for am_mf - do - # Strip MF so we end up with the name of the file. - am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile which includes - # dependency-tracking related rules and includes. - # Grep'ing the whole file directly is not great: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ - || continue - am_dirpart=`AS_DIRNAME(["$am_mf"])` - am_filepart=`AS_BASENAME(["$am_mf"])` - AM_RUN_LOG([cd "$am_dirpart" \ - && sed -e '/# am--include-marker/d' "$am_filepart" \ - | $MAKE -f - am--depfiles]) || am_rc=$? - done - if test $am_rc -ne 0; then - AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments - for automatic dependency tracking. Try re-running configure with the - '--disable-dependency-tracking' option to at least be able to build - the package (albeit without support for automatic dependency tracking).]) - fi - AS_UNSET([am_dirpart]) - AS_UNSET([am_filepart]) - AS_UNSET([am_mf]) - AS_UNSET([am_rc]) - rm -f conftest-deps.mk -} -])# _AM_OUTPUT_DEPENDENCY_COMMANDS - - -# AM_OUTPUT_DEPENDENCY_COMMANDS -# ----------------------------- -# This macro should only be invoked once -- use via AC_REQUIRE. -# -# This code is only required when automatic dependency tracking is enabled. -# This creates each '.Po' and '.Plo' makefile fragment that we'll need in -# order to bootstrap the dependency handling code. -AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], -[AC_CONFIG_COMMANDS([depfiles], - [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])]) - -# Do all the work for Automake. -*- Autoconf -*- - -# Copyright (C) 1996-2018 Free Software Foundation, Inc. -# -# This file 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 macro actually does too much. Some checks are only needed if -# your package does certain things. But this isn't really a big deal. - -dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. -m4_define([AC_PROG_CC], -m4_defn([AC_PROG_CC]) -[_AM_PROG_CC_C_O -]) - -# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) -# AM_INIT_AUTOMAKE([OPTIONS]) -# ----------------------------------------------- -# The call with PACKAGE and VERSION arguments is the old style -# call (pre autoconf-2.50), which is being phased out. PACKAGE -# and VERSION should now be passed to AC_INIT and removed from -# the call to AM_INIT_AUTOMAKE. -# We support both call styles for the transition. After -# the next Automake release, Autoconf can make the AC_INIT -# arguments mandatory, and then we can depend on a new Autoconf -# release and drop the old call support. -AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_PREREQ([2.65])dnl -dnl Autoconf wants to disallow AM_ names. We explicitly allow -dnl the ones we care about. -m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl -AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl -AC_REQUIRE([AC_PROG_INSTALL])dnl -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi -AC_SUBST([CYGPATH_W]) - -# Define the identity of the package. -dnl Distinguish between old-style and new-style calls. -m4_ifval([$2], -[AC_DIAGNOSE([obsolete], - [$0: two- and three-arguments forms are deprecated.]) -m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl - AC_SUBST([PACKAGE], [$1])dnl - AC_SUBST([VERSION], [$2])], -[_AM_SET_OPTIONS([$1])dnl -dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. -m4_if( - m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), - [ok:ok],, - [m4_fatal([AC_INIT should be called with package and version arguments])])dnl - AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl - AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl - -_AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) - AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl - -# Some tools Automake needs. -AC_REQUIRE([AM_SANITY_CHECK])dnl -AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) -AM_MISSING_PROG([AUTOCONF], [autoconf]) -AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) -AM_MISSING_PROG([AUTOHEADER], [autoheader]) -AM_MISSING_PROG([MAKEINFO], [makeinfo]) -AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl -AC_REQUIRE([AC_PROG_MKDIR_P])dnl -# For better backward compatibility. To be removed once Automake 1.9.x -# dies out for good. For more background, see: -# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> -# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> -AC_SUBST([mkdir_p], ['$(MKDIR_P)']) -# We need awk for the "check" target (and possibly the TAP driver). The -# system "awk" is bad on some platforms. -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([AC_PROG_MAKE_SET])dnl -AC_REQUIRE([AM_SET_LEADING_DOT])dnl -_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], - [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], - [_AM_PROG_TAR([v7])])]) -_AM_IF_OPTION([no-dependencies],, -[AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES([CC])], - [m4_define([AC_PROG_CC], - m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES([CXX])], - [m4_define([AC_PROG_CXX], - m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJC], - [_AM_DEPENDENCIES([OBJC])], - [m4_define([AC_PROG_OBJC], - m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], - [_AM_DEPENDENCIES([OBJCXX])], - [m4_define([AC_PROG_OBJCXX], - m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl -]) -AC_REQUIRE([AM_SILENT_RULES])dnl -dnl The testsuite driver may need to know about EXEEXT, so add the -dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This -dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. -AC_CONFIG_COMMANDS_PRE(dnl -[m4_provide_if([_AM_COMPILER_EXEEXT], - [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl - -# POSIX will say in a future version that running "rm -f" with no argument -# is OK; and we want to be able to make that assumption in our Makefile -# recipes. So use an aggressive probe to check that the usage we want is -# actually supported "in the wild" to an acceptable degree. -# See automake bug#10828. -# To make any issue more visible, cause the running configure to be aborted -# by default if the 'rm' program in use doesn't match our expectations; the -# user can still override this though. -if rm -f && rm -fr && rm -rf; then : OK; else - cat >&2 <<'END' -Oops! - -Your 'rm' program seems unable to run without file operands specified -on the command line, even when the '-f' option is present. This is contrary -to the behaviour of most rm programs out there, and not conforming with -the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542> - -Please tell bug-automake@gnu.org about your system, including the value -of your $PATH and any error possibly output before this message. This -can help us improve future automake versions. - -END - if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then - echo 'Configuration will proceed anyway, since you have set the' >&2 - echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 - echo >&2 - else - cat >&2 <<'END' -Aborting the configuration process, to ensure you take notice of the issue. - -You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: <https://www.gnu.org/software/coreutils/>. - -If you want to complete the configuration process using your problematic -'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM -to "yes", and re-run configure. - -END - AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) - fi -fi -dnl The trailing newline in this macro's definition is deliberate, for -dnl backward compatibility and to allow trailing 'dnl'-style comments -dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. -]) - -dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not -dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further -dnl mangled by Autoconf and run in a shell conditional statement. -m4_define([_AC_COMPILER_EXEEXT], -m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) - -# When config.status generates a header, we must update the stamp-h file. -# This file resides in the same directory as the config header -# that is generated. The stamp files are numbered to have different names. - -# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the -# loop where config.status creates the headers, so we can generate -# our stamp files there. -AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], -[# Compute $1's index in $config_headers. -_am_arg=$1 -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $_am_arg | $_am_arg:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) - -# Copyright (C) 2001-2018 Free Software Foundation, Inc. -# -# This file 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. - -# AM_PROG_INSTALL_SH -# ------------------ -# Define $install_sh. -AC_DEFUN([AM_PROG_INSTALL_SH], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -if test x"${install_sh+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi -AC_SUBST([install_sh])]) - -# Copyright (C) 2003-2018 Free Software Foundation, Inc. -# -# This file 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. - -# Check whether the underlying file-system supports filenames -# with a leading dot. For instance MS-DOS doesn't. -AC_DEFUN([AM_SET_LEADING_DOT], -[rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null -AC_SUBST([am__leading_dot])]) - -# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- -# From Jim Meyering - -# Copyright (C) 1996-2018 Free Software Foundation, Inc. -# -# This file 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. - -# AM_MAINTAINER_MODE([DEFAULT-MODE]) -# ---------------------------------- -# Control maintainer-specific portions of Makefiles. -# Default is to disable them, unless 'enable' is passed literally. -# For symmetry, 'disable' may be passed as well. Anyway, the user -# can override the default with the --enable/--disable switch. -AC_DEFUN([AM_MAINTAINER_MODE], -[m4_case(m4_default([$1], [disable]), - [enable], [m4_define([am_maintainer_other], [disable])], - [disable], [m4_define([am_maintainer_other], [enable])], - [m4_define([am_maintainer_other], [enable]) - m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) -AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) - dnl maintainer-mode's default is 'disable' unless 'enable' is passed - AC_ARG_ENABLE([maintainer-mode], - [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], - am_maintainer_other[ make rules and dependencies not useful - (and sometimes confusing) to the casual installer])], - [USE_MAINTAINER_MODE=$enableval], - [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) - AC_MSG_RESULT([$USE_MAINTAINER_MODE]) - AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) - MAINT=$MAINTAINER_MODE_TRUE - AC_SUBST([MAINT])dnl -] -) - -# Check to see how 'make' treats includes. -*- Autoconf -*- - -# Copyright (C) 2001-2018 Free Software Foundation, Inc. -# -# This file 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. - -# AM_MAKE_INCLUDE() -# ----------------- -# Check whether make has an 'include' directive that can support all -# the idioms we need for our automatic dependency tracking code. -AC_DEFUN([AM_MAKE_INCLUDE], -[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive]) -cat > confinc.mk << 'END' -am__doit: - @echo this is the am__doit target >confinc.out -.PHONY: am__doit -END -am__include="#" -am__quote= -# BSD make does it like this. -echo '.include "confinc.mk" # ignored' > confmf.BSD -# Other make implementations (GNU, Solaris 10, AIX) do it like this. -echo 'include confinc.mk # ignored' > confmf.GNU -_am_result=no -for s in GNU BSD; do - AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out]) - AS_CASE([$?:`cat confinc.out 2>/dev/null`], - ['0:this is the am__doit target'], - [AS_CASE([$s], - [BSD], [am__include='.include' am__quote='"'], - [am__include='include' am__quote=''])]) - if test "$am__include" != "#"; then - _am_result="yes ($s style)" - break - fi -done -rm -f confinc.* confmf.* -AC_MSG_RESULT([${_am_result}]) -AC_SUBST([am__include])]) -AC_SUBST([am__quote])]) - -# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- - -# Copyright (C) 1997-2018 Free Software Foundation, Inc. -# -# This file 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. - -# AM_MISSING_PROG(NAME, PROGRAM) -# ------------------------------ -AC_DEFUN([AM_MISSING_PROG], -[AC_REQUIRE([AM_MISSING_HAS_RUN]) -$1=${$1-"${am_missing_run}$2"} -AC_SUBST($1)]) - -# AM_MISSING_HAS_RUN -# ------------------ -# Define MISSING if not defined so far and test if it is modern enough. -# If it is, set am_missing_run to use it, otherwise, to nothing. -AC_DEFUN([AM_MISSING_HAS_RUN], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([missing])dnl -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac -fi -# Use eval to expand $SHELL -if eval "$MISSING --is-lightweight"; then - am_missing_run="$MISSING " -else - am_missing_run= - AC_MSG_WARN(['missing' script is too old or missing]) -fi -]) - -# Helper functions for option handling. -*- Autoconf -*- - -# Copyright (C) 2001-2018 Free Software Foundation, Inc. -# -# This file 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. - -# _AM_MANGLE_OPTION(NAME) -# ----------------------- -AC_DEFUN([_AM_MANGLE_OPTION], -[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) - -# _AM_SET_OPTION(NAME) -# -------------------- -# Set option NAME. Presently that only means defining a flag for this option. -AC_DEFUN([_AM_SET_OPTION], -[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) - -# _AM_SET_OPTIONS(OPTIONS) -# ------------------------ -# OPTIONS is a space-separated list of Automake options. -AC_DEFUN([_AM_SET_OPTIONS], -[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) - -# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) -# ------------------------------------------- -# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -AC_DEFUN([_AM_IF_OPTION], -[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) - -# Copyright (C) 1999-2018 Free Software Foundation, Inc. -# -# This file 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. - -# _AM_PROG_CC_C_O -# --------------- -# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC -# to automatically call this. -AC_DEFUN([_AM_PROG_CC_C_O], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([compile])dnl -AC_LANG_PUSH([C])dnl -AC_CACHE_CHECK( - [whether $CC understands -c and -o together], - [am_cv_prog_cc_c_o], - [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) - # Make sure it works both with $CC and with simple cc. - # Following AC_PROG_CC_C_O, we do the test twice because some - # compilers refuse to overwrite an existing .o file with -o, - # though they will create one. - am_cv_prog_cc_c_o=yes - for am_i in 1 2; do - if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ - && test -f conftest2.$ac_objext; then - : OK - else - am_cv_prog_cc_c_o=no - break - fi - done - rm -f core conftest* - unset am_i]) -if test "$am_cv_prog_cc_c_o" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi -AC_LANG_POP([C])]) - -# For backward compatibility. -AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) - -# Copyright (C) 2001-2018 Free Software Foundation, Inc. -# -# This file 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. - -# AM_RUN_LOG(COMMAND) -# ------------------- -# Run COMMAND, save the exit status in ac_status, and log it. -# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) -AC_DEFUN([AM_RUN_LOG], -[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD - ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - (exit $ac_status); }]) - -# Check to make sure that the build environment is sane. -*- Autoconf -*- - -# Copyright (C) 1996-2018 Free Software Foundation, Inc. -# -# This file 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. - -# AM_SANITY_CHECK -# --------------- -AC_DEFUN([AM_SANITY_CHECK], -[AC_MSG_CHECKING([whether build environment is sane]) -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[[\\\"\#\$\&\'\`$am_lf]]*) - AC_MSG_ERROR([unsafe absolute working directory name]);; -esac -case $srcdir in - *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) - AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; -esac - -# Do 'set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken - alias in your environment]) - fi - if test "$[2]" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$[2]" = conftest.file - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! -Check your system clock]) -fi -AC_MSG_RESULT([yes]) -# If we didn't sleep, we still need to ensure time stamps of config.status and -# generated files are strictly newer. -am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & - am_sleep_pid=$! -fi -AC_CONFIG_COMMANDS_PRE( - [AC_MSG_CHECKING([that generated files are newer than configure]) - if test -n "$am_sleep_pid"; then - # Hide warnings about reused PIDs. - wait $am_sleep_pid 2>/dev/null - fi - AC_MSG_RESULT([done])]) -rm -f conftest.file -]) - -# Copyright (C) 2009-2018 Free Software Foundation, Inc. -# -# This file 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. - -# AM_SILENT_RULES([DEFAULT]) -# -------------------------- -# Enable less verbose build rules; with the default set to DEFAULT -# ("yes" being less verbose, "no" or empty being verbose). -AC_DEFUN([AM_SILENT_RULES], -[AC_ARG_ENABLE([silent-rules], [dnl -AS_HELP_STRING( - [--enable-silent-rules], - [less verbose build output (undo: "make V=1")]) -AS_HELP_STRING( - [--disable-silent-rules], - [verbose build output (undo: "make V=0")])dnl -]) -case $enable_silent_rules in @%:@ ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; -esac -dnl -dnl A few 'make' implementations (e.g., NonStop OS and NextStep) -dnl do not support nested variable expansions. -dnl See automake bug#9928 and bug#10237. -am_make=${MAKE-make} -AC_CACHE_CHECK([whether $am_make supports nested variables], - [am_cv_make_support_nested_variables], - [if AS_ECHO([['TRUE=$(BAR$(V)) -BAR0=false -BAR1=true -V=1 -am__doit: - @$(TRUE) -.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then - am_cv_make_support_nested_variables=yes -else - am_cv_make_support_nested_variables=no -fi]) -if test $am_cv_make_support_nested_variables = yes; then - dnl Using '$V' instead of '$(V)' breaks IRIX make. - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi -AC_SUBST([AM_V])dnl -AM_SUBST_NOTMAKE([AM_V])dnl -AC_SUBST([AM_DEFAULT_V])dnl -AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl -AC_SUBST([AM_DEFAULT_VERBOSITY])dnl -AM_BACKSLASH='\' -AC_SUBST([AM_BACKSLASH])dnl -_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl -]) - -# Copyright (C) 2001-2018 Free Software Foundation, Inc. -# -# This file 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. - -# AM_PROG_INSTALL_STRIP -# --------------------- -# One issue with vendor 'install' (even GNU) is that you can't -# specify the program used to strip binaries. This is especially -# annoying in cross-compiling environments, where the build's strip -# is unlikely to handle the host's binaries. -# Fortunately install-sh will honor a STRIPPROG variable, so we -# always use install-sh in "make install-strip", and initialize -# STRIPPROG with the value of the STRIP variable (set by the user). -AC_DEFUN([AM_PROG_INSTALL_STRIP], -[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using 'strip' when the user -# run "make install-strip". However 'strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the 'STRIP' environment variable to overrule this program. -dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. -if test "$cross_compiling" != no; then - AC_CHECK_TOOL([STRIP], [strip], :) -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" -AC_SUBST([INSTALL_STRIP_PROGRAM])]) - -# Copyright (C) 2006-2018 Free Software Foundation, Inc. -# -# This file 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. - -# _AM_SUBST_NOTMAKE(VARIABLE) -# --------------------------- -# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. -# This macro is traced by Automake. -AC_DEFUN([_AM_SUBST_NOTMAKE]) - -# AM_SUBST_NOTMAKE(VARIABLE) -# -------------------------- -# Public sister of _AM_SUBST_NOTMAKE. -AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) - -# Check how to create a tarball. -*- Autoconf -*- - -# Copyright (C) 2004-2018 Free Software Foundation, Inc. -# -# This file 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. - -# _AM_PROG_TAR(FORMAT) -# -------------------- -# Check how to create a tarball in format FORMAT. -# FORMAT should be one of 'v7', 'ustar', or 'pax'. -# -# Substitute a variable $(am__tar) that is a command -# writing to stdout a FORMAT-tarball containing the directory -# $tardir. -# tardir=directory && $(am__tar) > result.tar -# -# Substitute a variable $(am__untar) that extract such -# a tarball read from stdin. -# $(am__untar) < result.tar -# -AC_DEFUN([_AM_PROG_TAR], -[# Always define AMTAR for backward compatibility. Yes, it's still used -# in the wild :-( We should find a proper way to deprecate it ... -AC_SUBST([AMTAR], ['$${TAR-tar}']) - -# We'll loop over all known methods to create a tar archive until one works. -_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' - -m4_if([$1], [v7], - [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], - - [m4_case([$1], - [ustar], - [# The POSIX 1988 'ustar' format is defined with fixed-size fields. - # There is notably a 21 bits limit for the UID and the GID. In fact, - # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 - # and bug#13588). - am_max_uid=2097151 # 2^21 - 1 - am_max_gid=$am_max_uid - # The $UID and $GID variables are not portable, so we need to resort - # to the POSIX-mandated id(1) utility. Errors in the 'id' calls - # below are definitely unexpected, so allow the users to see them - # (that is, avoid stderr redirection). - am_uid=`id -u || echo unknown` - am_gid=`id -g || echo unknown` - AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) - if test $am_uid -le $am_max_uid; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - _am_tools=none - fi - AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) - if test $am_gid -le $am_max_gid; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - _am_tools=none - fi], - - [pax], - [], - - [m4_fatal([Unknown tar format])]) - - AC_MSG_CHECKING([how to create a $1 tar archive]) - - # Go ahead even if we have the value already cached. We do so because we - # need to set the values for the 'am__tar' and 'am__untar' variables. - _am_tools=${am_cv_prog_tar_$1-$_am_tools} - - for _am_tool in $_am_tools; do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; do - AM_RUN_LOG([$_am_tar --version]) && break - done - am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x $1 -w "$$tardir"' - am__tar_='pax -L -x $1 -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H $1 -L' - am__tar_='find "$tardir" -print | cpio -o -H $1 -L' - am__untar='cpio -i -H $1 -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac - - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_$1}" && break - - # tar/untar a dummy directory, and stop if the command works. - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) - rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar <conftest.tar]) - AM_RUN_LOG([cat conftest.dir/file]) - grep GrepMe conftest.dir/file >/dev/null 2>&1 && break - fi - done - rm -rf conftest.dir - - AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) - AC_MSG_RESULT([$am_cv_prog_tar_$1])]) - -AC_SUBST([am__tar]) -AC_SUBST([am__untar]) -]) # _AM_PROG_TAR - -m4_include([../../m4/kpse-common.m4]) -m4_include([../../m4/kpse-dll-name.m4]) -m4_include([../../m4/kpse-largefile.m4]) -m4_include([../../m4/kpse-lib-version.m4]) -m4_include([../../m4/kpse-lua52-flags.m4]) -m4_include([../../m4/kpse-warnings.m4]) -m4_include([../../m4/kpse-win32.m4]) -m4_include([../../m4/libtool.m4]) -m4_include([../../m4/ltoptions.m4]) -m4_include([../../m4/ltsugar.m4]) -m4_include([../../m4/ltversion.m4]) -m4_include([../../m4/lt~obsolete.m4]) diff --git a/source/libs/lua52/config.h.in b/source/libs/lua52/config.h.in deleted file mode 100644 index 0aa075a8ffffcecf0dd30ffb6c15d591d2fe71b2..0000000000000000000000000000000000000000 --- a/source/libs/lua52/config.h.in +++ /dev/null @@ -1,81 +0,0 @@ -/* config.h.in. Generated from configure.ac by autoheader. */ - -/* Define to 1 if you have the <dlfcn.h> header file. */ -#undef HAVE_DLFCN_H - -/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ -#undef HAVE_FSEEKO - -/* Define to 1 if you have the <inttypes.h> header file. */ -#undef HAVE_INTTYPES_H - -/* Define to 1 if you have the <memory.h> header file. */ -#undef HAVE_MEMORY_H - -/* Define to 1 if you have the <stdint.h> header file. */ -#undef HAVE_STDINT_H - -/* Define to 1 if you have the <stdlib.h> header file. */ -#undef HAVE_STDLIB_H - -/* Define to 1 if you have the <strings.h> header file. */ -#undef HAVE_STRINGS_H - -/* Define to 1 if you have the <string.h> header file. */ -#undef HAVE_STRING_H - -/* Define to 1 if you have the <sys/stat.h> header file. */ -#undef HAVE_SYS_STAT_H - -/* Define to 1 if you have the <sys/types.h> header file. */ -#undef HAVE_SYS_TYPES_H - -/* Define to 1 if you have the <unistd.h> header file. */ -#undef HAVE_UNISTD_H - -/* Define to the sub-directory where libtool stores uninstalled libraries. */ -#undef LT_OBJDIR - -/* 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 - -/* The size of `void *', as computed by sizeof. */ -#undef SIZEOF_VOID_P - -/* Define to 1 if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Version number of package */ -#undef VERSION - -/* Enable large inode numbers on Mac OS X 10.5. */ -#ifndef _DARWIN_USE_64_BIT_INODE -# define _DARWIN_USE_64_BIT_INODE 1 -#endif - -/* Number of bits in a file offset, on hosts where this is settable. */ -#undef _FILE_OFFSET_BITS - -/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */ -#undef _LARGEFILE_SOURCE - -/* Define for large files, on AIX-style hosts. */ -#undef _LARGE_FILES diff --git a/source/libs/lua52/configure b/source/libs/lua52/configure deleted file mode 100755 index f576aed1a71f81abffb48103b00deb351e81bdba..0000000000000000000000000000000000000000 --- a/source/libs/lua52/configure +++ /dev/null @@ -1,16136 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for lua52 (TeX Live) 5.2.4. -# -# Report bugs to <tex-k@tug.org>. -# -# -# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. -# -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -# Use a proper internal environment variable to ensure we don't fall - # into an infinite loop, continuously re-executing ourselves. - if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then - _as_can_reexec=no; export _as_can_reexec; - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 - fi - # We don't want this to propagate to other subprocesses. - { _as_can_reexec=; unset _as_can_reexec;} -if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi -" - as_required="as_fn_return () { (exit \$1); } -as_fn_success () { as_fn_return 0; } -as_fn_failure () { as_fn_return 1; } -as_fn_ret_success () { return 0; } -as_fn_ret_failure () { return 1; } - -exitcode=0 -as_fn_success || { exitcode=1; echo as_fn_success failed.; } -as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } -as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } -as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : - -else - exitcode=1; echo positional parameters were not saved. -fi -test x\$exitcode = x0 || exit 1 -test -x / || exit 1" - as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO - as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO - eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 - - test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( - ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO - ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO - PATH=/empty FPATH=/empty; export PATH FPATH - test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ - || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1 -test \$(( 1 + 1 )) = 2 || exit 1" - if (eval "$as_required") 2>/dev/null; then : - as_have_required=yes -else - as_have_required=no -fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : - -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_found=false -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - as_found=: - case $as_dir in #( - /*) - for as_base in sh bash ksh sh5; do - # Try only shells that exist, to save several forks. - as_shell=$as_dir/$as_base - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : - CONFIG_SHELL=$as_shell as_have_required=yes - if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : - break 2 -fi -fi - done;; - esac - as_found=false -done -$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi; } -IFS=$as_save_IFS - - - if test "x$CONFIG_SHELL" != x; then : - export CONFIG_SHELL - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -exit 255 -fi - - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." - else - $as_echo "$0: Please tell bug-autoconf@gnu.org and tex-k@tug.org -$0: about your system, including any error possibly output -$0: before this message. Then install a modern shell, or -$0: manually run the script under such a shell if you do -$0: have one." - fi - exit 1 -fi -fi -fi -SHELL=${CONFIG_SHELL-/bin/sh} -export SHELL -# Unset more variables known to interfere with behavior of common tools. -CLICOLOR_FORCE= GREP_OPTIONS= -unset CLICOLOR_FORCE GREP_OPTIONS - -## --------------------- ## -## M4sh Shell Functions. ## -## --------------------- ## -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - - - as_lineno_1=$LINENO as_lineno_1a=$LINENO - as_lineno_2=$LINENO as_lineno_2a=$LINENO - eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && - test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { - # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } - - # If we had to re-execute with $CONFIG_SHELL, we're ensured to have - # already done that, so ensure we don't try to do so again and fall - # in an infinite loop. This has already happened in practice. - _as_can_reexec=no; export _as_can_reexec - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - -SHELL=${CONFIG_SHELL-/bin/sh} - - -test -n "$DJDIR" || exec 7<&0 </dev/null -exec 6>&1 - -# Name of the host. -# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIBOBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= - -# Identity of this package. -PACKAGE_NAME='lua52 (TeX Live)' -PACKAGE_TARNAME='lua52--tex-live-' -PACKAGE_VERSION='5.2.4' -PACKAGE_STRING='lua52 (TeX Live) 5.2.4' -PACKAGE_BUGREPORT='tex-k@tug.org' -PACKAGE_URL='' - -ac_unique_file="lua52-src/src/lua.c" -# Factoring default headers for most tests. -ac_includes_default="\ -#include <stdio.h> -#ifdef HAVE_SYS_TYPES_H -# include <sys/types.h> -#endif -#ifdef HAVE_SYS_STAT_H -# include <sys/stat.h> -#endif -#ifdef STDC_HEADERS -# include <stdlib.h> -# include <stddef.h> -#else -# ifdef HAVE_STDLIB_H -# include <stdlib.h> -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include <memory.h> -# endif -# include <string.h> -#endif -#ifdef HAVE_STRINGS_H -# include <strings.h> -#endif -#ifdef HAVE_INTTYPES_H -# include <inttypes.h> -#endif -#ifdef HAVE_STDINT_H -# include <stdint.h> -#endif -#ifdef HAVE_UNISTD_H -# include <unistd.h> -#endif" - -ac_subst_vars='am__EXEEXT_FALSE -am__EXEEXT_TRUE -LTLIBOBJS -LIBOBJS -LUA52_TREE -LUA52_DEFINES -build_FALSE -build_TRUE -CPP -LT_SYS_LIBRARY_PATH -OTOOL64 -OTOOL -LIPO -NMEDIT -DSYMUTIL -MANIFEST_TOOL -ac_ct_AR -AR -NM -ac_ct_DUMPBIN -DUMPBIN -LD -FGREP -EGREP -GREP -SED -host_os -host_vendor -host_cpu -host -build_os -build_vendor -build_cpu -build -LIBTOOL -OBJDUMP -DLLTOOL -AS -LUA52_LT_VERSINFO -LUA52VERSION -LN_S -RANLIB -WARNING_CFLAGS -am__fastdepCC_FALSE -am__fastdepCC_TRUE -CCDEPMODE -am__nodep -AMDEPBACKSLASH -AMDEP_FALSE -AMDEP_TRUE -am__include -DEPDIR -OBJEXT -EXEEXT -ac_ct_CC -CPPFLAGS -LDFLAGS -CFLAGS -CC -MAINT -MAINTAINER_MODE_FALSE -MAINTAINER_MODE_TRUE -AM_BACKSLASH -AM_DEFAULT_VERBOSITY -AM_DEFAULT_V -AM_V -am__untar -am__tar -AMTAR -am__leading_dot -SET_MAKE -AWK -mkdir_p -MKDIR_P -INSTALL_STRIP_PROGRAM -STRIP -install_sh -MAKEINFO -AUTOHEADER -AUTOMAKE -AUTOCONF -ACLOCAL -VERSION -PACKAGE -CYGPATH_W -am__isrc -INSTALL_DATA -INSTALL_SCRIPT -INSTALL_PROGRAM -target_alias -host_alias -build_alias -LIBS -ECHO_T -ECHO_N -ECHO_C -DEFS -mandir -localedir -libdir -psdir -pdfdir -dvidir -htmldir -infodir -docdir -oldincludedir -includedir -localstatedir -sharedstatedir -sysconfdir -datadir -datarootdir -libexecdir -sbindir -bindir -program_transform_name -prefix -exec_prefix -PACKAGE_URL -PACKAGE_BUGREPORT -PACKAGE_STRING -PACKAGE_VERSION -PACKAGE_TARNAME -PACKAGE_NAME -PATH_SEPARATOR -SHELL -am__quote' -ac_subst_files='' -ac_user_opts=' -enable_option_checking -enable_silent_rules -enable_maintainer_mode -enable_dependency_tracking -enable_compiler_warnings -enable_shared -enable_static -with_pic -enable_fast_install -with_aix_soname -with_gnu_ld -with_sysroot -enable_libtool_lock -enable_largefile -' - ac_precious_vars='build_alias -host_alias -target_alias -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -LT_SYS_LIBRARY_PATH -CPP' - - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -ac_unrecognized_opts= -ac_unrecognized_sep= -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval $ac_prev=\$ac_option - ac_prev= - continue - fi - - case $ac_option in - *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *=) ac_optarg= ;; - *) ac_optarg=yes ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=\$ac_optarg ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=\$ac_optarg ;; - - -without-* | --without-*) - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=no ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) as_fn_error $? "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information" - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - case $ac_envvar in #( - '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; - esac - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - as_fn_error $? "missing argument to $ac_option" -fi - -if test -n "$ac_unrecognized_opts"; then - case $enable_option_checking in - no) ;; - fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; - esac -fi - -# Check all directory arguments for consistency. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir -do - eval ac_val=\$$ac_var - # Remove trailing slashes. - case $ac_val in - */ ) - ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` - eval $ac_var=\$ac_val;; - esac - # Be sure to have absolute directory names. - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error $? "working directory cannot be determined" -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error $? "pwd does not report name of working directory" - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$as_myself" || -$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_myself" : 'X\(//\)[^/]' \| \ - X"$as_myself" : 'X\(//\)$' \| \ - X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures lua52 (TeX Live) 5.2.4 to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking ...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root - [DATAROOTDIR/doc/lua52--tex-live-] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_ACEOF - - cat <<\_ACEOF - -Program names: - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM run sed PROGRAM on installed program names - -System types: - --build=BUILD configure for building on BUILD [guessed] - --host=HOST cross-compile to build programs to run on HOST [BUILD] -_ACEOF -fi - -if test -n "$ac_init_help"; then - case $ac_init_help in - short | recursive ) echo "Configuration of lua52 (TeX Live) 5.2.4:";; - esac - cat <<\_ACEOF - -Optional Features: - --disable-option-checking ignore unrecognized --enable/--with options - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-silent-rules less verbose build output (undo: "make V=1") - --disable-silent-rules verbose build output (undo: "make V=0") - --enable-maintainer-mode - enable make rules and dependencies not useful (and - sometimes confusing) to the casual installer - --enable-dependency-tracking - do not reject slow dependency extractors - --disable-dependency-tracking - speeds up one-time build - --enable-compiler-warnings=[no|min|yes|max|all] - Turn on compiler warnings [default: yes if - maintainer-mode, min otherwise] - --enable-shared[=PKGS] build shared libraries [default=yes] - --enable-static[=PKGS] build static libraries [default=yes] - --enable-fast-install[=PKGS] - optimize for fast installation [default=yes] - --disable-libtool-lock avoid locking (might break parallel builds) - --disable-largefile omit support for large files - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use - both] - --with-aix-soname=aix|svr4|both - shared library versioning (aka "SONAME") variant to - provide on AIX, [default=aix]. - --with-gnu-ld assume the C compiler uses GNU ld [default=no] - --with-sysroot[=DIR] Search for dependent libraries within DIR (or the - compiler's sysroot if not specified). - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a - nonstandard directory <lib dir> - LIBS libraries to pass to the linker, e.g. -l<library> - CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if - you have headers in a nonstandard directory <include dir> - LT_SYS_LIBRARY_PATH - User-defined run-time library search path. - CPP C preprocessor - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -Report bugs to <tex-k@tug.org>. -_ACEOF -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || - { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || - continue - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. - if test -f "$ac_srcdir/configure.gnu"; then - echo && - $SHELL "$ac_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_srcdir/configure"; then - echo && - $SHELL "$ac_srcdir/configure" --help=recursive - else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -lua52 (TeX Live) configure 5.2.4 -generated by GNU Autoconf 2.69 - -Copyright (C) 2012 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit -fi - -## ------------------------ ## -## Autoconf initialization. ## -## ------------------------ ## - -# ac_fn_c_try_compile LINENO -# -------------------------- -# Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_compile - -# ac_fn_c_try_link LINENO -# ----------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_link () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - test -x conftest$ac_exeext - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information - # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would - # interfere with the next link command; also delete a directory that is - # left behind by Apple's compiler. We do this before executing the actions. - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_link - -# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists and can be compiled using the include files in -# INCLUDES, setting the cache variable VAR accordingly. -ac_fn_c_check_header_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_compile - -# ac_fn_c_try_cpp LINENO -# ---------------------- -# Try to preprocess conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_cpp () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_cpp - -# ac_fn_c_try_run LINENO -# ---------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes -# that executables *can* be run. -ac_fn_c_try_run () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : - ac_retval=0 -else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=$ac_status -fi - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_run - -# ac_fn_c_check_func LINENO FUNC VAR -# ---------------------------------- -# Tests whether FUNC exists, setting the cache variable VAR accordingly -ac_fn_c_check_func () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Define $2 to an innocuous variant, in case <limits.h> declares $2. - For example, HP-UX 11i <limits.h> declares gettimeofday. */ -#define $2 innocuous_$2 - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $2 (); below. - Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - <limits.h> exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - -#undef $2 - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $2 (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$2 || defined __stub___$2 -choke me -#endif - -int -main () -{ -return $2 (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_func - -# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES -# -------------------------------------------- -# Tries to find the compile-time value of EXPR in a program that includes -# INCLUDES, setting VAR accordingly. Returns whether the value could be -# computed -ac_fn_c_compute_int () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array [1 - 2 * !(($2) >= 0)]; -test_array [0] = 0; -return test_array [0]; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_lo=0 ac_mid=0 - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0; -return test_array [0]; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_hi=$ac_mid; break -else - as_fn_arith $ac_mid + 1 && ac_lo=$as_val - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array [1 - 2 * !(($2) < 0)]; -test_array [0] = 0; -return test_array [0]; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_hi=-1 ac_mid=-1 - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array [1 - 2 * !(($2) >= $ac_mid)]; -test_array [0] = 0; -return test_array [0]; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_lo=$ac_mid; break -else - as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - ac_lo= ac_hi= -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -# Binary search between lo and hi bounds. -while test "x$ac_lo" != "x$ac_hi"; do - as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0; -return test_array [0]; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_hi=$ac_mid -else - as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in #(( -?*) eval "$3=\$ac_lo"; ac_retval=0 ;; -'') ac_retval=1 ;; -esac - else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -static long int longval () { return $2; } -static unsigned long int ulongval () { return $2; } -#include <stdio.h> -#include <stdlib.h> -int -main () -{ - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - return 1; - if (($2) < 0) - { - long int i = longval (); - if (i != ($2)) - return 1; - fprintf (f, "%ld", i); - } - else - { - unsigned long int i = ulongval (); - if (i != ($2)) - return 1; - fprintf (f, "%lu", i); - } - /* Do not output a trailing newline, as this causes \r\n confusion - on some platforms. */ - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - echo >>conftest.val; read $3 <conftest.val; ac_retval=0 -else - ac_retval=1 -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -rm -f conftest.val - - fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_compute_int -cat >config.log <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by lua52 (TeX Live) $as_me 5.2.4, which was -generated by GNU Autoconf 2.69. Invocation command line was - - $ $0 $@ - -_ACEOF -exec 5>>config.log -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" - done -IFS=$as_save_IFS - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; - 2) - as_fn_append ac_configure_args1 " '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - as_fn_append ac_configure_args " '$ac_arg'" - ;; - esac - done -done -{ ac_configure_args0=; unset ac_configure_args0;} -{ ac_configure_args1=; unset ac_configure_args1;} - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - $as_echo "## ---------------- ## -## Cache variables. ## -## ---------------- ##" - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - $as_echo "## ----------------- ## -## Output variables. ## -## ----------------- ##" - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## -## File substitutions. ## -## ------------------- ##" - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - $as_echo "## ----------- ## -## confdefs.h. ## -## ----------- ##" - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h - -$as_echo "/* confdefs.h */" > confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_URL "$PACKAGE_URL" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE -if test -n "$CONFIG_SITE"; then - # We do not want a PATH search for config.site. - case $CONFIG_SITE in #(( - -*) ac_site_file1=./$CONFIG_SITE;; - */*) ac_site_file1=$CONFIG_SITE;; - *) ac_site_file1=./$CONFIG_SITE;; - esac -elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site -else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site -fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" -do - test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" \ - || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5; } - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special files - # actually), so we avoid doing that. DJGPP emulates it as a regular file. - if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) as_fn_append ac_configure_args " '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 -fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - -ac_aux_dir= -for ac_dir in ../../build-aux "$srcdir"/../../build-aux; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in ../../build-aux \"$srcdir\"/../../build-aux" "$LINENO" 5 -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - - - -am__api_version='1.16' - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -# Reject install programs that cannot install multiple files. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 -$as_echo_n "checking for a BSD-compatible install... " >&6; } -if test -z "$INSTALL"; then -if ${ac_cv_path_install+:} false; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in #(( - ./ | .// | /[cC]/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - rm -rf conftest.one conftest.two conftest.dir - echo one > conftest.one - echo two > conftest.two - mkdir conftest.dir - if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && - test -s conftest.one && test -s conftest.two && - test -s conftest.dir/conftest.one && - test -s conftest.dir/conftest.two - then - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - fi - done - done - ;; -esac - - done -IFS=$as_save_IFS - -rm -rf conftest.one conftest.two conftest.dir - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. Don't cache a - # value for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - INSTALL=$ac_install_sh - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 -$as_echo "$INSTALL" >&6; } - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 -$as_echo_n "checking whether build environment is sane... " >&6; } -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[\\\"\#\$\&\'\`$am_lf]*) - as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; -esac -case $srcdir in - *[\\\"\#\$\&\'\`$am_lf\ \ ]*) - as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; -esac - -# Do 'set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - as_fn_error $? "ls -t appears to fail. Make sure there is not a broken - alias in your environment" "$LINENO" 5 - fi - if test "$2" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$2" = conftest.file - ) -then - # Ok. - : -else - as_fn_error $? "newly created file is older than distributed files! -Check your system clock" "$LINENO" 5 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -# If we didn't sleep, we still need to ensure time stamps of config.status and -# generated files are strictly newer. -am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & - am_sleep_pid=$! -fi - -rm -f conftest.file - -test "$program_prefix" != NONE && - program_transform_name="s&^&$program_prefix&;$program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s&\$&$program_suffix&;$program_transform_name" -# Double any \ or $. -# By default was `s,x,x', remove it if useless. -ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' -program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` - -# Expand $ac_aux_dir to an absolute path. -am_aux_dir=`cd "$ac_aux_dir" && pwd` - -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac -fi -# Use eval to expand $SHELL -if eval "$MISSING --is-lightweight"; then - am_missing_run="$MISSING " -else - am_missing_run= - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} -fi - -if test x"${install_sh+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi - -# Installed binaries are usually stripped using 'strip' when the user -# run "make install-strip". However 'strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the 'STRIP' environment variable to overrule this program. -if test "$cross_compiling" != no; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 -$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } -if test -z "$MKDIR_P"; then - if ${ac_cv_path_mkdir+:} false; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in mkdir gmkdir; do - for ac_exec_ext in '' $ac_executable_extensions; do - as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue - case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( - 'mkdir (GNU coreutils) '* | \ - 'mkdir (coreutils) '* | \ - 'mkdir (fileutils) '4.1*) - ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext - break 3;; - esac - done - done - done -IFS=$as_save_IFS - -fi - - test -d ./--version && rmdir ./--version - if test "${ac_cv_path_mkdir+set}" = set; then - MKDIR_P="$ac_cv_path_mkdir -p" - else - # As a last resort, use the slow shell script. Don't cache a - # value for MKDIR_P within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - MKDIR_P="$ac_install_sh -d" - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 -$as_echo "$MKDIR_P" >&6; } - -for ac_prog in gawk mawk nawk awk -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AWK+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AWK"; then - ac_cv_prog_AWK="$AWK" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AWK="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 -$as_echo "$AWK" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$AWK" && break -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } -set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -f conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - SET_MAKE= -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - SET_MAKE="MAKE=${MAKE-make}" -fi - -rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null - -# Check whether --enable-silent-rules was given. -if test "${enable_silent_rules+set}" = set; then : - enableval=$enable_silent_rules; -fi - -case $enable_silent_rules in # ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=1;; -esac -am_make=${MAKE-make} -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 -$as_echo_n "checking whether $am_make supports nested variables... " >&6; } -if ${am_cv_make_support_nested_variables+:} false; then : - $as_echo_n "(cached) " >&6 -else - if $as_echo 'TRUE=$(BAR$(V)) -BAR0=false -BAR1=true -V=1 -am__doit: - @$(TRUE) -.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then - am_cv_make_support_nested_variables=yes -else - am_cv_make_support_nested_variables=no -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 -$as_echo "$am_cv_make_support_nested_variables" >&6; } -if test $am_cv_make_support_nested_variables = yes; then - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi -AM_BACKSLASH='\' - -DEPDIR="${am__leading_dot}deps" - -ac_config_commands="$ac_config_commands depfiles" - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 -$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; } -cat > confinc.mk << 'END' -am__doit: - @echo this is the am__doit target >confinc.out -.PHONY: am__doit -END -am__include="#" -am__quote= -# BSD make does it like this. -echo '.include "confinc.mk" # ignored' > confmf.BSD -# Other make implementations (GNU, Solaris 10, AIX) do it like this. -echo 'include confinc.mk # ignored' > confmf.GNU -_am_result=no -for s in GNU BSD; do - { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5 - (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - case $?:`cat confinc.out 2>/dev/null` in #( - '0:this is the am__doit target') : - case $s in #( - BSD) : - am__include='.include' am__quote='"' ;; #( - *) : - am__include='include' am__quote='' ;; -esac ;; #( - *) : - ;; -esac - if test "$am__include" != "#"; then - _am_result="yes ($s style)" - break - fi -done -rm -f confinc.* confmf.* -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 -$as_echo "${_am_result}" >&6; } - -# Check whether --enable-dependency-tracking was given. -if test "${enable_dependency_tracking+set}" = set; then : - enableval=$enable_dependency_tracking; -fi - -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' - am__nodep='_no' -fi - if test "x$enable_dependency_tracking" != xno; then - AMDEP_TRUE= - AMDEP_FALSE='#' -else - AMDEP_TRUE='#' - AMDEP_FALSE= -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` - -# The possible output files: -ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" - -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { { ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi -if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -ac_exeext=$ac_cv_exeext - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } -if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <stdio.h> -int -main () -{ -FILE *f = fopen ("conftest.out", "w"); - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -ac_clean_files="$ac_clean_files conftest.out" -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -if test "$cross_compiling" != yes; then - { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if { ac_try='./conftest$ac_cv_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5; } - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if ${ac_cv_objext+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <stdarg.h> -#include <stdio.h> -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 -$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } -if ${am_cv_prog_cc_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF - # Make sure it works both with $CC and with simple cc. - # Following AC_PROG_CC_C_O, we do the test twice because some - # compilers refuse to overwrite an existing .o file with -o, - # though they will create one. - am_cv_prog_cc_c_o=yes - for am_i in 1 2; do - if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 - ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } \ - && test -f conftest2.$ac_objext; then - : OK - else - am_cv_prog_cc_c_o=no - break - fi - done - rm -f core conftest* - unset am_i -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 -$as_echo "$am_cv_prog_cc_c_o" >&6; } -if test "$am_cv_prog_cc_c_o" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -depcc="$CC" am_compiler_list= - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if ${am_cv_CC_dependencies_compiler_type+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= -fi - - - -# Check whether --enable-compiler-warnings was given. -if test "${enable_compiler_warnings+set}" = set; then : - enableval=$enable_compiler_warnings; -fi -case $enable_compiler_warnings in #( - no | min | yes | max | all) : - ;; #( - *) : - if test "x$enable_maintainer_mode" = xyes; then : - enable_compiler_warnings=yes -else - enable_compiler_warnings=min -fi ;; -esac - - -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - am__isrc=' -I$(srcdir)' - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi - - -# Define the identity of the package. - PACKAGE='lua52--tex-live-' - VERSION='5.2.4' - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE "$PACKAGE" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define VERSION "$VERSION" -_ACEOF - -# Some tools Automake needs. - -ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} - - -AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} - - -AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} - - -AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} - - -MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} - -# For better backward compatibility. To be removed once Automake 1.9.x -# dies out for good. For more background, see: -# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> -# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> -mkdir_p='$(MKDIR_P)' - -# We need awk for the "check" target (and possibly the TAP driver). The -# system "awk" is bad on some platforms. -# Always define AMTAR for backward compatibility. Yes, it's still used -# in the wild :-( We should find a proper way to deprecate it ... -AMTAR='$${TAR-tar}' - - -# We'll loop over all known methods to create a tar archive until one works. -_am_tools='gnutar pax cpio none' - -am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' - - - - - - -# POSIX will say in a future version that running "rm -f" with no argument -# is OK; and we want to be able to make that assumption in our Makefile -# recipes. So use an aggressive probe to check that the usage we want is -# actually supported "in the wild" to an acceptable degree. -# See automake bug#10828. -# To make any issue more visible, cause the running configure to be aborted -# by default if the 'rm' program in use doesn't match our expectations; the -# user can still override this though. -if rm -f && rm -fr && rm -rf; then : OK; else - cat >&2 <<'END' -Oops! - -Your 'rm' program seems unable to run without file operands specified -on the command line, even when the '-f' option is present. This is contrary -to the behaviour of most rm programs out there, and not conforming with -the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542> - -Please tell bug-automake@gnu.org about your system, including the value -of your $PATH and any error possibly output before this message. This -can help us improve future automake versions. - -END - if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then - echo 'Configuration will proceed anyway, since you have set the' >&2 - echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 - echo >&2 - else - cat >&2 <<'END' -Aborting the configuration process, to ensure you take notice of the issue. - -You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: <https://www.gnu.org/software/coreutils/>. - -If you want to complete the configuration process using your problematic -'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM -to "yes", and re-run configure. - -END - as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 - fi -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 -$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } - # Check whether --enable-maintainer-mode was given. -if test "${enable_maintainer_mode+set}" = set; then : - enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval -else - USE_MAINTAINER_MODE=no -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 -$as_echo "$USE_MAINTAINER_MODE" >&6; } - if test $USE_MAINTAINER_MODE = yes; then - MAINTAINER_MODE_TRUE= - MAINTAINER_MODE_FALSE='#' -else - MAINTAINER_MODE_TRUE='#' - MAINTAINER_MODE_FALSE= -fi - - MAINT=$MAINTAINER_MODE_TRUE - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler accepts prototypes" >&5 -$as_echo_n "checking whether the compiler accepts prototypes... " >&6; } -if ${kb_cv_c_prototypes+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <stdarg.h> -int -main () -{ -extern void foo(int i,...); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - kb_cv_c_prototypes=yes -else - kb_cv_c_prototypes=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kb_cv_c_prototypes" >&5 -$as_echo "$kb_cv_c_prototypes" >&6; } -if test "x$kb_cv_c_prototypes" = xno; then - as_fn_error $? "Sorry, your compiler does not understand prototypes." "$LINENO" 5 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking what warning flags to pass to the C compiler" >&5 -$as_echo_n "checking what warning flags to pass to the C compiler... " >&6; } -if ${kpse_cv_warning_cflags+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "x$GCC" = xyes; then - kpse_cv_warning_cflags= -if test "x$enable_compiler_warnings" != xno; then - kpse_cv_warning_cflags="-Wimplicit -Wreturn-type" - case `$CC -dumpversion` in #( - 3.4.* | 4.* | 5.*) : - kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wdeclaration-after-statement" ;; #( - *) : - ;; -esac - case `$CC -dumpversion` in #( - 3.[234].* | 4.* | 5.*) : - kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wno-unknown-pragmas" ;; #( - *) : - ;; -esac - if test "x$enable_compiler_warnings" != xmin; then - kpse_cv_warning_cflags="-Wall -Wunused $kpse_cv_warning_cflags" - kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wmissing-prototypes -Wmissing-declarations" - if test "x$enable_compiler_warnings" != xyes; then - kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wparentheses -Wswitch -Wtrigraphs -Wpointer-arith" - kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wcast-qual -Wcast-align -Wwrite-strings" - case `$CC -dumpversion` in #( - 3.4.* | 4.* | 5.*) : - kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wold-style-definition" ;; #( - *) : - ;; -esac - if test "x$enable_compiler_warnings" != xmax; then - kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wshadow" - fi - fi - fi -fi -elif test "x$enable_compiler_warnings" = xno; then - kpse_cv_warning_cflags= -else - kpse_cv_warning_cflags= # FIXME: warning flags for non-GNU C compilers -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_warning_cflags" >&5 -$as_echo "$kpse_cv_warning_cflags" >&6; } -WARNING_CFLAGS=$kpse_cv_warning_cflags - - - - - - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <stdarg.h> -#include <stdio.h> -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 -$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } -if ${am_cv_prog_cc_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF - # Make sure it works both with $CC and with simple cc. - # Following AC_PROG_CC_C_O, we do the test twice because some - # compilers refuse to overwrite an existing .o file with -o, - # though they will create one. - am_cv_prog_cc_c_o=yes - for am_i in 1 2; do - if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 - ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } \ - && test -f conftest2.$ac_objext; then - : OK - else - am_cv_prog_cc_c_o=no - break - fi - done - rm -f core conftest* - unset am_i -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 -$as_echo "$am_cv_prog_cc_c_o" >&6; } -if test "$am_cv_prog_cc_c_o" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -depcc="$CC" am_compiler_list= - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if ${am_cv_CC_dependencies_compiler_type+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= -fi - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 -$as_echo "$RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 -$as_echo "$ac_ct_RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_RANLIB" = x; then - RANLIB=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - RANLIB=$ac_ct_RANLIB - fi -else - RANLIB="$ac_cv_prog_RANLIB" -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 -$as_echo_n "checking whether ln -s works... " >&6; } -LN_S=$as_ln_s -if test "$LN_S" = "ln -s"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 -$as_echo "no, using $LN_S" >&6; } -fi - - -LUA52VERSION=5.2.4 - - -LUA52_LT_VERSINFO=7:4:2 - - -case `pwd` in - *\ * | *\ *) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 -$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; -esac - - - -macro_version='2.4.6' -macro_revision='2.4.6' - - - - - - - - - - - - - -ltmain=$ac_aux_dir/ltmain.sh - -# Make sure we can run config.sub. -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 -$as_echo_n "checking build system type... " >&6; } -if ${ac_cv_build+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_build_alias=$build_alias -test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` -test "x$ac_build_alias" = x && - as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 -$as_echo "$ac_cv_build" >&6; } -case $ac_cv_build in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; -esac -build=$ac_cv_build -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_build -shift -build_cpu=$1 -build_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -build_os=$* -IFS=$ac_save_IFS -case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 -$as_echo_n "checking host system type... " >&6; } -if ${ac_cv_host+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "x$host_alias" = x; then - ac_cv_host=$ac_cv_build -else - ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 -$as_echo "$ac_cv_host" >&6; } -case $ac_cv_host in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; -esac -host=$ac_cv_host -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_host -shift -host_cpu=$1 -host_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -host_os=$* -IFS=$ac_save_IFS -case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - - -# Backslashify metacharacters that are still active within -# double-quoted strings. -sed_quote_subst='s/\(["`$\\]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\(["`\\]\)/\\\1/g' - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to delay expansion of an escaped single quote. -delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' - -ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO -ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 -$as_echo_n "checking how to print strings... " >&6; } -# Test print first, because it will be a builtin if present. -if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' -elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='printf %s\n' -else - # Use this function as a fallback that always works. - func_fallback_echo () - { - eval 'cat <<_LTECHO_EOF -$1 -_LTECHO_EOF' - } - ECHO='func_fallback_echo' -fi - -# func_echo_all arg... -# Invoke $ECHO with all args, space-separated. -func_echo_all () -{ - $ECHO "" -} - -case $ECHO in - printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 -$as_echo "printf" >&6; } ;; - print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 -$as_echo "print -r" >&6; } ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 -$as_echo "cat" >&6; } ;; -esac - - - - - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 -$as_echo_n "checking for a sed that does not truncate output... " >&6; } -if ${ac_cv_path_SED+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ - for ac_i in 1 2 3 4 5 6 7; do - ac_script="$ac_script$as_nl$ac_script" - done - echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed - { ac_script=; unset ac_script;} - if test -z "$SED"; then - ac_path_SED_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_SED" || continue -# Check for GNU ac_path_SED and select it if it is found. - # Check for GNU $ac_path_SED -case `"$ac_path_SED" --version 2>&1` in -*GNU*) - ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo '' >> "conftest.nl" - "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_SED_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_SED="$ac_path_SED" - ac_path_SED_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_SED_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_SED"; then - as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 - fi -else - ac_cv_path_SED=$SED -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 -$as_echo "$ac_cv_path_SED" >&6; } - SED="$ac_cv_path_SED" - rm -f conftest.sed - -test -z "$SED" && SED=sed -Xsed="$SED -e 1s/^X//" - - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if ${ac_cv_path_GREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_GREP" || continue -# Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_GREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then - as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_GREP=$GREP -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if ${ac_cv_path_EGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_EGREP" || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_EGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_EGREP=$EGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 -$as_echo_n "checking for fgrep... " >&6; } -if ${ac_cv_path_FGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 - then ac_cv_path_FGREP="$GREP -F" - else - if test -z "$FGREP"; then - ac_path_FGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in fgrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_FGREP" || continue -# Check for GNU ac_path_FGREP and select it if it is found. - # Check for GNU $ac_path_FGREP -case `"$ac_path_FGREP" --version 2>&1` in -*GNU*) - ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'FGREP' >> "conftest.nl" - "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_FGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_FGREP="$ac_path_FGREP" - ac_path_FGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_FGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_FGREP"; then - as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_FGREP=$FGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 -$as_echo "$ac_cv_path_FGREP" >&6; } - FGREP="$ac_cv_path_FGREP" - - -test -z "$GREP" && GREP=grep - - - - - - - - - - - - - - - - - - - -# Check whether --with-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then : - withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes -else - with_gnu_ld=no -fi - -ac_prog=ld -if test yes = "$GCC"; then - # Check if gcc -print-prog-name=ld gives a path. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 -$as_echo_n "checking for ld used by $CC... " >&6; } - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return, which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [\\/]* | ?:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` - while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do - ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD=$ac_prog - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test yes = "$with_gnu_ld"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 -$as_echo_n "checking for GNU ld... " >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 -$as_echo_n "checking for non-GNU ld... " >&6; } -fi -if ${lt_cv_path_LD+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$LD"; then - lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS=$lt_save_ifs - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD=$ac_dir/$ac_prog - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in - *GNU* | *'with BFD'*) - test no != "$with_gnu_ld" && break - ;; - *) - test yes != "$with_gnu_ld" && break - ;; - esac - fi - done - IFS=$lt_save_ifs -else - lt_cv_path_LD=$LD # Let the user override the test with a path. -fi -fi - -LD=$lt_cv_path_LD -if test -n "$LD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 -$as_echo "$LD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 -$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } -if ${lt_cv_prog_gnu_ld+:} false; then : - $as_echo_n "(cached) " >&6 -else - # I'd rather use --version here, but apparently some GNU lds only accept -v. -case `$LD -v 2>&1 </dev/null` in -*GNU* | *'with BFD'*) - lt_cv_prog_gnu_ld=yes - ;; -*) - lt_cv_prog_gnu_ld=no - ;; -esac -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5 -$as_echo "$lt_cv_prog_gnu_ld" >&6; } -with_gnu_ld=$lt_cv_prog_gnu_ld - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 -$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } -if ${lt_cv_path_NM+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM=$NM -else - lt_nm_to_check=${ac_tool_prefix}nm - if test -n "$ac_tool_prefix" && test "$build" = "$host"; then - lt_nm_to_check="$lt_nm_to_check nm" - fi - for lt_tmp_nm in $lt_nm_to_check; do - lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do - IFS=$lt_save_ifs - test -z "$ac_dir" && ac_dir=. - tmp_nm=$ac_dir/$lt_tmp_nm - if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the 'sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - # Tru64's nm complains that /dev/null is an invalid object file - # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty - case $build_os in - mingw*) lt_bad_file=conftest.nm/nofile ;; - *) lt_bad_file=/dev/null ;; - esac - case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in - *$lt_bad_file* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break 2 - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" - break 2 - ;; - *) - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - ;; - esac - ;; - esac - fi - done - IFS=$lt_save_ifs - done - : ${lt_cv_path_NM=no} -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 -$as_echo "$lt_cv_path_NM" >&6; } -if test no != "$lt_cv_path_NM"; then - NM=$lt_cv_path_NM -else - # Didn't find any BSD compatible name lister, look for dumpbin. - if test -n "$DUMPBIN"; then : - # Let the user override the test. - else - if test -n "$ac_tool_prefix"; then - for ac_prog in dumpbin "link -dump" - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_DUMPBIN+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$DUMPBIN"; then - ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DUMPBIN=$ac_cv_prog_DUMPBIN -if test -n "$DUMPBIN"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 -$as_echo "$DUMPBIN" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$DUMPBIN" && break - done -fi -if test -z "$DUMPBIN"; then - ac_ct_DUMPBIN=$DUMPBIN - for ac_prog in dumpbin "link -dump" -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_DUMPBIN"; then - ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN -if test -n "$ac_ct_DUMPBIN"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 -$as_echo "$ac_ct_DUMPBIN" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_DUMPBIN" && break -done - - if test "x$ac_ct_DUMPBIN" = x; then - DUMPBIN=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DUMPBIN=$ac_ct_DUMPBIN - fi -fi - - case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in - *COFF*) - DUMPBIN="$DUMPBIN -symbols -headers" - ;; - *) - DUMPBIN=: - ;; - esac - fi - - if test : != "$DUMPBIN"; then - NM=$DUMPBIN - fi -fi -test -z "$NM" && NM=nm - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 -$as_echo_n "checking the name lister ($NM) interface... " >&6; } -if ${lt_cv_nm_interface+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_nm_interface="BSD nm" - echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) - (eval "$ac_compile" 2>conftest.err) - cat conftest.err >&5 - (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) - (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) - cat conftest.err >&5 - (eval echo "\"\$as_me:$LINENO: output\"" >&5) - cat conftest.out >&5 - if $GREP 'External.*some_variable' conftest.out > /dev/null; then - lt_cv_nm_interface="MS dumpbin" - fi - rm -f conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 -$as_echo "$lt_cv_nm_interface" >&6; } - -# find the maximum length of command line arguments -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 -$as_echo_n "checking the maximum length of command line arguments... " >&6; } -if ${lt_cv_sys_max_cmd_len+:} false; then : - $as_echo_n "(cached) " >&6 -else - i=0 - teststring=ABCD - - case $build_os in - msdosdjgpp*) - # On DJGPP, this test can blow up pretty badly due to problems in libc - # (any single argument exceeding 2000 bytes causes a buffer overrun - # during glob expansion). Even if it were fixed, the result of this - # check would be larger than it should be. - lt_cv_sys_max_cmd_len=12288; # 12K is about right - ;; - - gnu*) - # Under GNU Hurd, this test is not required because there is - # no limit to the length of command line arguments. - # Libtool will interpret -1 as no limit whatsoever - lt_cv_sys_max_cmd_len=-1; - ;; - - cygwin* | mingw* | cegcc*) - # On Win9x/ME, this test blows up -- it succeeds, but takes - # about 5 minutes as the teststring grows exponentially. - # Worse, since 9x/ME are not pre-emptively multitasking, - # you end up with a "frozen" computer, even though with patience - # the test eventually succeeds (with a max line length of 256k). - # Instead, let's just punt: use the minimum linelength reported by - # all of the supported platforms: 8192 (on NT/2K/XP). - lt_cv_sys_max_cmd_len=8192; - ;; - - mint*) - # On MiNT this can take a long time and run out of memory. - lt_cv_sys_max_cmd_len=8192; - ;; - - amigaos*) - # On AmigaOS with pdksh, this test takes hours, literally. - # So we just punt and use a minimum line length of 8192. - lt_cv_sys_max_cmd_len=8192; - ;; - - bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) - # This has been around since 386BSD, at least. Likely further. - if test -x /sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` - elif test -x /usr/sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` - else - lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs - fi - # And add a safety zone - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - ;; - - interix*) - # We know the value 262144 and hardcode it with a safety zone (like BSD) - lt_cv_sys_max_cmd_len=196608 - ;; - - os2*) - # The test takes a long time on OS/2. - lt_cv_sys_max_cmd_len=8192 - ;; - - osf*) - # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure - # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not - # nice to cause kernel panics so lets avoid the loop below. - # First set a reasonable default. - lt_cv_sys_max_cmd_len=16384 - # - if test -x /sbin/sysconfig; then - case `/sbin/sysconfig -q proc exec_disable_arg_limit` in - *1*) lt_cv_sys_max_cmd_len=-1 ;; - esac - fi - ;; - sco3.2v5*) - lt_cv_sys_max_cmd_len=102400 - ;; - sysv5* | sco5v6* | sysv4.2uw2*) - kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` - if test -n "$kargmax"; then - lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` - else - lt_cv_sys_max_cmd_len=32768 - fi - ;; - *) - lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` - if test -n "$lt_cv_sys_max_cmd_len" && \ - test undefined != "$lt_cv_sys_max_cmd_len"; then - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - else - # Make teststring a little bigger before we do anything with it. - # a 1K string should be a reasonable start. - for i in 1 2 3 4 5 6 7 8; do - teststring=$teststring$teststring - done - SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} - # If test is not a shell built-in, we'll probably end up computing a - # maximum length that is only half of the actual maximum length, but - # we can't tell. - while { test X`env echo "$teststring$teststring" 2>/dev/null` \ - = "X$teststring$teststring"; } >/dev/null 2>&1 && - test 17 != "$i" # 1/2 MB should be enough - do - i=`expr $i + 1` - teststring=$teststring$teststring - done - # Only check the string length outside the loop. - lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` - teststring= - # Add a significant safety factor because C++ compilers can tack on - # massive amounts of additional arguments before passing them to the - # linker. It appears as though 1/2 is a usable value. - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` - fi - ;; - esac - -fi - -if test -n "$lt_cv_sys_max_cmd_len"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 -$as_echo "$lt_cv_sys_max_cmd_len" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 -$as_echo "none" >&6; } -fi -max_cmd_len=$lt_cv_sys_max_cmd_len - - - - - - -: ${CP="cp -f"} -: ${MV="mv -f"} -: ${RM="rm -f"} - -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - lt_unset=unset -else - lt_unset=false -fi - - - - - -# test EBCDIC or ASCII -case `echo X|tr X '\101'` in - A) # ASCII based system - # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr - lt_SP2NL='tr \040 \012' - lt_NL2SP='tr \015\012 \040\040' - ;; - *) # EBCDIC based system - lt_SP2NL='tr \100 \n' - lt_NL2SP='tr \r\n \100\100' - ;; -esac - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 -$as_echo_n "checking how to convert $build file names to $host format... " >&6; } -if ${lt_cv_to_host_file_cmd+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $host in - *-*-mingw* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 - ;; - *-*-cygwin* ) - lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 - ;; - * ) # otherwise, assume *nix - lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 - ;; - esac - ;; - *-*-cygwin* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin - ;; - *-*-cygwin* ) - lt_cv_to_host_file_cmd=func_convert_file_noop - ;; - * ) # otherwise, assume *nix - lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin - ;; - esac - ;; - * ) # unhandled hosts (and "normal" native builds) - lt_cv_to_host_file_cmd=func_convert_file_noop - ;; -esac - -fi - -to_host_file_cmd=$lt_cv_to_host_file_cmd -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 -$as_echo "$lt_cv_to_host_file_cmd" >&6; } - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 -$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } -if ${lt_cv_to_tool_file_cmd+:} false; then : - $as_echo_n "(cached) " >&6 -else - #assume ordinary cross tools, or native build. -lt_cv_to_tool_file_cmd=func_convert_file_noop -case $host in - *-*-mingw* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 - ;; - esac - ;; -esac - -fi - -to_tool_file_cmd=$lt_cv_to_tool_file_cmd -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 -$as_echo "$lt_cv_to_tool_file_cmd" >&6; } - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 -$as_echo_n "checking for $LD option to reload object files... " >&6; } -if ${lt_cv_ld_reload_flag+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_ld_reload_flag='-r' -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 -$as_echo "$lt_cv_ld_reload_flag" >&6; } -reload_flag=$lt_cv_ld_reload_flag -case $reload_flag in -"" | " "*) ;; -*) reload_flag=" $reload_flag" ;; -esac -reload_cmds='$LD$reload_flag -o $output$reload_objs' -case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - if test yes != "$GCC"; then - reload_cmds=false - fi - ;; - darwin*) - if test yes = "$GCC"; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' - else - reload_cmds='$LD$reload_flag -o $output$reload_objs' - fi - ;; -esac - - - - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. -set dummy ${ac_tool_prefix}objdump; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_OBJDUMP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$OBJDUMP"; then - ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OBJDUMP=$ac_cv_prog_OBJDUMP -if test -n "$OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 -$as_echo "$OBJDUMP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OBJDUMP"; then - ac_ct_OBJDUMP=$OBJDUMP - # Extract the first word of "objdump", so it can be a program name with args. -set dummy objdump; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OBJDUMP"; then - ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_OBJDUMP="objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP -if test -n "$ac_ct_OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 -$as_echo "$ac_ct_OBJDUMP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OBJDUMP" = x; then - OBJDUMP="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OBJDUMP=$ac_ct_OBJDUMP - fi -else - OBJDUMP="$ac_cv_prog_OBJDUMP" -fi - -test -z "$OBJDUMP" && OBJDUMP=objdump - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 -$as_echo_n "checking how to recognize dependent libraries... " >&6; } -if ${lt_cv_deplibs_check_method+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_file_magic_cmd='$MAGIC_CMD' -lt_cv_file_magic_test_file= -lt_cv_deplibs_check_method='unknown' -# Need to set the preceding variable on all platforms that support -# interlibrary dependencies. -# 'none' -- dependencies not supported. -# 'unknown' -- same as none, but documents that we really don't know. -# 'pass_all' -- all dependencies passed with no checks. -# 'test_compile' -- check by making test program. -# 'file_magic [[regex]]' -- check by looking for files in library path -# that responds to the $file_magic_cmd with a given extended regex. -# If you have 'file' or equivalent on your system and you're not sure -# whether 'pass_all' will *always* work, you probably want this one. - -case $host_os in -aix[4-9]*) - lt_cv_deplibs_check_method=pass_all - ;; - -beos*) - lt_cv_deplibs_check_method=pass_all - ;; - -bsdi[45]*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' - lt_cv_file_magic_cmd='/usr/bin/file -L' - lt_cv_file_magic_test_file=/shlib/libc.so - ;; - -cygwin*) - # func_win32_libid is a shell function defined in ltmain.sh - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - ;; - -mingw* | pw32*) - # Base MSYS/MinGW do not provide the 'file' command needed by - # func_win32_libid shell function, so use a weaker test based on 'objdump', - # unless we find 'file', for example because we are cross-compiling. - if ( file / ) >/dev/null 2>&1; then - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else - # Keep this pattern in sync with the one in func_win32_libid. - lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; - -cegcc*) - # use the weaker test based on 'objdump'. See mingw*. - lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' - lt_cv_file_magic_cmd='$OBJDUMP -f' - ;; - -darwin* | rhapsody*) - lt_cv_deplibs_check_method=pass_all - ;; - -freebsd* | dragonfly*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - case $host_cpu in - i*86 ) - # Not sure whether the presence of OpenBSD here was a mistake. - # Let's accept both of them until this is cleared up. - lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` - ;; - esac - else - lt_cv_deplibs_check_method=pass_all - fi - ;; - -haiku*) - lt_cv_deplibs_check_method=pass_all - ;; - -hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=/usr/bin/file - case $host_cpu in - ia64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' - lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so - ;; - hppa*64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' - lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl - ;; - *) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' - lt_cv_file_magic_test_file=/usr/lib/libc.sl - ;; - esac - ;; - -interix[3-9]*) - # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' - ;; - -irix5* | irix6* | nonstopux*) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - lt_cv_deplibs_check_method=pass_all - ;; - -# This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - -netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' - fi - ;; - -newos6*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=/usr/lib/libnls.so - ;; - -*nto* | *qnx*) - lt_cv_deplibs_check_method=pass_all - ;; - -openbsd* | bitrig*) - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' - fi - ;; - -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; - -rdos*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv4 | sysv4.3*) - case $host_vendor in - motorola) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` - ;; - ncr) - lt_cv_deplibs_check_method=pass_all - ;; - sequent) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' - ;; - sni) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" - lt_cv_file_magic_test_file=/lib/libc.so - ;; - siemens) - lt_cv_deplibs_check_method=pass_all - ;; - pc) - lt_cv_deplibs_check_method=pass_all - ;; - esac - ;; - -tpf*) - lt_cv_deplibs_check_method=pass_all - ;; -os2*) - lt_cv_deplibs_check_method=pass_all - ;; -esac - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 -$as_echo "$lt_cv_deplibs_check_method" >&6; } - -file_magic_glob= -want_nocaseglob=no -if test "$build" = "$host"; then - case $host_os in - mingw* | pw32*) - if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then - want_nocaseglob=yes - else - file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` - fi - ;; - esac -fi - -file_magic_cmd=$lt_cv_file_magic_cmd -deplibs_check_method=$lt_cv_deplibs_check_method -test -z "$deplibs_check_method" && deplibs_check_method=unknown - - - - - - - - - - - - - - - - - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_DLLTOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$DLLTOOL"; then - ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DLLTOOL=$ac_cv_prog_DLLTOOL -if test -n "$DLLTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -$as_echo "$DLLTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_DLLTOOL"; then - ac_ct_DLLTOOL=$DLLTOOL - # Extract the first word of "dlltool", so it can be a program name with args. -set dummy dlltool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_DLLTOOL"; then - ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_DLLTOOL="dlltool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -if test -n "$ac_ct_DLLTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -$as_echo "$ac_ct_DLLTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_DLLTOOL" = x; then - DLLTOOL="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DLLTOOL=$ac_ct_DLLTOOL - fi -else - DLLTOOL="$ac_cv_prog_DLLTOOL" -fi - -test -z "$DLLTOOL" && DLLTOOL=dlltool - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 -$as_echo_n "checking how to associate runtime and link libraries... " >&6; } -if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_sharedlib_from_linklib_cmd='unknown' - -case $host_os in -cygwin* | mingw* | pw32* | cegcc*) - # two different shell functions defined in ltmain.sh; - # decide which one to use based on capabilities of $DLLTOOL - case `$DLLTOOL --help 2>&1` in - *--identify-strict*) - lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib - ;; - *) - lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback - ;; - esac - ;; -*) - # fallback: assume linklib IS sharedlib - lt_cv_sharedlib_from_linklib_cmd=$ECHO - ;; -esac - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 -$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } -sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO - - - - - - - -if test -n "$ac_tool_prefix"; then - for ac_prog in ar - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AR+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AR="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -$as_echo "$AR" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$AR" && break - done -fi -if test -z "$AR"; then - ac_ct_AR=$AR - for ac_prog in ar -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_AR+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_AR"; then - ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_AR="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_AR=$ac_cv_prog_ac_ct_AR -if test -n "$ac_ct_AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 -$as_echo "$ac_ct_AR" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_AR" && break -done - - if test "x$ac_ct_AR" = x; then - AR="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - AR=$ac_ct_AR - fi -fi - -: ${AR=ar} -: ${AR_FLAGS=cru} - - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 -$as_echo_n "checking for archiver @FILE support... " >&6; } -if ${lt_cv_ar_at_file+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_ar_at_file=no - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - echo conftest.$ac_objext > conftest.lst - lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 - (eval $lt_ar_try) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if test 0 -eq "$ac_status"; then - # Ensure the archiver fails upon bogus file names. - rm -f conftest.$ac_objext libconftest.a - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 - (eval $lt_ar_try) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if test 0 -ne "$ac_status"; then - lt_cv_ar_at_file=@ - fi - fi - rm -f conftest.* libconftest.a - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 -$as_echo "$lt_cv_ar_at_file" >&6; } - -if test no = "$lt_cv_ar_at_file"; then - archiver_list_spec= -else - archiver_list_spec=$lt_cv_ar_at_file -fi - - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -test -z "$STRIP" && STRIP=: - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 -$as_echo "$RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 -$as_echo "$ac_ct_RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_RANLIB" = x; then - RANLIB=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - RANLIB=$ac_ct_RANLIB - fi -else - RANLIB="$ac_cv_prog_RANLIB" -fi - -test -z "$RANLIB" && RANLIB=: - - - - - - -# Determine commands to create old-style static archives. -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -if test -n "$RANLIB"; then - case $host_os in - bitrig* | openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" - ;; - *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" -fi - -case $host_os in - darwin*) - lock_old_archive_extraction=yes ;; - *) - lock_old_archive_extraction=no ;; -esac - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# Check for command to grab the raw symbol name followed by C symbol from nm. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 -$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } -if ${lt_cv_sys_global_symbol_pipe+:} false; then : - $as_echo_n "(cached) " >&6 -else - -# These are sane defaults that work on at least a few old systems. -# [They come from Ultrix. What could be older than Ultrix?!! ;)] - -# Character class describing NM global symbol codes. -symcode='[BCDEGRST]' - -# Regexp to match symbols that can be accessed directly from C. -sympat='\([_A-Za-z][_A-Za-z0-9]*\)' - -# Define system-specific variables. -case $host_os in -aix*) - symcode='[BCDT]' - ;; -cygwin* | mingw* | pw32* | cegcc*) - symcode='[ABCDGISTW]' - ;; -hpux*) - if test ia64 = "$host_cpu"; then - symcode='[ABCDEGRST]' - fi - ;; -irix* | nonstopux*) - symcode='[BCDEGRST]' - ;; -osf*) - symcode='[BCDEGQRST]' - ;; -solaris*) - symcode='[BDRT]' - ;; -sco3.2v5*) - symcode='[DT]' - ;; -sysv4.2uw2*) - symcode='[DT]' - ;; -sysv5* | sco5v6* | unixware* | OpenUNIX*) - symcode='[ABDT]' - ;; -sysv4) - symcode='[DFNSTU]' - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -case `$NM -V 2>&1` in -*GNU* | *'with BFD'*) - symcode='[ABCDGIRSTW]' ;; -esac - -if test "$lt_cv_nm_interface" = "MS dumpbin"; then - # Gets list of data symbols to import. - lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" - # Adjust the below global symbol transforms to fixup imported variables. - lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" - lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" - lt_c_name_lib_hook="\ - -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ - -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" -else - # Disable hooks by default. - lt_cv_sys_global_symbol_to_import= - lt_cdecl_hook= - lt_c_name_hook= - lt_c_name_lib_hook= -fi - -# Transform an extracted symbol line into a proper C declaration. -# Some systems (esp. on ia64) link data and code symbols differently, -# so use this general approach. -lt_cv_sys_global_symbol_to_cdecl="sed -n"\ -$lt_cdecl_hook\ -" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ -" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" - -# Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ -$lt_c_name_hook\ -" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ -" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" - -# Transform an extracted symbol line into symbol name with lib prefix and -# symbol address. -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ -$lt_c_name_lib_hook\ -" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ -" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ -" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" - -# Handle CRLF in mingw tool chain -opt_cr= -case $build_os in -mingw*) - opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp - ;; -esac - -# Try without a prefix underscore, then with it. -for ac_symprfx in "" "_"; do - - # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. - symxfrm="\\1 $ac_symprfx\\2 \\2" - - # Write the raw and C identifiers. - if test "$lt_cv_nm_interface" = "MS dumpbin"; then - # Fake it for dumpbin and say T for any non-static function, - # D for any global variable and I for any imported variable. - # Also find C++ and __fastcall symbols from MSVC++, - # which start with @ or ?. - lt_cv_sys_global_symbol_pipe="$AWK '"\ -" {last_section=section; section=\$ 3};"\ -" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ -" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ -" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ -" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ -" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ -" \$ 0!~/External *\|/{next};"\ -" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ -" {if(hide[section]) next};"\ -" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ -" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ -" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ -" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ -" ' prfx=^$ac_symprfx" - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi - lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no - - rm -f conftest* - cat > conftest.$ac_ext <<_LT_EOF -#ifdef __cplusplus -extern "C" { -#endif -char nm_test_var; -void nm_test_func(void); -void nm_test_func(void){} -#ifdef __cplusplus -} -#endif -int main(){nm_test_var='a';nm_test_func();return(0);} -_LT_EOF - - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - # Now try to grab the symbols. - nlist=conftest.nm - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 - (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s "$nlist"; then - # Try sorting and uniquifying the output. - if sort "$nlist" | uniq > "$nlist"T; then - mv -f "$nlist"T "$nlist" - else - rm -f "$nlist"T - fi - - # Make sure that we snagged all the symbols we need. - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE -/* DATA imports from DLLs on WIN32 can't be const, because runtime - relocations are performed -- see ld's documentation on pseudo-relocs. */ -# define LT_DLSYM_CONST -#elif defined __osf__ -/* This system does not cope well with relocations in const data. */ -# define LT_DLSYM_CONST -#else -# define LT_DLSYM_CONST const -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -_LT_EOF - # Now generate the symbol file. - eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' - - cat <<_LT_EOF >> conftest.$ac_ext - -/* The mapping between symbol names and symbols. */ -LT_DLSYM_CONST struct { - const char *name; - void *address; -} -lt__PROGRAM__LTX_preloaded_symbols[] = -{ - { "@PROGRAM@", (void *) 0 }, -_LT_EOF - $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext - cat <<\_LT_EOF >> conftest.$ac_ext - {0, (void *) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt__PROGRAM__LTX_preloaded_symbols; -} -#endif - -#ifdef __cplusplus -} -#endif -_LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - lt_globsym_save_LIBS=$LIBS - lt_globsym_save_CFLAGS=$CFLAGS - LIBS=conftstm.$ac_objext - CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 - (eval $ac_link) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest$ac_exeext; then - pipe_works=yes - fi - LIBS=$lt_globsym_save_LIBS - CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&5 - fi - else - echo "cannot find nm_test_var in $nlist" >&5 - fi - else - echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 - fi - else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - fi - rm -rf conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test yes = "$pipe_works"; then - break - else - lt_cv_sys_global_symbol_pipe= - fi -done - -fi - -if test -z "$lt_cv_sys_global_symbol_pipe"; then - lt_cv_sys_global_symbol_to_cdecl= -fi -if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 -$as_echo "failed" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 -$as_echo "ok" >&6; } -fi - -# Response file support. -if test "$lt_cv_nm_interface" = "MS dumpbin"; then - nm_file_list_spec='@' -elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then - nm_file_list_spec='@' -fi - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 -$as_echo_n "checking for sysroot... " >&6; } - -# Check whether --with-sysroot was given. -if test "${with_sysroot+set}" = set; then : - withval=$with_sysroot; -else - with_sysroot=no -fi - - -lt_sysroot= -case $with_sysroot in #( - yes) - if test yes = "$GCC"; then - lt_sysroot=`$CC --print-sysroot 2>/dev/null` - fi - ;; #( - /*) - lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` - ;; #( - no|'') - ;; #( - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 -$as_echo "$with_sysroot" >&6; } - as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 - ;; -esac - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 -$as_echo "${lt_sysroot:-no}" >&6; } - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 -$as_echo_n "checking for a working dd... " >&6; } -if ${ac_cv_path_lt_DD+:} false; then : - $as_echo_n "(cached) " >&6 -else - printf 0123456789abcdef0123456789abcdef >conftest.i -cat conftest.i conftest.i >conftest2.i -: ${lt_DD:=$DD} -if test -z "$lt_DD"; then - ac_path_lt_DD_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in dd; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_lt_DD" || continue -if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then - cmp -s conftest.i conftest.out \ - && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: -fi - $ac_path_lt_DD_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_lt_DD"; then - : - fi -else - ac_cv_path_lt_DD=$lt_DD -fi - -rm -f conftest.i conftest2.i conftest.out -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 -$as_echo "$ac_cv_path_lt_DD" >&6; } - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 -$as_echo_n "checking how to truncate binary pipes... " >&6; } -if ${lt_cv_truncate_bin+:} false; then : - $as_echo_n "(cached) " >&6 -else - printf 0123456789abcdef0123456789abcdef >conftest.i -cat conftest.i conftest.i >conftest2.i -lt_cv_truncate_bin= -if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then - cmp -s conftest.i conftest.out \ - && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" -fi -rm -f conftest.i conftest2.i conftest.out -test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 -$as_echo "$lt_cv_truncate_bin" >&6; } - - - - - - - -# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. -func_cc_basename () -{ - for cc_temp in $*""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac - done - func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` -} - -# Check whether --enable-libtool-lock was given. -if test "${enable_libtool_lock+set}" = set; then : - enableval=$enable_libtool_lock; -fi - -test no = "$enable_libtool_lock" || enable_libtool_lock=yes - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case $host in -ia64-*-hpux*) - # Find out what ABI is being produced by ac_compile, and set mode - # options accordingly. - echo 'int i;' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - case `/usr/bin/file conftest.$ac_objext` in - *ELF-32*) - HPUX_IA64_MODE=32 - ;; - *ELF-64*) - HPUX_IA64_MODE=64 - ;; - esac - fi - rm -rf conftest* - ;; -*-*-irix6*) - # Find out what ABI is being produced by ac_compile, and set linker - # options accordingly. - echo '#line '$LINENO' "configure"' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - if test yes = "$lt_cv_prog_gnu_ld"; then - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -melf32bsmip" - ;; - *N32*) - LD="${LD-ld} -melf32bmipn32" - ;; - *64-bit*) - LD="${LD-ld} -melf64bmip" - ;; - esac - else - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -32" - ;; - *N32*) - LD="${LD-ld} -n32" - ;; - *64-bit*) - LD="${LD-ld} -64" - ;; - esac - fi - fi - rm -rf conftest* - ;; - -mips64*-*linux*) - # Find out what ABI is being produced by ac_compile, and set linker - # options accordingly. - echo '#line '$LINENO' "configure"' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - emul=elf - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - emul="${emul}32" - ;; - *64-bit*) - emul="${emul}64" - ;; - esac - case `/usr/bin/file conftest.$ac_objext` in - *MSB*) - emul="${emul}btsmip" - ;; - *LSB*) - emul="${emul}ltsmip" - ;; - esac - case `/usr/bin/file conftest.$ac_objext` in - *N32*) - emul="${emul}n32" - ;; - esac - LD="${LD-ld} -m $emul" - fi - rm -rf conftest* - ;; - -x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ -s390*-*linux*|s390*-*tpf*|sparc*-*linux*) - # Find out what ABI is being produced by ac_compile, and set linker - # options accordingly. Note that the listed cases only cover the - # situations where additional linker options are needed (such as when - # doing 32-bit compilation for a host where ld defaults to 64-bit, or - # vice versa); the common cases where no linker options are needed do - # not appear in the list. - echo 'int i;' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - case `/usr/bin/file conftest.o` in - *32-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_i386_fbsd" - ;; - x86_64-*linux*) - case `/usr/bin/file conftest.o` in - *x86-64*) - LD="${LD-ld} -m elf32_x86_64" - ;; - *) - LD="${LD-ld} -m elf_i386" - ;; - esac - ;; - powerpc64le-*linux*) - LD="${LD-ld} -m elf32lppclinux" - ;; - powerpc64-*linux*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) - LD="${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD="${LD-ld} -m elf32_sparc" - ;; - esac - ;; - *64-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_x86_64_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; - powerpcle-*linux*) - LD="${LD-ld} -m elf64lppc" - ;; - powerpc-*linux*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*|s390*-*tpf*) - LD="${LD-ld} -m elf64_s390" - ;; - sparc*-*linux*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; - -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS=$CFLAGS - CFLAGS="$CFLAGS -belf" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 -$as_echo_n "checking whether the C compiler needs -belf... " >&6; } -if ${lt_cv_cc_needs_belf+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - lt_cv_cc_needs_belf=yes -else - lt_cv_cc_needs_belf=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 -$as_echo "$lt_cv_cc_needs_belf" >&6; } - if test yes != "$lt_cv_cc_needs_belf"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS=$SAVE_CFLAGS - fi - ;; -*-*solaris*) - # Find out what ABI is being produced by ac_compile, and set linker - # options accordingly. - echo 'int i;' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - case `/usr/bin/file conftest.o` in - *64-bit*) - case $lt_cv_prog_gnu_ld in - yes*) - case $host in - i?86-*-solaris*|x86_64-*-solaris*) - LD="${LD-ld} -m elf_x86_64" - ;; - sparc*-*-solaris*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - # GNU ld 2.21 introduced _sol2 emulations. Use them if available. - if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then - LD=${LD-ld}_sol2 - fi - ;; - *) - if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then - LD="${LD-ld} -64" - fi - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; -esac - -need_locks=$enable_libtool_lock - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. -set dummy ${ac_tool_prefix}mt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$MANIFEST_TOOL"; then - ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL -if test -n "$MANIFEST_TOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 -$as_echo "$MANIFEST_TOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_MANIFEST_TOOL"; then - ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL - # Extract the first word of "mt", so it can be a program name with args. -set dummy mt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_MANIFEST_TOOL"; then - ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL -if test -n "$ac_ct_MANIFEST_TOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 -$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_MANIFEST_TOOL" = x; then - MANIFEST_TOOL=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL - fi -else - MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" -fi - -test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 -$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } -if ${lt_cv_path_mainfest_tool+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_path_mainfest_tool=no - echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 - $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out - cat conftest.err >&5 - if $GREP 'Manifest Tool' conftest.out > /dev/null; then - lt_cv_path_mainfest_tool=yes - fi - rm -f conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 -$as_echo "$lt_cv_path_mainfest_tool" >&6; } -if test yes != "$lt_cv_path_mainfest_tool"; then - MANIFEST_TOOL=: -fi - - - - - - - case $host_os in - rhapsody* | darwin*) - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. -set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_DSYMUTIL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$DSYMUTIL"; then - ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DSYMUTIL=$ac_cv_prog_DSYMUTIL -if test -n "$DSYMUTIL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 -$as_echo "$DSYMUTIL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_DSYMUTIL"; then - ac_ct_DSYMUTIL=$DSYMUTIL - # Extract the first word of "dsymutil", so it can be a program name with args. -set dummy dsymutil; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_DSYMUTIL"; then - ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL -if test -n "$ac_ct_DSYMUTIL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 -$as_echo "$ac_ct_DSYMUTIL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_DSYMUTIL" = x; then - DSYMUTIL=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DSYMUTIL=$ac_ct_DSYMUTIL - fi -else - DSYMUTIL="$ac_cv_prog_DSYMUTIL" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. -set dummy ${ac_tool_prefix}nmedit; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_NMEDIT+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$NMEDIT"; then - ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -NMEDIT=$ac_cv_prog_NMEDIT -if test -n "$NMEDIT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 -$as_echo "$NMEDIT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_NMEDIT"; then - ac_ct_NMEDIT=$NMEDIT - # Extract the first word of "nmedit", so it can be a program name with args. -set dummy nmedit; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_NMEDIT"; then - ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_NMEDIT="nmedit" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT -if test -n "$ac_ct_NMEDIT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 -$as_echo "$ac_ct_NMEDIT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_NMEDIT" = x; then - NMEDIT=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - NMEDIT=$ac_ct_NMEDIT - fi -else - NMEDIT="$ac_cv_prog_NMEDIT" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. -set dummy ${ac_tool_prefix}lipo; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_LIPO+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$LIPO"; then - ac_cv_prog_LIPO="$LIPO" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_LIPO="${ac_tool_prefix}lipo" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -LIPO=$ac_cv_prog_LIPO -if test -n "$LIPO"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 -$as_echo "$LIPO" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_LIPO"; then - ac_ct_LIPO=$LIPO - # Extract the first word of "lipo", so it can be a program name with args. -set dummy lipo; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_LIPO+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_LIPO"; then - ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_LIPO="lipo" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO -if test -n "$ac_ct_LIPO"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 -$as_echo "$ac_ct_LIPO" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_LIPO" = x; then - LIPO=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - LIPO=$ac_ct_LIPO - fi -else - LIPO="$ac_cv_prog_LIPO" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. -set dummy ${ac_tool_prefix}otool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_OTOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$OTOOL"; then - ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_OTOOL="${ac_tool_prefix}otool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OTOOL=$ac_cv_prog_OTOOL -if test -n "$OTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 -$as_echo "$OTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OTOOL"; then - ac_ct_OTOOL=$OTOOL - # Extract the first word of "otool", so it can be a program name with args. -set dummy otool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OTOOL"; then - ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_OTOOL="otool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL -if test -n "$ac_ct_OTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 -$as_echo "$ac_ct_OTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OTOOL" = x; then - OTOOL=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OTOOL=$ac_ct_OTOOL - fi -else - OTOOL="$ac_cv_prog_OTOOL" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. -set dummy ${ac_tool_prefix}otool64; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_OTOOL64+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$OTOOL64"; then - ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OTOOL64=$ac_cv_prog_OTOOL64 -if test -n "$OTOOL64"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 -$as_echo "$OTOOL64" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OTOOL64"; then - ac_ct_OTOOL64=$OTOOL64 - # Extract the first word of "otool64", so it can be a program name with args. -set dummy otool64; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OTOOL64"; then - ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_OTOOL64="otool64" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 -if test -n "$ac_ct_OTOOL64"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 -$as_echo "$ac_ct_OTOOL64" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OTOOL64" = x; then - OTOOL64=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OTOOL64=$ac_ct_OTOOL64 - fi -else - OTOOL64="$ac_cv_prog_OTOOL64" -fi - - - - - - - - - - - - - - - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 -$as_echo_n "checking for -single_module linker flag... " >&6; } -if ${lt_cv_apple_cc_single_mod+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_apple_cc_single_mod=no - if test -z "$LT_MULTI_MODULE"; then - # By default we will add the -single_module flag. You can override - # by either setting the environment variable LT_MULTI_MODULE - # non-empty at configure time, or by adding -multi_module to the - # link flags. - rm -rf libconftest.dylib* - echo "int foo(void){return 1;}" > conftest.c - echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ --dynamiclib -Wl,-single_module conftest.c" >&5 - $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ - -dynamiclib -Wl,-single_module conftest.c 2>conftest.err - _lt_result=$? - # If there is a non-empty error log, and "single_module" - # appears in it, assume the flag caused a linker warning - if test -s conftest.err && $GREP single_module conftest.err; then - cat conftest.err >&5 - # Otherwise, if the output was created with a 0 exit code from - # the compiler, it worked. - elif test -f libconftest.dylib && test 0 = "$_lt_result"; then - lt_cv_apple_cc_single_mod=yes - else - cat conftest.err >&5 - fi - rm -rf libconftest.dylib* - rm -f conftest.* - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 -$as_echo "$lt_cv_apple_cc_single_mod" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 -$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } -if ${lt_cv_ld_exported_symbols_list+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_ld_exported_symbols_list=no - save_LDFLAGS=$LDFLAGS - echo "_main" > conftest.sym - LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - lt_cv_ld_exported_symbols_list=yes -else - lt_cv_ld_exported_symbols_list=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$save_LDFLAGS - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 -$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 -$as_echo_n "checking for -force_load linker flag... " >&6; } -if ${lt_cv_ld_force_load+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_ld_force_load=no - cat > conftest.c << _LT_EOF -int forced_loaded() { return 2;} -_LT_EOF - echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cru libconftest.a conftest.o" >&5 - $AR cru libconftest.a conftest.o 2>&5 - echo "$RANLIB libconftest.a" >&5 - $RANLIB libconftest.a 2>&5 - cat > conftest.c << _LT_EOF -int main() { return 0;} -_LT_EOF - echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 - $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err - _lt_result=$? - if test -s conftest.err && $GREP force_load conftest.err; then - cat conftest.err >&5 - elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then - lt_cv_ld_force_load=yes - else - cat conftest.err >&5 - fi - rm -f conftest.err libconftest.a conftest conftest.c - rm -rf conftest.dSYM - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 -$as_echo "$lt_cv_ld_force_load" >&6; } - case $host_os in - rhapsody* | darwin1.[012]) - _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; - darwin1.*) - _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - darwin*) # darwin 5.x on - # if running on 10.5 or later, the deployment target defaults - # to the OS version, if on x86, and 10.4, the deployment - # target defaults to 10.4. Don't you love it? - case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[91]*) - _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; - 10.[012][,.]*) - _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - 10.*) - _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; - esac - ;; - esac - if test yes = "$lt_cv_apple_cc_single_mod"; then - _lt_dar_single_mod='$single_module' - fi - if test yes = "$lt_cv_ld_exported_symbols_list"; then - _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' - else - _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' - fi - if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then - _lt_dsymutil='~$DSYMUTIL $lib || :' - else - _lt_dsymutil= - fi - ;; - esac - -# func_munge_path_list VARIABLE PATH -# ----------------------------------- -# VARIABLE is name of variable containing _space_ separated list of -# directories to be munged by the contents of PATH, which is string -# having a format: -# "DIR[:DIR]:" -# string "DIR[ DIR]" will be prepended to VARIABLE -# ":DIR[:DIR]" -# string "DIR[ DIR]" will be appended to VARIABLE -# "DIRP[:DIRP]::[DIRA:]DIRA" -# string "DIRP[ DIRP]" will be prepended to VARIABLE and string -# "DIRA[ DIRA]" will be appended to VARIABLE -# "DIR[:DIR]" -# VARIABLE will be replaced by "DIR[ DIR]" -func_munge_path_list () -{ - case x$2 in - x) - ;; - *:) - eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" - ;; - x:*) - eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" - ;; - *::*) - eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" - eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" - ;; - *) - eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" - ;; - esac -} - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if ${ac_cv_prog_CPP+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - # <limits.h> exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <ac_nonexistent.h> -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - # <limits.h> exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <ac_nonexistent.h> -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <stdlib.h> -#include <stdarg.h> -#include <string.h> -#include <float.h> - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <string.h> - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <stdlib.h> - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <ctype.h> -#include <stdlib.h> -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -$as_echo "#define STDC_HEADERS 1" >>confdefs.h - -fi - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -for ac_header in dlfcn.h -do : - ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default -" -if test "x$ac_cv_header_dlfcn_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DLFCN_H 1 -_ACEOF - -fi - -done - - - - - -# Set options -enable_win32_dll=yes - -case $host in -*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. -set dummy ${ac_tool_prefix}as; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AS+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AS"; then - ac_cv_prog_AS="$AS" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AS="${ac_tool_prefix}as" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AS=$ac_cv_prog_AS -if test -n "$AS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 -$as_echo "$AS" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_AS"; then - ac_ct_AS=$AS - # Extract the first word of "as", so it can be a program name with args. -set dummy as; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_AS+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_AS"; then - ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_AS="as" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_AS=$ac_cv_prog_ac_ct_AS -if test -n "$ac_ct_AS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 -$as_echo "$ac_ct_AS" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_AS" = x; then - AS="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - AS=$ac_ct_AS - fi -else - AS="$ac_cv_prog_AS" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_DLLTOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$DLLTOOL"; then - ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DLLTOOL=$ac_cv_prog_DLLTOOL -if test -n "$DLLTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -$as_echo "$DLLTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_DLLTOOL"; then - ac_ct_DLLTOOL=$DLLTOOL - # Extract the first word of "dlltool", so it can be a program name with args. -set dummy dlltool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_DLLTOOL"; then - ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_DLLTOOL="dlltool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -if test -n "$ac_ct_DLLTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -$as_echo "$ac_ct_DLLTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_DLLTOOL" = x; then - DLLTOOL="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DLLTOOL=$ac_ct_DLLTOOL - fi -else - DLLTOOL="$ac_cv_prog_DLLTOOL" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. -set dummy ${ac_tool_prefix}objdump; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_OBJDUMP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$OBJDUMP"; then - ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OBJDUMP=$ac_cv_prog_OBJDUMP -if test -n "$OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 -$as_echo "$OBJDUMP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OBJDUMP"; then - ac_ct_OBJDUMP=$OBJDUMP - # Extract the first word of "objdump", so it can be a program name with args. -set dummy objdump; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OBJDUMP"; then - ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_OBJDUMP="objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP -if test -n "$ac_ct_OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 -$as_echo "$ac_ct_OBJDUMP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OBJDUMP" = x; then - OBJDUMP="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OBJDUMP=$ac_ct_OBJDUMP - fi -else - OBJDUMP="$ac_cv_prog_OBJDUMP" -fi - - ;; -esac - -test -z "$AS" && AS=as - - - - - -test -z "$DLLTOOL" && DLLTOOL=dlltool - - - - - -test -z "$OBJDUMP" && OBJDUMP=objdump - - - - - - - - enable_dlopen=no - - - - # Check whether --enable-shared was given. -if test "${enable_shared+set}" = set; then : - enableval=$enable_shared; p=${PACKAGE-default} - case $enableval in - yes) enable_shared=yes ;; - no) enable_shared=no ;; - *) - enable_shared=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, - for pkg in $enableval; do - IFS=$lt_save_ifs - if test "X$pkg" = "X$p"; then - enable_shared=yes - fi - done - IFS=$lt_save_ifs - ;; - esac -else - enable_shared=yes -fi - - - - - - - - - - # Check whether --enable-static was given. -if test "${enable_static+set}" = set; then : - enableval=$enable_static; p=${PACKAGE-default} - case $enableval in - yes) enable_static=yes ;; - no) enable_static=no ;; - *) - enable_static=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, - for pkg in $enableval; do - IFS=$lt_save_ifs - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS=$lt_save_ifs - ;; - esac -else - enable_static=yes -fi - - - - - - - - - - -# Check whether --with-pic was given. -if test "${with_pic+set}" = set; then : - withval=$with_pic; lt_p=${PACKAGE-default} - case $withval in - yes|no) pic_mode=$withval ;; - *) - pic_mode=default - # Look at the argument we got. We use all the common list separators. - lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, - for lt_pkg in $withval; do - IFS=$lt_save_ifs - if test "X$lt_pkg" = "X$lt_p"; then - pic_mode=yes - fi - done - IFS=$lt_save_ifs - ;; - esac -else - pic_mode=default -fi - - - - - - - - - # Check whether --enable-fast-install was given. -if test "${enable_fast_install+set}" = set; then : - enableval=$enable_fast_install; p=${PACKAGE-default} - case $enableval in - yes) enable_fast_install=yes ;; - no) enable_fast_install=no ;; - *) - enable_fast_install=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, - for pkg in $enableval; do - IFS=$lt_save_ifs - if test "X$pkg" = "X$p"; then - enable_fast_install=yes - fi - done - IFS=$lt_save_ifs - ;; - esac -else - enable_fast_install=yes -fi - - - - - - - - - shared_archive_member_spec= -case $host,$enable_shared in -power*-*-aix[5-9]*,yes) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 -$as_echo_n "checking which variant of shared library versioning to provide... " >&6; } - -# Check whether --with-aix-soname was given. -if test "${with_aix_soname+set}" = set; then : - withval=$with_aix_soname; case $withval in - aix|svr4|both) - ;; - *) - as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 - ;; - esac - lt_cv_with_aix_soname=$with_aix_soname -else - if ${lt_cv_with_aix_soname+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_with_aix_soname=aix -fi - - with_aix_soname=$lt_cv_with_aix_soname -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 -$as_echo "$with_aix_soname" >&6; } - if test aix != "$with_aix_soname"; then - # For the AIX way of multilib, we name the shared archive member - # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', - # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. - # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, - # the AIX toolchain works better with OBJECT_MODE set (default 32). - if test 64 = "${OBJECT_MODE-32}"; then - shared_archive_member_spec=shr_64 - else - shared_archive_member_spec=shr - fi - fi - ;; -*) - with_aix_soname=aix - ;; -esac - - - - - - - - - - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS=$ltmain - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -test -z "$LN_S" && LN_S="ln -s" - - - - - - - - - - - - - - -if test -n "${ZSH_VERSION+set}"; then - setopt NO_GLOB_SUBST -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 -$as_echo_n "checking for objdir... " >&6; } -if ${lt_cv_objdir+:} false; then : - $as_echo_n "(cached) " >&6 -else - rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - lt_cv_objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - lt_cv_objdir=_libs -fi -rmdir .libs 2>/dev/null -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 -$as_echo "$lt_cv_objdir" >&6; } -objdir=$lt_cv_objdir - - - - - -cat >>confdefs.h <<_ACEOF -#define LT_OBJDIR "$lt_cv_objdir/" -_ACEOF - - - - -case $host_os in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test set != "${COLLECT_NAMES+set}"; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Global variables: -ofile=libtool -can_build_shared=yes - -# All known linkers require a '.a' archive for static linking (except MSVC, -# which needs '.lib'). -libext=a - -with_gnu_ld=$lt_cv_prog_gnu_ld - -old_CC=$CC -old_CFLAGS=$CFLAGS - -# Set sane defaults for various variables -test -z "$CC" && CC=cc -test -z "$LTCC" && LTCC=$CC -test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS -test -z "$LD" && LD=ld -test -z "$ac_objext" && ac_objext=o - -func_cc_basename $compiler -cc_basename=$func_cc_basename_result - - -# Only perform the check for file, if the check method requires it -test -z "$MAGIC_CMD" && MAGIC_CMD=file -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 -$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } -if ${lt_cv_path_MAGIC_CMD+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $MAGIC_CMD in -[\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD=$MAGIC_CMD - lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR - ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" - for ac_dir in $ac_dummy; do - IFS=$lt_save_ifs - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/${ac_tool_prefix}file"; then - lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD=$lt_cv_path_MAGIC_CMD - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <<_LT_EOF 1>&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -_LT_EOF - fi ;; - esac - fi - break - fi - done - IFS=$lt_save_ifs - MAGIC_CMD=$lt_save_MAGIC_CMD - ;; -esac -fi - -MAGIC_CMD=$lt_cv_path_MAGIC_CMD -if test -n "$MAGIC_CMD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 -$as_echo "$MAGIC_CMD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - - - -if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 -$as_echo_n "checking for file... " >&6; } -if ${lt_cv_path_MAGIC_CMD+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $MAGIC_CMD in -[\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD=$MAGIC_CMD - lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR - ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" - for ac_dir in $ac_dummy; do - IFS=$lt_save_ifs - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/file"; then - lt_cv_path_MAGIC_CMD=$ac_dir/"file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD=$lt_cv_path_MAGIC_CMD - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <<_LT_EOF 1>&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -_LT_EOF - fi ;; - esac - fi - break - fi - done - IFS=$lt_save_ifs - MAGIC_CMD=$lt_save_MAGIC_CMD - ;; -esac -fi - -MAGIC_CMD=$lt_cv_path_MAGIC_CMD -if test -n "$MAGIC_CMD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 -$as_echo "$MAGIC_CMD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - else - MAGIC_CMD=: - fi -fi - - fi - ;; -esac - -# Use C for the default configuration in the libtool script - -lt_save_CC=$CC -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -# Source file extension for C test sources. -ac_ext=c - -# Object file extension for compiled C test sources. -objext=o -objext=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}' - - - - - - - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - -# Save the default compiler, since it gets overwritten when the other -# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. -compiler_DEFAULT=$CC - -# save warnings/boilerplate of simple test code -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$RM conftest* - -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$RM -r conftest* - - -## CAVEAT EMPTOR: -## There is no encapsulation within the following macros, do not change -## the running order or otherwise move them around unless you know exactly -## what you are doing... -if test -n "$compiler"; then - -lt_prog_compiler_no_builtin_flag= - -if test yes = "$GCC"; then - case $cc_basename in - nvcc*) - lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; - *) - lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; - esac - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 -$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } -if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_rtti_exceptions=no - ac_outfile=conftest.$ac_objext - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_rtti_exceptions=yes - fi - fi - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 -$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } - -if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then - lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" -else - : -fi - -fi - - - - - - - lt_prog_compiler_wl= -lt_prog_compiler_pic= -lt_prog_compiler_static= - - - if test yes = "$GCC"; then - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_static='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test ia64 = "$host_cpu"; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - fi - lt_prog_compiler_pic='-fPIC' - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - lt_prog_compiler_pic='-fPIC' - ;; - m68k) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the '-m68020' flag to GCC prevents building anything better, - # like '-m68040'. - lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' - ;; - esac - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - lt_prog_compiler_pic='-DDLL_EXPORT' - case $host_os in - os2*) - lt_prog_compiler_static='$wl-static' - ;; - esac - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic='-fno-common' - ;; - - haiku*) - # PIC is the default for Haiku. - # The "-static" flag exists, but is broken. - lt_prog_compiler_static= - ;; - - hpux*) - # PIC is the default for 64-bit PA HP-UX, but not for 32-bit - # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag - # sets the default TLS model and affects inlining. - case $host_cpu in - hppa*64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic='-fPIC' - ;; - esac - ;; - - interix[3-9]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - lt_prog_compiler_can_build_shared=no - enable_shared=no - ;; - - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - lt_prog_compiler_pic='-fPIC -shared' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic=-Kconform_pic - fi - ;; - - *) - lt_prog_compiler_pic='-fPIC' - ;; - esac - - case $cc_basename in - nvcc*) # Cuda Compiler Driver 2.2 - lt_prog_compiler_wl='-Xlinker ' - if test -n "$lt_prog_compiler_pic"; then - lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" - fi - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - lt_prog_compiler_wl='-Wl,' - if test ia64 = "$host_cpu"; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - else - lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' - fi - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic='-fno-common' - case $cc_basename in - nagfor*) - # NAG Fortran compiler - lt_prog_compiler_wl='-Wl,-Wl,,' - lt_prog_compiler_pic='-PIC' - lt_prog_compiler_static='-Bstatic' - ;; - esac - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - lt_prog_compiler_pic='-DDLL_EXPORT' - case $host_os in - os2*) - lt_prog_compiler_static='$wl-static' - ;; - esac - ;; - - hpux9* | hpux10* | hpux11*) - lt_prog_compiler_wl='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - lt_prog_compiler_static='$wl-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - lt_prog_compiler_wl='-Wl,' - # PIC (with -KPIC) is the default. - lt_prog_compiler_static='-non_shared' - ;; - - linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - case $cc_basename in - # old Intel for x86_64, which still supported -KPIC. - ecc*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-static' - ;; - # icc used to be incompatible with GCC. - # ICC 10 doesn't accept -KPIC any more. - icc* | ifort*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fPIC' - lt_prog_compiler_static='-static' - ;; - # Lahey Fortran 8.1. - lf95*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='--shared' - lt_prog_compiler_static='--static' - ;; - nagfor*) - # NAG Fortran compiler - lt_prog_compiler_wl='-Wl,-Wl,,' - lt_prog_compiler_pic='-PIC' - lt_prog_compiler_static='-Bstatic' - ;; - tcc*) - # Fabrice Bellard et al's Tiny C Compiler - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fPIC' - lt_prog_compiler_static='-static' - ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fpic' - lt_prog_compiler_static='-Bstatic' - ;; - ccc*) - lt_prog_compiler_wl='-Wl,' - # All Alpha code is PIC. - lt_prog_compiler_static='-non_shared' - ;; - xl* | bgxl* | bgf* | mpixl*) - # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-qpic' - lt_prog_compiler_static='-qstaticlink' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='' - ;; - *Sun\ F* | *Sun*Fortran*) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='-Qoption ld ' - ;; - *Sun\ C*) - # Sun C 5.9 - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='-Wl,' - ;; - *Intel*\ [CF]*Compiler*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fPIC' - lt_prog_compiler_static='-static' - ;; - *Portland\ Group*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fpic' - lt_prog_compiler_static='-Bstatic' - ;; - esac - ;; - esac - ;; - - newsos6) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - lt_prog_compiler_pic='-fPIC -shared' - ;; - - osf3* | osf4* | osf5*) - lt_prog_compiler_wl='-Wl,' - # All OSF/1 code is PIC. - lt_prog_compiler_static='-non_shared' - ;; - - rdos*) - lt_prog_compiler_static='-non_shared' - ;; - - solaris*) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - case $cc_basename in - f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - lt_prog_compiler_wl='-Qoption ld ';; - *) - lt_prog_compiler_wl='-Wl,';; - esac - ;; - - sunos4*) - lt_prog_compiler_wl='-Qoption ld ' - lt_prog_compiler_pic='-PIC' - lt_prog_compiler_static='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic='-Kconform_pic' - lt_prog_compiler_static='-Bstatic' - fi - ;; - - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - unicos*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_can_build_shared=no - ;; - - uts4*) - lt_prog_compiler_pic='-pic' - lt_prog_compiler_static='-Bstatic' - ;; - - *) - lt_prog_compiler_can_build_shared=no - ;; - esac - fi - -case $host_os in - # For platforms that do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic= - ;; - *) - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; -esac - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -$as_echo_n "checking for $compiler option to produce PIC... " >&6; } -if ${lt_cv_prog_compiler_pic+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_pic=$lt_prog_compiler_pic -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 -$as_echo "$lt_cv_prog_compiler_pic" >&6; } -lt_prog_compiler_pic=$lt_cv_prog_compiler_pic - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 -$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } -if ${lt_cv_prog_compiler_pic_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_pic_works=no - ac_outfile=conftest.$ac_objext - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_pic_works=yes - fi - fi - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 -$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } - -if test yes = "$lt_cv_prog_compiler_pic_works"; then - case $lt_prog_compiler_pic in - "" | " "*) ;; - *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; - esac -else - lt_prog_compiler_pic= - lt_prog_compiler_can_build_shared=no -fi - -fi - - - - - - - - - - - -# -# Check to make sure the static flag actually works. -# -wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 -$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } -if ${lt_cv_prog_compiler_static_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_static_works=no - save_LDFLAGS=$LDFLAGS - LDFLAGS="$LDFLAGS $lt_tmp_static_flag" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&5 - $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_static_works=yes - fi - else - lt_cv_prog_compiler_static_works=yes - fi - fi - $RM -r conftest* - LDFLAGS=$save_LDFLAGS - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 -$as_echo "$lt_cv_prog_compiler_static_works" >&6; } - -if test yes = "$lt_cv_prog_compiler_static_works"; then - : -else - lt_prog_compiler_static= -fi - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 -$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if ${lt_cv_prog_compiler_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_c_o=no - $RM -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - lt_cv_prog_compiler_c_o=yes - fi - fi - chmod u+w . 2>&5 - $RM conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files - $RM out/* && rmdir out - cd .. - $RM -r conftest - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 -$as_echo "$lt_cv_prog_compiler_c_o" >&6; } - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 -$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if ${lt_cv_prog_compiler_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_c_o=no - $RM -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - lt_cv_prog_compiler_c_o=yes - fi - fi - chmod u+w . 2>&5 - $RM conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files - $RM out/* && rmdir out - cd .. - $RM -r conftest - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 -$as_echo "$lt_cv_prog_compiler_c_o" >&6; } - - - - -hard_links=nottested -if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then - # do not overwrite the value of need_locks provided by the user - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 -$as_echo_n "checking if we can lock with hard links... " >&6; } - hard_links=yes - $RM conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 -$as_echo "$hard_links" >&6; } - if test no = "$hard_links"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 -$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} - need_locks=warn - fi -else - need_locks=no -fi - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } - - runpath_var= - allow_undefined_flag= - always_export_symbols=no - archive_cmds= - archive_expsym_cmds= - compiler_needs_object=no - enable_shared_with_static_runtimes=no - export_dynamic_flag_spec= - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - hardcode_automatic=no - hardcode_direct=no - hardcode_direct_absolute=no - hardcode_libdir_flag_spec= - hardcode_libdir_separator= - hardcode_minus_L=no - hardcode_shlibpath_var=unsupported - inherit_rpath=no - link_all_deplibs=unknown - module_cmds= - module_expsym_cmds= - old_archive_from_new_cmds= - old_archive_from_expsyms_cmds= - thread_safe_flag_spec= - whole_archive_flag_spec= - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - include_expsyms= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ' (' and ')$', so one must not match beginning or - # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', - # as well as any symbol that contains 'd'. - exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - # Exclude shared library initialization/finalization symbols. - extract_expsyms_cmds= - - case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test yes != "$GCC"; then - with_gnu_ld=no - fi - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - openbsd* | bitrig*) - with_gnu_ld=no - ;; - esac - - ld_shlibs=yes - - # On some targets, GNU ld is compatible enough with the native linker - # that we're better off using the native interface for both. - lt_use_gnu_ld_interface=no - if test yes = "$with_gnu_ld"; then - case $host_os in - aix*) - # The AIX port of GNU ld has always aspired to compatibility - # with the native linker. However, as the warning in the GNU ld - # block says, versions before 2.19.5* couldn't really create working - # shared libraries, regardless of the interface used. - case `$LD -v 2>&1` in - *\ \(GNU\ Binutils\)\ 2.19.5*) ;; - *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; - *\ \(GNU\ Binutils\)\ [3-9]*) ;; - *) - lt_use_gnu_ld_interface=yes - ;; - esac - ;; - *) - lt_use_gnu_ld_interface=yes - ;; - esac - fi - - if test yes = "$lt_use_gnu_ld_interface"; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='$wl' - - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' - export_dynamic_flag_spec='$wl--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' - else - whole_archive_flag_spec= - fi - supports_anon_versioning=no - case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in - *GNU\ gold*) supports_anon_versioning=yes ;; - *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=yes ;; - esac - - # See if GNU ld supports shared libraries. - case $host_os in - aix[3-9]*) - # On AIX/PPC, the GNU linker is very broken - if test ia64 != "$host_cpu"; then - ld_shlibs=no - cat <<_LT_EOF 1>&2 - -*** Warning: the GNU linker, at least up to release 2.19, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to install binutils -*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. -*** You will then need to restart the configuration process. - -_LT_EOF - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - archive_expsym_cmds='' - ;; - m68k) - archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - esac - ;; - - beos*) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - allow_undefined_flag=unsupported - # Joseph Beckenbach <jrb3@best.com> says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - else - ld_shlibs=no - fi - ;; - - cygwin* | mingw* | pw32* | cegcc*) - # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec='-L$libdir' - export_dynamic_flag_spec='$wl--export-all-symbols' - allow_undefined_flag=unsupported - always_export_symbols=no - enable_shared_with_static_runtimes=yes - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' - exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file, use it as - # is; otherwise, prepend EXPORTS... - archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - ld_shlibs=no - fi - ;; - - haiku*) - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - link_all_deplibs=yes - ;; - - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - allow_undefined_flag=unsupported - shrext_cmds=.dll - archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ - $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ - $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ - $ECHO EXPORTS >> $output_objdir/$libname.def~ - emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ - $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ - emximp -o $lib $output_objdir/$libname.def' - archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ - $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ - $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ - $ECHO EXPORTS >> $output_objdir/$libname.def~ - prefix_cmds="$SED"~ - if test EXPORTS = "`$SED 1q $export_symbols`"; then - prefix_cmds="$prefix_cmds -e 1d"; - fi~ - prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ - cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ - $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ - emximp -o $lib $output_objdir/$libname.def' - old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' - enable_shared_with_static_runtimes=yes - ;; - - interix[3-9]*) - hardcode_direct=no - hardcode_shlibpath_var=no - hardcode_libdir_flag_spec='$wl-rpath,$libdir' - export_dynamic_flag_spec='$wl-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - - gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) - tmp_diet=no - if test linux-dietlibc = "$host_os"; then - case $cc_basename in - diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) - esac - fi - if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ - && test no = "$tmp_diet" - then - tmp_addflag=' $pic_flag' - tmp_sharedflag='-shared' - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler - whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' - tmp_addflag=' $pic_flag' - ;; - pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group f77 and f90 compilers - whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' - tmp_addflag=' $pic_flag -Mnomain' ;; - ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 - tmp_addflag=' -i_dynamic' ;; - efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 - tmp_addflag=' -i_dynamic -nofor_main' ;; - ifc* | ifort*) # Intel Fortran compiler - tmp_addflag=' -nofor_main' ;; - lf95*) # Lahey Fortran 8.1 - whole_archive_flag_spec= - tmp_sharedflag='--shared' ;; - nagfor*) # NAGFOR 5.3 - tmp_sharedflag='-Wl,-shared' ;; - xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) - tmp_sharedflag='-qmkshrobj' - tmp_addflag= ;; - nvcc*) # Cuda Compiler Driver 2.2 - whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' - compiler_needs_object=yes - ;; - esac - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) # Sun C 5.9 - whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' - compiler_needs_object=yes - tmp_sharedflag='-G' ;; - *Sun\ F*) # Sun Fortran 8.3 - tmp_sharedflag='-G' ;; - esac - archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - - if test yes = "$supports_anon_versioning"; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' - fi - - case $cc_basename in - tcc*) - export_dynamic_flag_spec='-rdynamic' - ;; - xlf* | bgf* | bgxlf* | mpixlf*) - # IBM XL Fortran 10.1 on PPC cannot create shared libs itself - whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' - hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' - archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test yes = "$supports_anon_versioning"; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac - else - ld_shlibs=no - fi - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris*) - if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then - ld_shlibs=no - cat <<_LT_EOF 1>&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) - ld_shlibs=no - cat <<_LT_EOF 1>&2 - -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot -*** reliably create shared libraries on SCO systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.16.91.0.3 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - ;; - *) - # For security reasons, it is highly recommended that you always - # use absolute paths for naming shared libraries, and exclude the - # DT_RUNPATH tag from executables and libraries. But doing so - # requires that you compile everything twice, which is a pain. - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - esac - ;; - - sunos4*) - archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - esac - - if test no = "$ld_shlibs"; then - runpath_var= - hardcode_libdir_flag_spec= - export_dynamic_flag_spec= - whole_archive_flag_spec= - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - allow_undefined_flag=unsupported - always_export_symbols=yes - archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L=yes - if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct=unsupported - fi - ;; - - aix[4-9]*) - if test ia64 = "$host_cpu"; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag= - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to GNU nm, but means don't demangle to AIX nm. - # Without the "-l" option, or with the "-B" option, AIX nm treats - # weak defined symbols like other global defined symbols, whereas - # GNU nm marks them as "W". - # While the 'weak' keyword is ignored in the Export File, we need - # it in the Import File for the 'aix-soname' feature, so we have - # to replace the "-B" option with "-P" for AIX nm. - if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' - else - export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # have runtime linking enabled, and use it for executables. - # For shared libraries, we enable/disable runtime linking - # depending on the kind of the shared library created - - # when "with_aix_soname,aix_use_runtimelinking" is: - # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables - # "aix,yes" lib.so shared, rtl:yes, for executables - # lib.a static archive - # "both,no" lib.so.V(shr.o) shared, rtl:yes - # lib.a(lib.so.V) shared, rtl:no, for executables - # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables - # lib.a(lib.so.V) shared, rtl:no - # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables - # lib.a static archive - case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) - for ld_flag in $LDFLAGS; do - if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then - aix_use_runtimelinking=yes - break - fi - done - if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then - # With aix-soname=svr4, we create the lib.so.V shared archives only, - # so we don't have lib.a shared libs to link our executables. - # We have to force runtime linking in this case. - aix_use_runtimelinking=yes - LDFLAGS="$LDFLAGS -Wl,-brtl" - fi - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - archive_cmds='' - hardcode_direct=yes - hardcode_direct_absolute=yes - hardcode_libdir_separator=':' - link_all_deplibs=yes - file_list_spec='$wl-f,' - case $with_aix_soname,$aix_use_runtimelinking in - aix,*) ;; # traditional, no import file - svr4,* | *,yes) # use import file - # The Import File defines what to hardcode. - hardcode_direct=no - hardcode_direct_absolute=no - ;; - esac - - if test yes = "$GCC"; then - case $host_os in aix4.[012]|aix4.[012].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`$CC -print-prog-name=collect2` - if test -f "$collect2name" && - strings "$collect2name" | $GREP resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - hardcode_direct=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - hardcode_minus_L=yes - hardcode_libdir_flag_spec='-L$libdir' - hardcode_libdir_separator= - fi - ;; - esac - shared_flag='-shared' - if test yes = "$aix_use_runtimelinking"; then - shared_flag="$shared_flag "'$wl-G' - fi - # Need to ensure runtime linking is disabled for the traditional - # shared library, or the linker may eventually find shared libraries - # /with/ Import File - we do not want to mix them. - shared_flag_aix='-shared' - shared_flag_svr4='-shared $wl-G' - else - # not using gcc - if test ia64 = "$host_cpu"; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test yes = "$aix_use_runtimelinking"; then - shared_flag='$wl-G' - else - shared_flag='$wl-bM:SRE' - fi - shared_flag_aix='$wl-bM:SRE' - shared_flag_svr4='$wl-G' - fi - fi - - export_dynamic_flag_spec='$wl-bexpall' - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - always_export_symbols=yes - if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - allow_undefined_flag='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. - if test set = "${lt_cv_aix_libpath+set}"; then - aix_libpath=$lt_cv_aix_libpath -else - if ${lt_cv_aix_libpath_+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\([^ ]*\) *$/\1/ - p - } - }' - lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - # Check for a 64-bit object if we didn't find anything. - if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - fi -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_=/usr/lib:/lib - fi - -fi - - aix_libpath=$lt_cv_aix_libpath_ -fi - - hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag - else - if test ia64 = "$host_cpu"; then - hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib' - allow_undefined_flag="-z nodefs" - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an - # empty executable. - if test set = "${lt_cv_aix_libpath+set}"; then - aix_libpath=$lt_cv_aix_libpath -else - if ${lt_cv_aix_libpath_+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\([^ ]*\) *$/\1/ - p - } - }' - lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - # Check for a 64-bit object if we didn't find anything. - if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - fi -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_=/usr/lib:/lib - fi - -fi - - aix_libpath=$lt_cv_aix_libpath_ -fi - - hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - no_undefined_flag=' $wl-bernotok' - allow_undefined_flag=' $wl-berok' - if test yes = "$with_gnu_ld"; then - # We only use this code for GNU lds that support --whole-archive. - whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive' - else - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec='$convenience' - fi - archive_cmds_need_lc=yes - archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' - # -brtl affects multiple linker settings, -berok does not and is overridden later - compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' - if test svr4 != "$with_aix_soname"; then - # This is similar to how AIX traditionally builds its shared libraries. - archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' - fi - if test aix != "$with_aix_soname"; then - archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' - else - # used by -dlpreopen to get the symbols - archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir' - fi - archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d' - fi - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - archive_expsym_cmds='' - ;; - m68k) - archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - esac - ;; - - bsdi[45]*) - export_dynamic_flag_spec=-rdynamic - ;; - - cygwin* | mingw* | pw32* | cegcc*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - case $cc_basename in - cl*) - # Native MSVC - hardcode_libdir_flag_spec=' ' - allow_undefined_flag=unsupported - always_export_symbols=yes - file_list_spec='@' - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=.dll - # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' - archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then - cp "$export_symbols" "$output_objdir/$soname.def"; - echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; - else - $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; - fi~ - $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ - linknames=' - # The linker will not automatically build a static lib if we build a DLL. - # _LT_TAGVAR(old_archive_from_new_cmds, )='true' - enable_shared_with_static_runtimes=yes - exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' - # Don't use ranlib - old_postinstall_cmds='chmod 644 $oldlib' - postlink_cmds='lt_outputfile="@OUTPUT@"~ - lt_tool_outputfile="@TOOL_OUTPUT@"~ - case $lt_outputfile in - *.exe|*.EXE) ;; - *) - lt_outputfile=$lt_outputfile.exe - lt_tool_outputfile=$lt_tool_outputfile.exe - ;; - esac~ - if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then - $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; - $RM "$lt_outputfile.manifest"; - fi' - ;; - *) - # Assume MSVC wrapper - hardcode_libdir_flag_spec=' ' - allow_undefined_flag=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=.dll - # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - old_archive_from_new_cmds='true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' - enable_shared_with_static_runtimes=yes - ;; - esac - ;; - - darwin* | rhapsody*) - - - archive_cmds_need_lc=no - hardcode_direct=no - hardcode_automatic=yes - hardcode_shlibpath_var=unsupported - if test yes = "$lt_cv_ld_force_load"; then - whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' - - else - whole_archive_flag_spec='' - fi - link_all_deplibs=yes - allow_undefined_flag=$_lt_dar_allow_undefined - case $cc_basename in - ifort*|nagfor*) _lt_dar_can_shared=yes ;; - *) _lt_dar_can_shared=$GCC ;; - esac - if test yes = "$_lt_dar_can_shared"; then - output_verbose_link_cmd=func_echo_all - archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" - module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" - archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" - module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" - - else - ld_shlibs=no - fi - - ;; - - dgux*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2.*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - hpux9*) - if test yes = "$GCC"; then - archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' - else - archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' - fi - hardcode_libdir_flag_spec='$wl+b $wl$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - export_dynamic_flag_spec='$wl-E' - ;; - - hpux10*) - if test yes,no = "$GCC,$with_gnu_ld"; then - archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi - if test no = "$with_gnu_ld"; then - hardcode_libdir_flag_spec='$wl+b $wl$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - hardcode_direct_absolute=yes - export_dynamic_flag_spec='$wl-E' - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - fi - ;; - - hpux11*) - if test yes,no = "$GCC,$with_gnu_ld"; then - case $host_cpu in - hppa*64*) - archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case $host_cpu in - hppa*64*) - archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - - # Older versions of the 11.00 compiler do not understand -b yet - # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 -$as_echo_n "checking if $CC understands -b... " >&6; } -if ${lt_cv_prog_compiler__b+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler__b=no - save_LDFLAGS=$LDFLAGS - LDFLAGS="$LDFLAGS -b" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&5 - $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler__b=yes - fi - else - lt_cv_prog_compiler__b=yes - fi - fi - $RM -r conftest* - LDFLAGS=$save_LDFLAGS - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 -$as_echo "$lt_cv_prog_compiler__b" >&6; } - -if test yes = "$lt_cv_prog_compiler__b"; then - archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' -fi - - ;; - esac - fi - if test no = "$with_gnu_ld"; then - hardcode_libdir_flag_spec='$wl+b $wl$libdir' - hardcode_libdir_separator=: - - case $host_cpu in - hppa*64*|ia64*) - hardcode_direct=no - hardcode_shlibpath_var=no - ;; - *) - hardcode_direct=yes - hardcode_direct_absolute=yes - export_dynamic_flag_spec='$wl-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test yes = "$GCC"; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. - # This should be the same for all languages, so no per-tag cache variable. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 -$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } -if ${lt_cv_irix_exported_symbol+:} false; then : - $as_echo_n "(cached) " >&6 -else - save_LDFLAGS=$LDFLAGS - LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int foo (void) { return 0; } -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - lt_cv_irix_exported_symbol=yes -else - lt_cv_irix_exported_symbol=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$save_LDFLAGS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 -$as_echo "$lt_cv_irix_exported_symbol" >&6; } - if test yes = "$lt_cv_irix_exported_symbol"; then - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' - fi - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' - fi - archive_cmds_need_lc='no' - hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' - hardcode_libdir_separator=: - inherit_rpath=yes - link_all_deplibs=yes - ;; - - linux*) - case $cc_basename in - tcc*) - # Fabrice Bellard et al's Tiny C Compiler - ld_shlibs=yes - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - newsos6) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' - hardcode_libdir_separator=: - hardcode_shlibpath_var=no - ;; - - *nto* | *qnx*) - ;; - - openbsd* | bitrig*) - if test -f /usr/libexec/ld.so; then - hardcode_direct=yes - hardcode_shlibpath_var=no - hardcode_direct_absolute=yes - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' - hardcode_libdir_flag_spec='$wl-rpath,$libdir' - export_dynamic_flag_spec='$wl-E' - else - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='$wl-rpath,$libdir' - fi - else - ld_shlibs=no - fi - ;; - - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - allow_undefined_flag=unsupported - shrext_cmds=.dll - archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ - $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ - $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ - $ECHO EXPORTS >> $output_objdir/$libname.def~ - emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ - $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ - emximp -o $lib $output_objdir/$libname.def' - archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ - $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ - $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ - $ECHO EXPORTS >> $output_objdir/$libname.def~ - prefix_cmds="$SED"~ - if test EXPORTS = "`$SED 1q $export_symbols`"; then - prefix_cmds="$prefix_cmds -e 1d"; - fi~ - prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ - cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ - $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ - emximp -o $lib $output_objdir/$libname.def' - old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' - enable_shared_with_static_runtimes=yes - ;; - - osf3*) - if test yes = "$GCC"; then - allow_undefined_flag=' $wl-expect_unresolved $wl\*' - archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' - fi - archive_cmds_need_lc='no' - hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' - hardcode_libdir_separator=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test yes = "$GCC"; then - allow_undefined_flag=' $wl-expect_unresolved $wl\*' - archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' - hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' - archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ - $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' - - # Both c and cxx compiler support -rpath directly - hardcode_libdir_flag_spec='-rpath $libdir' - fi - archive_cmds_need_lc='no' - hardcode_libdir_separator=: - ;; - - solaris*) - no_undefined_flag=' -z defs' - if test yes = "$GCC"; then - wlarc='$wl' - archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) - wlarc='' - archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' - ;; - *) - wlarc='$wl' - archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - ;; - esac - fi - hardcode_libdir_flag_spec='-R$libdir' - hardcode_shlibpath_var=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands '-z linker_flag'. GCC discards it without '$wl', - # but is careful enough not to reorder. - # Supported since Solaris 2.6 (maybe 2.5.1?) - if test yes = "$GCC"; then - whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' - else - whole_archive_flag_spec='-z allextract$convenience -z defaultextract' - fi - ;; - esac - link_all_deplibs=yes - ;; - - sunos4*) - if test sequent = "$host_vendor"; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - sysv4) - case $host_vendor in - sni) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' - reload_cmds='$CC -r -o $output$reload_objs' - hardcode_direct=no - ;; - motorola) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var=no - ;; - - sysv4.3*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - export_dynamic_flag_spec='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ld_shlibs=yes - fi - ;; - - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) - no_undefined_flag='$wl-z,text' - archive_cmds_need_lc=no - hardcode_shlibpath_var=no - runpath_var='LD_RUN_PATH' - - if test yes = "$GCC"; then - archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We CANNOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - no_undefined_flag='$wl-z,text' - allow_undefined_flag='$wl-z,nodefs' - archive_cmds_need_lc=no - hardcode_shlibpath_var=no - hardcode_libdir_flag_spec='$wl-R,$libdir' - hardcode_libdir_separator=':' - link_all_deplibs=yes - export_dynamic_flag_spec='$wl-Bexport' - runpath_var='LD_RUN_PATH' - - if test yes = "$GCC"; then - archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - uts4*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - *) - ld_shlibs=no - ;; - esac - - if test sni = "$host_vendor"; then - case $host in - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - export_dynamic_flag_spec='$wl-Blargedynsym' - ;; - esac - fi - fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 -$as_echo "$ld_shlibs" >&6; } -test no = "$ld_shlibs" && can_build_shared=no - -with_gnu_ld=$with_gnu_ld - - - - - - - - - - - - - - - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc=yes - - if test yes,yes = "$GCC,$enable_shared"; then - case $archive_cmds in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 -$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } -if ${lt_cv_archive_cmds_need_lc+:} false; then : - $as_echo_n "(cached) " >&6 -else - $RM conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl - pic_flag=$lt_prog_compiler_pic - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag - allow_undefined_flag= - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 - (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - then - lt_cv_archive_cmds_need_lc=no - else - lt_cv_archive_cmds_need_lc=yes - fi - allow_undefined_flag=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 -$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } - archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc - ;; - esac - fi - ;; -esac - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 -$as_echo_n "checking dynamic linker characteristics... " >&6; } - -if test yes = "$GCC"; then - case $host_os in - darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; - *) lt_awk_arg='/^libraries:/' ;; - esac - case $host_os in - mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; - *) lt_sed_strip_eq='s|=/|/|g' ;; - esac - lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` - case $lt_search_path_spec in - *\;*) - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it is - # assumed that no part of a normal pathname contains ";" but that should - # okay in the real world where ";" in dirpaths is itself problematic. - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` - ;; - *) - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` - ;; - esac - # Ok, now we have the path, separated by spaces, we can step through it - # and add multilib dir if necessary... - lt_tmp_lt_search_path_spec= - lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` - # ...but if some path component already ends with the multilib dir we assume - # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). - case "$lt_multi_os_dir; $lt_search_path_spec " in - "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) - lt_multi_os_dir= - ;; - esac - for lt_sys_path in $lt_search_path_spec; do - if test -d "$lt_sys_path$lt_multi_os_dir"; then - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" - elif test -n "$lt_multi_os_dir"; then - test -d "$lt_sys_path" && \ - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" - fi - done - lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' -BEGIN {RS = " "; FS = "/|\n";} { - lt_foo = ""; - lt_count = 0; - for (lt_i = NF; lt_i > 0; lt_i--) { - if ($lt_i != "" && $lt_i != ".") { - if ($lt_i == "..") { - lt_count++; - } else { - if (lt_count == 0) { - lt_foo = "/" $lt_i lt_foo; - } else { - lt_count--; - } - } - } - } - if (lt_foo != "") { lt_freq[lt_foo]++; } - if (lt_freq[lt_foo] == 1) { print lt_foo; } -}'` - # AWK program above erroneously prepends '/' to C:/dos/paths - # for these hosts. - case $host_os in - mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ - $SED 's|/\([A-Za-z]:\)|\1|g'` ;; - esac - sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=.so -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - - - -case $host_os in -aix3*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='$libname$release$shared_ext$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='$libname$release$shared_ext$major' - ;; - -aix[4-9]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test ia64 = "$host_cpu"; then - # AIX 5 supports IA64 - library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line '#! .'. This would cause the generated library to - # depend on '.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[01] | aix4.[01].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # Using Import Files as archive members, it is possible to support - # filename-based versioning of shared library archives on AIX. While - # this would work for both with and without runtime linking, it will - # prevent static linking of such archives. So we do filename-based - # shared library versioning with .so extension only, which is used - # when both runtime linking and shared linking is enabled. - # Unfortunately, runtime linking may impact performance, so we do - # not want this to be the default eventually. Also, we use the - # versioned .so libs for executables only if there is the -brtl - # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. - # To allow for filename-based versioning support, we need to create - # libNAME.so.V as an archive file, containing: - # *) an Import File, referring to the versioned filename of the - # archive as well as the shared archive member, telling the - # bitwidth (32 or 64) of that shared object, and providing the - # list of exported symbols of that shared object, eventually - # decorated with the 'weak' keyword - # *) the shared object with the F_LOADONLY flag set, to really avoid - # it being seen by the linker. - # At run time we better use the real file rather than another symlink, - # but for link time we create the symlink libNAME.so -> libNAME.so.V - - case $with_aix_soname,$aix_use_runtimelinking in - # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - aix,yes) # traditional libtool - dynamic_linker='AIX unversionable lib.so' - # If using run time linking (on AIX 4.2 or later) use lib<name>.so - # instead of lib<name>.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - ;; - aix,no) # traditional AIX only - dynamic_linker='AIX lib.a(lib.so.V)' - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='$libname$release.a $libname.a' - soname_spec='$libname$release$shared_ext$major' - ;; - svr4,*) # full svr4 only - dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" - library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' - # We do not specify a path in Import Files, so LIBPATH fires. - shlibpath_overrides_runpath=yes - ;; - *,yes) # both, prefer svr4 - dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" - library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' - # unpreferred sharedlib libNAME.a needs extra handling - postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' - postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' - # We do not specify a path in Import Files, so LIBPATH fires. - shlibpath_overrides_runpath=yes - ;; - *,no) # both, prefer aix - dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" - library_names_spec='$libname$release.a $libname.a' - soname_spec='$libname$release$shared_ext$major' - # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling - postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' - postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' - ;; - esac - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - case $host_cpu in - powerpc) - # Since July 2007 AmigaOS4 officially supports .so libraries. - # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - ;; - m68k) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - esac - ;; - -beos*) - library_names_spec='$libname$shared_ext' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi[45]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_version=no - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32* | cegcc*) - version_type=windows - shrext_cmds=.dll - need_version=no - need_lib_prefix=no - - case $GCC,$cc_basename in - yes,*) - # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \$file`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ - chmod a+x \$dldir/$dlname~ - if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then - eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; - fi' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' - - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" - ;; - mingw* | cegcc*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' - ;; - esac - dynamic_linker='Win32 ld.exe' - ;; - - *,cl*) - # Native MSVC - libname_spec='$name' - soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' - library_names_spec='$libname.dll.lib' - - case $build_os in - mingw*) - sys_lib_search_path_spec= - lt_save_ifs=$IFS - IFS=';' - for lt_path in $LIB - do - IFS=$lt_save_ifs - # Let DOS variable expansion print the short 8.3 style file name. - lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` - sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" - done - IFS=$lt_save_ifs - # Convert to MSYS style. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` - ;; - cygwin*) - # Convert to unix form, then to dos form, then back to unix form - # but this time dos style (no spaces!) so that the unix form looks - # like /cygdrive/c/PROGRA~1:/cygdr... - sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` - sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` - sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - ;; - *) - sys_lib_search_path_spec=$LIB - if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - # FIXME: find the short name or the path components, as spaces are - # common. (e.g. "Program Files" -> "PROGRA~1") - ;; - esac - - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \$file`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - shlibpath_overrides_runpath=yes - dynamic_linker='Win32 link.exe' - ;; - - *) - # Assume MSVC wrapper - library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' - dynamic_linker='Win32 ld.exe' - ;; - esac - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' - soname_spec='$libname$release$major$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' - - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd* | dragonfly*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - if test -x /usr/bin/objformat; then - objformat=`/usr/bin/objformat` - else - case $host_os in - freebsd[23].*) objformat=aout ;; - *) objformat=elf ;; - esac - fi - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2.*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.[01]* | freebsdelf3.[01]*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ - freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - esac - ;; - -haiku*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - dynamic_linker="$host_os runtime_loader" - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=no - sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case $host_cpu in - ia64*) - shrext_cmds='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - if test 32 = "$HPUX_IA64_MODE"; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - sys_lib_dlsearch_path_spec=/usr/lib/hpux32 - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - sys_lib_dlsearch_path_spec=/usr/lib/hpux64 - fi - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555, ... - postinstall_cmds='chmod 555 $lib' - # or fails outright, so override atomically: - install_override_mode=555 - ;; - -interix[3-9]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test yes = "$lt_cv_prog_gnu_ld"; then - version_type=linux # correct to gnu/linux during the next big refactor - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='$libname$release$shared_ext$major' - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" - sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -linux*android*) - version_type=none # Android doesn't support versioned libraries. - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$shared_ext' - soname_spec='$libname$release$shared_ext' - finish_cmds= - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - dynamic_linker='Android linker' - # Don't embed -rpath directories since the linker doesn't support them. - hardcode_libdir_flag_spec='-L$libdir' - ;; - -# This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - - # Some binutils ld are patched to set DT_RUNPATH - if ${lt_cv_shlibpath_overrides_runpath+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_shlibpath_overrides_runpath=no - save_LDFLAGS=$LDFLAGS - save_libdir=$libdir - eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ - LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : - lt_cv_shlibpath_overrides_runpath=yes -fi -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$save_LDFLAGS - libdir=$save_libdir - -fi - - shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath - - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # Ideally, we could use ldconfig to report *all* directores which are - # searched for libraries, however this is still not possible. Aside from not - # being certain /sbin/ldconfig is available, command - # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, - # even though it is searched at run-time. Try to do the best guess by - # appending ld.so.conf contents (and includes) to the search path. - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -*nto* | *qnx*) - version_type=qnx - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='ldqnx.so' - ;; - -openbsd* | bitrig*) - version_type=sunos - sys_lib_dlsearch_path_spec=/usr/lib - need_lib_prefix=no - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then - need_version=no - else - need_version=yes - fi - library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -os2*) - libname_spec='$name' - version_type=windows - shrext_cmds=.dll - need_version=no - need_lib_prefix=no - # OS/2 can only load a DLL with a base name of 8 characters or less. - soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; - v=$($ECHO $release$versuffix | tr -d .-); - n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); - $ECHO $n$v`$shared_ext' - library_names_spec='${libname}_dll.$libext' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=BEGINLIBPATH - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - postinstall_cmds='base_file=`basename \$file`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ - chmod a+x \$dldir/$dlname~ - if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then - eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; - fi' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='$libname$release$shared_ext$major' - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - -rdos*) - dynamic_linker=no - ;; - -solaris*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test yes = "$with_gnu_ld"; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.3*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec; then - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' - soname_spec='$libname$shared_ext.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=sco - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - if test yes = "$with_gnu_ld"; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" - ;; - esac - fi - sys_lib_dlsearch_path_spec='/usr/lib' - ;; - -tpf*) - # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -uts4*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 -$as_echo "$dynamic_linker" >&6; } -test no = "$dynamic_linker" && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test yes = "$GCC"; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then - sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec -fi - -if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then - sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec -fi - -# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... -configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec - -# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code -func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" - -# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool -configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 -$as_echo_n "checking how to hardcode library paths into programs... " >&6; } -hardcode_action= -if test -n "$hardcode_libdir_flag_spec" || - test -n "$runpath_var" || - test yes = "$hardcode_automatic"; then - - # We can hardcode non-existent directories. - if test no != "$hardcode_direct" && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" && - test no != "$hardcode_minus_L"; then - # Linking always hardcodes the temporary library directory. - hardcode_action=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action=unsupported -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 -$as_echo "$hardcode_action" >&6; } - -if test relink = "$hardcode_action" || - test yes = "$inherit_rpath"; then - # Fast installation is not supported - enable_fast_install=no -elif test yes = "$shlibpath_overrides_runpath" || - test no = "$enable_shared"; then - # Fast installation is not necessary - enable_fast_install=needless -fi - - - - - - - if test yes != "$enable_dlopen"; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else - lt_cv_dlopen=no - lt_cv_dlopen_libs= - - case $host_os in - beos*) - lt_cv_dlopen=load_add_on - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; - - mingw* | pw32* | cegcc*) - lt_cv_dlopen=LoadLibrary - lt_cv_dlopen_libs= - ;; - - cygwin*) - lt_cv_dlopen=dlopen - lt_cv_dlopen_libs= - ;; - - darwin*) - # if libdl is installed we need to link against it - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if ${ac_cv_lib_dl_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dl_dlopen=yes -else - ac_cv_lib_dl_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = xyes; then : - lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl -else - - lt_cv_dlopen=dyld - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - -fi - - ;; - - tpf*) - # Don't try to run any link tests for TPF. We know it's impossible - # because TPF is a cross-compiler, and we know how we open DSOs. - lt_cv_dlopen=dlopen - lt_cv_dlopen_libs= - lt_cv_dlopen_self=no - ;; - - *) - ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" -if test "x$ac_cv_func_shl_load" = xyes; then : - lt_cv_dlopen=shl_load -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 -$as_echo_n "checking for shl_load in -ldld... " >&6; } -if ${ac_cv_lib_dld_shl_load+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char shl_load (); -int -main () -{ -return shl_load (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dld_shl_load=yes -else - ac_cv_lib_dld_shl_load=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 -$as_echo "$ac_cv_lib_dld_shl_load" >&6; } -if test "x$ac_cv_lib_dld_shl_load" = xyes; then : - lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld -else - ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" -if test "x$ac_cv_func_dlopen" = xyes; then : - lt_cv_dlopen=dlopen -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if ${ac_cv_lib_dl_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dl_dlopen=yes -else - ac_cv_lib_dl_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = xyes; then : - lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 -$as_echo_n "checking for dlopen in -lsvld... " >&6; } -if ${ac_cv_lib_svld_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsvld $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_svld_dlopen=yes -else - ac_cv_lib_svld_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 -$as_echo "$ac_cv_lib_svld_dlopen" >&6; } -if test "x$ac_cv_lib_svld_dlopen" = xyes; then : - lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 -$as_echo_n "checking for dld_link in -ldld... " >&6; } -if ${ac_cv_lib_dld_dld_link+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dld_link (); -int -main () -{ -return dld_link (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dld_dld_link=yes -else - ac_cv_lib_dld_dld_link=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 -$as_echo "$ac_cv_lib_dld_dld_link" >&6; } -if test "x$ac_cv_lib_dld_dld_link" = xyes; then : - lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld -fi - - -fi - - -fi - - -fi - - -fi - - -fi - - ;; - esac - - if test no = "$lt_cv_dlopen"; then - enable_dlopen=no - else - enable_dlopen=yes - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS=$CPPFLAGS - test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS=$LDFLAGS - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS=$LIBS - LIBS="$lt_cv_dlopen_libs $LIBS" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 -$as_echo_n "checking whether a program can dlopen itself... " >&6; } -if ${lt_cv_dlopen_self+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test yes = "$cross_compiling"; then : - lt_cv_dlopen_self=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF -#line $LINENO "configure" -#include "confdefs.h" - -#if HAVE_DLFCN_H -#include <dlfcn.h> -#endif - -#include <stdio.h> - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -/* When -fvisibility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ -#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) -int fnord () __attribute__((visibility("default"))); -#endif - -int fnord () { return 42; } -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else - { - if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - else puts (dlerror ()); - } - /* dlclose (self); */ - } - else - puts (dlerror ()); - - return status; -} -_LT_EOF - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 - (eval $ac_link) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then - (./conftest; exit; ) >&5 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; - x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self=no - fi -fi -rm -fr conftest* - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 -$as_echo "$lt_cv_dlopen_self" >&6; } - - if test yes = "$lt_cv_dlopen_self"; then - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 -$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } -if ${lt_cv_dlopen_self_static+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test yes = "$cross_compiling"; then : - lt_cv_dlopen_self_static=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF -#line $LINENO "configure" -#include "confdefs.h" - -#if HAVE_DLFCN_H -#include <dlfcn.h> -#endif - -#include <stdio.h> - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -/* When -fvisibility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ -#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) -int fnord () __attribute__((visibility("default"))); -#endif - -int fnord () { return 42; } -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else - { - if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - else puts (dlerror ()); - } - /* dlclose (self); */ - } - else - puts (dlerror ()); - - return status; -} -_LT_EOF - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 - (eval $ac_link) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then - (./conftest; exit; ) >&5 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self_static=no - fi -fi -rm -fr conftest* - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 -$as_echo "$lt_cv_dlopen_self_static" >&6; } - fi - - CPPFLAGS=$save_CPPFLAGS - LDFLAGS=$save_LDFLAGS - LIBS=$save_LIBS - ;; - esac - - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac - - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac -fi - - - - - - - - - - - - - - - - - -striplib= -old_striplib= -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 -$as_echo_n "checking whether stripping libraries is possible... " >&6; } -if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP"; then - striplib="$STRIP -x" - old_striplib="$STRIP -S" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; - esac -fi - - - - - - - - - - - - - # Report what library types will actually be built - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 -$as_echo_n "checking if libtool supports shared libraries... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 -$as_echo "$can_build_shared" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 -$as_echo_n "checking whether to build shared libraries... " >&6; } - test no = "$can_build_shared" && enable_shared=no - - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case $host_os in - aix3*) - test yes = "$enable_shared" && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - - aix[4-9]*) - if test ia64 != "$host_cpu"; then - case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in - yes,aix,yes) ;; # shared object as lib.so file only - yes,svr4,*) ;; # shared object as lib.so archive member only - yes,*) enable_static=no ;; # shared object in lib.a archive as well - esac - fi - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 -$as_echo "$enable_shared" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 -$as_echo_n "checking whether to build static libraries... " >&6; } - # Make sure either enable_shared or enable_static is yes. - test yes = "$enable_shared" || enable_static=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 -$as_echo "$enable_static" >&6; } - - - - -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -CC=$lt_save_CC - - - - - - - - - - - - - - - - ac_config_commands="$ac_config_commands libtool" - - - - -# Only expand once: - - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5 -$as_echo_n "checking size of void *... " >&6; } -if ${ac_cv_sizeof_void_p+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_void_p" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (void *) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_void_p=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5 -$as_echo "$ac_cv_sizeof_void_p" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_VOID_P $ac_cv_sizeof_void_p -_ACEOF - - -case $host:$ac_cv_sizeof_void_p in #( - *-*-mingw*:4) : - kpse_dll_name=texlua52 ;; #( - *-*-mingw*:8) : - kpse_dll_name=texlua52 ;; #( - *-*-cygwin:4) : - kpse_dll_name= ;; #( - *-*-cygwin:8) : - kpse_dll_name= ;; #( - *) : - kpse_dll_name= ;; -esac - - - - - -ac_config_headers="$ac_config_headers config.h" - - if test "x$enable_build" != xno; then - build_TRUE= - build_FALSE='#' -else - build_TRUE='#' - build_FALSE= -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing pow" >&5 -$as_echo_n "checking for library containing pow... " >&6; } -if ${ac_cv_search_pow+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char pow (); -int -main () -{ -return pow (); - ; - return 0; -} -_ACEOF -for ac_lib in '' m; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_pow=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_pow+:} false; then : - break -fi -done -if ${ac_cv_search_pow+:} false; then : - -else - ac_cv_search_pow=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_pow" >&5 -$as_echo "$ac_cv_search_pow" >&6; } -ac_res=$ac_cv_search_pow -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for native WIN32 or MINGW32" >&5 -$as_echo_n "checking for native WIN32 or MINGW32... " >&6; } -if ${kpse_cv_have_win32+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef WIN32 - choke me -#endif -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __MINGW32__ - choke me -#endif -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - kpse_cv_have_win32=mingw32 -else - kpse_cv_have_win32=native -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else - kpse_cv_have_win32=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_have_win32" >&5 -$as_echo "$kpse_cv_have_win32" >&6; } - -LUA52_DEFINES='-DLUA_COMPAT_MODULE -DLUAI_HASHLIMIT=6' - -if test "x$kpse_cv_have_win32" = xno; then - LUA52_DEFINES="$LUA52_DEFINES -DLUA_USE_POSIX" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 -$as_echo_n "checking for library containing dlopen... " >&6; } -if ${ac_cv_search_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -for ac_lib in '' dl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_dlopen=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_dlopen+:} false; then : - break -fi -done -if ${ac_cv_search_dlopen+:} false; then : - -else - ac_cv_search_dlopen=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 -$as_echo "$ac_cv_search_dlopen" >&6; } -ac_res=$ac_cv_search_dlopen -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -fi - - if test "x$ac_cv_search_dlopen" != xno; then - ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default -" -if test "x$ac_cv_header_dlfcn_h" = xyes; then : - LUA52_DEFINES="$LUA52_DEFINES -DLUA_USE_DLOPEN" -fi - - - fi -fi - -# Check whether --enable-largefile was given. -if test "${enable_largefile+set}" = set; then : - enableval=$enable_largefile; -fi - -if test "$enable_largefile" != no; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 -$as_echo_n "checking for special C compiler options needed for large files... " >&6; } -if ${ac_cv_sys_largefile_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_sys_largefile_CC=no - if test "$GCC" != yes; then - ac_save_CC=$CC - while :; do - # IRIX 6.2 and later do not support large files by default, - # so use the C compiler's -n32 option if that helps. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <sys/types.h> - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main () -{ - - ; - return 0; -} -_ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - break -fi -rm -f core conftest.err conftest.$ac_objext - CC="$CC -n32" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_largefile_CC=' -n32'; break -fi -rm -f core conftest.err conftest.$ac_objext - break - done - CC=$ac_save_CC - rm -f conftest.$ac_ext - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 -$as_echo "$ac_cv_sys_largefile_CC" >&6; } - if test "$ac_cv_sys_largefile_CC" != no; then - CC=$CC$ac_cv_sys_largefile_CC - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 -$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } -if ${ac_cv_sys_file_offset_bits+:} false; then : - $as_echo_n "(cached) " >&6 -else - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <sys/types.h> - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_file_offset_bits=no; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#define _FILE_OFFSET_BITS 64 -#include <sys/types.h> - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_file_offset_bits=64; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cv_sys_file_offset_bits=unknown - break -done -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 -$as_echo "$ac_cv_sys_file_offset_bits" >&6; } -case $ac_cv_sys_file_offset_bits in #( - no | unknown) ;; - *) -cat >>confdefs.h <<_ACEOF -#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits -_ACEOF -;; -esac -rm -rf conftest* - if test $ac_cv_sys_file_offset_bits = unknown; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 -$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } -if ${ac_cv_sys_large_files+:} false; then : - $as_echo_n "(cached) " >&6 -else - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <sys/types.h> - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_large_files=no; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#define _LARGE_FILES 1 -#include <sys/types.h> - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_large_files=1; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cv_sys_large_files=unknown - break -done -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 -$as_echo "$ac_cv_sys_large_files" >&6; } -case $ac_cv_sys_large_files in #( - no | unknown) ;; - *) -cat >>confdefs.h <<_ACEOF -#define _LARGE_FILES $ac_cv_sys_large_files -_ACEOF -;; -esac -rm -rf conftest* - fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5 -$as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; } -if ${ac_cv_sys_largefile_source+:} false; then : - $as_echo_n "(cached) " >&6 -else - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <sys/types.h> /* for off_t */ - #include <stdio.h> -int -main () -{ -int (*fp) (FILE *, off_t, int) = fseeko; - return fseeko (stdin, 0, 0) && fp (stdin, 0, 0); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_sys_largefile_source=no; break -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#define _LARGEFILE_SOURCE 1 -#include <sys/types.h> /* for off_t */ - #include <stdio.h> -int -main () -{ -int (*fp) (FILE *, off_t, int) = fseeko; - return fseeko (stdin, 0, 0) && fp (stdin, 0, 0); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_sys_largefile_source=1; break -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - ac_cv_sys_largefile_source=unknown - break -done -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_source" >&5 -$as_echo "$ac_cv_sys_largefile_source" >&6; } -case $ac_cv_sys_largefile_source in #( - no | unknown) ;; - *) -cat >>confdefs.h <<_ACEOF -#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source -_ACEOF -;; -esac -rm -rf conftest* - -# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug -# in glibc 2.1.3, but that breaks too many other things. -# If you want fseeko and ftello with glibc, upgrade to a fixed glibc. -if test $ac_cv_sys_largefile_source != unknown; then - -$as_echo "#define HAVE_FSEEKO 1" >>confdefs.h - -fi - -if test "x$enable_largefile" != xno; then - case $ac_cv_sys_file_offset_bits in #( - no) : - ;; #( - unknown) : - case $ac_cv_sys_large_files in #( - no | unknown) : - ;; #( - *) : - LUA52_DEFINES="$LUA52_DEFINES -D_LARGE_FILES" ;; -esac ;; #( - *) : - LUA52_DEFINES="$LUA52_DEFINES -D_FILE_OFFSET_BITS=64" ;; -esac -fi -case $ac_cv_sys_largefile_source in #( - no | unknown) : - ;; #( - *) : - LUA52_DEFINES="$LUA52_DEFINES -D_LARGEFILE_SOURCE" ;; -esac - - -if test "x$ac_cv_header_stdc" = xyes; then - LUA52_DEFINES="$LUA52_DEFINES -DHAVE_UNISTD_H" -fi - -LUA52_TREE=lua52-src - - -ac_config_files="$ac_config_files Makefile include/Makefile texlua52.pc" - - -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes: double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \. - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - if test ! -f "$cache_file" || test -h "$cache_file"; then - cat confcache >"$cache_file" - else - case $cache_file in #( - */* | ?:*) - mv -f confcache "$cache_file"$$ && - mv -f "$cache_file"$$ "$cache_file" ;; #( - *) - mv -f confcache "$cache_file" ;; - esac - fi - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -DEFS=-DHAVE_CONFIG_H - -ac_libobjs= -ac_ltlibobjs= -U= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" - as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 -$as_echo_n "checking that generated files are newer than configure... " >&6; } - if test -n "$am_sleep_pid"; then - # Hide warnings about reused PIDs. - wait $am_sleep_pid 2>/dev/null - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 -$as_echo "done" >&6; } - if test -n "$EXEEXT"; then - am__EXEEXT_TRUE= - am__EXEEXT_FALSE='#' -else - am__EXEEXT_TRUE='#' - am__EXEEXT_FALSE= -fi - -if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then - as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - as_fn_error $? "conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error $? "conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error $? "conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${build_TRUE}" && test -z "${build_FALSE}"; then - as_fn_error $? "conditional \"build\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi - -: "${CONFIG_STATUS=./config.status}" -ac_write_fail=0 -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} -as_write_fail=0 -cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false - -SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -exec 6>&1 -## ----------------------------------- ## -## Main body of $CONFIG_STATUS script. ## -## ----------------------------------- ## -_ASEOF -test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# Save the log message, to keep $0 and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by lua52 (TeX Live) $as_me 5.2.4, which was -generated by GNU Autoconf 2.69. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -case $ac_config_files in *" -"*) set x $ac_config_files; shift; ac_config_files=$*;; -esac - -case $ac_config_headers in *" -"*) set x $ac_config_headers; shift; ac_config_headers=$*;; -esac - - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# Files that config.status was made for. -config_files="$ac_config_files" -config_headers="$ac_config_headers" -config_commands="$ac_config_commands" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -ac_cs_usage="\ -\`$as_me' instantiates files and other configuration actions -from templates according to the current configuration. Unless the files -and actions are specified as TAGs, all are instantiated by default. - -Usage: $0 [OPTION]... [TAG]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - --config print configuration, then exit - -q, --quiet, --silent - do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE - -Configuration files: -$config_files - -Configuration headers: -$config_headers - -Configuration commands: -$config_commands - -Report bugs to <tex-k@tug.org>." - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" -ac_cs_version="\\ -lua52 (TeX Live) config.status 5.2.4 -configured by $0, generated by GNU Autoconf 2.69, - with options \\"\$ac_cs_config\\" - -Copyright (C) 2012 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -INSTALL='$INSTALL' -MKDIR_P='$MKDIR_P' -AWK='$AWK' -test -n "\$AWK" || AWK=awk -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# The default lists apply if the user does not specify any file. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=?*) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` - ac_shift=: - ;; - --*=) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg= - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; - --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - '') as_fn_error $? "missing file argument" ;; - esac - as_fn_append CONFIG_FILES " '$ac_optarg'" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - as_fn_append CONFIG_HEADERS " '$ac_optarg'" - ac_need_defaults=false;; - --he | --h) - # Conflict between --help and --header - as_fn_error $? "ambiguous option: \`$1' -Try \`$0 --help' for more information.";; - --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) as_fn_error $? "unrecognized option: \`$1' -Try \`$0 --help' for more information." ;; - - *) as_fn_append ac_config_targets " $1" - ac_need_defaults=false ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -if \$ac_cs_recheck; then - set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 - CONFIG_SHELL='$SHELL' - export CONFIG_SHELL - exec "\$@" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX - $as_echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# -# INIT-COMMANDS -# -AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}" - - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -sed_quote_subst='$sed_quote_subst' -double_quote_subst='$double_quote_subst' -delay_variable_subst='$delay_variable_subst' -macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' -macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' -AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`' -DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' -OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' -enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' -enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' -pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' -enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' -shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`' -SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' -ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' -PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' -host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' -host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' -host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' -build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' -build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' -build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' -SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' -Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' -GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' -EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' -FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' -LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' -NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' -LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' -max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' -ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' -exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' -lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' -lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' -lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' -lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' -lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' -reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' -reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' -deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' -file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' -file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' -want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' -sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' -AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' -AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' -archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' -STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' -RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' -old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' -old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' -old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' -lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' -CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' -CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' -compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' -GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' -lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`' -nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' -lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' -lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`' -objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' -MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' -lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' -need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' -MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' -DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' -NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' -LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' -OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' -OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' -libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' -shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' -extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' -archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' -enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' -export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' -whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' -compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' -old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' -old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' -archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' -archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' -module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' -module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' -with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' -allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' -no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' -hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' -hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' -hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' -hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' -hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' -hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' -hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' -inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' -link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' -always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' -export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' -exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' -include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' -prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' -postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' -file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' -variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' -need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' -need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' -version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' -runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' -shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' -shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' -libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' -library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' -soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' -install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' -postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' -postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' -finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' -finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' -hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' -sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' -configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`' -configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`' -hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' -enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' -enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' -enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' -old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' -striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' - -LTCC='$LTCC' -LTCFLAGS='$LTCFLAGS' -compiler='$compiler_DEFAULT' - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -\$1 -_LTECHO_EOF' -} - -# Quote evaled strings. -for var in AS \ -DLLTOOL \ -OBJDUMP \ -SHELL \ -ECHO \ -PATH_SEPARATOR \ -SED \ -GREP \ -EGREP \ -FGREP \ -LD \ -NM \ -LN_S \ -lt_SP2NL \ -lt_NL2SP \ -reload_flag \ -deplibs_check_method \ -file_magic_cmd \ -file_magic_glob \ -want_nocaseglob \ -sharedlib_from_linklib_cmd \ -AR \ -AR_FLAGS \ -archiver_list_spec \ -STRIP \ -RANLIB \ -CC \ -CFLAGS \ -compiler \ -lt_cv_sys_global_symbol_pipe \ -lt_cv_sys_global_symbol_to_cdecl \ -lt_cv_sys_global_symbol_to_import \ -lt_cv_sys_global_symbol_to_c_name_address \ -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ -lt_cv_nm_interface \ -nm_file_list_spec \ -lt_cv_truncate_bin \ -lt_prog_compiler_no_builtin_flag \ -lt_prog_compiler_pic \ -lt_prog_compiler_wl \ -lt_prog_compiler_static \ -lt_cv_prog_compiler_c_o \ -need_locks \ -MANIFEST_TOOL \ -DSYMUTIL \ -NMEDIT \ -LIPO \ -OTOOL \ -OTOOL64 \ -shrext_cmds \ -export_dynamic_flag_spec \ -whole_archive_flag_spec \ -compiler_needs_object \ -with_gnu_ld \ -allow_undefined_flag \ -no_undefined_flag \ -hardcode_libdir_flag_spec \ -hardcode_libdir_separator \ -exclude_expsyms \ -include_expsyms \ -file_list_spec \ -variables_saved_for_relink \ -libname_spec \ -library_names_spec \ -soname_spec \ -install_override_mode \ -finish_eval \ -old_striplib \ -striplib; do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -# Double-quote double-evaled strings. -for var in reload_cmds \ -old_postinstall_cmds \ -old_postuninstall_cmds \ -old_archive_cmds \ -extract_expsyms_cmds \ -old_archive_from_new_cmds \ -old_archive_from_expsyms_cmds \ -archive_cmds \ -archive_expsym_cmds \ -module_cmds \ -module_expsym_cmds \ -export_symbols_cmds \ -prelink_cmds \ -postlink_cmds \ -postinstall_cmds \ -postuninstall_cmds \ -finish_cmds \ -sys_lib_search_path_spec \ -configure_time_dlsearch_path \ -configure_time_lt_sys_library_path; do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -ac_aux_dir='$ac_aux_dir' - -# See if we are running on zsh, and set the options that allow our -# commands through without removal of \ escapes INIT. -if test -n "\${ZSH_VERSION+set}"; then - setopt NO_GLOB_SUBST -fi - - - PACKAGE='$PACKAGE' - VERSION='$VERSION' - RM='$RM' - ofile='$ofile' - -kpse_dll_name='$kpse_dll_name' - - - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; - "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;; - "texlua52.pc") CONFIG_FILES="$CONFIG_FILES texlua52.pc" ;; - - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; - esac -done - - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= ac_tmp= - trap 'exit_status=$? - : "${ac_tmp:=$tmp}" - { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status -' 0 - trap 'as_fn_exit 1' 1 2 13 15 -} -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 -ac_tmp=$tmp - -# Set up the scripts for CONFIG_FILES section. -# No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. -if test -n "$CONFIG_FILES"; then - - -ac_cr=`echo X | tr X '\015'` -# On cygwin, bash can eat \r inside `` if the user requested igncr. -# But we know of no other shell where ac_cr would be empty at this -# point, so we can use a bashism as a fallback. -if test "x$ac_cr" = x; then - eval ac_cr=\$\'\\r\' -fi -ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` -if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\\r' -else - ac_cs_awk_cr=$ac_cr -fi - -echo 'BEGIN {' >"$ac_tmp/subs1.awk" && -_ACEOF - - -{ - echo "cat >conf$$subs.awk <<_ACEOF" && - echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && - echo "_ACEOF" -} >conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - . ./conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - - ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` - if test $ac_delim_n = $ac_delim_num; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done -rm -f conf$$subs.sh - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && -_ACEOF -sed -n ' -h -s/^/S["/; s/!.*/"]=/ -p -g -s/^[^!]*!// -:repl -t repl -s/'"$ac_delim"'$// -t delim -:nl -h -s/\(.\{148\}\)..*/\1/ -t more1 -s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ -p -n -b repl -:more1 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t nl -:delim -h -s/\(.\{148\}\)..*/\1/ -t more2 -s/["\\]/\\&/g; s/^/"/; s/$/"/ -p -b -:more2 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t delim -' <conf$$subs.awk | sed ' -/^[^""]/{ - N - s/\n// -} -' >>$CONFIG_STATUS || ac_write_fail=1 -rm -f conf$$subs.awk -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -_ACAWK -cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && - for (key in S) S_is_set[key] = 1 - FS = "" - -} -{ - line = $ 0 - nfields = split(line, field, "@") - substed = 0 - len = length(field[1]) - for (i = 2; i < nfields; i++) { - key = field[i] - keylen = length(key) - if (S_is_set[key]) { - value = S[key] - line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) - len += length(value) + length(field[++i]) - substed = 1 - } else - len += 1 + keylen - } - - print line -} - -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then - sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" -else - cat -fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ - || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 -_ACEOF - -# VPATH may cause trouble with some makes, so we remove sole $(srcdir), -# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ -h -s/// -s/^/:/ -s/[ ]*$/:/ -s/:\$(srcdir):/:/g -s/:\${srcdir}:/:/g -s/:@srcdir@:/:/g -s/^:*// -s/:*$// -x -s/\(=[ ]*\).*/\1/ -G -s/\n// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -fi # test -n "$CONFIG_FILES" - -# Set up the scripts for CONFIG_HEADERS section. -# No need to generate them if there are no CONFIG_HEADERS. -# This happens for instance with `./config.status Makefile'. -if test -n "$CONFIG_HEADERS"; then -cat >"$ac_tmp/defines.awk" <<\_ACAWK || -BEGIN { -_ACEOF - -# Transform confdefs.h into an awk script `defines.awk', embedded as -# here-document in config.status, that substitutes the proper values into -# config.h.in to produce config.h. - -# Create a delimiter string that does not exist in confdefs.h, to ease -# handling of long lines. -ac_delim='%!_!# ' -for ac_last_try in false false :; do - ac_tt=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_tt"; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done - -# For the awk script, D is an array of macro values keyed by name, -# likewise P contains macro parameters if any. Preserve backslash -# newline sequences. - -ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* -sed -n ' -s/.\{148\}/&'"$ac_delim"'/g -t rset -:rset -s/^[ ]*#[ ]*define[ ][ ]*/ / -t def -d -:def -s/\\$// -t bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3"/p -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p -d -:bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3\\\\\\n"\\/p -t cont -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p -t cont -d -:cont -n -s/.\{148\}/&'"$ac_delim"'/g -t clear -:clear -s/\\$// -t bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/"/p -d -:bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p -b cont -' <confdefs.h | sed ' -s/'"$ac_delim"'/"\\\ -"/g' >>$CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - for (key in D) D_is_set[key] = 1 - FS = "" -} -/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { - line = \$ 0 - split(line, arg, " ") - if (arg[1] == "#") { - defundef = arg[2] - mac1 = arg[3] - } else { - defundef = substr(arg[1], 2) - mac1 = arg[2] - } - split(mac1, mac2, "(") #) - macro = mac2[1] - prefix = substr(line, 1, index(line, defundef) - 1) - if (D_is_set[macro]) { - # Preserve the white space surrounding the "#". - print prefix "define", macro P[macro] D[macro] - next - } else { - # Replace #undef with comments. This is necessary, for example, - # in the case of _POSIX_SOURCE, which is predefined and required - # on some systems where configure will not decide to define it. - if (defundef == "undef") { - print "/*", prefix defundef, macro, "*/" - next - } - } -} -{ print } -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 -fi # test -n "$CONFIG_HEADERS" - - -eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" -shift -for ac_tag -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$ac_tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; - esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac - as_fn_append ac_file_inputs " '$ac_f'" - done - - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' - `' by configure.' - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} - fi - # Neutralize special characters interpreted by sed in replacement strings. - case $configure_input in #( - *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | - sed 's/[\\\\&|]/\\\\&/g'`;; #( - *) ac_sed_conf_input=$configure_input;; - esac - - case $ac_tag in - *:-:* | *:-) cat >"$ac_tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir="$ac_dir"; as_fn_mkdir_p - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; - esac - ac_MKDIR_P=$MKDIR_P - case $MKDIR_P in - [\\/$]* | ?:[\\/]* ) ;; - */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; - esac -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= -ac_sed_dataroot=' -/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p' -case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_sed_extra="$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s|@configure_input@|$ac_sed_conf_input|;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@top_build_prefix@&$ac_top_build_prefix&;t t -s&@srcdir@&$ac_srcdir&;t t -s&@abs_srcdir@&$ac_abs_srcdir&;t t -s&@top_srcdir@&$ac_top_srcdir&;t t -s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t -s&@builddir@&$ac_builddir&;t t -s&@abs_builddir@&$ac_abs_builddir&;t t -s&@abs_top_builddir@&$ac_abs_top_builddir&;t t -s&@INSTALL@&$ac_INSTALL&;t t -s&@MKDIR_P@&$ac_MKDIR_P&;t t -$ac_datarootdir_hack -" -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ - >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ - "$ac_tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&2;} - - rm -f "$ac_tmp/stdin" - case $ac_file in - -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; - *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; - esac \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - ;; - :H) - # - # CONFIG_HEADER - # - if test x"$ac_file" != x-; then - { - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" - } >"$ac_tmp/config.h" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then - { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 -$as_echo "$as_me: $ac_file is unchanged" >&6;} - else - rm -f "$ac_file" - mv "$ac_tmp/config.h" "$ac_file" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - fi - else - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ - || as_fn_error $? "could not create -" "$LINENO" 5 - fi -# Compute "$ac_file"'s index in $config_headers. -_am_arg="$ac_file" -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $_am_arg | $_am_arg:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || -$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$_am_arg" : 'X\(//\)[^/]' \| \ - X"$_am_arg" : 'X\(//\)$' \| \ - X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$_am_arg" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'`/stamp-h$_am_stamp_count - ;; - - :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 -$as_echo "$as_me: executing $ac_file commands" >&6;} - ;; - esac - - - case $ac_file$ac_mode in - "depfiles":C) test x"$AMDEP_TRUE" != x"" || { - # Older Autoconf quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - # TODO: see whether this extra hack can be removed once we start - # requiring Autoconf 2.70 or later. - case $CONFIG_FILES in #( - *\'*) : - eval set x "$CONFIG_FILES" ;; #( - *) : - set x $CONFIG_FILES ;; #( - *) : - ;; -esac - shift - # Used to flag and report bootstrapping failures. - am_rc=0 - for am_mf - do - # Strip MF so we end up with the name of the file. - am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile which includes - # dependency-tracking related rules and includes. - # Grep'ing the whole file directly is not great: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ - || continue - am_dirpart=`$as_dirname -- "$am_mf" || -$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$am_mf" : 'X\(//\)[^/]' \| \ - X"$am_mf" : 'X\(//\)$' \| \ - X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$am_mf" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - am_filepart=`$as_basename -- "$am_mf" || -$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ - X"$am_mf" : 'X\(//\)$' \| \ - X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$am_mf" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - { echo "$as_me:$LINENO: cd "$am_dirpart" \ - && sed -e '/# am--include-marker/d' "$am_filepart" \ - | $MAKE -f - am--depfiles" >&5 - (cd "$am_dirpart" \ - && sed -e '/# am--include-marker/d' "$am_filepart" \ - | $MAKE -f - am--depfiles) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } || am_rc=$? - done - if test $am_rc -ne 0; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "Something went wrong bootstrapping makefile fragments - for automatic dependency tracking. Try re-running configure with the - '--disable-dependency-tracking' option to at least be able to build - the package (albeit without support for automatic dependency tracking). -See \`config.log' for more details" "$LINENO" 5; } - fi - { am_dirpart=; unset am_dirpart;} - { am_filepart=; unset am_filepart;} - { am_mf=; unset am_mf;} - { am_rc=; unset am_rc;} - rm -f conftest-deps.mk -} - ;; - "libtool":C) - - # See if we are running on zsh, and set the options that allow our - # commands through without removal of \ escapes. - if test -n "${ZSH_VERSION+set}"; then - setopt NO_GLOB_SUBST - fi - - cfgfile=${ofile}T - trap "$RM \"$cfgfile\"; exit 1" 1 2 15 - $RM "$cfgfile" - - cat <<_LT_EOF >> "$cfgfile" -#! $SHELL -# Generated automatically by $as_me ($PACKAGE) $VERSION -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -# NOTE: Changes made to this file will be lost: look at ltmain.sh. - -# Provide generalized library-building support services. -# Written by Gordon Matzigkeit, 1996 - -# Copyright (C) 2014 Free Software Foundation, Inc. -# This is free software; see the source for copying conditions. There is NO -# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -# GNU Libtool is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of of the License, or -# (at your option) any later version. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program or library that is built -# using GNU Libtool, you may include this file under the same -# distribution terms that you use for the rest of that program. -# -# GNU Libtool 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/>. - - -# The names of the tagged configurations supported by this script. -available_tags='' - -# Configured defaults for sys_lib_dlsearch_path munging. -: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} - -# ### BEGIN LIBTOOL CONFIG - -# Which release of libtool.m4 was used? -macro_version=$macro_version -macro_revision=$macro_revision - -# Assembler program. -AS=$lt_AS - -# DLL creation program. -DLLTOOL=$lt_DLLTOOL - -# Object dumper program. -OBJDUMP=$lt_OBJDUMP - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# What type of objects to build. -pic_mode=$pic_mode - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# Shared archive member basename,for filename based shared library versioning on AIX. -shared_archive_member_spec=$shared_archive_member_spec - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# An echo program that protects backslashes. -ECHO=$lt_ECHO - -# The PATH separator for the build system. -PATH_SEPARATOR=$lt_PATH_SEPARATOR - -# The host system. -host_alias=$host_alias -host=$host -host_os=$host_os - -# The build system. -build_alias=$build_alias -build=$build -build_os=$build_os - -# A sed program that does not truncate output. -SED=$lt_SED - -# Sed that helps us avoid accidentally triggering echo(1) options like -n. -Xsed="\$SED -e 1s/^X//" - -# A grep program that handles long lines. -GREP=$lt_GREP - -# An ERE matcher. -EGREP=$lt_EGREP - -# A literal string matcher. -FGREP=$lt_FGREP - -# A BSD- or MS-compatible name lister. -NM=$lt_NM - -# Whether we need soft or hard links. -LN_S=$lt_LN_S - -# What is the maximum length of a command? -max_cmd_len=$max_cmd_len - -# Object file suffix (normally "o"). -objext=$ac_objext - -# Executable file suffix (normally ""). -exeext=$exeext - -# whether the shell understands "unset". -lt_unset=$lt_unset - -# turn spaces into newlines. -SP2NL=$lt_lt_SP2NL - -# turn newlines into spaces. -NL2SP=$lt_lt_NL2SP - -# convert \$build file names to \$host format. -to_host_file_cmd=$lt_cv_to_host_file_cmd - -# convert \$build files to toolchain format. -to_tool_file_cmd=$lt_cv_to_tool_file_cmd - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method = "file_magic". -file_magic_cmd=$lt_file_magic_cmd - -# How to find potential files when deplibs_check_method = "file_magic". -file_magic_glob=$lt_file_magic_glob - -# Find potential files using nocaseglob when deplibs_check_method = "file_magic". -want_nocaseglob=$lt_want_nocaseglob - -# Command to associate shared and link libraries. -sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd - -# The archiver. -AR=$lt_AR - -# Flags to create an archive. -AR_FLAGS=$lt_AR_FLAGS - -# How to feed a file listing to the archiver. -archiver_list_spec=$lt_archiver_list_spec - -# A symbol stripping program. -STRIP=$lt_STRIP - -# Commands used to install an old-style archive. -RANLIB=$lt_RANLIB -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Whether to use a lock for old archive extraction. -lock_old_archive_extraction=$lock_old_archive_extraction - -# A C compiler. -LTCC=$lt_CC - -# LTCC compiler flags. -LTCFLAGS=$lt_CFLAGS - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration. -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm into a list of symbols to manually relocate. -global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import - -# Transform the output of nm in a C name address pair. -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# Transform the output of nm in a C name address pair when lib prefix is needed. -global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix - -# The name lister interface. -nm_interface=$lt_lt_cv_nm_interface - -# Specify filename containing input files for \$NM. -nm_file_list_spec=$lt_nm_file_list_spec - -# The root where to search for dependent libraries,and where our libraries should be installed. -lt_sysroot=$lt_sysroot - -# Command to truncate a binary pipe. -lt_truncate_bin=$lt_lt_cv_truncate_bin - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# Used to examine libraries when file_magic_cmd begins with "file". -MAGIC_CMD=$MAGIC_CMD - -# Must we lock files when doing compilation? -need_locks=$lt_need_locks - -# Manifest tool. -MANIFEST_TOOL=$lt_MANIFEST_TOOL - -# Tool to manipulate archived DWARF debug symbol files on Mac OS X. -DSYMUTIL=$lt_DSYMUTIL - -# Tool to change global to local symbols on Mac OS X. -NMEDIT=$lt_NMEDIT - -# Tool to manipulate fat objects and archives on Mac OS X. -LIPO=$lt_LIPO - -# ldd/readelf like tool for Mach-O binaries on Mac OS X. -OTOOL=$lt_OTOOL - -# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. -OTOOL64=$lt_OTOOL64 - -# Old archive suffix (normally "a"). -libext=$libext - -# Shared library suffix (normally ".so"). -shrext_cmds=$lt_shrext_cmds - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at link time. -variables_saved_for_relink=$lt_variables_saved_for_relink - -# Do we need the "lib" prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Library versioning type. -version_type=$version_type - -# Shared library runtime path variable. -runpath_var=$runpath_var - -# Shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Permission mode override for installation of shared libraries. -install_override_mode=$lt_install_override_mode - -# Command to use after installation of a shared archive. -postinstall_cmds=$lt_postinstall_cmds - -# Command to use after uninstallation of a shared archive. -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# As "finish_cmds", except a single script fragment to be evaled but -# not shown. -finish_eval=$lt_finish_eval - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Compile-time system search path for libraries. -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Detected run-time system search path for libraries. -sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path - -# Explicit LT_SYS_LIBRARY_PATH set during ./configure time. -configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - - -# The linker used to build libraries. -LD=$lt_LD - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# Commands used to build an old-style archive. -old_archive_cmds=$lt_old_archive_cmds - -# A language specific compiler. -CC=$lt_compiler - -# Is the compiler the GNU compiler? -with_gcc=$GCC - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc - -# Whether or not to disallow shared libs when runtime libs are static. -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec - -# Whether the compiler copes with passing no objects directly. -compiler_needs_object=$lt_compiler_needs_object - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds - -# Commands used to build a shared archive. -archive_cmds=$lt_archive_cmds -archive_expsym_cmds=$lt_archive_expsym_cmds - -# Commands used to build a loadable module if different from building -# a shared archive. -module_cmds=$lt_module_cmds -module_expsym_cmds=$lt_module_expsym_cmds - -# Whether we are building with GNU ld or not. -with_gnu_ld=$lt_with_gnu_ld - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag - -# Flag that enforces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec - -# Whether we need a single "-rpath" flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator - -# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes -# DIR into the resulting binary. -hardcode_direct=$hardcode_direct - -# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes -# DIR into the resulting binary and the resulting library dependency is -# "absolute",i.e impossible to change by setting \$shlibpath_var if the -# library is relocated. -hardcode_direct_absolute=$hardcode_direct_absolute - -# Set to "yes" if using the -LDIR flag during linking hardcodes DIR -# into the resulting binary. -hardcode_minus_L=$hardcode_minus_L - -# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR -# into the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var - -# Set to "yes" if building a shared library automatically hardcodes DIR -# into the library and all subsequent libraries and executables linked -# against it. -hardcode_automatic=$hardcode_automatic - -# Set to yes if linker adds runtime paths of dependent libraries -# to runtime path list. -inherit_rpath=$inherit_rpath - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs - -# Set to "yes" if exported symbols are required. -always_export_symbols=$always_export_symbols - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms - -# Commands necessary for linking programs (against libraries) with templates. -prelink_cmds=$lt_prelink_cmds - -# Commands necessary for finishing linking programs. -postlink_cmds=$lt_postlink_cmds - -# Specify filename containing input files. -file_list_spec=$lt_file_list_spec - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action - -# ### END LIBTOOL CONFIG - -_LT_EOF - - cat <<'_LT_EOF' >> "$cfgfile" - -# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE - -# func_munge_path_list VARIABLE PATH -# ----------------------------------- -# VARIABLE is name of variable containing _space_ separated list of -# directories to be munged by the contents of PATH, which is string -# having a format: -# "DIR[:DIR]:" -# string "DIR[ DIR]" will be prepended to VARIABLE -# ":DIR[:DIR]" -# string "DIR[ DIR]" will be appended to VARIABLE -# "DIRP[:DIRP]::[DIRA:]DIRA" -# string "DIRP[ DIRP]" will be prepended to VARIABLE and string -# "DIRA[ DIRA]" will be appended to VARIABLE -# "DIR[:DIR]" -# VARIABLE will be replaced by "DIR[ DIR]" -func_munge_path_list () -{ - case x$2 in - x) - ;; - *:) - eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" - ;; - x:*) - eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" - ;; - *::*) - eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" - eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" - ;; - *) - eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" - ;; - esac -} - - -# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. -func_cc_basename () -{ - for cc_temp in $*""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac - done - func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` -} - - -# ### END FUNCTIONS SHARED WITH CONFIGURE - -_LT_EOF - - case $host_os in - aix3*) - cat <<\_LT_EOF >> "$cfgfile" -# AIX sometimes has problems with the GCC collect2 program. For some -# reason, if we set the COLLECT_NAMES environment variable, the problems -# vanish in a puff of smoke. -if test set != "${COLLECT_NAMES+set}"; then - COLLECT_NAMES= - export COLLECT_NAMES -fi -_LT_EOF - ;; - esac - - -ltmain=$ac_aux_dir/ltmain.sh - - - # We use sed instead of cat because bash on DJGPP gets confused if - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? - sed '$q' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) - - mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - -## KPSE_DLL_NAME: Specify the DLL name -if test "x$kpse_dll_name" != x; then - $SED '/^soname_spec=/a\ -## KPSE_DLL_NAME: Specify the DLL name\ -soname_spec='$kpse_dll_name'.dll\ -' "$ofile" >"$cfgfile" - mv "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" -fi - ;; - - esac -done # for ac_tag - - -as_fn_exit 0 -_ACEOF -ac_clean_files=$ac_clean_files_save - -test $ac_write_fail = 0 || - as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || as_fn_exit 1 -fi -if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} -fi - diff --git a/source/libs/lua52/configure.ac b/source/libs/lua52/configure.ac deleted file mode 100644 index 747a0d2090a0b71fe6f725cb40651d26b8db2a14..0000000000000000000000000000000000000000 --- a/source/libs/lua52/configure.ac +++ /dev/null @@ -1,46 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. -dnl -dnl Copyright (C) 2013, 2014 Peter Breitenlohner <tex-live@tug.org> -dnl -dnl This file is free software; the copyright holder -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. -dnl -m4_include([version.ac])[] dnl define lua52_version -AC_INIT([lua52 (TeX Live)], lua52_version, [tex-k@tug.org]) -AC_PREREQ([2.65]) -AC_CONFIG_SRCDIR([lua52-src/src/lua.c]) -AC_CONFIG_AUX_DIR([../../build-aux]) -AC_CONFIG_MACRO_DIR([../../m4]) - -KPSE_BASIC([lua52]) - -AC_PROG_CC -AC_PROG_RANLIB -AC_PROG_LN_S - -AC_SUBST([LUA52VERSION], [lua52_version]) -KPSE_LT_VERSION([lua52]) - -LT_INIT([win32-dll]) - -KPSE_DLL_NAME([texlua52], [texlua52]) - -AC_CONFIG_HEADERS([config.h])[]dnl unused, to avoid zillions of -D's on command line - -AM_CONDITIONAL([build], [test "x$enable_build" != xno]) - -AC_SEARCH_LIBS([pow], [m]) - -KPSE_LUA52_DEFINES -KPSE_LARGEFILE([LUA52_DEFINES]) - -if test "x$ac_cv_header_stdc" = xyes; then - LUA52_DEFINES="$LUA52_DEFINES -DHAVE_UNISTD_H" -fi - -AC_SUBST([LUA52_TREE], [lua52-src]) - -AC_CONFIG_FILES([Makefile include/Makefile texlua52.pc]) - -AC_OUTPUT diff --git a/source/libs/lua52/error.exp b/source/libs/lua52/error.exp deleted file mode 100644 index 6b84f091ddf3e9903e10fec0fb455c2a82381f9c..0000000000000000000000000000000000000000 --- a/source/libs/lua52/error.exp +++ /dev/null @@ -1,5 +0,0 @@ -./luatry: (command line):1: test -stack traceback: - [C]: in function 'error' - (command line):1: in main chunk - [C]: in ? diff --git a/source/libs/lua52/include/Makefile.am b/source/libs/lua52/include/Makefile.am deleted file mode 100644 index a5a89ace691103df1e44c1754e15daa251e0aa30..0000000000000000000000000000000000000000 --- a/source/libs/lua52/include/Makefile.am +++ /dev/null @@ -1,41 +0,0 @@ -## Proxy Makefile.am to install lua52 headers for TeX Live. -## -## Copyright (C) 2013 Peter Breitenlohner <tex-live@tug.org> -## -## This file is free software; the copyright holder -## gives unlimited permission to copy and/or distribute it, -## with or without modifications, as long as this notice is preserved. -## -LUA52_SRC = $(top_srcdir)/$(LUA52_TREE)/src - -hdr_links = \ - $(LUA52_SRC)/lapi.h \ - $(LUA52_SRC)/lauxlib.h \ - $(LUA52_SRC)/lcode.h \ - $(LUA52_SRC)/lctype.h \ - $(LUA52_SRC)/ldebug.h \ - $(LUA52_SRC)/ldo.h \ - $(LUA52_SRC)/lfunc.h \ - $(LUA52_SRC)/lgc.h \ - $(LUA52_SRC)/llex.h \ - $(LUA52_SRC)/llimits.h \ - $(LUA52_SRC)/lmem.h \ - $(LUA52_SRC)/lobject.h \ - $(LUA52_SRC)/lopcodes.h \ - $(LUA52_SRC)/lparser.h \ - $(LUA52_SRC)/lstate.h \ - $(LUA52_SRC)/lstring.h \ - $(LUA52_SRC)/ltable.h \ - $(LUA52_SRC)/ltm.h \ - $(LUA52_SRC)/luaconf.h \ - $(LUA52_SRC)/lua.h \ - $(LUA52_SRC)/lua.hpp \ - $(LUA52_SRC)/lualib.h \ - $(LUA52_SRC)/lundump.h \ - $(LUA52_SRC)/lvm.h \ - $(LUA52_SRC)/lzio.h - -include $(top_srcdir)/../../am/hdr_links.am - -DISTCLEANFILES = lua.hpp - diff --git a/source/libs/lua52/include/Makefile.in b/source/libs/lua52/include/Makefile.in deleted file mode 100644 index d3026799f2edb8d5f28bc692195ad77f26e38f25..0000000000000000000000000000000000000000 --- a/source/libs/lua52/include/Makefile.in +++ /dev/null @@ -1,499 +0,0 @@ -# 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 = : -build_triplet = @build@ -host_triplet = @host@ -subdir = include -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/../../m4/kpse-common.m4 \ - $(top_srcdir)/../../m4/kpse-dll-name.m4 \ - $(top_srcdir)/../../m4/kpse-largefile.m4 \ - $(top_srcdir)/../../m4/kpse-lib-version.m4 \ - $(top_srcdir)/../../m4/kpse-lua52-flags.m4 \ - $(top_srcdir)/../../m4/kpse-warnings.m4 \ - $(top_srcdir)/../../m4/kpse-win32.m4 \ - $(top_srcdir)/../../m4/libtool.m4 \ - $(top_srcdir)/../../m4/ltoptions.m4 \ - $(top_srcdir)/../../m4/ltsugar.m4 \ - $(top_srcdir)/../../m4/ltversion.m4 \ - $(top_srcdir)/../../m4/lt~obsolete.m4 $(top_srcdir)/version.ac \ - $(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 = -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)/Makefile.in \ - $(top_srcdir)/../../am/hdr_links.am -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AS = @AS@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -LUA52VERSION = @LUA52VERSION@ -LUA52_DEFINES = @LUA52_DEFINES@ -LUA52_LT_VERSINFO = @LUA52_LT_VERSINFO@ -LUA52_TREE = @LUA52_TREE@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -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@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -WARNING_CFLAGS = @WARNING_CFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -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 = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -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@ -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@ -LUA52_SRC = $(top_srcdir)/$(LUA52_TREE)/src -hdr_links = \ - $(LUA52_SRC)/lapi.h \ - $(LUA52_SRC)/lauxlib.h \ - $(LUA52_SRC)/lcode.h \ - $(LUA52_SRC)/lctype.h \ - $(LUA52_SRC)/ldebug.h \ - $(LUA52_SRC)/ldo.h \ - $(LUA52_SRC)/lfunc.h \ - $(LUA52_SRC)/lgc.h \ - $(LUA52_SRC)/llex.h \ - $(LUA52_SRC)/llimits.h \ - $(LUA52_SRC)/lmem.h \ - $(LUA52_SRC)/lobject.h \ - $(LUA52_SRC)/lopcodes.h \ - $(LUA52_SRC)/lparser.h \ - $(LUA52_SRC)/lstate.h \ - $(LUA52_SRC)/lstring.h \ - $(LUA52_SRC)/ltable.h \ - $(LUA52_SRC)/ltm.h \ - $(LUA52_SRC)/luaconf.h \ - $(LUA52_SRC)/lua.h \ - $(LUA52_SRC)/lua.hpp \ - $(LUA52_SRC)/lualib.h \ - $(LUA52_SRC)/lundump.h \ - $(LUA52_SRC)/lvm.h \ - $(LUA52_SRC)/lzio.h - -DISTCLEANFILES = lua.hpp -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/../../am/hdr_links.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) --foreign include/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign include/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_srcdir)/../../am/hdr_links.am $(am__empty): - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -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-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: - -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) - -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) - -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-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-local - -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 mostlyclean-libtool - -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-libtool cscopelist-am ctags-am distclean \ - distclean-generic distclean-libtool distclean-local 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 \ - mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ - uninstall-am - -.PRECIOUS: Makefile - -all-local: - @for file in $(hdr_links); do \ - test -f $$file || continue; \ - inst=`echo $$file | sed -e 's/^.*\///'`; \ - test -f $$inst || { \ - rm -f $$inst; \ - if $(AM_V_P); then echo "$(LN_S) $$file $$inst"; \ - else echo " INST $$inst"; fi; \ - $(LN_S) $$file $$inst; } || exit 1; \ - done - -distclean-local: - rm -f *.h - -# 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: diff --git a/source/libs/lua52/lua52-src/Makefile b/source/libs/lua52/lua52-src/Makefile deleted file mode 100644 index b2a62cfdd1be8a127a064d03c2dd2364673af9c2..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/Makefile +++ /dev/null @@ -1,114 +0,0 @@ -# Makefile for installing Lua -# See doc/readme.html for installation and customization instructions. - -# == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT ======================= - -# Your platform. See PLATS for possible values. -PLAT= none - -# Where to install. The installation starts in the src and doc directories, -# so take care if INSTALL_TOP is not an absolute path. See the local target. -# You may want to make INSTALL_LMOD and INSTALL_CMOD consistent with -# LUA_ROOT, LUA_LDIR, and LUA_CDIR in luaconf.h. -INSTALL_TOP= /usr/local -INSTALL_BIN= $(INSTALL_TOP)/bin -INSTALL_INC= $(INSTALL_TOP)/include -INSTALL_LIB= $(INSTALL_TOP)/lib -INSTALL_MAN= $(INSTALL_TOP)/man/man1 -INSTALL_LMOD= $(INSTALL_TOP)/share/lua/$V -INSTALL_CMOD= $(INSTALL_TOP)/lib/lua/$V - -# How to install. If your install program does not support "-p", then -# you may have to run ranlib on the installed liblua.a. -INSTALL= install -p -INSTALL_EXEC= $(INSTALL) -m 0755 -INSTALL_DATA= $(INSTALL) -m 0644 -# -# If you don't have "install" you can use "cp" instead. -# INSTALL= cp -p -# INSTALL_EXEC= $(INSTALL) -# INSTALL_DATA= $(INSTALL) - -# Other utilities. -MKDIR= mkdir -p -RM= rm -f - -# == END OF USER SETTINGS -- NO NEED TO CHANGE ANYTHING BELOW THIS LINE ======= - -# Convenience platforms targets. -PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris - -# What to install. -TO_BIN= lua luac -TO_INC= lua.h luaconf.h lualib.h lauxlib.h lua.hpp -TO_LIB= liblua.a -TO_MAN= lua.1 luac.1 - -# Lua version and release. -V= 5.2 -R= $V.4 - -# Targets start here. -all: $(PLAT) - -$(PLATS) clean: - cd src && $(MAKE) $@ - -test: dummy - src/lua -v - -install: dummy - cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD) - cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN) - cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC) - cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB) - cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN) - -uninstall: - cd src && cd $(INSTALL_BIN) && $(RM) $(TO_BIN) - cd src && cd $(INSTALL_INC) && $(RM) $(TO_INC) - cd src && cd $(INSTALL_LIB) && $(RM) $(TO_LIB) - cd doc && cd $(INSTALL_MAN) && $(RM) $(TO_MAN) - -local: - $(MAKE) install INSTALL_TOP=../install - -none: - @echo "Please do 'make PLATFORM' where PLATFORM is one of these:" - @echo " $(PLATS)" - @echo "See doc/readme.html for complete instructions." - -# make may get confused with test/ and install/ -dummy: - -# echo config parameters -echo: - @cd src && $(MAKE) -s echo - @echo "PLAT= $(PLAT)" - @echo "V= $V" - @echo "R= $R" - @echo "TO_BIN= $(TO_BIN)" - @echo "TO_INC= $(TO_INC)" - @echo "TO_LIB= $(TO_LIB)" - @echo "TO_MAN= $(TO_MAN)" - @echo "INSTALL_TOP= $(INSTALL_TOP)" - @echo "INSTALL_BIN= $(INSTALL_BIN)" - @echo "INSTALL_INC= $(INSTALL_INC)" - @echo "INSTALL_LIB= $(INSTALL_LIB)" - @echo "INSTALL_MAN= $(INSTALL_MAN)" - @echo "INSTALL_LMOD= $(INSTALL_LMOD)" - @echo "INSTALL_CMOD= $(INSTALL_CMOD)" - @echo "INSTALL_EXEC= $(INSTALL_EXEC)" - @echo "INSTALL_DATA= $(INSTALL_DATA)" - -# echo pkg-config data -pc: - @echo "version=$R" - @echo "prefix=$(INSTALL_TOP)" - @echo "libdir=$(INSTALL_LIB)" - @echo "includedir=$(INSTALL_INC)" - -# list targets that do not create files (but not all makes understand .PHONY) -.PHONY: all $(PLATS) clean test install local none dummy echo pecho lecho - -# (end of Makefile) diff --git a/source/libs/lua52/lua52-src/README b/source/libs/lua52/lua52-src/README deleted file mode 100644 index 6e3256f468ead897a073e5e68bc0d4a9d16d2a30..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/README +++ /dev/null @@ -1,6 +0,0 @@ - -This is Lua 5.2.4, released on 25 Feb 2015. - -For installation instructions, license details, and -further information about Lua, see doc/readme.html. - diff --git a/source/libs/lua52/lua52-src/doc/contents.html b/source/libs/lua52/lua52-src/doc/contents.html deleted file mode 100644 index 89516c18c3af1943f520026e50f8c2520be0a6b8..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/doc/contents.html +++ /dev/null @@ -1,608 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<HTML> -<HEAD> -<TITLE>Lua 5.2 Reference Manual - contents</TITLE> -<LINK REL="stylesheet" TYPE="text/css" HREF="lua.css"> -<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1"> -<STYLE TYPE="text/css"> -ul { - list-style-type: none ; -} -</STYLE> -</HEAD> - -<BODY> - -<HR> -<H1> -<A HREF="http://www.lua.org/"><IMG SRC="logo.gif" ALT="" BORDER=0></A> -Lua 5.2 Reference Manual -</H1> - -<P> -The reference manual is the official definition of the Lua language. -For a complete introduction to Lua programming, see the book -<A HREF="http://www.lua.org/pil/">Programming in Lua</A>. - -<P> -<A HREF="manual.html">start</A> -· -<A HREF="#contents">contents</A> -· -<A HREF="#index">index</A> -<HR> -<SMALL> -Copyright © 2011–2015 Lua.org, PUC-Rio. -Freely available under the terms of the -<A HREF="http://www.lua.org/license.html">Lua license</A>. -</SMALL> - -<H2><A NAME="contents">Contents</A></H2> -<UL style="padding: 0"> -<LI><A HREF="manual.html">1 – Introduction</A> -<P> -<LI><A HREF="manual.html#2">2 – Basic Concepts</A> -<UL> -<LI><A HREF="manual.html#2.1">2.1 – Values and Types</A> -<LI><A HREF="manual.html#2.2">2.2 – Environments and the Global Environment</A> -<LI><A HREF="manual.html#2.3">2.3 – Error Handling</A> -<LI><A HREF="manual.html#2.4">2.4 – Metatables and Metamethods</A> -<LI><A HREF="manual.html#2.5">2.5 – Garbage Collection</A> -<UL> -<LI><A HREF="manual.html#2.5.1">2.5.1 – Garbage-Collection Metamethods</A> -<LI><A HREF="manual.html#2.5.2">2.5.2 – Weak Tables</A> -</UL> -<LI><A HREF="manual.html#2.6">2.6 – Coroutines</A> -</UL> -<P> -<LI><A HREF="manual.html#3">3 – The Language</A> -<UL> -<LI><A HREF="manual.html#3.1">3.1 – Lexical Conventions</A> -<LI><A HREF="manual.html#3.2">3.2 – Variables</A> -<LI><A HREF="manual.html#3.3">3.3 – Statements</A> -<UL> -<LI><A HREF="manual.html#3.3.1">3.3.1 – Blocks</A> -<LI><A HREF="manual.html#3.3.2">3.3.2 – Chunks</A> -<LI><A HREF="manual.html#3.3.3">3.3.3 – Assignment</A> -<LI><A HREF="manual.html#3.3.4">3.3.4 – Control Structures</A> -<LI><A HREF="manual.html#3.3.5">3.3.5 – For Statement</A> -<LI><A HREF="manual.html#3.3.6">3.3.6 – Function Calls as Statements</A> -<LI><A HREF="manual.html#3.3.7">3.3.7 – Local Declarations</A> -</UL> -<LI><A HREF="manual.html#3.4">3.4 – Expressions</A> -<UL> -<LI><A HREF="manual.html#3.4.1">3.4.1 – Arithmetic Operators</A> -<LI><A HREF="manual.html#3.4.2">3.4.2 – Coercion</A> -<LI><A HREF="manual.html#3.4.3">3.4.3 – Relational Operators</A> -<LI><A HREF="manual.html#3.4.4">3.4.4 – Logical Operators</A> -<LI><A HREF="manual.html#3.4.5">3.4.5 – Concatenation</A> -<LI><A HREF="manual.html#3.4.6">3.4.6 – The Length Operator</A> -<LI><A HREF="manual.html#3.4.7">3.4.7 – Precedence</A> -<LI><A HREF="manual.html#3.4.8">3.4.8 – Table Constructors</A> -<LI><A HREF="manual.html#3.4.9">3.4.9 – Function Calls</A> -<LI><A HREF="manual.html#3.4.10">3.4.10 – Function Definitions</A> -</UL> -<LI><A HREF="manual.html#3.5">3.5 – Visibility Rules</A> -</UL> -<P> -<LI><A HREF="manual.html#4">4 – The Application Program Interface</A> -<UL> -<LI><A HREF="manual.html#4.1">4.1 – The Stack</A> -<LI><A HREF="manual.html#4.2">4.2 – Stack Size</A> -<LI><A HREF="manual.html#4.3">4.3 – Valid and Acceptable Indices</A> -<LI><A HREF="manual.html#4.4">4.4 – C Closures</A> -<LI><A HREF="manual.html#4.5">4.5 – Registry</A> -<LI><A HREF="manual.html#4.6">4.6 – Error Handling in C</A> -<LI><A HREF="manual.html#4.7">4.7 – Handling Yields in C</A> -<LI><A HREF="manual.html#4.8">4.8 – Functions and Types</A> -<LI><A HREF="manual.html#4.9">4.9 – The Debug Interface</A> -</UL> -<P> -<LI><A HREF="manual.html#5">5 – The Auxiliary Library</A> -<UL> -<LI><A HREF="manual.html#5.1">5.1 – Functions and Types</A> -</UL> -<P> -<LI><A HREF="manual.html#6">6 – Standard Libraries</A> -<UL> -<LI><A HREF="manual.html#6.1">6.1 – Basic Functions</A> -<LI><A HREF="manual.html#6.2">6.2 – Coroutine Manipulation</A> -<LI><A HREF="manual.html#6.3">6.3 – Modules</A> -<LI><A HREF="manual.html#6.4">6.4 – String Manipulation</A> -<UL> -<LI><A HREF="manual.html#6.4.1">6.4.1 – Patterns</A> -</UL> -<LI><A HREF="manual.html#6.5">6.5 – Table Manipulation</A> -<LI><A HREF="manual.html#6.6">6.6 – Mathematical Functions</A> -<LI><A HREF="manual.html#6.7">6.7 – Bitwise Operations</A> -<LI><A HREF="manual.html#6.8">6.8 – Input and Output Facilities</A> -<LI><A HREF="manual.html#6.9">6.9 – Operating System Facilities</A> -<LI><A HREF="manual.html#6.10">6.10 – The Debug Library</A> -</UL> -<P> -<LI><A HREF="manual.html#7">7 – Lua Standalone</A> -<P> -<LI><A HREF="manual.html#8">8 – Incompatibilities with the Previous Version</A> -<UL> -<LI><A HREF="manual.html#8.1">8.1 – Changes in the Language</A> -<LI><A HREF="manual.html#8.2">8.2 – Changes in the Libraries</A> -<LI><A HREF="manual.html#8.3">8.3 – Changes in the API</A> -</UL> -<P> -<LI><A HREF="manual.html#9">9 – The Complete Syntax of Lua</A> -</UL> - -<H2><A NAME="index">Index</A></H2> -<TABLE WIDTH="100%"> -<TR VALIGN="top"> -<TD> -<H3><A NAME="functions">Lua functions</A></H3> -<P> -<A HREF="manual.html#6.1">basic</A><BR> -<A HREF="manual.html#pdf-_G">_G</A><BR> -<A HREF="manual.html#pdf-_VERSION">_VERSION</A><BR> - -<A HREF="manual.html#pdf-assert">assert</A><BR> -<A HREF="manual.html#pdf-collectgarbage">collectgarbage</A><BR> -<A HREF="manual.html#pdf-dofile">dofile</A><BR> -<A HREF="manual.html#pdf-error">error</A><BR> -<A HREF="manual.html#pdf-getmetatable">getmetatable</A><BR> -<A HREF="manual.html#pdf-ipairs">ipairs</A><BR> -<A HREF="manual.html#pdf-load">load</A><BR> -<A HREF="manual.html#pdf-loadfile">loadfile</A><BR> -<A HREF="manual.html#pdf-next">next</A><BR> -<A HREF="manual.html#pdf-pairs">pairs</A><BR> -<A HREF="manual.html#pdf-pcall">pcall</A><BR> -<A HREF="manual.html#pdf-print">print</A><BR> -<A HREF="manual.html#pdf-rawequal">rawequal</A><BR> -<A HREF="manual.html#pdf-rawget">rawget</A><BR> -<A HREF="manual.html#pdf-rawlen">rawlen</A><BR> -<A HREF="manual.html#pdf-rawset">rawset</A><BR> -<A HREF="manual.html#pdf-require">require</A><BR> -<A HREF="manual.html#pdf-select">select</A><BR> -<A HREF="manual.html#pdf-setmetatable">setmetatable</A><BR> -<A HREF="manual.html#pdf-tonumber">tonumber</A><BR> -<A HREF="manual.html#pdf-tostring">tostring</A><BR> -<A HREF="manual.html#pdf-type">type</A><BR> -<A HREF="manual.html#pdf-xpcall">xpcall</A><BR> - -<P> -<A HREF="manual.html#6.7">bit32</A><BR> -<A HREF="manual.html#pdf-bit32.arshift">bit32.arshift</A><BR> -<A HREF="manual.html#pdf-bit32.band">bit32.band</A><BR> -<A HREF="manual.html#pdf-bit32.bnot">bit32.bnot</A><BR> -<A HREF="manual.html#pdf-bit32.bor">bit32.bor</A><BR> -<A HREF="manual.html#pdf-bit32.btest">bit32.btest</A><BR> -<A HREF="manual.html#pdf-bit32.bxor">bit32.bxor</A><BR> -<A HREF="manual.html#pdf-bit32.extract">bit32.extract</A><BR> -<A HREF="manual.html#pdf-bit32.lrotate">bit32.lrotate</A><BR> -<A HREF="manual.html#pdf-bit32.lshift">bit32.lshift</A><BR> -<A HREF="manual.html#pdf-bit32.replace">bit32.replace</A><BR> -<A HREF="manual.html#pdf-bit32.rrotate">bit32.rrotate</A><BR> -<A HREF="manual.html#pdf-bit32.rshift">bit32.rshift</A><BR> - -<P> -<A HREF="manual.html#6.2">coroutine</A><BR> -<A HREF="manual.html#pdf-coroutine.create">coroutine.create</A><BR> -<A HREF="manual.html#pdf-coroutine.resume">coroutine.resume</A><BR> -<A HREF="manual.html#pdf-coroutine.running">coroutine.running</A><BR> -<A HREF="manual.html#pdf-coroutine.status">coroutine.status</A><BR> -<A HREF="manual.html#pdf-coroutine.wrap">coroutine.wrap</A><BR> -<A HREF="manual.html#pdf-coroutine.yield">coroutine.yield</A><BR> - -<P> -<A HREF="manual.html#6.10">debug</A><BR> -<A HREF="manual.html#pdf-debug.debug">debug.debug</A><BR> -<A HREF="manual.html#pdf-debug.getuservalue">debug.getuservalue</A><BR> -<A HREF="manual.html#pdf-debug.gethook">debug.gethook</A><BR> -<A HREF="manual.html#pdf-debug.getinfo">debug.getinfo</A><BR> -<A HREF="manual.html#pdf-debug.getlocal">debug.getlocal</A><BR> -<A HREF="manual.html#pdf-debug.getmetatable">debug.getmetatable</A><BR> -<A HREF="manual.html#pdf-debug.getregistry">debug.getregistry</A><BR> -<A HREF="manual.html#pdf-debug.getupvalue">debug.getupvalue</A><BR> -<A HREF="manual.html#pdf-debug.setuservalue">debug.setuservalue</A><BR> -<A HREF="manual.html#pdf-debug.sethook">debug.sethook</A><BR> -<A HREF="manual.html#pdf-debug.setlocal">debug.setlocal</A><BR> -<A HREF="manual.html#pdf-debug.setmetatable">debug.setmetatable</A><BR> -<A HREF="manual.html#pdf-debug.setupvalue">debug.setupvalue</A><BR> -<A HREF="manual.html#pdf-debug.traceback">debug.traceback</A><BR> -<A HREF="manual.html#pdf-debug.upvalueid">debug.upvalueid</A><BR> -<A HREF="manual.html#pdf-debug.upvaluejoin">debug.upvaluejoin</A><BR> - -<P> -<A HREF="manual.html#6.8">io</A><BR> -<A HREF="manual.html#pdf-io.close">io.close</A><BR> -<A HREF="manual.html#pdf-io.flush">io.flush</A><BR> -<A HREF="manual.html#pdf-io.input">io.input</A><BR> -<A HREF="manual.html#pdf-io.lines">io.lines</A><BR> -<A HREF="manual.html#pdf-io.open">io.open</A><BR> -<A HREF="manual.html#pdf-io.output">io.output</A><BR> -<A HREF="manual.html#pdf-io.popen">io.popen</A><BR> -<A HREF="manual.html#pdf-io.read">io.read</A><BR> -<A HREF="manual.html#pdf-io.stderr">io.stderr</A><BR> -<A HREF="manual.html#pdf-io.stdin">io.stdin</A><BR> -<A HREF="manual.html#pdf-io.stdout">io.stdout</A><BR> -<A HREF="manual.html#pdf-io.tmpfile">io.tmpfile</A><BR> -<A HREF="manual.html#pdf-io.type">io.type</A><BR> -<A HREF="manual.html#pdf-io.write">io.write</A><BR> -<A HREF="manual.html#pdf-file:close">file:close</A><BR> -<A HREF="manual.html#pdf-file:flush">file:flush</A><BR> -<A HREF="manual.html#pdf-file:lines">file:lines</A><BR> -<A HREF="manual.html#pdf-file:read">file:read</A><BR> -<A HREF="manual.html#pdf-file:seek">file:seek</A><BR> -<A HREF="manual.html#pdf-file:setvbuf">file:setvbuf</A><BR> -<A HREF="manual.html#pdf-file:write">file:write</A><BR> - -</TD> -<TD> -<H3> </H3> -<P> -<A HREF="manual.html#6.6">math</A><BR> -<A HREF="manual.html#pdf-math.abs">math.abs</A><BR> -<A HREF="manual.html#pdf-math.acos">math.acos</A><BR> -<A HREF="manual.html#pdf-math.asin">math.asin</A><BR> -<A HREF="manual.html#pdf-math.atan">math.atan</A><BR> -<A HREF="manual.html#pdf-math.atan2">math.atan2</A><BR> -<A HREF="manual.html#pdf-math.ceil">math.ceil</A><BR> -<A HREF="manual.html#pdf-math.cos">math.cos</A><BR> -<A HREF="manual.html#pdf-math.cosh">math.cosh</A><BR> -<A HREF="manual.html#pdf-math.deg">math.deg</A><BR> -<A HREF="manual.html#pdf-math.exp">math.exp</A><BR> -<A HREF="manual.html#pdf-math.floor">math.floor</A><BR> -<A HREF="manual.html#pdf-math.fmod">math.fmod</A><BR> -<A HREF="manual.html#pdf-math.frexp">math.frexp</A><BR> -<A HREF="manual.html#pdf-math.huge">math.huge</A><BR> -<A HREF="manual.html#pdf-math.ldexp">math.ldexp</A><BR> -<A HREF="manual.html#pdf-math.log">math.log</A><BR> -<A HREF="manual.html#pdf-math.max">math.max</A><BR> -<A HREF="manual.html#pdf-math.min">math.min</A><BR> -<A HREF="manual.html#pdf-math.modf">math.modf</A><BR> -<A HREF="manual.html#pdf-math.pi">math.pi</A><BR> -<A HREF="manual.html#pdf-math.pow">math.pow</A><BR> -<A HREF="manual.html#pdf-math.rad">math.rad</A><BR> -<A HREF="manual.html#pdf-math.random">math.random</A><BR> -<A HREF="manual.html#pdf-math.randomseed">math.randomseed</A><BR> -<A HREF="manual.html#pdf-math.sin">math.sin</A><BR> -<A HREF="manual.html#pdf-math.sinh">math.sinh</A><BR> -<A HREF="manual.html#pdf-math.sqrt">math.sqrt</A><BR> -<A HREF="manual.html#pdf-math.tan">math.tan</A><BR> -<A HREF="manual.html#pdf-math.tanh">math.tanh</A><BR> - -<P> -<A HREF="manual.html#6.9">os</A><BR> -<A HREF="manual.html#pdf-os.clock">os.clock</A><BR> -<A HREF="manual.html#pdf-os.date">os.date</A><BR> -<A HREF="manual.html#pdf-os.difftime">os.difftime</A><BR> -<A HREF="manual.html#pdf-os.execute">os.execute</A><BR> -<A HREF="manual.html#pdf-os.exit">os.exit</A><BR> -<A HREF="manual.html#pdf-os.getenv">os.getenv</A><BR> -<A HREF="manual.html#pdf-os.remove">os.remove</A><BR> -<A HREF="manual.html#pdf-os.rename">os.rename</A><BR> -<A HREF="manual.html#pdf-os.setlocale">os.setlocale</A><BR> -<A HREF="manual.html#pdf-os.time">os.time</A><BR> -<A HREF="manual.html#pdf-os.tmpname">os.tmpname</A><BR> - -<P> -<A HREF="manual.html#6.3">package</A><BR> -<A HREF="manual.html#pdf-package.config">package.config</A><BR> -<A HREF="manual.html#pdf-package.cpath">package.cpath</A><BR> -<A HREF="manual.html#pdf-package.loaded">package.loaded</A><BR> -<A HREF="manual.html#pdf-package.loadlib">package.loadlib</A><BR> -<A HREF="manual.html#pdf-package.path">package.path</A><BR> -<A HREF="manual.html#pdf-package.preload">package.preload</A><BR> -<A HREF="manual.html#pdf-package.searchers">package.searchers</A><BR> -<A HREF="manual.html#pdf-package.searchpath">package.searchpath</A><BR> - -<P> -<A HREF="manual.html#6.4">string</A><BR> -<A HREF="manual.html#pdf-string.byte">string.byte</A><BR> -<A HREF="manual.html#pdf-string.char">string.char</A><BR> -<A HREF="manual.html#pdf-string.dump">string.dump</A><BR> -<A HREF="manual.html#pdf-string.find">string.find</A><BR> -<A HREF="manual.html#pdf-string.format">string.format</A><BR> -<A HREF="manual.html#pdf-string.gmatch">string.gmatch</A><BR> -<A HREF="manual.html#pdf-string.gsub">string.gsub</A><BR> -<A HREF="manual.html#pdf-string.len">string.len</A><BR> -<A HREF="manual.html#pdf-string.lower">string.lower</A><BR> -<A HREF="manual.html#pdf-string.match">string.match</A><BR> -<A HREF="manual.html#pdf-string.rep">string.rep</A><BR> -<A HREF="manual.html#pdf-string.reverse">string.reverse</A><BR> -<A HREF="manual.html#pdf-string.sub">string.sub</A><BR> -<A HREF="manual.html#pdf-string.upper">string.upper</A><BR> - -<P> -<A HREF="manual.html#6.5">table</A><BR> -<A HREF="manual.html#pdf-table.concat">table.concat</A><BR> -<A HREF="manual.html#pdf-table.insert">table.insert</A><BR> -<A HREF="manual.html#pdf-table.pack">table.pack</A><BR> -<A HREF="manual.html#pdf-table.remove">table.remove</A><BR> -<A HREF="manual.html#pdf-table.sort">table.sort</A><BR> -<A HREF="manual.html#pdf-table.unpack">table.unpack</A><BR> - -<H3><A NAME="env">environment<BR>variables</A></H3> -<A HREF="manual.html#pdf-LUA_CPATH">LUA_CPATH</A><BR> -<A HREF="manual.html#pdf-LUA_CPATH_5_2">LUA_CPATH_5_2</A><BR> -<A HREF="manual.html#pdf-LUA_INIT">LUA_INIT</A><BR> -<A HREF="manual.html#pdf-LUA_INIT_5_2">LUA_INIT_5_2</A><BR> -<A HREF="manual.html#pdf-LUA_PATH">LUA_PATH</A><BR> -<A HREF="manual.html#pdf-LUA_PATH_5_2">LUA_PATH_5_2</A><BR> - -</TD> -<TD> -<H3>C API</H3> -<P> -<A HREF="manual.html#lua_Alloc">lua_Alloc</A><BR> -<A HREF="manual.html#lua_CFunction">lua_CFunction</A><BR> -<A HREF="manual.html#lua_Debug">lua_Debug</A><BR> -<A HREF="manual.html#lua_Hook">lua_Hook</A><BR> -<A HREF="manual.html#lua_Integer">lua_Integer</A><BR> -<A HREF="manual.html#lua_Number">lua_Number</A><BR> -<A HREF="manual.html#lua_Reader">lua_Reader</A><BR> -<A HREF="manual.html#lua_State">lua_State</A><BR> -<A HREF="manual.html#lua_Unsigned">lua_Unsigned</A><BR> -<A HREF="manual.html#lua_Writer">lua_Writer</A><BR> - -<P> -<A HREF="manual.html#lua_absindex">lua_absindex</A><BR> -<A HREF="manual.html#lua_arith">lua_arith</A><BR> -<A HREF="manual.html#lua_atpanic">lua_atpanic</A><BR> -<A HREF="manual.html#lua_call">lua_call</A><BR> -<A HREF="manual.html#lua_callk">lua_callk</A><BR> -<A HREF="manual.html#lua_checkstack">lua_checkstack</A><BR> -<A HREF="manual.html#lua_close">lua_close</A><BR> -<A HREF="manual.html#lua_compare">lua_compare</A><BR> -<A HREF="manual.html#lua_concat">lua_concat</A><BR> -<A HREF="manual.html#lua_copy">lua_copy</A><BR> -<A HREF="manual.html#lua_createtable">lua_createtable</A><BR> -<A HREF="manual.html#lua_dump">lua_dump</A><BR> -<A HREF="manual.html#lua_error">lua_error</A><BR> -<A HREF="manual.html#lua_gc">lua_gc</A><BR> -<A HREF="manual.html#lua_getallocf">lua_getallocf</A><BR> -<A HREF="manual.html#lua_getctx">lua_getctx</A><BR> -<A HREF="manual.html#lua_getfield">lua_getfield</A><BR> -<A HREF="manual.html#lua_getglobal">lua_getglobal</A><BR> -<A HREF="manual.html#lua_gethook">lua_gethook</A><BR> -<A HREF="manual.html#lua_gethookcount">lua_gethookcount</A><BR> -<A HREF="manual.html#lua_gethookmask">lua_gethookmask</A><BR> -<A HREF="manual.html#lua_getinfo">lua_getinfo</A><BR> -<A HREF="manual.html#lua_getlocal">lua_getlocal</A><BR> -<A HREF="manual.html#lua_getmetatable">lua_getmetatable</A><BR> -<A HREF="manual.html#lua_getstack">lua_getstack</A><BR> -<A HREF="manual.html#lua_gettable">lua_gettable</A><BR> -<A HREF="manual.html#lua_gettop">lua_gettop</A><BR> -<A HREF="manual.html#lua_getupvalue">lua_getupvalue</A><BR> -<A HREF="manual.html#lua_getuservalue">lua_getuservalue</A><BR> -<A HREF="manual.html#lua_insert">lua_insert</A><BR> -<A HREF="manual.html#lua_isboolean">lua_isboolean</A><BR> -<A HREF="manual.html#lua_iscfunction">lua_iscfunction</A><BR> -<A HREF="manual.html#lua_isfunction">lua_isfunction</A><BR> -<A HREF="manual.html#lua_islightuserdata">lua_islightuserdata</A><BR> -<A HREF="manual.html#lua_isnil">lua_isnil</A><BR> -<A HREF="manual.html#lua_isnone">lua_isnone</A><BR> -<A HREF="manual.html#lua_isnoneornil">lua_isnoneornil</A><BR> -<A HREF="manual.html#lua_isnumber">lua_isnumber</A><BR> -<A HREF="manual.html#lua_isstring">lua_isstring</A><BR> -<A HREF="manual.html#lua_istable">lua_istable</A><BR> -<A HREF="manual.html#lua_isthread">lua_isthread</A><BR> -<A HREF="manual.html#lua_isuserdata">lua_isuserdata</A><BR> -<A HREF="manual.html#lua_len">lua_len</A><BR> -<A HREF="manual.html#lua_load">lua_load</A><BR> -<A HREF="manual.html#lua_newstate">lua_newstate</A><BR> -<A HREF="manual.html#lua_newtable">lua_newtable</A><BR> -<A HREF="manual.html#lua_newthread">lua_newthread</A><BR> -<A HREF="manual.html#lua_newuserdata">lua_newuserdata</A><BR> -<A HREF="manual.html#lua_next">lua_next</A><BR> -<A HREF="manual.html#lua_pcall">lua_pcall</A><BR> -<A HREF="manual.html#lua_pcallk">lua_pcallk</A><BR> -<A HREF="manual.html#lua_pop">lua_pop</A><BR> -<A HREF="manual.html#lua_pushboolean">lua_pushboolean</A><BR> -<A HREF="manual.html#lua_pushcclosure">lua_pushcclosure</A><BR> -<A HREF="manual.html#lua_pushcfunction">lua_pushcfunction</A><BR> -<A HREF="manual.html#lua_pushfstring">lua_pushfstring</A><BR> -<A HREF="manual.html#lua_pushglobaltable">lua_pushglobaltable</A><BR> -<A HREF="manual.html#lua_pushinteger">lua_pushinteger</A><BR> -<A HREF="manual.html#lua_pushlightuserdata">lua_pushlightuserdata</A><BR> -<A HREF="manual.html#lua_pushliteral">lua_pushliteral</A><BR> -<A HREF="manual.html#lua_pushlstring">lua_pushlstring</A><BR> -<A HREF="manual.html#lua_pushnil">lua_pushnil</A><BR> -<A HREF="manual.html#lua_pushnumber">lua_pushnumber</A><BR> -<A HREF="manual.html#lua_pushstring">lua_pushstring</A><BR> -<A HREF="manual.html#lua_pushthread">lua_pushthread</A><BR> -<A HREF="manual.html#lua_pushunsigned">lua_pushunsigned</A><BR> -<A HREF="manual.html#lua_pushvalue">lua_pushvalue</A><BR> -<A HREF="manual.html#lua_pushvfstring">lua_pushvfstring</A><BR> -<A HREF="manual.html#lua_rawequal">lua_rawequal</A><BR> -<A HREF="manual.html#lua_rawget">lua_rawget</A><BR> -<A HREF="manual.html#lua_rawgeti">lua_rawgeti</A><BR> -<A HREF="manual.html#lua_rawgetp">lua_rawgetp</A><BR> -<A HREF="manual.html#lua_rawlen">lua_rawlen</A><BR> -<A HREF="manual.html#lua_rawset">lua_rawset</A><BR> -<A HREF="manual.html#lua_rawseti">lua_rawseti</A><BR> -<A HREF="manual.html#lua_rawsetp">lua_rawsetp</A><BR> -<A HREF="manual.html#lua_register">lua_register</A><BR> -<A HREF="manual.html#lua_remove">lua_remove</A><BR> -<A HREF="manual.html#lua_replace">lua_replace</A><BR> -<A HREF="manual.html#lua_resume">lua_resume</A><BR> -<A HREF="manual.html#lua_setallocf">lua_setallocf</A><BR> -<A HREF="manual.html#lua_setfield">lua_setfield</A><BR> -<A HREF="manual.html#lua_setglobal">lua_setglobal</A><BR> -<A HREF="manual.html#lua_sethook">lua_sethook</A><BR> -<A HREF="manual.html#lua_setlocal">lua_setlocal</A><BR> -<A HREF="manual.html#lua_setmetatable">lua_setmetatable</A><BR> -<A HREF="manual.html#lua_settable">lua_settable</A><BR> -<A HREF="manual.html#lua_settop">lua_settop</A><BR> -<A HREF="manual.html#lua_setupvalue">lua_setupvalue</A><BR> -<A HREF="manual.html#lua_setuservalue">lua_setuservalue</A><BR> -<A HREF="manual.html#lua_status">lua_status</A><BR> -<A HREF="manual.html#lua_toboolean">lua_toboolean</A><BR> -<A HREF="manual.html#lua_tocfunction">lua_tocfunction</A><BR> -<A HREF="manual.html#lua_tointeger">lua_tointeger</A><BR> -<A HREF="manual.html#lua_tointegerx">lua_tointegerx</A><BR> -<A HREF="manual.html#lua_tolstring">lua_tolstring</A><BR> -<A HREF="manual.html#lua_tonumber">lua_tonumber</A><BR> -<A HREF="manual.html#lua_tonumberx">lua_tonumberx</A><BR> -<A HREF="manual.html#lua_topointer">lua_topointer</A><BR> -<A HREF="manual.html#lua_tostring">lua_tostring</A><BR> -<A HREF="manual.html#lua_tothread">lua_tothread</A><BR> -<A HREF="manual.html#lua_tounsigned">lua_tounsigned</A><BR> -<A HREF="manual.html#lua_tounsignedx">lua_tounsignedx</A><BR> -<A HREF="manual.html#lua_touserdata">lua_touserdata</A><BR> -<A HREF="manual.html#lua_type">lua_type</A><BR> -<A HREF="manual.html#lua_typename">lua_typename</A><BR> -<A HREF="manual.html#lua_upvalueid">lua_upvalueid</A><BR> -<A HREF="manual.html#lua_upvalueindex">lua_upvalueindex</A><BR> -<A HREF="manual.html#lua_upvaluejoin">lua_upvaluejoin</A><BR> -<A HREF="manual.html#lua_version">lua_version</A><BR> -<A HREF="manual.html#lua_xmove">lua_xmove</A><BR> -<A HREF="manual.html#lua_yield">lua_yield</A><BR> -<A HREF="manual.html#lua_yieldk">lua_yieldk</A><BR> - -</TD> -<TD> -<H3>auxiliary library</H3> -<P> -<A HREF="manual.html#luaL_Buffer">luaL_Buffer</A><BR> -<A HREF="manual.html#luaL_Reg">luaL_Reg</A><BR> - -<P> -<A HREF="manual.html#luaL_addchar">luaL_addchar</A><BR> -<A HREF="manual.html#luaL_addlstring">luaL_addlstring</A><BR> -<A HREF="manual.html#luaL_addsize">luaL_addsize</A><BR> -<A HREF="manual.html#luaL_addstring">luaL_addstring</A><BR> -<A HREF="manual.html#luaL_addvalue">luaL_addvalue</A><BR> -<A HREF="manual.html#luaL_argcheck">luaL_argcheck</A><BR> -<A HREF="manual.html#luaL_argerror">luaL_argerror</A><BR> -<A HREF="manual.html#luaL_buffinit">luaL_buffinit</A><BR> -<A HREF="manual.html#luaL_buffinitsize">luaL_buffinitsize</A><BR> -<A HREF="manual.html#luaL_callmeta">luaL_callmeta</A><BR> -<A HREF="manual.html#luaL_checkany">luaL_checkany</A><BR> -<A HREF="manual.html#luaL_checkint">luaL_checkint</A><BR> -<A HREF="manual.html#luaL_checkinteger">luaL_checkinteger</A><BR> -<A HREF="manual.html#luaL_checklong">luaL_checklong</A><BR> -<A HREF="manual.html#luaL_checklstring">luaL_checklstring</A><BR> -<A HREF="manual.html#luaL_checknumber">luaL_checknumber</A><BR> -<A HREF="manual.html#luaL_checkoption">luaL_checkoption</A><BR> -<A HREF="manual.html#luaL_checkstack">luaL_checkstack</A><BR> -<A HREF="manual.html#luaL_checkstring">luaL_checkstring</A><BR> -<A HREF="manual.html#luaL_checktype">luaL_checktype</A><BR> -<A HREF="manual.html#luaL_checkudata">luaL_checkudata</A><BR> -<A HREF="manual.html#luaL_checkunsigned">luaL_checkunsigned</A><BR> -<A HREF="manual.html#luaL_checkversion">luaL_checkversion</A><BR> -<A HREF="manual.html#luaL_dofile">luaL_dofile</A><BR> -<A HREF="manual.html#luaL_dostring">luaL_dostring</A><BR> -<A HREF="manual.html#luaL_error">luaL_error</A><BR> -<A HREF="manual.html#luaL_execresult">luaL_execresult</A><BR> -<A HREF="manual.html#luaL_fileresult">luaL_fileresult</A><BR> -<A HREF="manual.html#luaL_getmetafield">luaL_getmetafield</A><BR> -<A HREF="manual.html#luaL_getmetatable">luaL_getmetatable</A><BR> -<A HREF="manual.html#luaL_getsubtable">luaL_getsubtable</A><BR> -<A HREF="manual.html#luaL_gsub">luaL_gsub</A><BR> -<A HREF="manual.html#luaL_len">luaL_len</A><BR> -<A HREF="manual.html#luaL_loadbuffer">luaL_loadbuffer</A><BR> -<A HREF="manual.html#luaL_loadbufferx">luaL_loadbufferx</A><BR> -<A HREF="manual.html#luaL_loadfile">luaL_loadfile</A><BR> -<A HREF="manual.html#luaL_loadfilex">luaL_loadfilex</A><BR> -<A HREF="manual.html#luaL_loadstring">luaL_loadstring</A><BR> -<A HREF="manual.html#luaL_newlib">luaL_newlib</A><BR> -<A HREF="manual.html#luaL_newlibtable">luaL_newlibtable</A><BR> -<A HREF="manual.html#luaL_newmetatable">luaL_newmetatable</A><BR> -<A HREF="manual.html#luaL_newstate">luaL_newstate</A><BR> -<A HREF="manual.html#luaL_openlibs">luaL_openlibs</A><BR> -<A HREF="manual.html#luaL_optint">luaL_optint</A><BR> -<A HREF="manual.html#luaL_optinteger">luaL_optinteger</A><BR> -<A HREF="manual.html#luaL_optlong">luaL_optlong</A><BR> -<A HREF="manual.html#luaL_optlstring">luaL_optlstring</A><BR> -<A HREF="manual.html#luaL_optnumber">luaL_optnumber</A><BR> -<A HREF="manual.html#luaL_optstring">luaL_optstring</A><BR> -<A HREF="manual.html#luaL_optunsigned">luaL_optunsigned</A><BR> -<A HREF="manual.html#luaL_prepbuffer">luaL_prepbuffer</A><BR> -<A HREF="manual.html#luaL_prepbuffsize">luaL_prepbuffsize</A><BR> -<A HREF="manual.html#luaL_pushresult">luaL_pushresult</A><BR> -<A HREF="manual.html#luaL_pushresultsize">luaL_pushresultsize</A><BR> -<A HREF="manual.html#luaL_ref">luaL_ref</A><BR> -<A HREF="manual.html#luaL_requiref">luaL_requiref</A><BR> -<A HREF="manual.html#luaL_setfuncs">luaL_setfuncs</A><BR> -<A HREF="manual.html#luaL_setmetatable">luaL_setmetatable</A><BR> -<A HREF="manual.html#luaL_testudata">luaL_testudata</A><BR> -<A HREF="manual.html#luaL_tolstring">luaL_tolstring</A><BR> -<A HREF="manual.html#luaL_traceback">luaL_traceback</A><BR> -<A HREF="manual.html#luaL_typename">luaL_typename</A><BR> -<A HREF="manual.html#luaL_unref">luaL_unref</A><BR> -<A HREF="manual.html#luaL_where">luaL_where</A><BR> - -<H3><A NAME="library">standard library</A></H3> -<P> -<A HREF="manual.html#pdf-luaopen_base">luaopen_base</A><BR> -<A HREF="manual.html#pdf-luaopen_bit32">luaopen_bit32</A><BR> -<A HREF="manual.html#pdf-luaopen_coroutine">luaopen_coroutine</A><BR> -<A HREF="manual.html#pdf-luaopen_debug">luaopen_debug</A><BR> -<A HREF="manual.html#pdf-luaopen_io">luaopen_io</A><BR> -<A HREF="manual.html#pdf-luaopen_math">luaopen_math</A><BR> -<A HREF="manual.html#pdf-luaopen_os">luaopen_os</A><BR> -<A HREF="manual.html#pdf-luaopen_package">luaopen_package</A><BR> -<A HREF="manual.html#pdf-luaopen_string">luaopen_string</A><BR> -<A HREF="manual.html#pdf-luaopen_table">luaopen_table</A><BR> - -<H3><A NAME="constants">constants</A></H3> -<A HREF="manual.html#pdf-LUA_ERRERR">LUA_ERRERR</A><BR> -<A HREF="manual.html#pdf-LUA_ERRFILE">LUA_ERRFILE</A><BR> -<A HREF="manual.html#pdf-LUA_ERRGCMM">LUA_ERRGCMM</A><BR> -<A HREF="manual.html#pdf-LUA_ERRMEM">LUA_ERRMEM</A><BR> -<A HREF="manual.html#pdf-LUA_ERRRUN">LUA_ERRRUN</A><BR> -<A HREF="manual.html#pdf-LUA_ERRSYNTAX">LUA_ERRSYNTAX</A><BR> -<A HREF="manual.html#pdf-LUA_HOOKCALL">LUA_HOOKCALL</A><BR> -<A HREF="manual.html#pdf-LUA_HOOKCOUNT">LUA_HOOKCOUNT</A><BR> -<A HREF="manual.html#pdf-LUA_HOOKLINE">LUA_HOOKLINE</A><BR> -<A HREF="manual.html#pdf-LUA_HOOKRET">LUA_HOOKRET</A><BR> -<A HREF="manual.html#pdf-LUA_HOOKTAILCALL">LUA_HOOKTAILCALL</A><BR> -<A HREF="manual.html#pdf-LUA_MASKCALL">LUA_MASKCALL</A><BR> -<A HREF="manual.html#pdf-LUA_MASKCOUNT">LUA_MASKCOUNT</A><BR> -<A HREF="manual.html#pdf-LUA_MASKLINE">LUA_MASKLINE</A><BR> -<A HREF="manual.html#pdf-LUA_MASKRET">LUA_MASKRET</A><BR> -<A HREF="manual.html#pdf-LUA_MINSTACK">LUA_MINSTACK</A><BR> -<A HREF="manual.html#pdf-LUA_MULTRET">LUA_MULTRET</A><BR> -<A HREF="manual.html#pdf-LUA_NOREF">LUA_NOREF</A><BR> -<A HREF="manual.html#pdf-LUA_OK">LUA_OK</A><BR> -<A HREF="manual.html#pdf-LUA_OPADD">LUA_OPADD</A><BR> -<A HREF="manual.html#pdf-LUA_OPDIV">LUA_OPDIV</A><BR> -<A HREF="manual.html#pdf-LUA_OPEQ">LUA_OPEQ</A><BR> -<A HREF="manual.html#pdf-LUA_OPLE">LUA_OPLE</A><BR> -<A HREF="manual.html#pdf-LUA_OPLT">LUA_OPLT</A><BR> -<A HREF="manual.html#pdf-LUA_OPMOD">LUA_OPMOD</A><BR> -<A HREF="manual.html#pdf-LUA_OPMUL">LUA_OPMUL</A><BR> -<A HREF="manual.html#pdf-LUA_OPPOW">LUA_OPPOW</A><BR> -<A HREF="manual.html#pdf-LUA_OPSUB">LUA_OPSUB</A><BR> -<A HREF="manual.html#pdf-LUA_OPUNM">LUA_OPUNM</A><BR> -<A HREF="manual.html#pdf-LUA_REFNIL">LUA_REFNIL</A><BR> -<A HREF="manual.html#pdf-LUA_REGISTRYINDEX">LUA_REGISTRYINDEX</A><BR> -<A HREF="manual.html#pdf-LUA_RIDX_GLOBALS">LUA_RIDX_GLOBALS</A><BR> -<A HREF="manual.html#pdf-LUA_RIDX_MAINTHREAD">LUA_RIDX_MAINTHREAD</A><BR> -<A HREF="manual.html#pdf-LUA_TBOOLEAN">LUA_TBOOLEAN</A><BR> -<A HREF="manual.html#pdf-LUA_TFUNCTION">LUA_TFUNCTION</A><BR> -<A HREF="manual.html#pdf-LUA_TLIGHTUSERDATA">LUA_TLIGHTUSERDATA</A><BR> -<A HREF="manual.html#pdf-LUA_TNIL">LUA_TNIL</A><BR> -<A HREF="manual.html#pdf-LUA_TNONE">LUA_TNONE</A><BR> -<A HREF="manual.html#pdf-LUA_TNUMBER">LUA_TNUMBER</A><BR> -<A HREF="manual.html#pdf-LUA_TSTRING">LUA_TSTRING</A><BR> -<A HREF="manual.html#pdf-LUA_TTABLE">LUA_TTABLE</A><BR> -<A HREF="manual.html#pdf-LUA_TTHREAD">LUA_TTHREAD</A><BR> -<A HREF="manual.html#pdf-LUA_TUSERDATA">LUA_TUSERDATA</A><BR> -<A HREF="manual.html#pdf-LUA_USE_APICHECK">LUA_USE_APICHECK</A><BR> -<A HREF="manual.html#pdf-LUA_YIELD">LUA_YIELD</A><BR> -<A HREF="manual.html#pdf-LUAL_BUFFERSIZE">LUAL_BUFFERSIZE</A><BR> - -</TD> -</TR> -</TABLE> - -<HR> -<SMALL CLASS="footer"> -Last update: -Mon Feb 23 22:24:36 BRT 2015 -</SMALL> -<!-- -Last change: revised for Lua 5.2.4 ---> - -</BODY> -</HTML> diff --git a/source/libs/lua52/lua52-src/doc/logo.gif b/source/libs/lua52/lua52-src/doc/logo.gif deleted file mode 100644 index 2f5e4ac2e742fbb7675e739879211553758aea9c..0000000000000000000000000000000000000000 Binary files a/source/libs/lua52/lua52-src/doc/logo.gif and /dev/null differ diff --git a/source/libs/lua52/lua52-src/doc/lua.1 b/source/libs/lua52/lua52-src/doc/lua.1 deleted file mode 100644 index 6d3aa8c360a289aa1f62b94c1fc119caedaba7f5..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/doc/lua.1 +++ /dev/null @@ -1,116 +0,0 @@ -.\" $Id: lua.man,v 1.13 2011/11/16 17:16:53 lhf Exp $ -.TH LUA 1 "$Date: 2011/11/16 17:16:53 $" -.SH NAME -lua \- Lua interpreter -.SH SYNOPSIS -.B lua -[ -.I options -] -[ -.I script -[ -.I args -] -] -.SH DESCRIPTION -.B lua -is the standalone Lua interpreter. -It loads and executes Lua programs, -either in textual source form or -in precompiled binary form. -(Precompiled binaries are output by -.BR luac , -the Lua compiler.) -.B lua -can be used as a batch interpreter and also interactively. -.LP -The given -.I options -are handled in order and then -the Lua program in file -.I script -is loaded and executed. -The given -.I args -are available to -.I script -as strings in a global table named -.BR arg . -If no options or arguments are given, -then -.B "\-v \-i" -is assumed when the standard input is a terminal; -otherwise, -.B "\-" -is assumed. -.LP -In interactive mode, -.B lua -prompts the user, -reads lines from the standard input, -and executes them as they are read. -If a line does not contain a complete statement, -then a secondary prompt is displayed and -lines are read until a complete statement is formed or -a syntax error is found. -If a line starts with -.BR '=' , -then -.B lua -evaluates and displays -the values of the expressions in the remainder of the line. -.LP -At the very start, -before even handling the command line, -.B lua -checks the contents of the environment variables -.B LUA_INIT_5_2 -or -.BR LUA_INIT , -in that order. -If the contents is of the form -.RI '@ filename ', -then -.I filename -is executed. -Otherwise, the string is assumed to be a Lua statement and is executed. -.SH OPTIONS -.TP -.BI \-e " stat" -execute statement -.IR stat . -.TP -.B \-i -enter interactive mode after executing -.IR script . -.TP -.BI \-l " name" -execute the equivalent of -.IB name =require(' name ') -before executing -.IR script . -.TP -.B \-v -show version information. -.TP -.B \-E -ignore environment variables. -.TP -.B \-\- -stop handling options. -.TP -.B \- -stop handling options and execute the standard input as a file. -.SH "SEE ALSO" -.BR luac (1) -.br -The documentation at lua.org, -especially section 7 of the reference manual. -.SH DIAGNOSTICS -Error messages should be self explanatory. -.SH AUTHORS -R. Ierusalimschy, -L. H. de Figueiredo, -W. Celes -.\" EOF diff --git a/source/libs/lua52/lua52-src/doc/lua.css b/source/libs/lua52/lua52-src/doc/lua.css deleted file mode 100644 index 2d2e19def7ba728204d34142b3fb1ba33a4eff5f..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/doc/lua.css +++ /dev/null @@ -1,106 +0,0 @@ -html { - background-color: #F8F8F8 ; -} - -body { - border: solid #a0a0a0 1px ; - border-radius: 20px ; - padding: 26px ; - margin: 16px ; - color: #000000 ; - background-color: #FFFFFF ; - font-family: Helvetica, Arial, sans-serif ; - text-align: justify ; - line-height: 1.25 ; -} - -h1, h2, h3, h4 { - font-family: Verdana, Geneva, sans-serif ; - font-weight: normal ; - font-style: normal ; -} - -h2 { - padding-top: 0.4em ; - padding-bottom: 0.4em ; - padding-left: 0.8em ; - padding-right: 0.8em ; - background-color: #D0D0FF ; - border-radius: 8px ; - border: solid #a0a0a0 1px ; -} - -h3 { - padding-left: 0.5em ; - border-left: solid #D0D0FF 1em ; -} - -table h3 { - padding-left: 0px ; - border-left: none ; -} - -a:link { - color: #000080 ; - background-color: inherit ; - text-decoration: none ; -} - -a:visited { - background-color: inherit ; - text-decoration: none ; -} - -a:link:hover, a:visited:hover { - color: #000080 ; - background-color: #D0D0FF ; - border-radius: 4px ; -} - -a:link:active, a:visited:active { - color: #FF0000 ; -} - -h1 a img { - vertical-align: text-bottom ; -} - -hr { - border: 0 ; - height: 1px ; - color: #a0a0a0 ; - background-color: #a0a0a0 ; - display: none ; -} - -table hr { - display: block ; -} - -:target { - background-color: #F8F8F8 ; - padding: 8px ; - border: solid #a0a0a0 2px ; - border-radius: 8px ; -} - -.footer { - color: gray ; - font-size: x-small ; -} - -input[type=text] { - border: solid #a0a0a0 2px ; - border-radius: 2em ; - background-image: url('images/search.png') ; - background-repeat: no-repeat ; - background-position: 4px center ; - padding-left: 20px ; - height: 2em ; -} - -pre.session { - background-color: #F8F8F8 ; - padding: 1em ; - border-radius: 8px ; -} diff --git a/source/libs/lua52/lua52-src/doc/luac.1 b/source/libs/lua52/lua52-src/doc/luac.1 deleted file mode 100644 index 9d8f475f527f81f62082253bb1df80e1d6e37f31..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/doc/luac.1 +++ /dev/null @@ -1,118 +0,0 @@ -.\" $Id: luac.man,v 1.29 2011/11/16 13:53:40 lhf Exp $ -.TH LUAC 1 "$Date: 2011/11/16 13:53:40 $" -.SH NAME -luac \- Lua compiler -.SH SYNOPSIS -.B luac -[ -.I options -] [ -.I filenames -] -.SH DESCRIPTION -.B luac -is the Lua compiler. -It translates programs written in the Lua programming language -into binary files containing precompiled chunks -that can be later loaded and executed. -.LP -The main advantages of precompiling chunks are: -faster loading, -protecting source code from accidental user changes, -and -off-line syntax checking. -Precompiling does not imply faster execution -because in Lua chunks are always compiled into bytecodes before being executed. -.B luac -simply allows those bytecodes to be saved in a file for later execution. -Precompiled chunks are not necessarily smaller than the corresponding source. -The main goal in precompiling is faster loading. -.LP -In the command line, -you can mix -text files containing Lua source and -binary files containing precompiled chunks. -.B luac -produces a single output file containing the combined bytecodes -for all files given. -Executing the combined file is equivalent to executing the given files. -By default, -the output file is named -.BR luac.out , -but you can change this with the -.B \-o -option. -.LP -Precompiled chunks are -.I not -portable across different architectures. -Moreover, -the internal format of precompiled chunks -is likely to change when a new version of Lua is released. -Make sure you save the source files of all Lua programs that you precompile. -.LP -.SH OPTIONS -.TP -.B \-l -produce a listing of the compiled bytecode for Lua's virtual machine. -Listing bytecodes is useful to learn about Lua's virtual machine. -If no files are given, then -.B luac -loads -.B luac.out -and lists its contents. -Use -.B \-l \-l -for a full listing. -.TP -.BI \-o " file" -output to -.IR file , -instead of the default -.BR luac.out . -(You can use -.B "'\-'" -for standard output, -but not on platforms that open standard output in text mode.) -The output file may be one of the given files because -all files are loaded before the output file is written. -Be careful not to overwrite precious files. -.TP -.B \-p -load files but do not generate any output file. -Used mainly for syntax checking and for testing precompiled chunks: -corrupted files will probably generate errors when loaded. -If no files are given, then -.B luac -loads -.B luac.out -and tests its contents. -No messages are displayed if the file loads without errors. -.TP -.B \-s -strip debug information before writing the output file. -This saves some space in very large chunks, -but if errors occur when running a stripped chunk, -then the error messages may not contain the full information they usually do. -In particular, -line numbers and names of local variables are lost. -.TP -.B \-v -show version information. -.TP -.B \-\- -stop handling options. -.TP -.B \- -stop handling options and process standard input. -.SH "SEE ALSO" -.BR lua (1) -.br -The documentation at lua.org. -.SH DIAGNOSTICS -Error messages should be self explanatory. -.SH AUTHORS -R. Ierusalimschy, -L. H. de Figueiredo, -W. Celes -.\" EOF diff --git a/source/libs/lua52/lua52-src/doc/manual.css b/source/libs/lua52/lua52-src/doc/manual.css deleted file mode 100644 index 375f7e7f5cf076b666d0dd067bca41fb7a7dabef..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/doc/manual.css +++ /dev/null @@ -1,27 +0,0 @@ -h3 code { - font-family: inherit ; - font-size: inherit ; -} - -pre, code { - font-size: 12pt ; -} - -span.apii { - float: right ; - font-family: inherit ; - font-style: normal ; - font-size: small ; - color: gray ; -} - -p+h1, ul+h1 { - font-style: normal ; - padding-top: 0.4em ; - padding-bottom: 0.4em ; - padding-left: 16px ; - margin-left: -16px ; - background-color: #D0D0FF ; - border-radius: 8px ; - border: solid #000080 1px ; -} diff --git a/source/libs/lua52/lua52-src/doc/manual.html b/source/libs/lua52/lua52-src/doc/manual.html deleted file mode 100644 index 26d4e58e1d32c790c71eafdf2b9905fada387687..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/doc/manual.html +++ /dev/null @@ -1,10508 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> - -<head> -<title>Lua 5.2 Reference Manual</title> -<link rel="stylesheet" type="text/css" href="lua.css"> -<link rel="stylesheet" type="text/css" href="manual.css"> -<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1"> -</head> - -<body> - -<hr> -<h1> -<a href="http://www.lua.org/"><img src="logo.gif" alt="" border="0"></a> -Lua 5.2 Reference Manual -</h1> - -by Roberto Ierusalimschy, Luiz Henrique de Figueiredo, Waldemar Celes -<p> -<small> -Copyright © 2011–2015 Lua.org, PUC-Rio. -Freely available under the terms of the -<a href="http://www.lua.org/license.html">Lua license</a>. -</small> -<hr> -<p> - -<a href="contents.html#contents">contents</A> -· -<a href="contents.html#index">index</A> - -<!-- ====================================================================== --> -<p> - -<!-- $Id: manual.of,v 1.104 2013/06/01 00:13:11 roberto Exp $ --> - - - - -<h1>1 – <a name="1">Introduction</a></h1> - -<p> -Lua is an extension programming language designed to support -general procedural programming with data description -facilities. -It also offers good support for object-oriented programming, -functional programming, and data-driven programming. -Lua is intended to be used as a powerful, lightweight, -embeddable scripting language for any program that needs one. -Lua is implemented as a library, written in <em>clean C</em>, -the common subset of Standard C and C++. - - -<p> -Being an extension language, Lua has no notion of a "main" program: -it only works <em>embedded</em> in a host client, -called the <em>embedding program</em> or simply the <em>host</em>. -The host program can invoke functions to execute a piece of Lua code, -can write and read Lua variables, -and can register C functions to be called by Lua code. -Through the use of C functions, Lua can be augmented to cope with -a wide range of different domains, -thus creating customized programming languages sharing a syntactical framework. -The Lua distribution includes a sample host program called <code>lua</code>, -which uses the Lua library to offer a complete, standalone Lua interpreter, -for interactive or batch use. - - -<p> -Lua is free software, -and is provided as usual with no guarantees, -as stated in its license. -The implementation described in this manual is available -at Lua's official web site, <code>www.lua.org</code>. - - -<p> -Like any other reference manual, -this document is dry in places. -For a discussion of the decisions behind the design of Lua, -see the technical papers available at Lua's web site. -For a detailed introduction to programming in Lua, -see Roberto's book, <em>Programming in Lua</em>. - - - -<h1>2 – <a name="2">Basic Concepts</a></h1> - -<p> -This section describes the basic concepts of the language. - - - -<h2>2.1 – <a name="2.1">Values and Types</a></h2> - -<p> -Lua is a <em>dynamically typed language</em>. -This means that -variables do not have types; only values do. -There are no type definitions in the language. -All values carry their own type. - - -<p> -All values in Lua are <em>first-class values</em>. -This means that all values can be stored in variables, -passed as arguments to other functions, and returned as results. - - -<p> -There are eight basic types in Lua: -<em>nil</em>, <em>boolean</em>, <em>number</em>, -<em>string</em>, <em>function</em>, <em>userdata</em>, -<em>thread</em>, and <em>table</em>. -<em>Nil</em> is the type of the value <b>nil</b>, -whose main property is to be different from any other value; -it usually represents the absence of a useful value. -<em>Boolean</em> is the type of the values <b>false</b> and <b>true</b>. -Both <b>nil</b> and <b>false</b> make a condition false; -any other value makes it true. -<em>Number</em> represents real (double-precision floating-point) numbers. -Operations on numbers follow the same rules of -the underlying C implementation, -which, in turn, usually follows the IEEE 754 standard. -(It is easy to build Lua interpreters that use other -internal representations for numbers, -such as single-precision floats or long integers; -see file <code>luaconf.h</code>.) -<em>String</em> represents immutable sequences of bytes. - -Lua is 8-bit clean: -strings can contain any 8-bit value, -including embedded zeros ('<code>\0</code>'). - - -<p> -Lua can call (and manipulate) functions written in Lua and -functions written in C -(see <a href="#3.4.9">§3.4.9</a>). - - -<p> -The type <em>userdata</em> is provided to allow arbitrary C data to -be stored in Lua variables. -A userdata value is a pointer to a block of raw memory. -There are two kinds of userdata: -full userdata, where the block of memory is managed by Lua, -and light userdata, where the block of memory is managed by the host. -Userdata has no predefined operations in Lua, -except assignment and identity test. -By using <em>metatables</em>, -the programmer can define operations for full userdata values -(see <a href="#2.4">§2.4</a>). -Userdata values cannot be created or modified in Lua, -only through the C API. -This guarantees the integrity of data owned by the host program. - - -<p> -The type <em>thread</em> represents independent threads of execution -and it is used to implement coroutines (see <a href="#2.6">§2.6</a>). -Do not confuse Lua threads with operating-system threads. -Lua supports coroutines on all systems, -even those that do not support threads. - - -<p> -The type <em>table</em> implements associative arrays, -that is, arrays that can be indexed not only with numbers, -but with any Lua value except <b>nil</b> and NaN -(<em>Not a Number</em>, a special numeric value used to represent -undefined or unrepresentable results, such as <code>0/0</code>). -Tables can be <em>heterogeneous</em>; -that is, they can contain values of all types (except <b>nil</b>). -Any key with value <b>nil</b> is not considered part of the table. -Conversely, any key that is not part of a table has -an associated value <b>nil</b>. - - -<p> -Tables are the sole data structuring mechanism in Lua; -they can be used to represent ordinary arrays, sequences, -symbol tables, sets, records, graphs, trees, etc. -To represent records, Lua uses the field name as an index. -The language supports this representation by -providing <code>a.name</code> as syntactic sugar for <code>a["name"]</code>. -There are several convenient ways to create tables in Lua -(see <a href="#3.4.8">§3.4.8</a>). - - -<p> -We use the term <em>sequence</em> to denote a table where -the set of all positive numeric keys is equal to <em>{1..n}</em> -for some integer <em>n</em>, -which is called the length of the sequence (see <a href="#3.4.6">§3.4.6</a>). - - -<p> -Like indices, -the values of table fields can be of any type. -In particular, -because functions are first-class values, -table fields can contain functions. -Thus tables can also carry <em>methods</em> (see <a href="#3.4.10">§3.4.10</a>). - - -<p> -The indexing of tables follows -the definition of raw equality in the language. -The expressions <code>a[i]</code> and <code>a[j]</code> -denote the same table element -if and only if <code>i</code> and <code>j</code> are raw equal -(that is, equal without metamethods). - - -<p> -Tables, functions, threads, and (full) userdata values are <em>objects</em>: -variables do not actually <em>contain</em> these values, -only <em>references</em> to them. -Assignment, parameter passing, and function returns -always manipulate references to such values; -these operations do not imply any kind of copy. - - -<p> -The library function <a href="#pdf-type"><code>type</code></a> returns a string describing the type -of a given value (see <a href="#6.1">§6.1</a>). - - - - - -<h2>2.2 – <a name="2.2">Environments and the Global Environment</a></h2> - -<p> -As will be discussed in <a href="#3.2">§3.2</a> and <a href="#3.3.3">§3.3.3</a>, -any reference to a global name <code>var</code> is syntactically translated -to <code>_ENV.var</code>. -Moreover, every chunk is compiled in the scope of -an external local variable called <code>_ENV</code> (see <a href="#3.3.2">§3.3.2</a>), -so <code>_ENV</code> itself is never a global name in a chunk. - - -<p> -Despite the existence of this external <code>_ENV</code> variable and -the translation of global names, -<code>_ENV</code> is a completely regular name. -In particular, -you can define new variables and parameters with that name. -Each reference to a global name uses the <code>_ENV</code> that is -visible at that point in the program, -following the usual visibility rules of Lua (see <a href="#3.5">§3.5</a>). - - -<p> -Any table used as the value of <code>_ENV</code> is called an <em>environment</em>. - - -<p> -Lua keeps a distinguished environment called the <em>global environment</em>. -This value is kept at a special index in the C registry (see <a href="#4.5">§4.5</a>). -In Lua, the variable <a href="#pdf-_G"><code>_G</code></a> is initialized with this same value. - - -<p> -When Lua compiles a chunk, -it initializes the value of its <code>_ENV</code> upvalue -with the global environment (see <a href="#pdf-load"><code>load</code></a>). -Therefore, by default, -global variables in Lua code refer to entries in the global environment. -Moreover, all standard libraries are loaded in the global environment -and several functions there operate on that environment. -You can use <a href="#pdf-load"><code>load</code></a> (or <a href="#pdf-loadfile"><code>loadfile</code></a>) -to load a chunk with a different environment. -(In C, you have to load the chunk and then change the value -of its first upvalue.) - - -<p> -If you change the global environment in the registry -(through C code or the debug library), -all chunks loaded after the change will get the new environment. -Previously loaded chunks are not affected, however, -as each has its own reference to the environment in its <code>_ENV</code> variable. -Moreover, the variable <a href="#pdf-_G"><code>_G</code></a> -(which is stored in the original global environment) -is never updated by Lua. - - - - - -<h2>2.3 – <a name="2.3">Error Handling</a></h2> - -<p> -Because Lua is an embedded extension language, -all Lua actions start from C code in the host program -calling a function from the Lua library (see <a href="#lua_pcall"><code>lua_pcall</code></a>). -Whenever an error occurs during -the compilation or execution of a Lua chunk, -control returns to the host, -which can take appropriate measures -(such as printing an error message). - - -<p> -Lua code can explicitly generate an error by calling the -<a href="#pdf-error"><code>error</code></a> function. -If you need to catch errors in Lua, -you can use <a href="#pdf-pcall"><code>pcall</code></a> or <a href="#pdf-xpcall"><code>xpcall</code></a> -to call a given function in <em>protected mode</em>. - - -<p> -Whenever there is an error, -an <em>error object</em> (also called an <em>error message</em>) -is propagated with information about the error. -Lua itself only generates errors where the error object is a string, -but programs may generate errors with -any value for the error object. - - -<p> -When you use <a href="#pdf-xpcall"><code>xpcall</code></a> or <a href="#lua_pcall"><code>lua_pcall</code></a>, -you may give a <em>message handler</em> -to be called in case of errors. -This function is called with the original error message -and returns a new error message. -It is called before the error unwinds the stack, -so that it can gather more information about the error, -for instance by inspecting the stack and creating a stack traceback. -This message handler is still protected by the protected call; -so, an error inside the message handler -will call the message handler again. -If this loop goes on, Lua breaks it and returns an appropriate message. - - - - - -<h2>2.4 – <a name="2.4">Metatables and Metamethods</a></h2> - -<p> -Every value in Lua can have a <em>metatable</em>. -This <em>metatable</em> is an ordinary Lua table -that defines the behavior of the original value -under certain special operations. -You can change several aspects of the behavior -of operations over a value by setting specific fields in its metatable. -For instance, when a non-numeric value is the operand of an addition, -Lua checks for a function in the field "<code>__add</code>" of the value's metatable. -If it finds one, -Lua calls this function to perform the addition. - - -<p> -The keys in a metatable are derived from the <em>event</em> names; -the corresponding values are called <em>metamethods</em>. -In the previous example, the event is <code>"add"</code> -and the metamethod is the function that performs the addition. - - -<p> -You can query the metatable of any value -using the <a href="#pdf-getmetatable"><code>getmetatable</code></a> function. - - -<p> -You can replace the metatable of tables -using the <a href="#pdf-setmetatable"><code>setmetatable</code></a> function. -You cannot change the metatable of other types from Lua -(except by using the debug library); -you must use the C API for that. - - -<p> -Tables and full userdata have individual metatables -(although multiple tables and userdata can share their metatables). -Values of all other types share one single metatable per type; -that is, there is one single metatable for all numbers, -one for all strings, etc. -By default, a value has no metatable, -but the string library sets a metatable for the string type (see <a href="#6.4">§6.4</a>). - - -<p> -A metatable controls how an object behaves in arithmetic operations, -order comparisons, concatenation, length operation, and indexing. -A metatable also can define a function to be called -when a userdata or a table is garbage collected. -When Lua performs one of these operations over a value, -it checks whether this value has a metatable with the corresponding event. -If so, the value associated with that key (the metamethod) -controls how Lua will perform the operation. - - -<p> -Metatables control the operations listed next. -Each operation is identified by its corresponding name. -The key for each operation is a string with its name prefixed by -two underscores, '<code>__</code>'; -for instance, the key for operation "add" is the -string "<code>__add</code>". - - -<p> -The semantics of these operations is better explained by a Lua function -describing how the interpreter executes the operation. -The code shown here in Lua is only illustrative; -the real behavior is hard coded in the interpreter -and it is much more efficient than this simulation. -All functions used in these descriptions -(<a href="#pdf-rawget"><code>rawget</code></a>, <a href="#pdf-tonumber"><code>tonumber</code></a>, etc.) -are described in <a href="#6.1">§6.1</a>. -In particular, to retrieve the metamethod of a given object, -we use the expression - -<pre> - metatable(obj)[event] -</pre><p> -This should be read as - -<pre> - rawget(getmetatable(obj) or {}, event) -</pre><p> -This means that the access to a metamethod does not invoke other metamethods, -and access to objects with no metatables does not fail -(it simply results in <b>nil</b>). - - -<p> -For the unary <code>-</code> and <code>#</code> operators, -the metamethod is called with a dummy second argument. -This extra argument is only to simplify Lua's internals; -it may be removed in future versions and therefore it is not present -in the following code. -(For most uses this extra argument is irrelevant.) - - - -<ul> - -<li><b>"add": </b> -the <code>+</code> operation. - - - -<p> -The function <code>getbinhandler</code> below defines how Lua chooses a handler -for a binary operation. -First, Lua tries the first operand. -If its type does not define a handler for the operation, -then Lua tries the second operand. - -<pre> - function getbinhandler (op1, op2, event) - return metatable(op1)[event] or metatable(op2)[event] - end -</pre><p> -By using this function, -the behavior of the <code>op1 + op2</code> is - -<pre> - function add_event (op1, op2) - local o1, o2 = tonumber(op1), tonumber(op2) - if o1 and o2 then -- both operands are numeric? - return o1 + o2 -- '+' here is the primitive 'add' - else -- at least one of the operands is not numeric - local h = getbinhandler(op1, op2, "__add") - if h then - -- call the handler with both operands - return (h(op1, op2)) - else -- no handler available: default behavior - error(···) - end - end - end -</pre><p> -</li> - -<li><b>"sub": </b> -the <code>-</code> operation. - -Behavior similar to the "add" operation. -</li> - -<li><b>"mul": </b> -the <code>*</code> operation. - -Behavior similar to the "add" operation. -</li> - -<li><b>"div": </b> -the <code>/</code> operation. - -Behavior similar to the "add" operation. -</li> - -<li><b>"mod": </b> -the <code>%</code> operation. - -Behavior similar to the "add" operation, -with the operation -<code>o1 - floor(o1/o2)*o2</code> as the primitive operation. -</li> - -<li><b>"pow": </b> -the <code>^</code> (exponentiation) operation. - -Behavior similar to the "add" operation, -with the function <code>pow</code> (from the C math library) -as the primitive operation. -</li> - -<li><b>"unm": </b> -the unary <code>-</code> operation. - - -<pre> - function unm_event (op) - local o = tonumber(op) - if o then -- operand is numeric? - return -o -- '-' here is the primitive 'unm' - else -- the operand is not numeric. - -- Try to get a handler from the operand - local h = metatable(op).__unm - if h then - -- call the handler with the operand - return (h(op)) - else -- no handler available: default behavior - error(···) - end - end - end -</pre><p> -</li> - -<li><b>"concat": </b> -the <code>..</code> (concatenation) operation. - - -<pre> - function concat_event (op1, op2) - if (type(op1) == "string" or type(op1) == "number") and - (type(op2) == "string" or type(op2) == "number") then - return op1 .. op2 -- primitive string concatenation - else - local h = getbinhandler(op1, op2, "__concat") - if h then - return (h(op1, op2)) - else - error(···) - end - end - end -</pre><p> -</li> - -<li><b>"len": </b> -the <code>#</code> operation. - - -<pre> - function len_event (op) - if type(op) == "string" then - return strlen(op) -- primitive string length - else - local h = metatable(op).__len - if h then - return (h(op)) -- call handler with the operand - elseif type(op) == "table" then - return #op -- primitive table length - else -- no handler available: error - error(···) - end - end - end -</pre><p> -See <a href="#3.4.6">§3.4.6</a> for a description of the length of a table. -</li> - -<li><b>"eq": </b> -the <code>==</code> operation. - -The function <code>getequalhandler</code> defines how Lua chooses a metamethod -for equality. -A metamethod is selected only when both values -being compared have the same type -and the same metamethod for the selected operation, -and the values are either tables or full userdata. - -<pre> - function getequalhandler (op1, op2) - if type(op1) ~= type(op2) or - (type(op1) ~= "table" and type(op1) ~= "userdata") then - return nil -- different values - end - local mm1 = metatable(op1).__eq - local mm2 = metatable(op2).__eq - if mm1 == mm2 then return mm1 else return nil end - end -</pre><p> -The "eq" event is defined as follows: - -<pre> - function eq_event (op1, op2) - if op1 == op2 then -- primitive equal? - return true -- values are equal - end - -- try metamethod - local h = getequalhandler(op1, op2) - if h then - return not not h(op1, op2) - else - return false - end - end -</pre><p> -Note that the result is always a boolean. -</li> - -<li><b>"lt": </b> -the <code><</code> operation. - - -<pre> - function lt_event (op1, op2) - if type(op1) == "number" and type(op2) == "number" then - return op1 < op2 -- numeric comparison - elseif type(op1) == "string" and type(op2) == "string" then - return op1 < op2 -- lexicographic comparison - else - local h = getbinhandler(op1, op2, "__lt") - if h then - return not not h(op1, op2) - else - error(···) - end - end - end -</pre><p> -Note that the result is always a boolean. -</li> - -<li><b>"le": </b> -the <code><=</code> operation. - - -<pre> - function le_event (op1, op2) - if type(op1) == "number" and type(op2) == "number" then - return op1 <= op2 -- numeric comparison - elseif type(op1) == "string" and type(op2) == "string" then - return op1 <= op2 -- lexicographic comparison - else - local h = getbinhandler(op1, op2, "__le") - if h then - return not not h(op1, op2) - else - h = getbinhandler(op1, op2, "__lt") - if h then - return not h(op2, op1) - else - error(···) - end - end - end - end -</pre><p> -Note that, in the absence of a "le" metamethod, -Lua tries the "lt", assuming that <code>a <= b</code> is -equivalent to <code>not (b < a)</code>. - - -<p> -As with the other comparison operators, -the result is always a boolean. -</li> - -<li><b>"index": </b> -The indexing access <code>table[key]</code>. -Note that the metamethod is tried only -when <code>key</code> is not present in <code>table</code>. -(When <code>table</code> is not a table, -no key is ever present, -so the metamethod is always tried.) - - -<pre> - function gettable_event (table, key) - local h - if type(table) == "table" then - local v = rawget(table, key) - -- if key is present, return raw value - if v ~= nil then return v end - h = metatable(table).__index - if h == nil then return nil end - else - h = metatable(table).__index - if h == nil then - error(···) - end - end - if type(h) == "function" then - return (h(table, key)) -- call the handler - else return h[key] -- or repeat operation on it - end - end -</pre><p> -</li> - -<li><b>"newindex": </b> -The indexing assignment <code>table[key] = value</code>. -Note that the metamethod is tried only -when <code>key</code> is not present in <code>table</code>. - - -<pre> - function settable_event (table, key, value) - local h - if type(table) == "table" then - local v = rawget(table, key) - -- if key is present, do raw assignment - if v ~= nil then rawset(table, key, value); return end - h = metatable(table).__newindex - if h == nil then rawset(table, key, value); return end - else - h = metatable(table).__newindex - if h == nil then - error(···) - end - end - if type(h) == "function" then - h(table, key,value) -- call the handler - else h[key] = value -- or repeat operation on it - end - end -</pre><p> -</li> - -<li><b>"call": </b> -called when Lua calls a value. - - -<pre> - function function_event (func, ...) - if type(func) == "function" then - return func(...) -- primitive call - else - local h = metatable(func).__call - if h then - return h(func, ...) - else - error(···) - end - end - end -</pre><p> -</li> - -</ul> - - - - -<h2>2.5 – <a name="2.5">Garbage Collection</a></h2> - -<p> -Lua performs automatic memory management. -This means that -you have to worry neither about allocating memory for new objects -nor about freeing it when the objects are no longer needed. -Lua manages memory automatically by running -a <em>garbage collector</em> to collect all <em>dead objects</em> -(that is, objects that are no longer accessible from Lua). -All memory used by Lua is subject to automatic management: -strings, tables, userdata, functions, threads, internal structures, etc. - - -<p> -Lua implements an incremental mark-and-sweep collector. -It uses two numbers to control its garbage-collection cycles: -the <em>garbage-collector pause</em> and -the <em>garbage-collector step multiplier</em>. -Both use percentage points as units -(e.g., a value of 100 means an internal value of 1). - - -<p> -The garbage-collector pause -controls how long the collector waits before starting a new cycle. -Larger values make the collector less aggressive. -Values smaller than 100 mean the collector will not wait to -start a new cycle. -A value of 200 means that the collector waits for the total memory in use -to double before starting a new cycle. - - -<p> -The garbage-collector step multiplier -controls the relative speed of the collector relative to -memory allocation. -Larger values make the collector more aggressive but also increase -the size of each incremental step. -Values smaller than 100 make the collector too slow and -can result in the collector never finishing a cycle. -The default is 200, -which means that the collector runs at "twice" -the speed of memory allocation. - - -<p> -If you set the step multiplier to a very large number -(larger than 10% of the maximum number of -bytes that the program may use), -the collector behaves like a stop-the-world collector. -If you then set the pause to 200, -the collector behaves as in old Lua versions, -doing a complete collection every time Lua doubles its -memory usage. - - -<p> -You can change these numbers by calling <a href="#lua_gc"><code>lua_gc</code></a> in C -or <a href="#pdf-collectgarbage"><code>collectgarbage</code></a> in Lua. -You can also use these functions to control -the collector directly (e.g., stop and restart it). - - -<p> -As an experimental feature in Lua 5.2, -you can change the collector's operation mode -from incremental to <em>generational</em>. -A <em>generational collector</em> assumes that most objects die young, -and therefore it traverses only young (recently created) objects. -This behavior can reduce the time used by the collector, -but also increases memory usage (as old dead objects may accumulate). -To mitigate this second problem, -from time to time the generational collector performs a full collection. -Remember that this is an experimental feature; -you are welcome to try it, -but check your gains. - - - -<h3>2.5.1 – <a name="2.5.1">Garbage-Collection Metamethods</a></h3> - -<p> -You can set garbage-collector metamethods for tables -and, using the C API, -for full userdata (see <a href="#2.4">§2.4</a>). -These metamethods are also called <em>finalizers</em>. -Finalizers allow you to coordinate Lua's garbage collection -with external resource management -(such as closing files, network or database connections, -or freeing your own memory). - - -<p> -For an object (table or userdata) to be finalized when collected, -you must <em>mark</em> it for finalization. - -You mark an object for finalization when you set its metatable -and the metatable has a field indexed by the string "<code>__gc</code>". -Note that if you set a metatable without a <code>__gc</code> field -and later create that field in the metatable, -the object will not be marked for finalization. -However, after an object is marked, -you can freely change the <code>__gc</code> field of its metatable. - - -<p> -When a marked object becomes garbage, -it is not collected immediately by the garbage collector. -Instead, Lua puts it in a list. -After the collection, -Lua does the equivalent of the following function -for each object in that list: - -<pre> - function gc_event (obj) - local h = metatable(obj).__gc - if type(h) == "function" then - h(obj) - end - end -</pre> - -<p> -At the end of each garbage-collection cycle, -the finalizers for objects are called in -the reverse order that they were marked for collection, -among those collected in that cycle; -that is, the first finalizer to be called is the one associated -with the object marked last in the program. -The execution of each finalizer may occur at any point during -the execution of the regular code. - - -<p> -Because the object being collected must still be used by the finalizer, -it (and other objects accessible only through it) -must be <em>resurrected</em> by Lua. -Usually, this resurrection is transient, -and the object memory is freed in the next garbage-collection cycle. -However, if the finalizer stores the object in some global place -(e.g., a global variable), -then there is a permanent resurrection. -In any case, -the object memory is freed only when it becomes completely inaccessible; -its finalizer will never be called twice. - - -<p> -When you close a state (see <a href="#lua_close"><code>lua_close</code></a>), -Lua calls the finalizers of all objects marked for finalization, -following the reverse order that they were marked. -If any finalizer marks new objects for collection during that phase, -these new objects will not be finalized. - - - - - -<h3>2.5.2 – <a name="2.5.2">Weak Tables</a></h3> - -<p> -A <em>weak table</em> is a table whose elements are -<em>weak references</em>. -A weak reference is ignored by the garbage collector. -In other words, -if the only references to an object are weak references, -then the garbage collector will collect that object. - - -<p> -A weak table can have weak keys, weak values, or both. -A table with weak keys allows the collection of its keys, -but prevents the collection of its values. -A table with both weak keys and weak values allows the collection of -both keys and values. -In any case, if either the key or the value is collected, -the whole pair is removed from the table. -The weakness of a table is controlled by the -<code>__mode</code> field of its metatable. -If the <code>__mode</code> field is a string containing the character '<code>k</code>', -the keys in the table are weak. -If <code>__mode</code> contains '<code>v</code>', -the values in the table are weak. - - -<p> -A table with weak keys and strong values -is also called an <em>ephemeron table</em>. -In an ephemeron table, -a value is considered reachable only if its key is reachable. -In particular, -if the only reference to a key comes through its value, -the pair is removed. - - -<p> -Any change in the weakness of a table may take effect only -at the next collect cycle. -In particular, if you change the weakness to a stronger mode, -Lua may still collect some items from that table -before the change takes effect. - - -<p> -Only objects that have an explicit construction -are removed from weak tables. -Values, such as numbers and light C functions, -are not subject to garbage collection, -and therefore are not removed from weak tables -(unless its associated value is collected). -Although strings are subject to garbage collection, -they do not have an explicit construction, -and therefore are not removed from weak tables. - - -<p> -Resurrected objects -(that is, objects being finalized -and objects accessible only through objects being finalized) -have a special behavior in weak tables. -They are removed from weak values before running their finalizers, -but are removed from weak keys only in the next collection -after running their finalizers, when such objects are actually freed. -This behavior allows the finalizer to access properties -associated with the object through weak tables. - - -<p> -If a weak table is among the resurrected objects in a collection cycle, -it may not be properly cleared until the next cycle. - - - - - - - -<h2>2.6 – <a name="2.6">Coroutines</a></h2> - -<p> -Lua supports coroutines, -also called <em>collaborative multithreading</em>. -A coroutine in Lua represents an independent thread of execution. -Unlike threads in multithread systems, however, -a coroutine only suspends its execution by explicitly calling -a yield function. - - -<p> -You create a coroutine by calling <a href="#pdf-coroutine.create"><code>coroutine.create</code></a>. -Its sole argument is a function -that is the main function of the coroutine. -The <code>create</code> function only creates a new coroutine and -returns a handle to it (an object of type <em>thread</em>); -it does not start the coroutine. - - -<p> -You execute a coroutine by calling <a href="#pdf-coroutine.resume"><code>coroutine.resume</code></a>. -When you first call <a href="#pdf-coroutine.resume"><code>coroutine.resume</code></a>, -passing as its first argument -a thread returned by <a href="#pdf-coroutine.create"><code>coroutine.create</code></a>, -the coroutine starts its execution, -at the first line of its main function. -Extra arguments passed to <a href="#pdf-coroutine.resume"><code>coroutine.resume</code></a> are passed on -to the coroutine main function. -After the coroutine starts running, -it runs until it terminates or <em>yields</em>. - - -<p> -A coroutine can terminate its execution in two ways: -normally, when its main function returns -(explicitly or implicitly, after the last instruction); -and abnormally, if there is an unprotected error. -In the first case, <a href="#pdf-coroutine.resume"><code>coroutine.resume</code></a> returns <b>true</b>, -plus any values returned by the coroutine main function. -In case of errors, <a href="#pdf-coroutine.resume"><code>coroutine.resume</code></a> returns <b>false</b> -plus an error message. - - -<p> -A coroutine yields by calling <a href="#pdf-coroutine.yield"><code>coroutine.yield</code></a>. -When a coroutine yields, -the corresponding <a href="#pdf-coroutine.resume"><code>coroutine.resume</code></a> returns immediately, -even if the yield happens inside nested function calls -(that is, not in the main function, -but in a function directly or indirectly called by the main function). -In the case of a yield, <a href="#pdf-coroutine.resume"><code>coroutine.resume</code></a> also returns <b>true</b>, -plus any values passed to <a href="#pdf-coroutine.yield"><code>coroutine.yield</code></a>. -The next time you resume the same coroutine, -it continues its execution from the point where it yielded, -with the call to <a href="#pdf-coroutine.yield"><code>coroutine.yield</code></a> returning any extra -arguments passed to <a href="#pdf-coroutine.resume"><code>coroutine.resume</code></a>. - - -<p> -Like <a href="#pdf-coroutine.create"><code>coroutine.create</code></a>, -the <a href="#pdf-coroutine.wrap"><code>coroutine.wrap</code></a> function also creates a coroutine, -but instead of returning the coroutine itself, -it returns a function that, when called, resumes the coroutine. -Any arguments passed to this function -go as extra arguments to <a href="#pdf-coroutine.resume"><code>coroutine.resume</code></a>. -<a href="#pdf-coroutine.wrap"><code>coroutine.wrap</code></a> returns all the values returned by <a href="#pdf-coroutine.resume"><code>coroutine.resume</code></a>, -except the first one (the boolean error code). -Unlike <a href="#pdf-coroutine.resume"><code>coroutine.resume</code></a>, -<a href="#pdf-coroutine.wrap"><code>coroutine.wrap</code></a> does not catch errors; -any error is propagated to the caller. - - -<p> -As an example of how coroutines work, -consider the following code: - -<pre> - function foo (a) - print("foo", a) - return coroutine.yield(2*a) - end - - co = coroutine.create(function (a,b) - print("co-body", a, b) - local r = foo(a+1) - print("co-body", r) - local r, s = coroutine.yield(a+b, a-b) - print("co-body", r, s) - return b, "end" - end) - - print("main", coroutine.resume(co, 1, 10)) - print("main", coroutine.resume(co, "r")) - print("main", coroutine.resume(co, "x", "y")) - print("main", coroutine.resume(co, "x", "y")) -</pre><p> -When you run it, it produces the following output: - -<pre> - co-body 1 10 - foo 2 - main true 4 - co-body r - main true 11 -9 - co-body x y - main true 10 end - main false cannot resume dead coroutine -</pre> - -<p> -You can also create and manipulate coroutines through the C API: -see functions <a href="#lua_newthread"><code>lua_newthread</code></a>, <a href="#lua_resume"><code>lua_resume</code></a>, -and <a href="#lua_yield"><code>lua_yield</code></a>. - - - - - -<h1>3 – <a name="3">The Language</a></h1> - -<p> -This section describes the lexis, the syntax, and the semantics of Lua. -In other words, -this section describes -which tokens are valid, -how they can be combined, -and what their combinations mean. - - -<p> -Language constructs will be explained using the usual extended BNF notation, -in which -{<em>a</em>} means 0 or more <em>a</em>'s, and -[<em>a</em>] means an optional <em>a</em>. -Non-terminals are shown like non-terminal, -keywords are shown like <b>kword</b>, -and other terminal symbols are shown like ‘<b>=</b>’. -The complete syntax of Lua can be found in <a href="#9">§9</a> -at the end of this manual. - - - -<h2>3.1 – <a name="3.1">Lexical Conventions</a></h2> - -<p> -Lua is a free-form language. -It ignores spaces (including new lines) and comments -between lexical elements (tokens), -except as delimiters between names and keywords. - - -<p> -<em>Names</em> -(also called <em>identifiers</em>) -in Lua can be any string of letters, -digits, and underscores, -not beginning with a digit. -Identifiers are used to name variables, table fields, and labels. - - -<p> -The following <em>keywords</em> are reserved -and cannot be used as names: - - -<pre> - and break do else elseif end - false for function goto if in - local nil not or repeat return - then true until while -</pre> - -<p> -Lua is a case-sensitive language: -<code>and</code> is a reserved word, but <code>And</code> and <code>AND</code> -are two different, valid names. -As a convention, names starting with an underscore followed by -uppercase letters (such as <a href="#pdf-_VERSION"><code>_VERSION</code></a>) -are reserved for variables used by Lua. - - -<p> -The following strings denote other tokens: - -<pre> - + - * / % ^ # - == ~= <= >= < > = - ( ) { } [ ] :: - ; : , . .. ... -</pre> - -<p> -<em>Literal strings</em> -can be delimited by matching single or double quotes, -and can contain the following C-like escape sequences: -'<code>\a</code>' (bell), -'<code>\b</code>' (backspace), -'<code>\f</code>' (form feed), -'<code>\n</code>' (newline), -'<code>\r</code>' (carriage return), -'<code>\t</code>' (horizontal tab), -'<code>\v</code>' (vertical tab), -'<code>\\</code>' (backslash), -'<code>\"</code>' (quotation mark [double quote]), -and '<code>\'</code>' (apostrophe [single quote]). -A backslash followed by a real newline -results in a newline in the string. -The escape sequence '<code>\z</code>' skips the following span -of white-space characters, -including line breaks; -it is particularly useful to break and indent a long literal string -into multiple lines without adding the newlines and spaces -into the string contents. - - -<p> -A byte in a literal string can also be specified by its numerical value. -This can be done with the escape sequence <code>\x<em>XX</em></code>, -where <em>XX</em> is a sequence of exactly two hexadecimal digits, -or with the escape sequence <code>\<em>ddd</em></code>, -where <em>ddd</em> is a sequence of up to three decimal digits. -(Note that if a decimal escape is to be followed by a digit, -it must be expressed using exactly three digits.) -Strings in Lua can contain any 8-bit value, including embedded zeros, -which can be specified as '<code>\0</code>'. - - -<p> -Literal strings can also be defined using a long format -enclosed by <em>long brackets</em>. -We define an <em>opening long bracket of level <em>n</em></em> as an opening -square bracket followed by <em>n</em> equal signs followed by another -opening square bracket. -So, an opening long bracket of level 0 is written as <code>[[</code>, -an opening long bracket of level 1 is written as <code>[=[</code>, -and so on. -A <em>closing long bracket</em> is defined similarly; -for instance, a closing long bracket of level 4 is written as <code>]====]</code>. -A <em>long literal</em> starts with an opening long bracket of any level and -ends at the first closing long bracket of the same level. -It can contain any text except a closing bracket of the proper level. -Literals in this bracketed form can run for several lines, -do not interpret any escape sequences, -and ignore long brackets of any other level. -Any kind of end-of-line sequence -(carriage return, newline, carriage return followed by newline, -or newline followed by carriage return) -is converted to a simple newline. - - -<p> -Any byte in a literal string not -explicitly affected by the previous rules represents itself. -However, Lua opens files for parsing in text mode, -and the system file functions may have problems with -some control characters. -So, it is safer to represent -non-text data as a quoted literal with -explicit escape sequences for non-text characters. - - -<p> -For convenience, -when the opening long bracket is immediately followed by a newline, -the newline is not included in the string. -As an example, in a system using ASCII -(in which '<code>a</code>' is coded as 97, -newline is coded as 10, and '<code>1</code>' is coded as 49), -the five literal strings below denote the same string: - -<pre> - a = 'alo\n123"' - a = "alo\n123\"" - a = '\97lo\10\04923"' - a = [[alo - 123"]] - a = [==[ - alo - 123"]==] -</pre> - -<p> -A <em>numerical constant</em> can be written with an optional fractional part -and an optional decimal exponent, -marked by a letter '<code>e</code>' or '<code>E</code>'. -Lua also accepts hexadecimal constants, -which start with <code>0x</code> or <code>0X</code>. -Hexadecimal constants also accept an optional fractional part -plus an optional binary exponent, -marked by a letter '<code>p</code>' or '<code>P</code>'. -Examples of valid numerical constants are - -<pre> - 3 3.0 3.1416 314.16e-2 0.31416E1 - 0xff 0x0.1E 0xA23p-4 0X1.921FB54442D18P+1 -</pre> - -<p> -A <em>comment</em> starts with a double hyphen (<code>--</code>) -anywhere outside a string. -If the text immediately after <code>--</code> is not an opening long bracket, -the comment is a <em>short comment</em>, -which runs until the end of the line. -Otherwise, it is a <em>long comment</em>, -which runs until the corresponding closing long bracket. -Long comments are frequently used to disable code temporarily. - - - - - -<h2>3.2 – <a name="3.2">Variables</a></h2> - -<p> -Variables are places that store values. -There are three kinds of variables in Lua: -global variables, local variables, and table fields. - - -<p> -A single name can denote a global variable or a local variable -(or a function's formal parameter, -which is a particular kind of local variable): - -<pre> - var ::= Name -</pre><p> -Name denotes identifiers, as defined in <a href="#3.1">§3.1</a>. - - -<p> -Any variable name is assumed to be global unless explicitly declared -as a local (see <a href="#3.3.7">§3.3.7</a>). -Local variables are <em>lexically scoped</em>: -local variables can be freely accessed by functions -defined inside their scope (see <a href="#3.5">§3.5</a>). - - -<p> -Before the first assignment to a variable, its value is <b>nil</b>. - - -<p> -Square brackets are used to index a table: - -<pre> - var ::= prefixexp ‘<b>[</b>’ exp ‘<b>]</b>’ -</pre><p> -The meaning of accesses to table fields can be changed via metatables. -An access to an indexed variable <code>t[i]</code> is equivalent to -a call <code>gettable_event(t,i)</code>. -(See <a href="#2.4">§2.4</a> for a complete description of the -<code>gettable_event</code> function. -This function is not defined or callable in Lua. -We use it here only for explanatory purposes.) - - -<p> -The syntax <code>var.Name</code> is just syntactic sugar for -<code>var["Name"]</code>: - -<pre> - var ::= prefixexp ‘<b>.</b>’ Name -</pre> - -<p> -An access to a global variable <code>x</code> -is equivalent to <code>_ENV.x</code>. -Due to the way that chunks are compiled, -<code>_ENV</code> is never a global name (see <a href="#2.2">§2.2</a>). - - - - - -<h2>3.3 – <a name="3.3">Statements</a></h2> - -<p> -Lua supports an almost conventional set of statements, -similar to those in Pascal or C. -This set includes -assignments, control structures, function calls, -and variable declarations. - - - -<h3>3.3.1 – <a name="3.3.1">Blocks</a></h3> - -<p> -A block is a list of statements, -which are executed sequentially: - -<pre> - block ::= {stat} -</pre><p> -Lua has <em>empty statements</em> -that allow you to separate statements with semicolons, -start a block with a semicolon -or write two semicolons in sequence: - -<pre> - stat ::= ‘<b>;</b>’ -</pre> - -<p> -Function calls and assignments -can start with an open parenthesis. -This possibility leads to an ambiguity in Lua's grammar. -Consider the following fragment: - -<pre> - a = b + c - (print or io.write)('done') -</pre><p> -The grammar could see it in two ways: - -<pre> - a = b + c(print or io.write)('done') - - a = b + c; (print or io.write)('done') -</pre><p> -The current parser always sees such constructions -in the first way, -interpreting the open parenthesis -as the start of the arguments to a call. -To avoid this ambiguity, -it is a good practice to always precede with a semicolon -statements that start with a parenthesis: - -<pre> - ;(print or io.write)('done') -</pre> - -<p> -A block can be explicitly delimited to produce a single statement: - -<pre> - stat ::= <b>do</b> block <b>end</b> -</pre><p> -Explicit blocks are useful -to control the scope of variable declarations. -Explicit blocks are also sometimes used to -add a <b>return</b> statement in the middle -of another block (see <a href="#3.3.4">§3.3.4</a>). - - - - - -<h3>3.3.2 – <a name="3.3.2">Chunks</a></h3> - -<p> -The unit of compilation of Lua is called a <em>chunk</em>. -Syntactically, -a chunk is simply a block: - -<pre> - chunk ::= block -</pre> - -<p> -Lua handles a chunk as the body of an anonymous function -with a variable number of arguments -(see <a href="#3.4.10">§3.4.10</a>). -As such, chunks can define local variables, -receive arguments, and return values. -Moreover, such anonymous function is compiled as in the -scope of an external local variable called <code>_ENV</code> (see <a href="#2.2">§2.2</a>). -The resulting function always has <code>_ENV</code> as its only upvalue, -even if it does not use that variable. - - -<p> -A chunk can be stored in a file or in a string inside the host program. -To execute a chunk, -Lua first precompiles the chunk into instructions for a virtual machine, -and then it executes the compiled code -with an interpreter for the virtual machine. - - -<p> -Chunks can also be precompiled into binary form; -see program <code>luac</code> for details. -Programs in source and compiled forms are interchangeable; -Lua automatically detects the file type and acts accordingly. - - - - - - -<h3>3.3.3 – <a name="3.3.3">Assignment</a></h3> - -<p> -Lua allows multiple assignments. -Therefore, the syntax for assignment -defines a list of variables on the left side -and a list of expressions on the right side. -The elements in both lists are separated by commas: - -<pre> - stat ::= varlist ‘<b>=</b>’ explist - varlist ::= var {‘<b>,</b>’ var} - explist ::= exp {‘<b>,</b>’ exp} -</pre><p> -Expressions are discussed in <a href="#3.4">§3.4</a>. - - -<p> -Before the assignment, -the list of values is <em>adjusted</em> to the length of -the list of variables. -If there are more values than needed, -the excess values are thrown away. -If there are fewer values than needed, -the list is extended with as many <b>nil</b>'s as needed. -If the list of expressions ends with a function call, -then all values returned by that call enter the list of values, -before the adjustment -(except when the call is enclosed in parentheses; see <a href="#3.4">§3.4</a>). - - -<p> -The assignment statement first evaluates all its expressions -and only then are the assignments performed. -Thus the code - -<pre> - i = 3 - i, a[i] = i+1, 20 -</pre><p> -sets <code>a[3]</code> to 20, without affecting <code>a[4]</code> -because the <code>i</code> in <code>a[i]</code> is evaluated (to 3) -before it is assigned 4. -Similarly, the line - -<pre> - x, y = y, x -</pre><p> -exchanges the values of <code>x</code> and <code>y</code>, -and - -<pre> - x, y, z = y, z, x -</pre><p> -cyclically permutes the values of <code>x</code>, <code>y</code>, and <code>z</code>. - - -<p> -The meaning of assignments to global variables -and table fields can be changed via metatables. -An assignment to an indexed variable <code>t[i] = val</code> is equivalent to -<code>settable_event(t,i,val)</code>. -(See <a href="#2.4">§2.4</a> for a complete description of the -<code>settable_event</code> function. -This function is not defined or callable in Lua. -We use it here only for explanatory purposes.) - - -<p> -An assignment to a global variable <code>x = val</code> -is equivalent to the assignment -<code>_ENV.x = val</code> (see <a href="#2.2">§2.2</a>). - - - - - -<h3>3.3.4 – <a name="3.3.4">Control Structures</a></h3><p> -The control structures -<b>if</b>, <b>while</b>, and <b>repeat</b> have the usual meaning and -familiar syntax: - - - - -<pre> - stat ::= <b>while</b> exp <b>do</b> block <b>end</b> - stat ::= <b>repeat</b> block <b>until</b> exp - stat ::= <b>if</b> exp <b>then</b> block {<b>elseif</b> exp <b>then</b> block} [<b>else</b> block] <b>end</b> -</pre><p> -Lua also has a <b>for</b> statement, in two flavors (see <a href="#3.3.5">§3.3.5</a>). - - -<p> -The condition expression of a -control structure can return any value. -Both <b>false</b> and <b>nil</b> are considered false. -All values different from <b>nil</b> and <b>false</b> are considered true -(in particular, the number 0 and the empty string are also true). - - -<p> -In the <b>repeat</b>–<b>until</b> loop, -the inner block does not end at the <b>until</b> keyword, -but only after the condition. -So, the condition can refer to local variables -declared inside the loop block. - - -<p> -The <b>goto</b> statement transfers the program control to a label. -For syntactical reasons, -labels in Lua are considered statements too: - - - -<pre> - stat ::= <b>goto</b> Name - stat ::= label - label ::= ‘<b>::</b>’ Name ‘<b>::</b>’ -</pre> - -<p> -A label is visible in the entire block where it is defined, -except -inside nested blocks where a label with the same name is defined and -inside nested functions. -A goto may jump to any visible label as long as it does not -enter into the scope of a local variable. - - -<p> -Labels and empty statements are called <em>void statements</em>, -as they perform no actions. - - -<p> -The <b>break</b> statement terminates the execution of a -<b>while</b>, <b>repeat</b>, or <b>for</b> loop, -skipping to the next statement after the loop: - - -<pre> - stat ::= <b>break</b> -</pre><p> -A <b>break</b> ends the innermost enclosing loop. - - -<p> -The <b>return</b> statement is used to return values -from a function or a chunk (which is a function in disguise). - -Functions can return more than one value, -so the syntax for the <b>return</b> statement is - -<pre> - stat ::= <b>return</b> [explist] [‘<b>;</b>’] -</pre> - -<p> -The <b>return</b> statement can only be written -as the last statement of a block. -If it is really necessary to <b>return</b> in the middle of a block, -then an explicit inner block can be used, -as in the idiom <code>do return end</code>, -because now <b>return</b> is the last statement in its (inner) block. - - - - - -<h3>3.3.5 – <a name="3.3.5">For Statement</a></h3> - -<p> - -The <b>for</b> statement has two forms: -one numeric and one generic. - - -<p> -The numeric <b>for</b> loop repeats a block of code while a -control variable runs through an arithmetic progression. -It has the following syntax: - -<pre> - stat ::= <b>for</b> Name ‘<b>=</b>’ exp ‘<b>,</b>’ exp [‘<b>,</b>’ exp] <b>do</b> block <b>end</b> -</pre><p> -The <em>block</em> is repeated for <em>name</em> starting at the value of -the first <em>exp</em>, until it passes the second <em>exp</em> by steps of the -third <em>exp</em>. -More precisely, a <b>for</b> statement like - -<pre> - for v = <em>e1</em>, <em>e2</em>, <em>e3</em> do <em>block</em> end -</pre><p> -is equivalent to the code: - -<pre> - do - local <em>var</em>, <em>limit</em>, <em>step</em> = tonumber(<em>e1</em>), tonumber(<em>e2</em>), tonumber(<em>e3</em>) - if not (<em>var</em> and <em>limit</em> and <em>step</em>) then error() end - while (<em>step</em> > 0 and <em>var</em> <= <em>limit</em>) or (<em>step</em> <= 0 and <em>var</em> >= <em>limit</em>) do - local v = <em>var</em> - <em>block</em> - <em>var</em> = <em>var</em> + <em>step</em> - end - end -</pre><p> -Note the following: - -<ul> - -<li> -All three control expressions are evaluated only once, -before the loop starts. -They must all result in numbers. -</li> - -<li> -<code><em>var</em></code>, <code><em>limit</em></code>, and <code><em>step</em></code> are invisible variables. -The names shown here are for explanatory purposes only. -</li> - -<li> -If the third expression (the step) is absent, -then a step of 1 is used. -</li> - -<li> -You can use <b>break</b> to exit a <b>for</b> loop. -</li> - -<li> -The loop variable <code>v</code> is local to the loop; -you cannot use its value after the <b>for</b> ends or is broken. -If you need this value, -assign it to another variable before breaking or exiting the loop. -</li> - -</ul> - -<p> -The generic <b>for</b> statement works over functions, -called <em>iterators</em>. -On each iteration, the iterator function is called to produce a new value, -stopping when this new value is <b>nil</b>. -The generic <b>for</b> loop has the following syntax: - -<pre> - stat ::= <b>for</b> namelist <b>in</b> explist <b>do</b> block <b>end</b> - namelist ::= Name {‘<b>,</b>’ Name} -</pre><p> -A <b>for</b> statement like - -<pre> - for <em>var_1</em>, ···, <em>var_n</em> in <em>explist</em> do <em>block</em> end -</pre><p> -is equivalent to the code: - -<pre> - do - local <em>f</em>, <em>s</em>, <em>var</em> = <em>explist</em> - while true do - local <em>var_1</em>, ···, <em>var_n</em> = <em>f</em>(<em>s</em>, <em>var</em>) - if <em>var_1</em> == nil then break end - <em>var</em> = <em>var_1</em> - <em>block</em> - end - end -</pre><p> -Note the following: - -<ul> - -<li> -<code><em>explist</em></code> is evaluated only once. -Its results are an <em>iterator</em> function, -a <em>state</em>, -and an initial value for the first <em>iterator variable</em>. -</li> - -<li> -<code><em>f</em></code>, <code><em>s</em></code>, and <code><em>var</em></code> are invisible variables. -The names are here for explanatory purposes only. -</li> - -<li> -You can use <b>break</b> to exit a <b>for</b> loop. -</li> - -<li> -The loop variables <code><em>var_i</em></code> are local to the loop; -you cannot use their values after the <b>for</b> ends. -If you need these values, -then assign them to other variables before breaking or exiting the loop. -</li> - -</ul> - - - - -<h3>3.3.6 – <a name="3.3.6">Function Calls as Statements</a></h3><p> -To allow possible side-effects, -function calls can be executed as statements: - -<pre> - stat ::= functioncall -</pre><p> -In this case, all returned values are thrown away. -Function calls are explained in <a href="#3.4.9">§3.4.9</a>. - - - - - -<h3>3.3.7 – <a name="3.3.7">Local Declarations</a></h3><p> -Local variables can be declared anywhere inside a block. -The declaration can include an initial assignment: - -<pre> - stat ::= <b>local</b> namelist [‘<b>=</b>’ explist] -</pre><p> -If present, an initial assignment has the same semantics -of a multiple assignment (see <a href="#3.3.3">§3.3.3</a>). -Otherwise, all variables are initialized with <b>nil</b>. - - -<p> -A chunk is also a block (see <a href="#3.3.2">§3.3.2</a>), -and so local variables can be declared in a chunk outside any explicit block. - - -<p> -The visibility rules for local variables are explained in <a href="#3.5">§3.5</a>. - - - - - - - -<h2>3.4 – <a name="3.4">Expressions</a></h2> - -<p> -The basic expressions in Lua are the following: - -<pre> - exp ::= prefixexp - exp ::= <b>nil</b> | <b>false</b> | <b>true</b> - exp ::= Number - exp ::= String - exp ::= functiondef - exp ::= tableconstructor - exp ::= ‘<b>...</b>’ - exp ::= exp binop exp - exp ::= unop exp - prefixexp ::= var | functioncall | ‘<b>(</b>’ exp ‘<b>)</b>’ -</pre> - -<p> -Numbers and literal strings are explained in <a href="#3.1">§3.1</a>; -variables are explained in <a href="#3.2">§3.2</a>; -function definitions are explained in <a href="#3.4.10">§3.4.10</a>; -function calls are explained in <a href="#3.4.9">§3.4.9</a>; -table constructors are explained in <a href="#3.4.8">§3.4.8</a>. -Vararg expressions, -denoted by three dots ('<code>...</code>'), can only be used when -directly inside a vararg function; -they are explained in <a href="#3.4.10">§3.4.10</a>. - - -<p> -Binary operators comprise arithmetic operators (see <a href="#3.4.1">§3.4.1</a>), -relational operators (see <a href="#3.4.3">§3.4.3</a>), logical operators (see <a href="#3.4.4">§3.4.4</a>), -and the concatenation operator (see <a href="#3.4.5">§3.4.5</a>). -Unary operators comprise the unary minus (see <a href="#3.4.1">§3.4.1</a>), -the unary <b>not</b> (see <a href="#3.4.4">§3.4.4</a>), -and the unary <em>length operator</em> (see <a href="#3.4.6">§3.4.6</a>). - - -<p> -Both function calls and vararg expressions can result in multiple values. -If a function call is used as a statement (see <a href="#3.3.6">§3.3.6</a>), -then its return list is adjusted to zero elements, -thus discarding all returned values. -If an expression is used as the last (or the only) element -of a list of expressions, -then no adjustment is made -(unless the expression is enclosed in parentheses). -In all other contexts, -Lua adjusts the result list to one element, -either discarding all values except the first one -or adding a single <b>nil</b> if there are no values. - - -<p> -Here are some examples: - -<pre> - f() -- adjusted to 0 results - g(f(), x) -- f() is adjusted to 1 result - g(x, f()) -- g gets x plus all results from f() - a,b,c = f(), x -- f() is adjusted to 1 result (c gets nil) - a,b = ... -- a gets the first vararg parameter, b gets - -- the second (both a and b can get nil if there - -- is no corresponding vararg parameter) - - a,b,c = x, f() -- f() is adjusted to 2 results - a,b,c = f() -- f() is adjusted to 3 results - return f() -- returns all results from f() - return ... -- returns all received vararg parameters - return x,y,f() -- returns x, y, and all results from f() - {f()} -- creates a list with all results from f() - {...} -- creates a list with all vararg parameters - {f(), nil} -- f() is adjusted to 1 result -</pre> - -<p> -Any expression enclosed in parentheses always results in only one value. -Thus, -<code>(f(x,y,z))</code> is always a single value, -even if <code>f</code> returns several values. -(The value of <code>(f(x,y,z))</code> is the first value returned by <code>f</code> -or <b>nil</b> if <code>f</code> does not return any values.) - - - -<h3>3.4.1 – <a name="3.4.1">Arithmetic Operators</a></h3><p> -Lua supports the usual arithmetic operators: -the binary <code>+</code> (addition), -<code>-</code> (subtraction), <code>*</code> (multiplication), -<code>/</code> (division), <code>%</code> (modulo), and <code>^</code> (exponentiation); -and unary <code>-</code> (mathematical negation). -If the operands are numbers, or strings that can be converted to -numbers (see <a href="#3.4.2">§3.4.2</a>), -then all operations have the usual meaning. -Exponentiation works for any exponent. -For instance, <code>x^(-0.5)</code> computes the inverse of the square root of <code>x</code>. -Modulo is defined as - -<pre> - a % b == a - math.floor(a/b)*b -</pre><p> -That is, it is the remainder of a division that rounds -the quotient towards minus infinity. - - - - - -<h3>3.4.2 – <a name="3.4.2">Coercion</a></h3> - -<p> -Lua provides automatic conversion between -string and number values at run time. -Any arithmetic operation applied to a string tries to convert -this string to a number, following the rules of the Lua lexer. -(The string may have leading and trailing spaces and a sign.) -Conversely, whenever a number is used where a string is expected, -the number is converted to a string, in a reasonable format. -For complete control over how numbers are converted to strings, -use the <code>format</code> function from the string library -(see <a href="#pdf-string.format"><code>string.format</code></a>). - - - - - -<h3>3.4.3 – <a name="3.4.3">Relational Operators</a></h3><p> -The relational operators in Lua are - -<pre> - == ~= < > <= >= -</pre><p> -These operators always result in <b>false</b> or <b>true</b>. - - -<p> -Equality (<code>==</code>) first compares the type of its operands. -If the types are different, then the result is <b>false</b>. -Otherwise, the values of the operands are compared. -Numbers and strings are compared in the usual way. -Tables, userdata, and threads -are compared by reference: -two objects are considered equal only if they are the same object. -Every time you create a new object -(a table, userdata, or thread), -this new object is different from any previously existing object. -Closures with the same reference are always equal. -Closures with any detectable difference -(different behavior, different definition) are always different. - - -<p> -You can change the way that Lua compares tables and userdata -by using the "eq" metamethod (see <a href="#2.4">§2.4</a>). - - -<p> -The conversion rules of <a href="#3.4.2">§3.4.2</a> -do not apply to equality comparisons. -Thus, <code>"0"==0</code> evaluates to <b>false</b>, -and <code>t[0]</code> and <code>t["0"]</code> denote different -entries in a table. - - -<p> -The operator <code>~=</code> is exactly the negation of equality (<code>==</code>). - - -<p> -The order operators work as follows. -If both arguments are numbers, then they are compared as such. -Otherwise, if both arguments are strings, -then their values are compared according to the current locale. -Otherwise, Lua tries to call the "lt" or the "le" -metamethod (see <a href="#2.4">§2.4</a>). -A comparison <code>a > b</code> is translated to <code>b < a</code> -and <code>a >= b</code> is translated to <code>b <= a</code>. - - - - - -<h3>3.4.4 – <a name="3.4.4">Logical Operators</a></h3><p> -The logical operators in Lua are -<b>and</b>, <b>or</b>, and <b>not</b>. -Like the control structures (see <a href="#3.3.4">§3.3.4</a>), -all logical operators consider both <b>false</b> and <b>nil</b> as false -and anything else as true. - - -<p> -The negation operator <b>not</b> always returns <b>false</b> or <b>true</b>. -The conjunction operator <b>and</b> returns its first argument -if this value is <b>false</b> or <b>nil</b>; -otherwise, <b>and</b> returns its second argument. -The disjunction operator <b>or</b> returns its first argument -if this value is different from <b>nil</b> and <b>false</b>; -otherwise, <b>or</b> returns its second argument. -Both <b>and</b> and <b>or</b> use short-cut evaluation; -that is, -the second operand is evaluated only if necessary. -Here are some examples: - -<pre> - 10 or 20 --> 10 - 10 or error() --> 10 - nil or "a" --> "a" - nil and 10 --> nil - false and error() --> false - false and nil --> false - false or nil --> nil - 10 and 20 --> 20 -</pre><p> -(In this manual, -<code>--></code> indicates the result of the preceding expression.) - - - - - -<h3>3.4.5 – <a name="3.4.5">Concatenation</a></h3><p> -The string concatenation operator in Lua is -denoted by two dots ('<code>..</code>'). -If both operands are strings or numbers, then they are converted to -strings according to the rules mentioned in <a href="#3.4.2">§3.4.2</a>. -Otherwise, the <code>__concat</code> metamethod is called (see <a href="#2.4">§2.4</a>). - - - - - -<h3>3.4.6 – <a name="3.4.6">The Length Operator</a></h3> - -<p> -The length operator is denoted by the unary prefix operator <code>#</code>. -The length of a string is its number of bytes -(that is, the usual meaning of string length when each -character is one byte). - - -<p> -A program can modify the behavior of the length operator for -any value but strings through the <code>__len</code> metamethod (see <a href="#2.4">§2.4</a>). - - -<p> -Unless a <code>__len</code> metamethod is given, -the length of a table <code>t</code> is only defined if the -table is a <em>sequence</em>, -that is, -the set of its positive numeric keys is equal to <em>{1..n}</em> -for some non-negative integer <em>n</em>. -In that case, <em>n</em> is its length. -Note that a table like - -<pre> - {10, 20, nil, 40} -</pre><p> -is not a sequence, because it has the key <code>4</code> -but does not have the key <code>3</code>. -(So, there is no <em>n</em> such that the set <em>{1..n}</em> is equal -to the set of positive numeric keys of that table.) -Note, however, that non-numeric keys do not interfere -with whether a table is a sequence. - - - - - -<h3>3.4.7 – <a name="3.4.7">Precedence</a></h3><p> -Operator precedence in Lua follows the table below, -from lower to higher priority: - -<pre> - or - and - < > <= >= ~= == - .. - + - - * / % - not # - (unary) - ^ -</pre><p> -As usual, -you can use parentheses to change the precedences of an expression. -The concatenation ('<code>..</code>') and exponentiation ('<code>^</code>') -operators are right associative. -All other binary operators are left associative. - - - - - -<h3>3.4.8 – <a name="3.4.8">Table Constructors</a></h3><p> -Table constructors are expressions that create tables. -Every time a constructor is evaluated, a new table is created. -A constructor can be used to create an empty table -or to create a table and initialize some of its fields. -The general syntax for constructors is - -<pre> - tableconstructor ::= ‘<b>{</b>’ [fieldlist] ‘<b>}</b>’ - fieldlist ::= field {fieldsep field} [fieldsep] - field ::= ‘<b>[</b>’ exp ‘<b>]</b>’ ‘<b>=</b>’ exp | Name ‘<b>=</b>’ exp | exp - fieldsep ::= ‘<b>,</b>’ | ‘<b>;</b>’ -</pre> - -<p> -Each field of the form <code>[exp1] = exp2</code> adds to the new table an entry -with key <code>exp1</code> and value <code>exp2</code>. -A field of the form <code>name = exp</code> is equivalent to -<code>["name"] = exp</code>. -Finally, fields of the form <code>exp</code> are equivalent to -<code>[i] = exp</code>, where <code>i</code> are consecutive numerical integers, -starting with 1. -Fields in the other formats do not affect this counting. -For example, - -<pre> - a = { [f(1)] = g; "x", "y"; x = 1, f(x), [30] = 23; 45 } -</pre><p> -is equivalent to - -<pre> - do - local t = {} - t[f(1)] = g - t[1] = "x" -- 1st exp - t[2] = "y" -- 2nd exp - t.x = 1 -- t["x"] = 1 - t[3] = f(x) -- 3rd exp - t[30] = 23 - t[4] = 45 -- 4th exp - a = t - end -</pre> - -<p> -If the last field in the list has the form <code>exp</code> -and the expression is a function call or a vararg expression, -then all values returned by this expression enter the list consecutively -(see <a href="#3.4.9">§3.4.9</a>). - - -<p> -The field list can have an optional trailing separator, -as a convenience for machine-generated code. - - - - - -<h3>3.4.9 – <a name="3.4.9">Function Calls</a></h3><p> -A function call in Lua has the following syntax: - -<pre> - functioncall ::= prefixexp args -</pre><p> -In a function call, -first prefixexp and args are evaluated. -If the value of prefixexp has type <em>function</em>, -then this function is called -with the given arguments. -Otherwise, the prefixexp "call" metamethod is called, -having as first parameter the value of prefixexp, -followed by the original call arguments -(see <a href="#2.4">§2.4</a>). - - -<p> -The form - -<pre> - functioncall ::= prefixexp ‘<b>:</b>’ Name args -</pre><p> -can be used to call "methods". -A call <code>v:name(<em>args</em>)</code> -is syntactic sugar for <code>v.name(v,<em>args</em>)</code>, -except that <code>v</code> is evaluated only once. - - -<p> -Arguments have the following syntax: - -<pre> - args ::= ‘<b>(</b>’ [explist] ‘<b>)</b>’ - args ::= tableconstructor - args ::= String -</pre><p> -All argument expressions are evaluated before the call. -A call of the form <code>f{<em>fields</em>}</code> is -syntactic sugar for <code>f({<em>fields</em>})</code>; -that is, the argument list is a single new table. -A call of the form <code>f'<em>string</em>'</code> -(or <code>f"<em>string</em>"</code> or <code>f[[<em>string</em>]]</code>) -is syntactic sugar for <code>f('<em>string</em>')</code>; -that is, the argument list is a single literal string. - - -<p> -A call of the form <code>return <em>functioncall</em></code> is called -a <em>tail call</em>. -Lua implements <em>proper tail calls</em> -(or <em>proper tail recursion</em>): -in a tail call, -the called function reuses the stack entry of the calling function. -Therefore, there is no limit on the number of nested tail calls that -a program can execute. -However, a tail call erases any debug information about the -calling function. -Note that a tail call only happens with a particular syntax, -where the <b>return</b> has one single function call as argument; -this syntax makes the calling function return exactly -the returns of the called function. -So, none of the following examples are tail calls: - -<pre> - return (f(x)) -- results adjusted to 1 - return 2 * f(x) - return x, f(x) -- additional results - f(x); return -- results discarded - return x or f(x) -- results adjusted to 1 -</pre> - - - - -<h3>3.4.10 – <a name="3.4.10">Function Definitions</a></h3> - -<p> -The syntax for function definition is - -<pre> - functiondef ::= <b>function</b> funcbody - funcbody ::= ‘<b>(</b>’ [parlist] ‘<b>)</b>’ block <b>end</b> -</pre> - -<p> -The following syntactic sugar simplifies function definitions: - -<pre> - stat ::= <b>function</b> funcname funcbody - stat ::= <b>local</b> <b>function</b> Name funcbody - funcname ::= Name {‘<b>.</b>’ Name} [‘<b>:</b>’ Name] -</pre><p> -The statement - -<pre> - function f () <em>body</em> end -</pre><p> -translates to - -<pre> - f = function () <em>body</em> end -</pre><p> -The statement - -<pre> - function t.a.b.c.f () <em>body</em> end -</pre><p> -translates to - -<pre> - t.a.b.c.f = function () <em>body</em> end -</pre><p> -The statement - -<pre> - local function f () <em>body</em> end -</pre><p> -translates to - -<pre> - local f; f = function () <em>body</em> end -</pre><p> -not to - -<pre> - local f = function () <em>body</em> end -</pre><p> -(This only makes a difference when the body of the function -contains references to <code>f</code>.) - - -<p> -A function definition is an executable expression, -whose value has type <em>function</em>. -When Lua precompiles a chunk, -all its function bodies are precompiled too. -Then, whenever Lua executes the function definition, -the function is <em>instantiated</em> (or <em>closed</em>). -This function instance (or <em>closure</em>) -is the final value of the expression. - - -<p> -Parameters act as local variables that are -initialized with the argument values: - -<pre> - parlist ::= namelist [‘<b>,</b>’ ‘<b>...</b>’] | ‘<b>...</b>’ -</pre><p> -When a function is called, -the list of arguments is adjusted to -the length of the list of parameters, -unless the function is a <em>vararg function</em>, -which is indicated by three dots ('<code>...</code>') -at the end of its parameter list. -A vararg function does not adjust its argument list; -instead, it collects all extra arguments and supplies them -to the function through a <em>vararg expression</em>, -which is also written as three dots. -The value of this expression is a list of all actual extra arguments, -similar to a function with multiple results. -If a vararg expression is used inside another expression -or in the middle of a list of expressions, -then its return list is adjusted to one element. -If the expression is used as the last element of a list of expressions, -then no adjustment is made -(unless that last expression is enclosed in parentheses). - - -<p> -As an example, consider the following definitions: - -<pre> - function f(a, b) end - function g(a, b, ...) end - function r() return 1,2,3 end -</pre><p> -Then, we have the following mapping from arguments to parameters and -to the vararg expression: - -<pre> - CALL PARAMETERS - - f(3) a=3, b=nil - f(3, 4) a=3, b=4 - f(3, 4, 5) a=3, b=4 - f(r(), 10) a=1, b=10 - f(r()) a=1, b=2 - - g(3) a=3, b=nil, ... --> (nothing) - g(3, 4) a=3, b=4, ... --> (nothing) - g(3, 4, 5, 8) a=3, b=4, ... --> 5 8 - g(5, r()) a=5, b=1, ... --> 2 3 -</pre> - -<p> -Results are returned using the <b>return</b> statement (see <a href="#3.3.4">§3.3.4</a>). -If control reaches the end of a function -without encountering a <b>return</b> statement, -then the function returns with no results. - - -<p> - -There is a system-dependent limit on the number of values -that a function may return. -This limit is guaranteed to be larger than 1000. - - -<p> -The <em>colon</em> syntax -is used for defining <em>methods</em>, -that is, functions that have an implicit extra parameter <code>self</code>. -Thus, the statement - -<pre> - function t.a.b.c:f (<em>params</em>) <em>body</em> end -</pre><p> -is syntactic sugar for - -<pre> - t.a.b.c.f = function (self, <em>params</em>) <em>body</em> end -</pre> - - - - - - -<h2>3.5 – <a name="3.5">Visibility Rules</a></h2> - -<p> - -Lua is a lexically scoped language. -The scope of a local variable begins at the first statement after -its declaration and lasts until the last non-void statement -of the innermost block that includes the declaration. -Consider the following example: - -<pre> - x = 10 -- global variable - do -- new block - local x = x -- new 'x', with value 10 - print(x) --> 10 - x = x+1 - do -- another block - local x = x+1 -- another 'x' - print(x) --> 12 - end - print(x) --> 11 - end - print(x) --> 10 (the global one) -</pre> - -<p> -Notice that, in a declaration like <code>local x = x</code>, -the new <code>x</code> being declared is not in scope yet, -and so the second <code>x</code> refers to the outside variable. - - -<p> -Because of the lexical scoping rules, -local variables can be freely accessed by functions -defined inside their scope. -A local variable used by an inner function is called -an <em>upvalue</em>, or <em>external local variable</em>, -inside the inner function. - - -<p> -Notice that each execution of a <b>local</b> statement -defines new local variables. -Consider the following example: - -<pre> - a = {} - local x = 20 - for i=1,10 do - local y = 0 - a[i] = function () y=y+1; return x+y end - end -</pre><p> -The loop creates ten closures -(that is, ten instances of the anonymous function). -Each of these closures uses a different <code>y</code> variable, -while all of them share the same <code>x</code>. - - - - - -<h1>4 – <a name="4">The Application Program Interface</a></h1> - -<p> - -This section describes the C API for Lua, that is, -the set of C functions available to the host program to communicate -with Lua. -All API functions and related types and constants -are declared in the header file <a name="pdf-lua.h"><code>lua.h</code></a>. - - -<p> -Even when we use the term "function", -any facility in the API may be provided as a macro instead. -Except where stated otherwise, -all such macros use each of their arguments exactly once -(except for the first argument, which is always a Lua state), -and so do not generate any hidden side-effects. - - -<p> -As in most C libraries, -the Lua API functions do not check their arguments for validity or consistency. -However, you can change this behavior by compiling Lua -with the macro <a name="pdf-LUA_USE_APICHECK"><code>LUA_USE_APICHECK</code></a> defined. - - - -<h2>4.1 – <a name="4.1">The Stack</a></h2> - -<p> -Lua uses a <em>virtual stack</em> to pass values to and from C. -Each element in this stack represents a Lua value -(<b>nil</b>, number, string, etc.). - - -<p> -Whenever Lua calls C, the called function gets a new stack, -which is independent of previous stacks and of stacks of -C functions that are still active. -This stack initially contains any arguments to the C function -and it is where the C function pushes its results -to be returned to the caller (see <a href="#lua_CFunction"><code>lua_CFunction</code></a>). - - -<p> -For convenience, -most query operations in the API do not follow a strict stack discipline. -Instead, they can refer to any element in the stack -by using an <em>index</em>: -A positive index represents an absolute stack position -(starting at 1); -a negative index represents an offset relative to the top of the stack. -More specifically, if the stack has <em>n</em> elements, -then index 1 represents the first element -(that is, the element that was pushed onto the stack first) -and -index <em>n</em> represents the last element; -index -1 also represents the last element -(that is, the element at the top) -and index <em>-n</em> represents the first element. - - - - - -<h2>4.2 – <a name="4.2">Stack Size</a></h2> - -<p> -When you interact with the Lua API, -you are responsible for ensuring consistency. -In particular, -<em>you are responsible for controlling stack overflow</em>. -You can use the function <a href="#lua_checkstack"><code>lua_checkstack</code></a> -to ensure that the stack has extra slots when pushing new elements. - - -<p> -Whenever Lua calls C, -it ensures that the stack has at least <a name="pdf-LUA_MINSTACK"><code>LUA_MINSTACK</code></a> extra slots. -<code>LUA_MINSTACK</code> is defined as 20, -so that usually you do not have to worry about stack space -unless your code has loops pushing elements onto the stack. - - -<p> -When you call a Lua function -without a fixed number of results (see <a href="#lua_call"><code>lua_call</code></a>), -Lua ensures that the stack has enough size for all results, -but it does not ensure any extra space. -So, before pushing anything in the stack after such a call -you should use <a href="#lua_checkstack"><code>lua_checkstack</code></a>. - - - - - -<h2>4.3 – <a name="4.3">Valid and Acceptable Indices</a></h2> - -<p> -Any function in the API that receives stack indices -works only with <em>valid indices</em> or <em>acceptable indices</em>. - - -<p> -A <em>valid index</em> is an index that refers to a -real position within the stack, that is, -its position lies between 1 and the stack top -(<code>1 ≤ abs(index) ≤ top</code>). - -Usually, functions that can modify the value at an index -require valid indices. - - -<p> -Unless otherwise noted, -any function that accepts valid indices also accepts <em>pseudo-indices</em>, -which represent some Lua values that are accessible to C code -but which are not in the stack. -Pseudo-indices are used to access the registry -and the upvalues of a C function (see <a href="#4.4">§4.4</a>). - - -<p> -Functions that do not need a specific stack position, -but only a value in the stack (e.g., query functions), -can be called with acceptable indices. -An <em>acceptable index</em> can be any valid index, -including the pseudo-indices, -but it also can be any positive index after the stack top -within the space allocated for the stack, -that is, indices up to the stack size. -(Note that 0 is never an acceptable index.) -Except when noted otherwise, -functions in the API work with acceptable indices. - - -<p> -Acceptable indices serve to avoid extra tests -against the stack top when querying the stack. -For instance, a C function can query its third argument -without the need to first check whether there is a third argument, -that is, without the need to check whether 3 is a valid index. - - -<p> -For functions that can be called with acceptable indices, -any non-valid index is treated as if it -contains a value of a virtual type <a name="pdf-LUA_TNONE"><code>LUA_TNONE</code></a>, -which behaves like a nil value. - - - - - -<h2>4.4 – <a name="4.4">C Closures</a></h2> - -<p> -When a C function is created, -it is possible to associate some values with it, -thus creating a <em>C closure</em> -(see <a href="#lua_pushcclosure"><code>lua_pushcclosure</code></a>); -these values are called <em>upvalues</em> and are -accessible to the function whenever it is called. - - -<p> -Whenever a C function is called, -its upvalues are located at specific pseudo-indices. -These pseudo-indices are produced by the macro -<a href="#lua_upvalueindex"><code>lua_upvalueindex</code></a>. -The first value associated with a function is at position -<code>lua_upvalueindex(1)</code>, and so on. -Any access to <code>lua_upvalueindex(<em>n</em>)</code>, -where <em>n</em> is greater than the number of upvalues of the -current function (but not greater than 256), -produces an acceptable but invalid index. - - - - - -<h2>4.5 – <a name="4.5">Registry</a></h2> - -<p> -Lua provides a <em>registry</em>, -a predefined table that can be used by any C code to -store whatever Lua values it needs to store. -The registry table is always located at pseudo-index -<a name="pdf-LUA_REGISTRYINDEX"><code>LUA_REGISTRYINDEX</code></a>, -which is a valid index. -Any C library can store data into this table, -but it should take care to choose keys -that are different from those used -by other libraries, to avoid collisions. -Typically, you should use as key a string containing your library name, -or a light userdata with the address of a C object in your code, -or any Lua object created by your code. -As with global names, -string keys starting with an underscore followed by -uppercase letters are reserved for Lua. - - -<p> -The integer keys in the registry are used by the reference mechanism, -implemented by the auxiliary library, -and by some predefined values. -Therefore, integer keys should not be used for other purposes. - - -<p> -When you create a new Lua state, -its registry comes with some predefined values. -These predefined values are indexed with integer keys -defined as constants in <code>lua.h</code>. -The following constants are defined: - -<ul> -<li><b><a name="pdf-LUA_RIDX_MAINTHREAD"><code>LUA_RIDX_MAINTHREAD</code></a>: </b> At this index the registry has -the main thread of the state. -(The main thread is the one created together with the state.) -</li> - -<li><b><a name="pdf-LUA_RIDX_GLOBALS"><code>LUA_RIDX_GLOBALS</code></a>: </b> At this index the registry has -the global environment. -</li> -</ul> - - - - -<h2>4.6 – <a name="4.6">Error Handling in C</a></h2> - -<p> -Internally, Lua uses the C <code>longjmp</code> facility to handle errors. -(You can also choose to use exceptions if you compile Lua as C++; -search for <code>LUAI_THROW</code> in the source code.) -When Lua faces any error -(such as a memory allocation error, type errors, syntax errors, -and runtime errors) -it <em>raises</em> an error; -that is, it does a long jump. -A <em>protected environment</em> uses <code>setjmp</code> -to set a recovery point; -any error jumps to the most recent active recovery point. - - -<p> -If an error happens outside any protected environment, -Lua calls a <em>panic function</em> (see <a href="#lua_atpanic"><code>lua_atpanic</code></a>) -and then calls <code>abort</code>, -thus exiting the host application. -Your panic function can avoid this exit by -never returning -(e.g., doing a long jump to your own recovery point outside Lua). - - -<p> -The panic function runs as if it were a message handler (see <a href="#2.3">§2.3</a>); -in particular, the error message is at the top of the stack. -However, there is no guarantees about stack space. -To push anything on the stack, -the panic function should first check the available space (see <a href="#4.2">§4.2</a>). - - -<p> -Most functions in the API can throw an error, -for instance due to a memory allocation error. -The documentation for each function indicates whether -it can throw errors. - - -<p> -Inside a C function you can throw an error by calling <a href="#lua_error"><code>lua_error</code></a>. - - - - - -<h2>4.7 – <a name="4.7">Handling Yields in C</a></h2> - -<p> -Internally, Lua uses the C <code>longjmp</code> facility to yield a coroutine. -Therefore, if a function <code>foo</code> calls an API function -and this API function yields -(directly or indirectly by calling another function that yields), -Lua cannot return to <code>foo</code> any more, -because the <code>longjmp</code> removes its frame from the C stack. - - -<p> -To avoid this kind of problem, -Lua raises an error whenever it tries to yield across an API call, -except for three functions: -<a href="#lua_yieldk"><code>lua_yieldk</code></a>, <a href="#lua_callk"><code>lua_callk</code></a>, and <a href="#lua_pcallk"><code>lua_pcallk</code></a>. -All those functions receive a <em>continuation function</em> -(as a parameter called <code>k</code>) to continue execution after a yield. - - -<p> -We need to set some terminology to explain continuations. -We have a C function called from Lua which we will call -the <em>original function</em>. -This original function then calls one of those three functions in the C API, -which we will call the <em>callee function</em>, -that then yields the current thread. -(This can happen when the callee function is <a href="#lua_yieldk"><code>lua_yieldk</code></a>, -or when the callee function is either <a href="#lua_callk"><code>lua_callk</code></a> or <a href="#lua_pcallk"><code>lua_pcallk</code></a> -and the function called by them yields.) - - -<p> -Suppose the running thread yields while executing the callee function. -After the thread resumes, -it eventually will finish running the callee function. -However, -the callee function cannot return to the original function, -because its frame in the C stack was destroyed by the yield. -Instead, Lua calls a <em>continuation function</em>, -which was given as an argument to the callee function. -As the name implies, -the continuation function should continue the task -of the original function. - - -<p> -Lua treats the continuation function as if it were the original function. -The continuation function receives the same Lua stack -from the original function, -in the same state it would be if the callee function had returned. -(For instance, -after a <a href="#lua_callk"><code>lua_callk</code></a> the function and its arguments are -removed from the stack and replaced by the results from the call.) -It also has the same upvalues. -Whatever it returns is handled by Lua as if it were the return -of the original function. - - -<p> -The only difference in the Lua state between the original function -and its continuation is the result of a call to <a href="#lua_getctx"><code>lua_getctx</code></a>. - - - - - -<h2>4.8 – <a name="4.8">Functions and Types</a></h2> - -<p> -Here we list all functions and types from the C API in -alphabetical order. -Each function has an indicator like this: -<span class="apii">[-o, +p, <em>x</em>]</span> - - -<p> -The first field, <code>o</code>, -is how many elements the function pops from the stack. -The second field, <code>p</code>, -is how many elements the function pushes onto the stack. -(Any function always pushes its results after popping its arguments.) -A field in the form <code>x|y</code> means the function can push (or pop) -<code>x</code> or <code>y</code> elements, -depending on the situation; -an interrogation mark '<code>?</code>' means that -we cannot know how many elements the function pops/pushes -by looking only at its arguments -(e.g., they may depend on what is on the stack). -The third field, <code>x</code>, -tells whether the function may throw errors: -'<code>-</code>' means the function never throws any error; -'<code>e</code>' means the function may throw errors; -'<code>v</code>' means the function may throw an error on purpose. - - - -<hr><h3><a name="lua_absindex"><code>lua_absindex</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>int lua_absindex (lua_State *L, int idx);</pre> - -<p> -Converts the acceptable index <code>idx</code> into an absolute index -(that is, one that does not depend on the stack top). - - - - - -<hr><h3><a name="lua_Alloc"><code>lua_Alloc</code></a></h3> -<pre>typedef void * (*lua_Alloc) (void *ud, - void *ptr, - size_t osize, - size_t nsize);</pre> - -<p> -The type of the memory-allocation function used by Lua states. -The allocator function must provide a -functionality similar to <code>realloc</code>, -but not exactly the same. -Its arguments are -<code>ud</code>, an opaque pointer passed to <a href="#lua_newstate"><code>lua_newstate</code></a>; -<code>ptr</code>, a pointer to the block being allocated/reallocated/freed; -<code>osize</code>, the original size of the block or some code about what -is being allocated; -<code>nsize</code>, the new size of the block. - - -<p> -When <code>ptr</code> is not <code>NULL</code>, -<code>osize</code> is the size of the block pointed by <code>ptr</code>, -that is, the size given when it was allocated or reallocated. - - -<p> -When <code>ptr</code> is <code>NULL</code>, -<code>osize</code> encodes the kind of object that Lua is allocating. -<code>osize</code> is any of -<a href="#pdf-LUA_TSTRING"><code>LUA_TSTRING</code></a>, <a href="#pdf-LUA_TTABLE"><code>LUA_TTABLE</code></a>, <a href="#pdf-LUA_TFUNCTION"><code>LUA_TFUNCTION</code></a>, -<a href="#pdf-LUA_TUSERDATA"><code>LUA_TUSERDATA</code></a>, or <a href="#pdf-LUA_TTHREAD"><code>LUA_TTHREAD</code></a> when (and only when) -Lua is creating a new object of that type. -When <code>osize</code> is some other value, -Lua is allocating memory for something else. - - -<p> -Lua assumes the following behavior from the allocator function: - - -<p> -When <code>nsize</code> is zero, -the allocator should behave like <code>free</code> -and return <code>NULL</code>. - - -<p> -When <code>nsize</code> is not zero, -the allocator should behave like <code>realloc</code>. -The allocator returns <code>NULL</code> -if and only if it cannot fulfill the request. -Lua assumes that the allocator never fails when -<code>osize >= nsize</code>. - - -<p> -Here is a simple implementation for the allocator function. -It is used in the auxiliary library by <a href="#luaL_newstate"><code>luaL_newstate</code></a>. - -<pre> - static void *l_alloc (void *ud, void *ptr, size_t osize, - size_t nsize) { - (void)ud; (void)osize; /* not used */ - if (nsize == 0) { - free(ptr); - return NULL; - } - else - return realloc(ptr, nsize); - } -</pre><p> -Note that Standard C ensures -that <code>free(NULL)</code> has no effect and that -<code>realloc(NULL, size)</code> is equivalent to <code>malloc(size)</code>. -This code assumes that <code>realloc</code> does not fail when shrinking a block. -(Although Standard C does not ensure this behavior, -it seems to be a safe assumption.) - - - - - -<hr><h3><a name="lua_arith"><code>lua_arith</code></a></h3><p> -<span class="apii">[-(2|1), +1, <em>e</em>]</span> -<pre>void lua_arith (lua_State *L, int op);</pre> - -<p> -Performs an arithmetic operation over the two values -(or one, in the case of negation) -at the top of the stack, -with the value at the top being the second operand, -pops these values, and pushes the result of the operation. -The function follows the semantics of the corresponding Lua operator -(that is, it may call metamethods). - - -<p> -The value of <code>op</code> must be one of the following constants: - -<ul> - -<li><b><a name="pdf-LUA_OPADD"><code>LUA_OPADD</code></a>: </b> performs addition (<code>+</code>)</li> -<li><b><a name="pdf-LUA_OPSUB"><code>LUA_OPSUB</code></a>: </b> performs subtraction (<code>-</code>)</li> -<li><b><a name="pdf-LUA_OPMUL"><code>LUA_OPMUL</code></a>: </b> performs multiplication (<code>*</code>)</li> -<li><b><a name="pdf-LUA_OPDIV"><code>LUA_OPDIV</code></a>: </b> performs division (<code>/</code>)</li> -<li><b><a name="pdf-LUA_OPMOD"><code>LUA_OPMOD</code></a>: </b> performs modulo (<code>%</code>)</li> -<li><b><a name="pdf-LUA_OPPOW"><code>LUA_OPPOW</code></a>: </b> performs exponentiation (<code>^</code>)</li> -<li><b><a name="pdf-LUA_OPUNM"><code>LUA_OPUNM</code></a>: </b> performs mathematical negation (unary <code>-</code>)</li> - -</ul> - - - - -<hr><h3><a name="lua_atpanic"><code>lua_atpanic</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>lua_CFunction lua_atpanic (lua_State *L, lua_CFunction panicf);</pre> - -<p> -Sets a new panic function and returns the old one (see <a href="#4.6">§4.6</a>). - - - - - -<hr><h3><a name="lua_call"><code>lua_call</code></a></h3><p> -<span class="apii">[-(nargs+1), +nresults, <em>e</em>]</span> -<pre>void lua_call (lua_State *L, int nargs, int nresults);</pre> - -<p> -Calls a function. - - -<p> -To call a function you must use the following protocol: -first, the function to be called is pushed onto the stack; -then, the arguments to the function are pushed -in direct order; -that is, the first argument is pushed first. -Finally you call <a href="#lua_call"><code>lua_call</code></a>; -<code>nargs</code> is the number of arguments that you pushed onto the stack. -All arguments and the function value are popped from the stack -when the function is called. -The function results are pushed onto the stack when the function returns. -The number of results is adjusted to <code>nresults</code>, -unless <code>nresults</code> is <a name="pdf-LUA_MULTRET"><code>LUA_MULTRET</code></a>. -In this case, all results from the function are pushed. -Lua takes care that the returned values fit into the stack space. -The function results are pushed onto the stack in direct order -(the first result is pushed first), -so that after the call the last result is on the top of the stack. - - -<p> -Any error inside the called function is propagated upwards -(with a <code>longjmp</code>). - - -<p> -The following example shows how the host program can do the -equivalent to this Lua code: - -<pre> - a = f("how", t.x, 14) -</pre><p> -Here it is in C: - -<pre> - lua_getglobal(L, "f"); /* function to be called */ - lua_pushstring(L, "how"); /* 1st argument */ - lua_getglobal(L, "t"); /* table to be indexed */ - lua_getfield(L, -1, "x"); /* push result of t.x (2nd arg) */ - lua_remove(L, -2); /* remove 't' from the stack */ - lua_pushinteger(L, 14); /* 3rd argument */ - lua_call(L, 3, 1); /* call 'f' with 3 arguments and 1 result */ - lua_setglobal(L, "a"); /* set global 'a' */ -</pre><p> -Note that the code above is "balanced": -at its end, the stack is back to its original configuration. -This is considered good programming practice. - - - - - -<hr><h3><a name="lua_callk"><code>lua_callk</code></a></h3><p> -<span class="apii">[-(nargs + 1), +nresults, <em>e</em>]</span> -<pre>void lua_callk (lua_State *L, int nargs, int nresults, int ctx, - lua_CFunction k);</pre> - -<p> -This function behaves exactly like <a href="#lua_call"><code>lua_call</code></a>, -but allows the called function to yield (see <a href="#4.7">§4.7</a>). - - - - - -<hr><h3><a name="lua_CFunction"><code>lua_CFunction</code></a></h3> -<pre>typedef int (*lua_CFunction) (lua_State *L);</pre> - -<p> -Type for C functions. - - -<p> -In order to communicate properly with Lua, -a C function must use the following protocol, -which defines the way parameters and results are passed: -a C function receives its arguments from Lua in its stack -in direct order (the first argument is pushed first). -So, when the function starts, -<code>lua_gettop(L)</code> returns the number of arguments received by the function. -The first argument (if any) is at index 1 -and its last argument is at index <code>lua_gettop(L)</code>. -To return values to Lua, a C function just pushes them onto the stack, -in direct order (the first result is pushed first), -and returns the number of results. -Any other value in the stack below the results will be properly -discarded by Lua. -Like a Lua function, a C function called by Lua can also return -many results. - - -<p> -As an example, the following function receives a variable number -of numerical arguments and returns their average and sum: - -<pre> - static int foo (lua_State *L) { - int n = lua_gettop(L); /* number of arguments */ - lua_Number sum = 0; - int i; - for (i = 1; i <= n; i++) { - if (!lua_isnumber(L, i)) { - lua_pushstring(L, "incorrect argument"); - lua_error(L); - } - sum += lua_tonumber(L, i); - } - lua_pushnumber(L, sum/n); /* first result */ - lua_pushnumber(L, sum); /* second result */ - return 2; /* number of results */ - } -</pre> - - - - -<hr><h3><a name="lua_checkstack"><code>lua_checkstack</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>int lua_checkstack (lua_State *L, int extra);</pre> - -<p> -Ensures that there are at least <code>extra</code> free stack slots in the stack. -It returns false if it cannot fulfill the request, -because it would cause the stack to be larger than a fixed maximum size -(typically at least a few thousand elements) or -because it cannot allocate memory for the new stack size. -This function never shrinks the stack; -if the stack is already larger than the new size, -it is left unchanged. - - - - - -<hr><h3><a name="lua_close"><code>lua_close</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>void lua_close (lua_State *L);</pre> - -<p> -Destroys all objects in the given Lua state -(calling the corresponding garbage-collection metamethods, if any) -and frees all dynamic memory used by this state. -On several platforms, you may not need to call this function, -because all resources are naturally released when the host program ends. -On the other hand, long-running programs that create multiple states, -such as daemons or web servers, -might need to close states as soon as they are not needed. - - - - - -<hr><h3><a name="lua_compare"><code>lua_compare</code></a></h3><p> -<span class="apii">[-0, +0, <em>e</em>]</span> -<pre>int lua_compare (lua_State *L, int index1, int index2, int op);</pre> - -<p> -Compares two Lua values. -Returns 1 if the value at index <code>index1</code> satisfies <code>op</code> -when compared with the value at index <code>index2</code>, -following the semantics of the corresponding Lua operator -(that is, it may call metamethods). -Otherwise returns 0. -Also returns 0 if any of the indices is non valid. - - -<p> -The value of <code>op</code> must be one of the following constants: - -<ul> - -<li><b><a name="pdf-LUA_OPEQ"><code>LUA_OPEQ</code></a>: </b> compares for equality (<code>==</code>)</li> -<li><b><a name="pdf-LUA_OPLT"><code>LUA_OPLT</code></a>: </b> compares for less than (<code><</code>)</li> -<li><b><a name="pdf-LUA_OPLE"><code>LUA_OPLE</code></a>: </b> compares for less or equal (<code><=</code>)</li> - -</ul> - - - - -<hr><h3><a name="lua_concat"><code>lua_concat</code></a></h3><p> -<span class="apii">[-n, +1, <em>e</em>]</span> -<pre>void lua_concat (lua_State *L, int n);</pre> - -<p> -Concatenates the <code>n</code> values at the top of the stack, -pops them, and leaves the result at the top. -If <code>n</code> is 1, the result is the single value on the stack -(that is, the function does nothing); -if <code>n</code> is 0, the result is the empty string. -Concatenation is performed following the usual semantics of Lua -(see <a href="#3.4.5">§3.4.5</a>). - - - - - -<hr><h3><a name="lua_copy"><code>lua_copy</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>void lua_copy (lua_State *L, int fromidx, int toidx);</pre> - -<p> -Moves the element at index <code>fromidx</code> -into the valid index <code>toidx</code> -without shifting any element -(therefore replacing the value at that position). - - - - - -<hr><h3><a name="lua_createtable"><code>lua_createtable</code></a></h3><p> -<span class="apii">[-0, +1, <em>e</em>]</span> -<pre>void lua_createtable (lua_State *L, int narr, int nrec);</pre> - -<p> -Creates a new empty table and pushes it onto the stack. -Parameter <code>narr</code> is a hint for how many elements the table -will have as a sequence; -parameter <code>nrec</code> is a hint for how many other elements -the table will have. -Lua may use these hints to preallocate memory for the new table. -This pre-allocation is useful for performance when you know in advance -how many elements the table will have. -Otherwise you can use the function <a href="#lua_newtable"><code>lua_newtable</code></a>. - - - - - -<hr><h3><a name="lua_dump"><code>lua_dump</code></a></h3><p> -<span class="apii">[-0, +0, <em>e</em>]</span> -<pre>int lua_dump (lua_State *L, lua_Writer writer, void *data);</pre> - -<p> -Dumps a function as a binary chunk. -Receives a Lua function on the top of the stack -and produces a binary chunk that, -if loaded again, -results in a function equivalent to the one dumped. -As it produces parts of the chunk, -<a href="#lua_dump"><code>lua_dump</code></a> calls function <code>writer</code> (see <a href="#lua_Writer"><code>lua_Writer</code></a>) -with the given <code>data</code> -to write them. - - -<p> -The value returned is the error code returned by the last -call to the writer; -0 means no errors. - - -<p> -This function does not pop the Lua function from the stack. - - - - - -<hr><h3><a name="lua_error"><code>lua_error</code></a></h3><p> -<span class="apii">[-1, +0, <em>v</em>]</span> -<pre>int lua_error (lua_State *L);</pre> - -<p> -Generates a Lua error. -The error message (which can actually be a Lua value of any type) -must be on the stack top. -This function does a long jump, -and therefore never returns -(see <a href="#luaL_error"><code>luaL_error</code></a>). - - - - - -<hr><h3><a name="lua_gc"><code>lua_gc</code></a></h3><p> -<span class="apii">[-0, +0, <em>e</em>]</span> -<pre>int lua_gc (lua_State *L, int what, int data);</pre> - -<p> -Controls the garbage collector. - - -<p> -This function performs several tasks, -according to the value of the parameter <code>what</code>: - -<ul> - -<li><b><code>LUA_GCSTOP</code>: </b> -stops the garbage collector. -</li> - -<li><b><code>LUA_GCRESTART</code>: </b> -restarts the garbage collector. -</li> - -<li><b><code>LUA_GCCOLLECT</code>: </b> -performs a full garbage-collection cycle. -</li> - -<li><b><code>LUA_GCCOUNT</code>: </b> -returns the current amount of memory (in Kbytes) in use by Lua. -</li> - -<li><b><code>LUA_GCCOUNTB</code>: </b> -returns the remainder of dividing the current amount of bytes of -memory in use by Lua by 1024. -</li> - -<li><b><code>LUA_GCSTEP</code>: </b> -performs an incremental step of garbage collection. -The step "size" is controlled by <code>data</code> -(larger values mean more steps) in a non-specified way. -If you want to control the step size -you must experimentally tune the value of <code>data</code>. -The function returns 1 if the step finished a -garbage-collection cycle. -</li> - -<li><b><code>LUA_GCSETPAUSE</code>: </b> -sets <code>data</code> as the new value -for the <em>pause</em> of the collector (see <a href="#2.5">§2.5</a>). -The function returns the previous value of the pause. -</li> - -<li><b><code>LUA_GCSETSTEPMUL</code>: </b> -sets <code>data</code> as the new value for the <em>step multiplier</em> of -the collector (see <a href="#2.5">§2.5</a>). -The function returns the previous value of the step multiplier. -</li> - -<li><b><code>LUA_GCISRUNNING</code>: </b> -returns a boolean that tells whether the collector is running -(i.e., not stopped). -</li> - -<li><b><code>LUA_GCGEN</code>: </b> -changes the collector to generational mode -(see <a href="#2.5">§2.5</a>). -</li> - -<li><b><code>LUA_GCINC</code>: </b> -changes the collector to incremental mode. -This is the default mode. -</li> - -</ul> - -<p> -For more details about these options, -see <a href="#pdf-collectgarbage"><code>collectgarbage</code></a>. - - - - - -<hr><h3><a name="lua_getallocf"><code>lua_getallocf</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>lua_Alloc lua_getallocf (lua_State *L, void **ud);</pre> - -<p> -Returns the memory-allocation function of a given state. -If <code>ud</code> is not <code>NULL</code>, Lua stores in <code>*ud</code> the -opaque pointer passed to <a href="#lua_newstate"><code>lua_newstate</code></a>. - - - - - -<hr><h3><a name="lua_getctx"><code>lua_getctx</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>int lua_getctx (lua_State *L, int *ctx);</pre> - -<p> -This function is called by a continuation function (see <a href="#4.7">§4.7</a>) -to retrieve the status of the thread and a context information. - - -<p> -When called in the original function, -<a href="#lua_getctx"><code>lua_getctx</code></a> always returns <a href="#pdf-LUA_OK"><code>LUA_OK</code></a> -and does not change the value of its argument <code>ctx</code>. -When called inside a continuation function, -<a href="#lua_getctx"><code>lua_getctx</code></a> returns <a href="#pdf-LUA_YIELD"><code>LUA_YIELD</code></a> and sets -the value of <code>ctx</code> to be the context information -(the value passed as the <code>ctx</code> argument -to the callee together with the continuation function). - - -<p> -When the callee is <a href="#lua_pcallk"><code>lua_pcallk</code></a>, -Lua may also call its continuation function -to handle errors during the call. -That is, upon an error in the function called by <a href="#lua_pcallk"><code>lua_pcallk</code></a>, -Lua may not return to the original function -but instead may call the continuation function. -In that case, a call to <a href="#lua_getctx"><code>lua_getctx</code></a> will return the error code -(the value that would be returned by <a href="#lua_pcallk"><code>lua_pcallk</code></a>); -the value of <code>ctx</code> will be set to the context information, -as in the case of a yield. - - - - - -<hr><h3><a name="lua_getfield"><code>lua_getfield</code></a></h3><p> -<span class="apii">[-0, +1, <em>e</em>]</span> -<pre>void lua_getfield (lua_State *L, int index, const char *k);</pre> - -<p> -Pushes onto the stack the value <code>t[k]</code>, -where <code>t</code> is the value at the given index. -As in Lua, this function may trigger a metamethod -for the "index" event (see <a href="#2.4">§2.4</a>). - - - - - -<hr><h3><a name="lua_getglobal"><code>lua_getglobal</code></a></h3><p> -<span class="apii">[-0, +1, <em>e</em>]</span> -<pre>void lua_getglobal (lua_State *L, const char *name);</pre> - -<p> -Pushes onto the stack the value of the global <code>name</code>. - - - - - -<hr><h3><a name="lua_getmetatable"><code>lua_getmetatable</code></a></h3><p> -<span class="apii">[-0, +(0|1), –]</span> -<pre>int lua_getmetatable (lua_State *L, int index);</pre> - -<p> -Pushes onto the stack the metatable of the value at the given index. -If the value does not have a metatable, -the function returns 0 and pushes nothing on the stack. - - - - - -<hr><h3><a name="lua_gettable"><code>lua_gettable</code></a></h3><p> -<span class="apii">[-1, +1, <em>e</em>]</span> -<pre>void lua_gettable (lua_State *L, int index);</pre> - -<p> -Pushes onto the stack the value <code>t[k]</code>, -where <code>t</code> is the value at the given index -and <code>k</code> is the value at the top of the stack. - - -<p> -This function pops the key from the stack -(putting the resulting value in its place). -As in Lua, this function may trigger a metamethod -for the "index" event (see <a href="#2.4">§2.4</a>). - - - - - -<hr><h3><a name="lua_gettop"><code>lua_gettop</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>int lua_gettop (lua_State *L);</pre> - -<p> -Returns the index of the top element in the stack. -Because indices start at 1, -this result is equal to the number of elements in the stack -(and so 0 means an empty stack). - - - - - -<hr><h3><a name="lua_getuservalue"><code>lua_getuservalue</code></a></h3><p> -<span class="apii">[-0, +1, –]</span> -<pre>void lua_getuservalue (lua_State *L, int index);</pre> - -<p> -Pushes onto the stack the Lua value associated with the userdata -at the given index. -This Lua value must be a table or <b>nil</b>. - - - - - -<hr><h3><a name="lua_insert"><code>lua_insert</code></a></h3><p> -<span class="apii">[-1, +1, –]</span> -<pre>void lua_insert (lua_State *L, int index);</pre> - -<p> -Moves the top element into the given valid index, -shifting up the elements above this index to open space. -This function cannot be called with a pseudo-index, -because a pseudo-index is not an actual stack position. - - - - - -<hr><h3><a name="lua_Integer"><code>lua_Integer</code></a></h3> -<pre>typedef ptrdiff_t lua_Integer;</pre> - -<p> -The type used by the Lua API to represent signed integral values. - - -<p> -By default it is a <code>ptrdiff_t</code>, -which is usually the largest signed integral type the machine handles -"comfortably". - - - - - -<hr><h3><a name="lua_isboolean"><code>lua_isboolean</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>int lua_isboolean (lua_State *L, int index);</pre> - -<p> -Returns 1 if the value at the given index is a boolean, -and 0 otherwise. - - - - - -<hr><h3><a name="lua_iscfunction"><code>lua_iscfunction</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>int lua_iscfunction (lua_State *L, int index);</pre> - -<p> -Returns 1 if the value at the given index is a C function, -and 0 otherwise. - - - - - -<hr><h3><a name="lua_isfunction"><code>lua_isfunction</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>int lua_isfunction (lua_State *L, int index);</pre> - -<p> -Returns 1 if the value at the given index is a function -(either C or Lua), and 0 otherwise. - - - - - -<hr><h3><a name="lua_islightuserdata"><code>lua_islightuserdata</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>int lua_islightuserdata (lua_State *L, int index);</pre> - -<p> -Returns 1 if the value at the given index is a light userdata, -and 0 otherwise. - - - - - -<hr><h3><a name="lua_isnil"><code>lua_isnil</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>int lua_isnil (lua_State *L, int index);</pre> - -<p> -Returns 1 if the value at the given index is <b>nil</b>, -and 0 otherwise. - - - - - -<hr><h3><a name="lua_isnone"><code>lua_isnone</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>int lua_isnone (lua_State *L, int index);</pre> - -<p> -Returns 1 if the given index is not valid, -and 0 otherwise. - - - - - -<hr><h3><a name="lua_isnoneornil"><code>lua_isnoneornil</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>int lua_isnoneornil (lua_State *L, int index);</pre> - -<p> -Returns 1 if the given index is not valid -or if the value at this index is <b>nil</b>, -and 0 otherwise. - - - - - -<hr><h3><a name="lua_isnumber"><code>lua_isnumber</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>int lua_isnumber (lua_State *L, int index);</pre> - -<p> -Returns 1 if the value at the given index is a number -or a string convertible to a number, -and 0 otherwise. - - - - - -<hr><h3><a name="lua_isstring"><code>lua_isstring</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>int lua_isstring (lua_State *L, int index);</pre> - -<p> -Returns 1 if the value at the given index is a string -or a number (which is always convertible to a string), -and 0 otherwise. - - - - - -<hr><h3><a name="lua_istable"><code>lua_istable</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>int lua_istable (lua_State *L, int index);</pre> - -<p> -Returns 1 if the value at the given index is a table, -and 0 otherwise. - - - - - -<hr><h3><a name="lua_isthread"><code>lua_isthread</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>int lua_isthread (lua_State *L, int index);</pre> - -<p> -Returns 1 if the value at the given index is a thread, -and 0 otherwise. - - - - - -<hr><h3><a name="lua_isuserdata"><code>lua_isuserdata</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>int lua_isuserdata (lua_State *L, int index);</pre> - -<p> -Returns 1 if the value at the given index is a userdata -(either full or light), and 0 otherwise. - - - - - -<hr><h3><a name="lua_len"><code>lua_len</code></a></h3><p> -<span class="apii">[-0, +1, <em>e</em>]</span> -<pre>void lua_len (lua_State *L, int index);</pre> - -<p> -Returns the "length" of the value at the given index; -it is equivalent to the '<code>#</code>' operator in Lua (see <a href="#3.4.6">§3.4.6</a>). -The result is pushed on the stack. - - - - - -<hr><h3><a name="lua_load"><code>lua_load</code></a></h3><p> -<span class="apii">[-0, +1, –]</span> -<pre>int lua_load (lua_State *L, - lua_Reader reader, - void *data, - const char *source, - const char *mode);</pre> - -<p> -Loads a Lua chunk (without running it). -If there are no errors, -<code>lua_load</code> pushes the compiled chunk as a Lua -function on top of the stack. -Otherwise, it pushes an error message. - - -<p> -The return values of <code>lua_load</code> are: - -<ul> - -<li><b><a href="#pdf-LUA_OK"><code>LUA_OK</code></a>: </b> no errors;</li> - -<li><b><a name="pdf-LUA_ERRSYNTAX"><code>LUA_ERRSYNTAX</code></a>: </b> -syntax error during precompilation;</li> - -<li><b><a href="#pdf-LUA_ERRMEM"><code>LUA_ERRMEM</code></a>: </b> -memory allocation error;</li> - -<li><b><a href="#pdf-LUA_ERRGCMM"><code>LUA_ERRGCMM</code></a>: </b> -error while running a <code>__gc</code> metamethod. -(This error has no relation with the chunk being loaded. -It is generated by the garbage collector.) -</li> - -</ul> - -<p> -The <code>lua_load</code> function uses a user-supplied <code>reader</code> function -to read the chunk (see <a href="#lua_Reader"><code>lua_Reader</code></a>). -The <code>data</code> argument is an opaque value passed to the reader function. - - -<p> -The <code>source</code> argument gives a name to the chunk, -which is used for error messages and in debug information (see <a href="#4.9">§4.9</a>). - - -<p> -<code>lua_load</code> automatically detects whether the chunk is text or binary -and loads it accordingly (see program <code>luac</code>). -The string <code>mode</code> works as in function <a href="#pdf-load"><code>load</code></a>, -with the addition that -a <code>NULL</code> value is equivalent to the string "<code>bt</code>". - - -<p> -<code>lua_load</code> uses the stack internally, -so the reader function should always leave the stack -unmodified when returning. - - -<p> -If the resulting function has one upvalue, -this upvalue is set to the value of the global environment -stored at index <code>LUA_RIDX_GLOBALS</code> in the registry (see <a href="#4.5">§4.5</a>). -When loading main chunks, -this upvalue will be the <code>_ENV</code> variable (see <a href="#2.2">§2.2</a>). - - - - - -<hr><h3><a name="lua_newstate"><code>lua_newstate</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>lua_State *lua_newstate (lua_Alloc f, void *ud);</pre> - -<p> -Creates a new thread running in a new, independent state. -Returns <code>NULL</code> if cannot create the thread or the state -(due to lack of memory). -The argument <code>f</code> is the allocator function; -Lua does all memory allocation for this state through this function. -The second argument, <code>ud</code>, is an opaque pointer that Lua -passes to the allocator in every call. - - - - - -<hr><h3><a name="lua_newtable"><code>lua_newtable</code></a></h3><p> -<span class="apii">[-0, +1, <em>e</em>]</span> -<pre>void lua_newtable (lua_State *L);</pre> - -<p> -Creates a new empty table and pushes it onto the stack. -It is equivalent to <code>lua_createtable(L, 0, 0)</code>. - - - - - -<hr><h3><a name="lua_newthread"><code>lua_newthread</code></a></h3><p> -<span class="apii">[-0, +1, <em>e</em>]</span> -<pre>lua_State *lua_newthread (lua_State *L);</pre> - -<p> -Creates a new thread, pushes it on the stack, -and returns a pointer to a <a href="#lua_State"><code>lua_State</code></a> that represents this new thread. -The new thread returned by this function shares with the original thread -its global environment, -but has an independent execution stack. - - -<p> -There is no explicit function to close or to destroy a thread. -Threads are subject to garbage collection, -like any Lua object. - - - - - -<hr><h3><a name="lua_newuserdata"><code>lua_newuserdata</code></a></h3><p> -<span class="apii">[-0, +1, <em>e</em>]</span> -<pre>void *lua_newuserdata (lua_State *L, size_t size);</pre> - -<p> -This function allocates a new block of memory with the given size, -pushes onto the stack a new full userdata with the block address, -and returns this address. -The host program can freely use this memory. - - - - - -<hr><h3><a name="lua_next"><code>lua_next</code></a></h3><p> -<span class="apii">[-1, +(2|0), <em>e</em>]</span> -<pre>int lua_next (lua_State *L, int index);</pre> - -<p> -Pops a key from the stack, -and pushes a key–value pair from the table at the given index -(the "next" pair after the given key). -If there are no more elements in the table, -then <a href="#lua_next"><code>lua_next</code></a> returns 0 (and pushes nothing). - - -<p> -A typical traversal looks like this: - -<pre> - /* table is in the stack at index 't' */ - lua_pushnil(L); /* first key */ - while (lua_next(L, t) != 0) { - /* uses 'key' (at index -2) and 'value' (at index -1) */ - printf("%s - %s\n", - lua_typename(L, lua_type(L, -2)), - lua_typename(L, lua_type(L, -1))); - /* removes 'value'; keeps 'key' for next iteration */ - lua_pop(L, 1); - } -</pre> - -<p> -While traversing a table, -do not call <a href="#lua_tolstring"><code>lua_tolstring</code></a> directly on a key, -unless you know that the key is actually a string. -Recall that <a href="#lua_tolstring"><code>lua_tolstring</code></a> may change -the value at the given index; -this confuses the next call to <a href="#lua_next"><code>lua_next</code></a>. - - -<p> -See function <a href="#pdf-next"><code>next</code></a> for the caveats of modifying -the table during its traversal. - - - - - -<hr><h3><a name="lua_Number"><code>lua_Number</code></a></h3> -<pre>typedef double lua_Number;</pre> - -<p> -The type of numbers in Lua. -By default, it is double, but that can be changed in <code>luaconf.h</code>. -Through this configuration file you can change -Lua to operate with another type for numbers (e.g., float or long). - - - - - -<hr><h3><a name="lua_pcall"><code>lua_pcall</code></a></h3><p> -<span class="apii">[-(nargs + 1), +(nresults|1), –]</span> -<pre>int lua_pcall (lua_State *L, int nargs, int nresults, int msgh);</pre> - -<p> -Calls a function in protected mode. - - -<p> -Both <code>nargs</code> and <code>nresults</code> have the same meaning as -in <a href="#lua_call"><code>lua_call</code></a>. -If there are no errors during the call, -<a href="#lua_pcall"><code>lua_pcall</code></a> behaves exactly like <a href="#lua_call"><code>lua_call</code></a>. -However, if there is any error, -<a href="#lua_pcall"><code>lua_pcall</code></a> catches it, -pushes a single value on the stack (the error message), -and returns an error code. -Like <a href="#lua_call"><code>lua_call</code></a>, -<a href="#lua_pcall"><code>lua_pcall</code></a> always removes the function -and its arguments from the stack. - - -<p> -If <code>msgh</code> is 0, -then the error message returned on the stack -is exactly the original error message. -Otherwise, <code>msgh</code> is the stack index of a -<em>message handler</em>. -(In the current implementation, this index cannot be a pseudo-index.) -In case of runtime errors, -this function will be called with the error message -and its return value will be the message -returned on the stack by <a href="#lua_pcall"><code>lua_pcall</code></a>. - - -<p> -Typically, the message handler is used to add more debug -information to the error message, such as a stack traceback. -Such information cannot be gathered after the return of <a href="#lua_pcall"><code>lua_pcall</code></a>, -since by then the stack has unwound. - - -<p> -The <a href="#lua_pcall"><code>lua_pcall</code></a> function returns one of the following codes -(defined in <code>lua.h</code>): - -<ul> - -<li><b><a name="pdf-LUA_OK"><code>LUA_OK</code></a> (0): </b> -success.</li> - -<li><b><a name="pdf-LUA_ERRRUN"><code>LUA_ERRRUN</code></a>: </b> -a runtime error. -</li> - -<li><b><a name="pdf-LUA_ERRMEM"><code>LUA_ERRMEM</code></a>: </b> -memory allocation error. -For such errors, Lua does not call the message handler. -</li> - -<li><b><a name="pdf-LUA_ERRERR"><code>LUA_ERRERR</code></a>: </b> -error while running the message handler. -</li> - -<li><b><a name="pdf-LUA_ERRGCMM"><code>LUA_ERRGCMM</code></a>: </b> -error while running a <code>__gc</code> metamethod. -(This error typically has no relation with the function being called. -It is generated by the garbage collector.) -</li> - -</ul> - - - - -<hr><h3><a name="lua_pcallk"><code>lua_pcallk</code></a></h3><p> -<span class="apii">[-(nargs + 1), +(nresults|1), –]</span> -<pre>int lua_pcallk (lua_State *L, - int nargs, - int nresults, - int errfunc, - int ctx, - lua_CFunction k);</pre> - -<p> -This function behaves exactly like <a href="#lua_pcall"><code>lua_pcall</code></a>, -but allows the called function to yield (see <a href="#4.7">§4.7</a>). - - - - - -<hr><h3><a name="lua_pop"><code>lua_pop</code></a></h3><p> -<span class="apii">[-n, +0, –]</span> -<pre>void lua_pop (lua_State *L, int n);</pre> - -<p> -Pops <code>n</code> elements from the stack. - - - - - -<hr><h3><a name="lua_pushboolean"><code>lua_pushboolean</code></a></h3><p> -<span class="apii">[-0, +1, –]</span> -<pre>void lua_pushboolean (lua_State *L, int b);</pre> - -<p> -Pushes a boolean value with value <code>b</code> onto the stack. - - - - - -<hr><h3><a name="lua_pushcclosure"><code>lua_pushcclosure</code></a></h3><p> -<span class="apii">[-n, +1, <em>e</em>]</span> -<pre>void lua_pushcclosure (lua_State *L, lua_CFunction fn, int n);</pre> - -<p> -Pushes a new C closure onto the stack. - - -<p> -When a C function is created, -it is possible to associate some values with it, -thus creating a C closure (see <a href="#4.4">§4.4</a>); -these values are then accessible to the function whenever it is called. -To associate values with a C function, -first these values should be pushed onto the stack -(when there are multiple values, the first value is pushed first). -Then <a href="#lua_pushcclosure"><code>lua_pushcclosure</code></a> -is called to create and push the C function onto the stack, -with the argument <code>n</code> telling how many values should be -associated with the function. -<a href="#lua_pushcclosure"><code>lua_pushcclosure</code></a> also pops these values from the stack. - - -<p> -The maximum value for <code>n</code> is 255. - - -<p> -When <code>n</code> is zero, -this function creates a <em>light C function</em>, -which is just a pointer to the C function. -In that case, it never throws a memory error. - - - - - -<hr><h3><a name="lua_pushcfunction"><code>lua_pushcfunction</code></a></h3><p> -<span class="apii">[-0, +1, –]</span> -<pre>void lua_pushcfunction (lua_State *L, lua_CFunction f);</pre> - -<p> -Pushes a C function onto the stack. -This function receives a pointer to a C function -and pushes onto the stack a Lua value of type <code>function</code> that, -when called, invokes the corresponding C function. - - -<p> -Any function to be registered in Lua must -follow the correct protocol to receive its parameters -and return its results (see <a href="#lua_CFunction"><code>lua_CFunction</code></a>). - - -<p> -<code>lua_pushcfunction</code> is defined as a macro: - -<pre> - #define lua_pushcfunction(L,f) lua_pushcclosure(L,f,0) -</pre><p> -Note that <code>f</code> is used twice. - - - - - -<hr><h3><a name="lua_pushfstring"><code>lua_pushfstring</code></a></h3><p> -<span class="apii">[-0, +1, <em>e</em>]</span> -<pre>const char *lua_pushfstring (lua_State *L, const char *fmt, ...);</pre> - -<p> -Pushes onto the stack a formatted string -and returns a pointer to this string. -It is similar to the ISO C function <code>sprintf</code>, -but has some important differences: - -<ul> - -<li> -You do not have to allocate space for the result: -the result is a Lua string and Lua takes care of memory allocation -(and deallocation, through garbage collection). -</li> - -<li> -The conversion specifiers are quite restricted. -There are no flags, widths, or precisions. -The conversion specifiers can only be -'<code>%%</code>' (inserts a '<code>%</code>' in the string), -'<code>%s</code>' (inserts a zero-terminated string, with no size restrictions), -'<code>%f</code>' (inserts a <a href="#lua_Number"><code>lua_Number</code></a>), -'<code>%p</code>' (inserts a pointer as a hexadecimal numeral), -'<code>%d</code>' (inserts an <code>int</code>), and -'<code>%c</code>' (inserts an <code>int</code> as a byte). -</li> - -</ul> - - - - -<hr><h3><a name="lua_pushglobaltable"><code>lua_pushglobaltable</code></a></h3><p> -<span class="apii">[-0, +1, –]</span> -<pre>void lua_pushglobaltable (lua_State *L);</pre> - -<p> -Pushes the global environment onto the stack. - - - - - -<hr><h3><a name="lua_pushinteger"><code>lua_pushinteger</code></a></h3><p> -<span class="apii">[-0, +1, –]</span> -<pre>void lua_pushinteger (lua_State *L, lua_Integer n);</pre> - -<p> -Pushes a number with value <code>n</code> onto the stack. - - - - - -<hr><h3><a name="lua_pushlightuserdata"><code>lua_pushlightuserdata</code></a></h3><p> -<span class="apii">[-0, +1, –]</span> -<pre>void lua_pushlightuserdata (lua_State *L, void *p);</pre> - -<p> -Pushes a light userdata onto the stack. - - -<p> -Userdata represent C values in Lua. -A <em>light userdata</em> represents a pointer, a <code>void*</code>. -It is a value (like a number): -you do not create it, it has no individual metatable, -and it is not collected (as it was never created). -A light userdata is equal to "any" -light userdata with the same C address. - - - - - -<hr><h3><a name="lua_pushliteral"><code>lua_pushliteral</code></a></h3><p> -<span class="apii">[-0, +1, <em>e</em>]</span> -<pre>const char *lua_pushliteral (lua_State *L, const char *s);</pre> - -<p> -This macro is equivalent to <a href="#lua_pushlstring"><code>lua_pushlstring</code></a>, -but can be used only when <code>s</code> is a literal string. -It automatically provides the string length. - - - - - -<hr><h3><a name="lua_pushlstring"><code>lua_pushlstring</code></a></h3><p> -<span class="apii">[-0, +1, <em>e</em>]</span> -<pre>const char *lua_pushlstring (lua_State *L, const char *s, size_t len);</pre> - -<p> -Pushes the string pointed to by <code>s</code> with size <code>len</code> -onto the stack. -Lua makes (or reuses) an internal copy of the given string, -so the memory at <code>s</code> can be freed or reused immediately after -the function returns. -The string can contain any binary data, -including embedded zeros. - - -<p> -Returns a pointer to the internal copy of the string. - - - - - -<hr><h3><a name="lua_pushnil"><code>lua_pushnil</code></a></h3><p> -<span class="apii">[-0, +1, –]</span> -<pre>void lua_pushnil (lua_State *L);</pre> - -<p> -Pushes a nil value onto the stack. - - - - - -<hr><h3><a name="lua_pushnumber"><code>lua_pushnumber</code></a></h3><p> -<span class="apii">[-0, +1, –]</span> -<pre>void lua_pushnumber (lua_State *L, lua_Number n);</pre> - -<p> -Pushes a number with value <code>n</code> onto the stack. - - - - - -<hr><h3><a name="lua_pushstring"><code>lua_pushstring</code></a></h3><p> -<span class="apii">[-0, +1, <em>e</em>]</span> -<pre>const char *lua_pushstring (lua_State *L, const char *s);</pre> - -<p> -Pushes the zero-terminated string pointed to by <code>s</code> -onto the stack. -Lua makes (or reuses) an internal copy of the given string, -so the memory at <code>s</code> can be freed or reused immediately after -the function returns. - - -<p> -Returns a pointer to the internal copy of the string. - - -<p> -If <code>s</code> is <code>NULL</code>, pushes <b>nil</b> and returns <code>NULL</code>. - - - - - -<hr><h3><a name="lua_pushthread"><code>lua_pushthread</code></a></h3><p> -<span class="apii">[-0, +1, –]</span> -<pre>int lua_pushthread (lua_State *L);</pre> - -<p> -Pushes the thread represented by <code>L</code> onto the stack. -Returns 1 if this thread is the main thread of its state. - - - - - -<hr><h3><a name="lua_pushunsigned"><code>lua_pushunsigned</code></a></h3><p> -<span class="apii">[-0, +1, –]</span> -<pre>void lua_pushunsigned (lua_State *L, lua_Unsigned n);</pre> - -<p> -Pushes a number with value <code>n</code> onto the stack. - - - - - -<hr><h3><a name="lua_pushvalue"><code>lua_pushvalue</code></a></h3><p> -<span class="apii">[-0, +1, –]</span> -<pre>void lua_pushvalue (lua_State *L, int index);</pre> - -<p> -Pushes a copy of the element at the given index -onto the stack. - - - - - -<hr><h3><a name="lua_pushvfstring"><code>lua_pushvfstring</code></a></h3><p> -<span class="apii">[-0, +1, <em>e</em>]</span> -<pre>const char *lua_pushvfstring (lua_State *L, - const char *fmt, - va_list argp);</pre> - -<p> -Equivalent to <a href="#lua_pushfstring"><code>lua_pushfstring</code></a>, except that it receives a <code>va_list</code> -instead of a variable number of arguments. - - - - - -<hr><h3><a name="lua_rawequal"><code>lua_rawequal</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>int lua_rawequal (lua_State *L, int index1, int index2);</pre> - -<p> -Returns 1 if the two values in indices <code>index1</code> and -<code>index2</code> are primitively equal -(that is, without calling metamethods). -Otherwise returns 0. -Also returns 0 if any of the indices are non valid. - - - - - -<hr><h3><a name="lua_rawget"><code>lua_rawget</code></a></h3><p> -<span class="apii">[-1, +1, –]</span> -<pre>void lua_rawget (lua_State *L, int index);</pre> - -<p> -Similar to <a href="#lua_gettable"><code>lua_gettable</code></a>, but does a raw access -(i.e., without metamethods). - - - - - -<hr><h3><a name="lua_rawgeti"><code>lua_rawgeti</code></a></h3><p> -<span class="apii">[-0, +1, –]</span> -<pre>void lua_rawgeti (lua_State *L, int index, int n);</pre> - -<p> -Pushes onto the stack the value <code>t[n]</code>, -where <code>t</code> is the table at the given index. -The access is raw; -that is, it does not invoke metamethods. - - - - - -<hr><h3><a name="lua_rawgetp"><code>lua_rawgetp</code></a></h3><p> -<span class="apii">[-0, +1, –]</span> -<pre>void lua_rawgetp (lua_State *L, int index, const void *p);</pre> - -<p> -Pushes onto the stack the value <code>t[k]</code>, -where <code>t</code> is the table at the given index and -<code>k</code> is the pointer <code>p</code> represented as a light userdata. -The access is raw; -that is, it does not invoke metamethods. - - - - - -<hr><h3><a name="lua_rawlen"><code>lua_rawlen</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>size_t lua_rawlen (lua_State *L, int index);</pre> - -<p> -Returns the raw "length" of the value at the given index: -for strings, this is the string length; -for tables, this is the result of the length operator ('<code>#</code>') -with no metamethods; -for userdata, this is the size of the block of memory allocated -for the userdata; -for other values, it is 0. - - - - - -<hr><h3><a name="lua_rawset"><code>lua_rawset</code></a></h3><p> -<span class="apii">[-2, +0, <em>e</em>]</span> -<pre>void lua_rawset (lua_State *L, int index);</pre> - -<p> -Similar to <a href="#lua_settable"><code>lua_settable</code></a>, but does a raw assignment -(i.e., without metamethods). - - - - - -<hr><h3><a name="lua_rawseti"><code>lua_rawseti</code></a></h3><p> -<span class="apii">[-1, +0, <em>e</em>]</span> -<pre>void lua_rawseti (lua_State *L, int index, int n);</pre> - -<p> -Does the equivalent of <code>t[n] = v</code>, -where <code>t</code> is the table at the given index -and <code>v</code> is the value at the top of the stack. - - -<p> -This function pops the value from the stack. -The assignment is raw; -that is, it does not invoke metamethods. - - - - - -<hr><h3><a name="lua_rawsetp"><code>lua_rawsetp</code></a></h3><p> -<span class="apii">[-1, +0, <em>e</em>]</span> -<pre>void lua_rawsetp (lua_State *L, int index, const void *p);</pre> - -<p> -Does the equivalent of <code>t[k] = v</code>, -where <code>t</code> is the table at the given index, -<code>k</code> is the pointer <code>p</code> represented as a light userdata, -and <code>v</code> is the value at the top of the stack. - - -<p> -This function pops the value from the stack. -The assignment is raw; -that is, it does not invoke metamethods. - - - - - -<hr><h3><a name="lua_Reader"><code>lua_Reader</code></a></h3> -<pre>typedef const char * (*lua_Reader) (lua_State *L, - void *data, - size_t *size);</pre> - -<p> -The reader function used by <a href="#lua_load"><code>lua_load</code></a>. -Every time it needs another piece of the chunk, -<a href="#lua_load"><code>lua_load</code></a> calls the reader, -passing along its <code>data</code> parameter. -The reader must return a pointer to a block of memory -with a new piece of the chunk -and set <code>size</code> to the block size. -The block must exist until the reader function is called again. -To signal the end of the chunk, -the reader must return <code>NULL</code> or set <code>size</code> to zero. -The reader function may return pieces of any size greater than zero. - - - - - -<hr><h3><a name="lua_register"><code>lua_register</code></a></h3><p> -<span class="apii">[-0, +0, <em>e</em>]</span> -<pre>void lua_register (lua_State *L, const char *name, lua_CFunction f);</pre> - -<p> -Sets the C function <code>f</code> as the new value of global <code>name</code>. -It is defined as a macro: - -<pre> - #define lua_register(L,n,f) \ - (lua_pushcfunction(L, f), lua_setglobal(L, n)) -</pre> - - - - -<hr><h3><a name="lua_remove"><code>lua_remove</code></a></h3><p> -<span class="apii">[-1, +0, –]</span> -<pre>void lua_remove (lua_State *L, int index);</pre> - -<p> -Removes the element at the given valid index, -shifting down the elements above this index to fill the gap. -This function cannot be called with a pseudo-index, -because a pseudo-index is not an actual stack position. - - - - - -<hr><h3><a name="lua_replace"><code>lua_replace</code></a></h3><p> -<span class="apii">[-1, +0, –]</span> -<pre>void lua_replace (lua_State *L, int index);</pre> - -<p> -Moves the top element into the given valid index -without shifting any element -(therefore replacing the value at the given index), -and then pops the top element. - - - - - -<hr><h3><a name="lua_resume"><code>lua_resume</code></a></h3><p> -<span class="apii">[-?, +?, –]</span> -<pre>int lua_resume (lua_State *L, lua_State *from, int nargs);</pre> - -<p> -Starts and resumes a coroutine in a given thread. - - -<p> -To start a coroutine, -you push onto the thread stack the main function plus any arguments; -then you call <a href="#lua_resume"><code>lua_resume</code></a>, -with <code>nargs</code> being the number of arguments. -This call returns when the coroutine suspends or finishes its execution. -When it returns, the stack contains all values passed to <a href="#lua_yield"><code>lua_yield</code></a>, -or all values returned by the body function. -<a href="#lua_resume"><code>lua_resume</code></a> returns -<a href="#pdf-LUA_YIELD"><code>LUA_YIELD</code></a> if the coroutine yields, -<a href="#pdf-LUA_OK"><code>LUA_OK</code></a> if the coroutine finishes its execution -without errors, -or an error code in case of errors (see <a href="#lua_pcall"><code>lua_pcall</code></a>). - - -<p> -In case of errors, -the stack is not unwound, -so you can use the debug API over it. -The error message is on the top of the stack. - - -<p> -To resume a coroutine, -you remove any results from the last <a href="#lua_yield"><code>lua_yield</code></a>, -put on its stack only the values to -be passed as results from <code>yield</code>, -and then call <a href="#lua_resume"><code>lua_resume</code></a>. - - -<p> -The parameter <code>from</code> represents the coroutine that is resuming <code>L</code>. -If there is no such coroutine, -this parameter can be <code>NULL</code>. - - - - - -<hr><h3><a name="lua_setallocf"><code>lua_setallocf</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>void lua_setallocf (lua_State *L, lua_Alloc f, void *ud);</pre> - -<p> -Changes the allocator function of a given state to <code>f</code> -with user data <code>ud</code>. - - - - - -<hr><h3><a name="lua_setfield"><code>lua_setfield</code></a></h3><p> -<span class="apii">[-1, +0, <em>e</em>]</span> -<pre>void lua_setfield (lua_State *L, int index, const char *k);</pre> - -<p> -Does the equivalent to <code>t[k] = v</code>, -where <code>t</code> is the value at the given index -and <code>v</code> is the value at the top of the stack. - - -<p> -This function pops the value from the stack. -As in Lua, this function may trigger a metamethod -for the "newindex" event (see <a href="#2.4">§2.4</a>). - - - - - -<hr><h3><a name="lua_setglobal"><code>lua_setglobal</code></a></h3><p> -<span class="apii">[-1, +0, <em>e</em>]</span> -<pre>void lua_setglobal (lua_State *L, const char *name);</pre> - -<p> -Pops a value from the stack and -sets it as the new value of global <code>name</code>. - - - - - -<hr><h3><a name="lua_setmetatable"><code>lua_setmetatable</code></a></h3><p> -<span class="apii">[-1, +0, –]</span> -<pre>void lua_setmetatable (lua_State *L, int index);</pre> - -<p> -Pops a table from the stack and -sets it as the new metatable for the value at the given index. - - - - - -<hr><h3><a name="lua_settable"><code>lua_settable</code></a></h3><p> -<span class="apii">[-2, +0, <em>e</em>]</span> -<pre>void lua_settable (lua_State *L, int index);</pre> - -<p> -Does the equivalent to <code>t[k] = v</code>, -where <code>t</code> is the value at the given index, -<code>v</code> is the value at the top of the stack, -and <code>k</code> is the value just below the top. - - -<p> -This function pops both the key and the value from the stack. -As in Lua, this function may trigger a metamethod -for the "newindex" event (see <a href="#2.4">§2.4</a>). - - - - - -<hr><h3><a name="lua_settop"><code>lua_settop</code></a></h3><p> -<span class="apii">[-?, +?, –]</span> -<pre>void lua_settop (lua_State *L, int index);</pre> - -<p> -Accepts any index, or 0, -and sets the stack top to this index. -If the new top is larger than the old one, -then the new elements are filled with <b>nil</b>. -If <code>index</code> is 0, then all stack elements are removed. - - - - - -<hr><h3><a name="lua_setuservalue"><code>lua_setuservalue</code></a></h3><p> -<span class="apii">[-1, +0, –]</span> -<pre>void lua_setuservalue (lua_State *L, int index);</pre> - -<p> -Pops a table or <b>nil</b> from the stack and sets it as -the new value associated to the userdata at the given index. - - - - - -<hr><h3><a name="lua_State"><code>lua_State</code></a></h3> -<pre>typedef struct lua_State lua_State;</pre> - -<p> -An opaque structure that points to a thread and indirectly -(through the thread) to the whole state of a Lua interpreter. -The Lua library is fully reentrant: -it has no global variables. -All information about a state is accessible through this structure. - - -<p> -A pointer to this structure must be passed as the first argument to -every function in the library, except to <a href="#lua_newstate"><code>lua_newstate</code></a>, -which creates a Lua state from scratch. - - - - - -<hr><h3><a name="lua_status"><code>lua_status</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>int lua_status (lua_State *L);</pre> - -<p> -Returns the status of the thread <code>L</code>. - - -<p> -The status can be 0 (<a href="#pdf-LUA_OK"><code>LUA_OK</code></a>) for a normal thread, -an error code if the thread finished the execution -of a <a href="#lua_resume"><code>lua_resume</code></a> with an error, -or <a name="pdf-LUA_YIELD"><code>LUA_YIELD</code></a> if the thread is suspended. - - -<p> -You can only call functions in threads with status <a href="#pdf-LUA_OK"><code>LUA_OK</code></a>. -You can resume threads with status <a href="#pdf-LUA_OK"><code>LUA_OK</code></a> -(to start a new coroutine) or <a href="#pdf-LUA_YIELD"><code>LUA_YIELD</code></a> -(to resume a coroutine). - - - - - -<hr><h3><a name="lua_toboolean"><code>lua_toboolean</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>int lua_toboolean (lua_State *L, int index);</pre> - -<p> -Converts the Lua value at the given index to a C boolean -value (0 or 1). -Like all tests in Lua, -<a href="#lua_toboolean"><code>lua_toboolean</code></a> returns true for any Lua value -different from <b>false</b> and <b>nil</b>; -otherwise it returns false. -(If you want to accept only actual boolean values, -use <a href="#lua_isboolean"><code>lua_isboolean</code></a> to test the value's type.) - - - - - -<hr><h3><a name="lua_tocfunction"><code>lua_tocfunction</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>lua_CFunction lua_tocfunction (lua_State *L, int index);</pre> - -<p> -Converts a value at the given index to a C function. -That value must be a C function; -otherwise, returns <code>NULL</code>. - - - - - -<hr><h3><a name="lua_tointeger"><code>lua_tointeger</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>lua_Integer lua_tointeger (lua_State *L, int index);</pre> - -<p> -Equivalent to <a href="#lua_tointegerx"><code>lua_tointegerx</code></a> with <code>isnum</code> equal to <code>NULL</code>. - - - - - -<hr><h3><a name="lua_tointegerx"><code>lua_tointegerx</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>lua_Integer lua_tointegerx (lua_State *L, int index, int *isnum);</pre> - -<p> -Converts the Lua value at the given index -to the signed integral type <a href="#lua_Integer"><code>lua_Integer</code></a>. -The Lua value must be a number or a string convertible to a number -(see <a href="#3.4.2">§3.4.2</a>); -otherwise, <code>lua_tointegerx</code> returns 0. - - -<p> -If the number is not an integer, -it is truncated in some non-specified way. - - -<p> -If <code>isnum</code> is not <code>NULL</code>, -its referent is assigned a boolean value that -indicates whether the operation succeeded. - - - - - -<hr><h3><a name="lua_tolstring"><code>lua_tolstring</code></a></h3><p> -<span class="apii">[-0, +0, <em>e</em>]</span> -<pre>const char *lua_tolstring (lua_State *L, int index, size_t *len);</pre> - -<p> -Converts the Lua value at the given index to a C string. -If <code>len</code> is not <code>NULL</code>, -it also sets <code>*len</code> with the string length. -The Lua value must be a string or a number; -otherwise, the function returns <code>NULL</code>. -If the value is a number, -then <code>lua_tolstring</code> also -<em>changes the actual value in the stack to a string</em>. -(This change confuses <a href="#lua_next"><code>lua_next</code></a> -when <code>lua_tolstring</code> is applied to keys during a table traversal.) - - -<p> -<code>lua_tolstring</code> returns a fully aligned pointer -to a string inside the Lua state. -This string always has a zero ('<code>\0</code>') -after its last character (as in C), -but can contain other zeros in its body. -Because Lua has garbage collection, -there is no guarantee that the pointer returned by <code>lua_tolstring</code> -will be valid after the corresponding value is removed from the stack. - - - - - -<hr><h3><a name="lua_tonumber"><code>lua_tonumber</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>lua_Number lua_tonumber (lua_State *L, int index);</pre> - -<p> -Equivalent to <a href="#lua_tonumberx"><code>lua_tonumberx</code></a> with <code>isnum</code> equal to <code>NULL</code>. - - - - - -<hr><h3><a name="lua_tonumberx"><code>lua_tonumberx</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>lua_Number lua_tonumberx (lua_State *L, int index, int *isnum);</pre> - -<p> -Converts the Lua value at the given index -to the C type <a href="#lua_Number"><code>lua_Number</code></a> (see <a href="#lua_Number"><code>lua_Number</code></a>). -The Lua value must be a number or a string convertible to a number -(see <a href="#3.4.2">§3.4.2</a>); -otherwise, <a href="#lua_tonumberx"><code>lua_tonumberx</code></a> returns 0. - - -<p> -If <code>isnum</code> is not <code>NULL</code>, -its referent is assigned a boolean value that -indicates whether the operation succeeded. - - - - - -<hr><h3><a name="lua_topointer"><code>lua_topointer</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>const void *lua_topointer (lua_State *L, int index);</pre> - -<p> -Converts the value at the given index to a generic -C pointer (<code>void*</code>). -The value can be a userdata, a table, a thread, or a function; -otherwise, <code>lua_topointer</code> returns <code>NULL</code>. -Different objects will give different pointers. -There is no way to convert the pointer back to its original value. - - -<p> -Typically this function is used only for debug information. - - - - - -<hr><h3><a name="lua_tostring"><code>lua_tostring</code></a></h3><p> -<span class="apii">[-0, +0, <em>e</em>]</span> -<pre>const char *lua_tostring (lua_State *L, int index);</pre> - -<p> -Equivalent to <a href="#lua_tolstring"><code>lua_tolstring</code></a> with <code>len</code> equal to <code>NULL</code>. - - - - - -<hr><h3><a name="lua_tothread"><code>lua_tothread</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>lua_State *lua_tothread (lua_State *L, int index);</pre> - -<p> -Converts the value at the given index to a Lua thread -(represented as <code>lua_State*</code>). -This value must be a thread; -otherwise, the function returns <code>NULL</code>. - - - - - -<hr><h3><a name="lua_tounsigned"><code>lua_tounsigned</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>lua_Unsigned lua_tounsigned (lua_State *L, int index);</pre> - -<p> -Equivalent to <a href="#lua_tounsignedx"><code>lua_tounsignedx</code></a> with <code>isnum</code> equal to <code>NULL</code>. - - - - - -<hr><h3><a name="lua_tounsignedx"><code>lua_tounsignedx</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>lua_Unsigned lua_tounsignedx (lua_State *L, int index, int *isnum);</pre> - -<p> -Converts the Lua value at the given index -to the unsigned integral type <a href="#lua_Unsigned"><code>lua_Unsigned</code></a>. -The Lua value must be a number or a string convertible to a number -(see <a href="#3.4.2">§3.4.2</a>); -otherwise, <code>lua_tounsignedx</code> returns 0. - - -<p> -If the number is not an integer, -it is truncated in some non-specified way. -If the number is outside the range of representable values, -it is normalized to the remainder of its division by -one more than the maximum representable value. - - -<p> -If <code>isnum</code> is not <code>NULL</code>, -its referent is assigned a boolean value that -indicates whether the operation succeeded. - - - - - -<hr><h3><a name="lua_touserdata"><code>lua_touserdata</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>void *lua_touserdata (lua_State *L, int index);</pre> - -<p> -If the value at the given index is a full userdata, -returns its block address. -If the value is a light userdata, -returns its pointer. -Otherwise, returns <code>NULL</code>. - - - - - -<hr><h3><a name="lua_type"><code>lua_type</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>int lua_type (lua_State *L, int index);</pre> - -<p> -Returns the type of the value in the given valid index, -or <code>LUA_TNONE</code> for a non-valid (but acceptable) index. -The types returned by <a href="#lua_type"><code>lua_type</code></a> are coded by the following constants -defined in <code>lua.h</code>: -<a name="pdf-LUA_TNIL"><code>LUA_TNIL</code></a>, -<a name="pdf-LUA_TNUMBER"><code>LUA_TNUMBER</code></a>, -<a name="pdf-LUA_TBOOLEAN"><code>LUA_TBOOLEAN</code></a>, -<a name="pdf-LUA_TSTRING"><code>LUA_TSTRING</code></a>, -<a name="pdf-LUA_TTABLE"><code>LUA_TTABLE</code></a>, -<a name="pdf-LUA_TFUNCTION"><code>LUA_TFUNCTION</code></a>, -<a name="pdf-LUA_TUSERDATA"><code>LUA_TUSERDATA</code></a>, -<a name="pdf-LUA_TTHREAD"><code>LUA_TTHREAD</code></a>, -and -<a name="pdf-LUA_TLIGHTUSERDATA"><code>LUA_TLIGHTUSERDATA</code></a>. - - - - - -<hr><h3><a name="lua_typename"><code>lua_typename</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>const char *lua_typename (lua_State *L, int tp);</pre> - -<p> -Returns the name of the type encoded by the value <code>tp</code>, -which must be one the values returned by <a href="#lua_type"><code>lua_type</code></a>. - - - - - -<hr><h3><a name="lua_Unsigned"><code>lua_Unsigned</code></a></h3> -<pre>typedef unsigned long lua_Unsigned;</pre> - -<p> -The type used by the Lua API to represent unsigned integral values. -It must have at least 32 bits. - - -<p> -By default it is an <code>unsigned int</code> or an <code>unsigned long</code>, -whichever can hold 32-bit values. - - - - - -<hr><h3><a name="lua_upvalueindex"><code>lua_upvalueindex</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>int lua_upvalueindex (int i);</pre> - -<p> -Returns the pseudo-index that represents the <code>i</code>-th upvalue of -the running function (see <a href="#4.4">§4.4</a>). - - - - - -<hr><h3><a name="lua_version"><code>lua_version</code></a></h3><p> -<span class="apii">[-0, +0, <em>v</em>]</span> -<pre>const lua_Number *lua_version (lua_State *L);</pre> - -<p> -Returns the address of the version number stored in the Lua core. -When called with a valid <a href="#lua_State"><code>lua_State</code></a>, -returns the address of the version used to create that state. -When called with <code>NULL</code>, -returns the address of the version running the call. - - - - - -<hr><h3><a name="lua_Writer"><code>lua_Writer</code></a></h3> -<pre>typedef int (*lua_Writer) (lua_State *L, - const void* p, - size_t sz, - void* ud);</pre> - -<p> -The type of the writer function used by <a href="#lua_dump"><code>lua_dump</code></a>. -Every time it produces another piece of chunk, -<a href="#lua_dump"><code>lua_dump</code></a> calls the writer, -passing along the buffer to be written (<code>p</code>), -its size (<code>sz</code>), -and the <code>data</code> parameter supplied to <a href="#lua_dump"><code>lua_dump</code></a>. - - -<p> -The writer returns an error code: -0 means no errors; -any other value means an error and stops <a href="#lua_dump"><code>lua_dump</code></a> from -calling the writer again. - - - - - -<hr><h3><a name="lua_xmove"><code>lua_xmove</code></a></h3><p> -<span class="apii">[-?, +?, –]</span> -<pre>void lua_xmove (lua_State *from, lua_State *to, int n);</pre> - -<p> -Exchange values between different threads of the same state. - - -<p> -This function pops <code>n</code> values from the stack <code>from</code>, -and pushes them onto the stack <code>to</code>. - - - - - -<hr><h3><a name="lua_yield"><code>lua_yield</code></a></h3><p> -<span class="apii">[-?, +?, –]</span> -<pre>int lua_yield (lua_State *L, int nresults);</pre> - -<p> -This function is equivalent to <a href="#lua_yieldk"><code>lua_yieldk</code></a>, -but it has no continuation (see <a href="#4.7">§4.7</a>). -Therefore, when the thread resumes, -it returns to the function that called -the function calling <code>lua_yield</code>. - - - - - -<hr><h3><a name="lua_yieldk"><code>lua_yieldk</code></a></h3><p> -<span class="apii">[-?, +?, –]</span> -<pre>int lua_yieldk (lua_State *L, int nresults, int ctx, lua_CFunction k);</pre> - -<p> -Yields a coroutine. - - -<p> -This function should only be called as the -return expression of a C function, as follows: - -<pre> - return lua_yieldk (L, n, i, k); -</pre><p> -When a C function calls <a href="#lua_yieldk"><code>lua_yieldk</code></a> in that way, -the running coroutine suspends its execution, -and the call to <a href="#lua_resume"><code>lua_resume</code></a> that started this coroutine returns. -The parameter <code>nresults</code> is the number of values from the stack -that are passed as results to <a href="#lua_resume"><code>lua_resume</code></a>. - - -<p> -When the coroutine is resumed again, -Lua calls the given continuation function <code>k</code> to continue -the execution of the C function that yielded (see <a href="#4.7">§4.7</a>). -This continuation function receives the same stack -from the previous function, -with the results removed and -replaced by the arguments passed to <a href="#lua_resume"><code>lua_resume</code></a>. -Moreover, -the continuation function may access the value <code>ctx</code> -by calling <a href="#lua_getctx"><code>lua_getctx</code></a>. - - - - - - - -<h2>4.9 – <a name="4.9">The Debug Interface</a></h2> - -<p> -Lua has no built-in debugging facilities. -Instead, it offers a special interface -by means of functions and <em>hooks</em>. -This interface allows the construction of different -kinds of debuggers, profilers, and other tools -that need "inside information" from the interpreter. - - - -<hr><h3><a name="lua_Debug"><code>lua_Debug</code></a></h3> -<pre>typedef struct lua_Debug { - int event; - const char *name; /* (n) */ - const char *namewhat; /* (n) */ - const char *what; /* (S) */ - const char *source; /* (S) */ - int currentline; /* (l) */ - int linedefined; /* (S) */ - int lastlinedefined; /* (S) */ - unsigned char nups; /* (u) number of upvalues */ - unsigned char nparams; /* (u) number of parameters */ - char isvararg; /* (u) */ - char istailcall; /* (t) */ - char short_src[LUA_IDSIZE]; /* (S) */ - /* private part */ - <em>other fields</em> -} lua_Debug;</pre> - -<p> -A structure used to carry different pieces of -information about a function or an activation record. -<a href="#lua_getstack"><code>lua_getstack</code></a> fills only the private part -of this structure, for later use. -To fill the other fields of <a href="#lua_Debug"><code>lua_Debug</code></a> with useful information, -call <a href="#lua_getinfo"><code>lua_getinfo</code></a>. - - -<p> -The fields of <a href="#lua_Debug"><code>lua_Debug</code></a> have the following meaning: - -<ul> - -<li><b><code>source</code>: </b> -the source of the chunk that created the function. -If <code>source</code> starts with a '<code>@</code>', -it means that the function was defined in a file where -the file name follows the '<code>@</code>'. -If <code>source</code> starts with a '<code>=</code>', -the remainder of its contents describe the source in a user-dependent manner. -Otherwise, -the function was defined in a string where -<code>source</code> is that string. -</li> - -<li><b><code>short_src</code>: </b> -a "printable" version of <code>source</code>, to be used in error messages. -</li> - -<li><b><code>linedefined</code>: </b> -the line number where the definition of the function starts. -</li> - -<li><b><code>lastlinedefined</code>: </b> -the line number where the definition of the function ends. -</li> - -<li><b><code>what</code>: </b> -the string <code>"Lua"</code> if the function is a Lua function, -<code>"C"</code> if it is a C function, -<code>"main"</code> if it is the main part of a chunk. -</li> - -<li><b><code>currentline</code>: </b> -the current line where the given function is executing. -When no line information is available, -<code>currentline</code> is set to -1. -</li> - -<li><b><code>name</code>: </b> -a reasonable name for the given function. -Because functions in Lua are first-class values, -they do not have a fixed name: -some functions can be the value of multiple global variables, -while others can be stored only in a table field. -The <code>lua_getinfo</code> function checks how the function was -called to find a suitable name. -If it cannot find a name, -then <code>name</code> is set to <code>NULL</code>. -</li> - -<li><b><code>namewhat</code>: </b> -explains the <code>name</code> field. -The value of <code>namewhat</code> can be -<code>"global"</code>, <code>"local"</code>, <code>"method"</code>, -<code>"field"</code>, <code>"upvalue"</code>, or <code>""</code> (the empty string), -according to how the function was called. -(Lua uses the empty string when no other option seems to apply.) -</li> - -<li><b><code>istailcall</code>: </b> -true if this function invocation was called by a tail call. -In this case, the caller of this level is not in the stack. -</li> - -<li><b><code>nups</code>: </b> -the number of upvalues of the function. -</li> - -<li><b><code>nparams</code>: </b> -the number of fixed parameters of the function -(always 0 for C functions). -</li> - -<li><b><code>isvararg</code>: </b> -true if the function is a vararg function -(always true for C functions). -</li> - -</ul> - - - - -<hr><h3><a name="lua_gethook"><code>lua_gethook</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>lua_Hook lua_gethook (lua_State *L);</pre> - -<p> -Returns the current hook function. - - - - - -<hr><h3><a name="lua_gethookcount"><code>lua_gethookcount</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>int lua_gethookcount (lua_State *L);</pre> - -<p> -Returns the current hook count. - - - - - -<hr><h3><a name="lua_gethookmask"><code>lua_gethookmask</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>int lua_gethookmask (lua_State *L);</pre> - -<p> -Returns the current hook mask. - - - - - -<hr><h3><a name="lua_getinfo"><code>lua_getinfo</code></a></h3><p> -<span class="apii">[-(0|1), +(0|1|2), <em>e</em>]</span> -<pre>int lua_getinfo (lua_State *L, const char *what, lua_Debug *ar);</pre> - -<p> -Gets information about a specific function or function invocation. - - -<p> -To get information about a function invocation, -the parameter <code>ar</code> must be a valid activation record that was -filled by a previous call to <a href="#lua_getstack"><code>lua_getstack</code></a> or -given as argument to a hook (see <a href="#lua_Hook"><code>lua_Hook</code></a>). - - -<p> -To get information about a function you push it onto the stack -and start the <code>what</code> string with the character '<code>></code>'. -(In that case, -<code>lua_getinfo</code> pops the function from the top of the stack.) -For instance, to know in which line a function <code>f</code> was defined, -you can write the following code: - -<pre> - lua_Debug ar; - lua_getglobal(L, "f"); /* get global 'f' */ - lua_getinfo(L, ">S", &ar); - printf("%d\n", ar.linedefined); -</pre> - -<p> -Each character in the string <code>what</code> -selects some fields of the structure <code>ar</code> to be filled or -a value to be pushed on the stack: - -<ul> - -<li><b>'<code>n</code>': </b> fills in the field <code>name</code> and <code>namewhat</code>; -</li> - -<li><b>'<code>S</code>': </b> -fills in the fields <code>source</code>, <code>short_src</code>, -<code>linedefined</code>, <code>lastlinedefined</code>, and <code>what</code>; -</li> - -<li><b>'<code>l</code>': </b> fills in the field <code>currentline</code>; -</li> - -<li><b>'<code>t</code>': </b> fills in the field <code>istailcall</code>; -</li> - -<li><b>'<code>u</code>': </b> fills in the fields -<code>nups</code>, <code>nparams</code>, and <code>isvararg</code>; -</li> - -<li><b>'<code>f</code>': </b> -pushes onto the stack the function that is -running at the given level; -</li> - -<li><b>'<code>L</code>': </b> -pushes onto the stack a table whose indices are the -numbers of the lines that are valid on the function. -(A <em>valid line</em> is a line with some associated code, -that is, a line where you can put a break point. -Non-valid lines include empty lines and comments.) -</li> - -</ul> - -<p> -This function returns 0 on error -(for instance, an invalid option in <code>what</code>). - - - - - -<hr><h3><a name="lua_getlocal"><code>lua_getlocal</code></a></h3><p> -<span class="apii">[-0, +(0|1), –]</span> -<pre>const char *lua_getlocal (lua_State *L, lua_Debug *ar, int n);</pre> - -<p> -Gets information about a local variable of -a given activation record or a given function. - - -<p> -In the first case, -the parameter <code>ar</code> must be a valid activation record that was -filled by a previous call to <a href="#lua_getstack"><code>lua_getstack</code></a> or -given as argument to a hook (see <a href="#lua_Hook"><code>lua_Hook</code></a>). -The index <code>n</code> selects which local variable to inspect; -see <a href="#pdf-debug.getlocal"><code>debug.getlocal</code></a> for details about variable indices -and names. - - -<p> -<a href="#lua_getlocal"><code>lua_getlocal</code></a> pushes the variable's value onto the stack -and returns its name. - - -<p> -In the second case, <code>ar</code> should be <code>NULL</code> and the function -to be inspected must be at the top of the stack. -In this case, only parameters of Lua functions are visible -(as there is no information about what variables are active) -and no values are pushed onto the stack. - - -<p> -Returns <code>NULL</code> (and pushes nothing) -when the index is greater than -the number of active local variables. - - - - - -<hr><h3><a name="lua_getstack"><code>lua_getstack</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>int lua_getstack (lua_State *L, int level, lua_Debug *ar);</pre> - -<p> -Gets information about the interpreter runtime stack. - - -<p> -This function fills parts of a <a href="#lua_Debug"><code>lua_Debug</code></a> structure with -an identification of the <em>activation record</em> -of the function executing at a given level. -Level 0 is the current running function, -whereas level <em>n+1</em> is the function that has called level <em>n</em> -(except for tail calls, which do not count on the stack). -When there are no errors, <a href="#lua_getstack"><code>lua_getstack</code></a> returns 1; -when called with a level greater than the stack depth, -it returns 0. - - - - - -<hr><h3><a name="lua_getupvalue"><code>lua_getupvalue</code></a></h3><p> -<span class="apii">[-0, +(0|1), –]</span> -<pre>const char *lua_getupvalue (lua_State *L, int funcindex, int n);</pre> - -<p> -Gets information about a closure's upvalue. -(For Lua functions, -upvalues are the external local variables that the function uses, -and that are consequently included in its closure.) -<a href="#lua_getupvalue"><code>lua_getupvalue</code></a> gets the index <code>n</code> of an upvalue, -pushes the upvalue's value onto the stack, -and returns its name. -<code>funcindex</code> points to the closure in the stack. -(Upvalues have no particular order, -as they are active through the whole function. -So, they are numbered in an arbitrary order.) - - -<p> -Returns <code>NULL</code> (and pushes nothing) -when the index is greater than the number of upvalues. -For C functions, this function uses the empty string <code>""</code> -as a name for all upvalues. - - - - - -<hr><h3><a name="lua_Hook"><code>lua_Hook</code></a></h3> -<pre>typedef void (*lua_Hook) (lua_State *L, lua_Debug *ar);</pre> - -<p> -Type for debugging hook functions. - - -<p> -Whenever a hook is called, its <code>ar</code> argument has its field -<code>event</code> set to the specific event that triggered the hook. -Lua identifies these events with the following constants: -<a name="pdf-LUA_HOOKCALL"><code>LUA_HOOKCALL</code></a>, <a name="pdf-LUA_HOOKRET"><code>LUA_HOOKRET</code></a>, -<a name="pdf-LUA_HOOKTAILCALL"><code>LUA_HOOKTAILCALL</code></a>, <a name="pdf-LUA_HOOKLINE"><code>LUA_HOOKLINE</code></a>, -and <a name="pdf-LUA_HOOKCOUNT"><code>LUA_HOOKCOUNT</code></a>. -Moreover, for line events, the field <code>currentline</code> is also set. -To get the value of any other field in <code>ar</code>, -the hook must call <a href="#lua_getinfo"><code>lua_getinfo</code></a>. - - -<p> -For call events, <code>event</code> can be <code>LUA_HOOKCALL</code>, -the normal value, or <code>LUA_HOOKTAILCALL</code>, for a tail call; -in this case, there will be no corresponding return event. - - -<p> -While Lua is running a hook, it disables other calls to hooks. -Therefore, if a hook calls back Lua to execute a function or a chunk, -this execution occurs without any calls to hooks. - - -<p> -Hook functions cannot have continuations, -that is, they cannot call <a href="#lua_yieldk"><code>lua_yieldk</code></a>, -<a href="#lua_pcallk"><code>lua_pcallk</code></a>, or <a href="#lua_callk"><code>lua_callk</code></a> with a non-null <code>k</code>. - - -<p> -Hook functions can yield under the following conditions: -Only count and line events can yield -and they cannot yield any value; -to yield a hook function must finish its execution -calling <a href="#lua_yield"><code>lua_yield</code></a> with <code>nresults</code> equal to zero. - - - - - -<hr><h3><a name="lua_sethook"><code>lua_sethook</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>int lua_sethook (lua_State *L, lua_Hook f, int mask, int count);</pre> - -<p> -Sets the debugging hook function. - - -<p> -Argument <code>f</code> is the hook function. -<code>mask</code> specifies on which events the hook will be called: -it is formed by a bitwise or of the constants -<a name="pdf-LUA_MASKCALL"><code>LUA_MASKCALL</code></a>, -<a name="pdf-LUA_MASKRET"><code>LUA_MASKRET</code></a>, -<a name="pdf-LUA_MASKLINE"><code>LUA_MASKLINE</code></a>, -and <a name="pdf-LUA_MASKCOUNT"><code>LUA_MASKCOUNT</code></a>. -The <code>count</code> argument is only meaningful when the mask -includes <code>LUA_MASKCOUNT</code>. -For each event, the hook is called as explained below: - -<ul> - -<li><b>The call hook: </b> is called when the interpreter calls a function. -The hook is called just after Lua enters the new function, -before the function gets its arguments. -</li> - -<li><b>The return hook: </b> is called when the interpreter returns from a function. -The hook is called just before Lua leaves the function. -There is no standard way to access the values -to be returned by the function. -</li> - -<li><b>The line hook: </b> is called when the interpreter is about to -start the execution of a new line of code, -or when it jumps back in the code (even to the same line). -(This event only happens while Lua is executing a Lua function.) -</li> - -<li><b>The count hook: </b> is called after the interpreter executes every -<code>count</code> instructions. -(This event only happens while Lua is executing a Lua function.) -</li> - -</ul> - -<p> -A hook is disabled by setting <code>mask</code> to zero. - - - - - -<hr><h3><a name="lua_setlocal"><code>lua_setlocal</code></a></h3><p> -<span class="apii">[-(0|1), +0, –]</span> -<pre>const char *lua_setlocal (lua_State *L, lua_Debug *ar, int n);</pre> - -<p> -Sets the value of a local variable of a given activation record. -Parameters <code>ar</code> and <code>n</code> are as in <a href="#lua_getlocal"><code>lua_getlocal</code></a> -(see <a href="#lua_getlocal"><code>lua_getlocal</code></a>). -<a href="#lua_setlocal"><code>lua_setlocal</code></a> assigns the value at the top of the stack -to the variable and returns its name. -It also pops the value from the stack. - - -<p> -Returns <code>NULL</code> (and pops nothing) -when the index is greater than -the number of active local variables. - - - - - -<hr><h3><a name="lua_setupvalue"><code>lua_setupvalue</code></a></h3><p> -<span class="apii">[-(0|1), +0, –]</span> -<pre>const char *lua_setupvalue (lua_State *L, int funcindex, int n);</pre> - -<p> -Sets the value of a closure's upvalue. -It assigns the value at the top of the stack -to the upvalue and returns its name. -It also pops the value from the stack. -Parameters <code>funcindex</code> and <code>n</code> are as in the <a href="#lua_getupvalue"><code>lua_getupvalue</code></a> -(see <a href="#lua_getupvalue"><code>lua_getupvalue</code></a>). - - -<p> -Returns <code>NULL</code> (and pops nothing) -when the index is greater than the number of upvalues. - - - - - -<hr><h3><a name="lua_upvalueid"><code>lua_upvalueid</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>void *lua_upvalueid (lua_State *L, int funcindex, int n);</pre> - -<p> -Returns an unique identifier for the upvalue numbered <code>n</code> -from the closure at index <code>funcindex</code>. -Parameters <code>funcindex</code> and <code>n</code> are as in the <a href="#lua_getupvalue"><code>lua_getupvalue</code></a> -(see <a href="#lua_getupvalue"><code>lua_getupvalue</code></a>) -(but <code>n</code> cannot be greater than the number of upvalues). - - -<p> -These unique identifiers allow a program to check whether different -closures share upvalues. -Lua closures that share an upvalue -(that is, that access a same external local variable) -will return identical ids for those upvalue indices. - - - - - -<hr><h3><a name="lua_upvaluejoin"><code>lua_upvaluejoin</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>void lua_upvaluejoin (lua_State *L, int funcindex1, int n1, - int funcindex2, int n2);</pre> - -<p> -Make the <code>n1</code>-th upvalue of the Lua closure at index <code>funcindex1</code> -refer to the <code>n2</code>-th upvalue of the Lua closure at index <code>funcindex2</code>. - - - - - - - -<h1>5 – <a name="5">The Auxiliary Library</a></h1> - -<p> - -The <em>auxiliary library</em> provides several convenient functions -to interface C with Lua. -While the basic API provides the primitive functions for all -interactions between C and Lua, -the auxiliary library provides higher-level functions for some -common tasks. - - -<p> -All functions and types from the auxiliary library -are defined in header file <code>lauxlib.h</code> and -have a prefix <code>luaL_</code>. - - -<p> -All functions in the auxiliary library are built on -top of the basic API, -and so they provide nothing that cannot be done with that API. -Nevertheless, the use of the auxiliary library ensures -more consistency to your code. - - -<p> -Several functions in the auxiliary library use internally some -extra stack slots. -When a function in the auxiliary library uses less than five slots, -it does not check the stack size; -it simply assumes that there are enough slots. - - -<p> -Several functions in the auxiliary library are used to -check C function arguments. -Because the error message is formatted for arguments -(e.g., "<code>bad argument #1</code>"), -you should not use these functions for other stack values. - - -<p> -Functions called <code>luaL_check*</code> -always throw an error if the check is not satisfied. - - - -<h2>5.1 – <a name="5.1">Functions and Types</a></h2> - -<p> -Here we list all functions and types from the auxiliary library -in alphabetical order. - - - -<hr><h3><a name="luaL_addchar"><code>luaL_addchar</code></a></h3><p> -<span class="apii">[-?, +?, <em>e</em>]</span> -<pre>void luaL_addchar (luaL_Buffer *B, char c);</pre> - -<p> -Adds the byte <code>c</code> to the buffer <code>B</code> -(see <a href="#luaL_Buffer"><code>luaL_Buffer</code></a>). - - - - - -<hr><h3><a name="luaL_addlstring"><code>luaL_addlstring</code></a></h3><p> -<span class="apii">[-?, +?, <em>e</em>]</span> -<pre>void luaL_addlstring (luaL_Buffer *B, const char *s, size_t l);</pre> - -<p> -Adds the string pointed to by <code>s</code> with length <code>l</code> to -the buffer <code>B</code> -(see <a href="#luaL_Buffer"><code>luaL_Buffer</code></a>). -The string can contain embedded zeros. - - - - - -<hr><h3><a name="luaL_addsize"><code>luaL_addsize</code></a></h3><p> -<span class="apii">[-?, +?, <em>e</em>]</span> -<pre>void luaL_addsize (luaL_Buffer *B, size_t n);</pre> - -<p> -Adds to the buffer <code>B</code> (see <a href="#luaL_Buffer"><code>luaL_Buffer</code></a>) -a string of length <code>n</code> previously copied to the -buffer area (see <a href="#luaL_prepbuffer"><code>luaL_prepbuffer</code></a>). - - - - - -<hr><h3><a name="luaL_addstring"><code>luaL_addstring</code></a></h3><p> -<span class="apii">[-?, +?, <em>e</em>]</span> -<pre>void luaL_addstring (luaL_Buffer *B, const char *s);</pre> - -<p> -Adds the zero-terminated string pointed to by <code>s</code> -to the buffer <code>B</code> -(see <a href="#luaL_Buffer"><code>luaL_Buffer</code></a>). -The string cannot contain embedded zeros. - - - - - -<hr><h3><a name="luaL_addvalue"><code>luaL_addvalue</code></a></h3><p> -<span class="apii">[-1, +?, <em>e</em>]</span> -<pre>void luaL_addvalue (luaL_Buffer *B);</pre> - -<p> -Adds the value at the top of the stack -to the buffer <code>B</code> -(see <a href="#luaL_Buffer"><code>luaL_Buffer</code></a>). -Pops the value. - - -<p> -This is the only function on string buffers that can (and must) -be called with an extra element on the stack, -which is the value to be added to the buffer. - - - - - -<hr><h3><a name="luaL_argcheck"><code>luaL_argcheck</code></a></h3><p> -<span class="apii">[-0, +0, <em>v</em>]</span> -<pre>void luaL_argcheck (lua_State *L, - int cond, - int arg, - const char *extramsg);</pre> - -<p> -Checks whether <code>cond</code> is true. -If not, raises an error with a standard message. - - - - - -<hr><h3><a name="luaL_argerror"><code>luaL_argerror</code></a></h3><p> -<span class="apii">[-0, +0, <em>v</em>]</span> -<pre>int luaL_argerror (lua_State *L, int arg, const char *extramsg);</pre> - -<p> -Raises an error with a standard message -that includes <code>extramsg</code> as a comment. - - -<p> -This function never returns, -but it is an idiom to use it in C functions -as <code>return luaL_argerror(<em>args</em>)</code>. - - - - - -<hr><h3><a name="luaL_Buffer"><code>luaL_Buffer</code></a></h3> -<pre>typedef struct luaL_Buffer luaL_Buffer;</pre> - -<p> -Type for a <em>string buffer</em>. - - -<p> -A string buffer allows C code to build Lua strings piecemeal. -Its pattern of use is as follows: - -<ul> - -<li>First declare a variable <code>b</code> of type <a href="#luaL_Buffer"><code>luaL_Buffer</code></a>.</li> - -<li>Then initialize it with a call <code>luaL_buffinit(L, &b)</code>.</li> - -<li> -Then add string pieces to the buffer calling any of -the <code>luaL_add*</code> functions. -</li> - -<li> -Finish by calling <code>luaL_pushresult(&b)</code>. -This call leaves the final string on the top of the stack. -</li> - -</ul> - -<p> -If you know beforehand the total size of the resulting string, -you can use the buffer like this: - -<ul> - -<li>First declare a variable <code>b</code> of type <a href="#luaL_Buffer"><code>luaL_Buffer</code></a>.</li> - -<li>Then initialize it and preallocate a space of -size <code>sz</code> with a call <code>luaL_buffinitsize(L, &b, sz)</code>.</li> - -<li>Then copy the string into that space.</li> - -<li> -Finish by calling <code>luaL_pushresultsize(&b, sz)</code>, -where <code>sz</code> is the total size of the resulting string -copied into that space. -</li> - -</ul> - -<p> -During its normal operation, -a string buffer uses a variable number of stack slots. -So, while using a buffer, you cannot assume that you know where -the top of the stack is. -You can use the stack between successive calls to buffer operations -as long as that use is balanced; -that is, -when you call a buffer operation, -the stack is at the same level -it was immediately after the previous buffer operation. -(The only exception to this rule is <a href="#luaL_addvalue"><code>luaL_addvalue</code></a>.) -After calling <a href="#luaL_pushresult"><code>luaL_pushresult</code></a> the stack is back to its -level when the buffer was initialized, -plus the final string on its top. - - - - - -<hr><h3><a name="luaL_buffinit"><code>luaL_buffinit</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>void luaL_buffinit (lua_State *L, luaL_Buffer *B);</pre> - -<p> -Initializes a buffer <code>B</code>. -This function does not allocate any space; -the buffer must be declared as a variable -(see <a href="#luaL_Buffer"><code>luaL_Buffer</code></a>). - - - - - -<hr><h3><a name="luaL_buffinitsize"><code>luaL_buffinitsize</code></a></h3><p> -<span class="apii">[-?, +?, <em>e</em>]</span> -<pre>char *luaL_buffinitsize (lua_State *L, luaL_Buffer *B, size_t sz);</pre> - -<p> -Equivalent to the sequence -<a href="#luaL_buffinit"><code>luaL_buffinit</code></a>, <a href="#luaL_prepbuffsize"><code>luaL_prepbuffsize</code></a>. - - - - - -<hr><h3><a name="luaL_callmeta"><code>luaL_callmeta</code></a></h3><p> -<span class="apii">[-0, +(0|1), <em>e</em>]</span> -<pre>int luaL_callmeta (lua_State *L, int obj, const char *e);</pre> - -<p> -Calls a metamethod. - - -<p> -If the object at index <code>obj</code> has a metatable and this -metatable has a field <code>e</code>, -this function calls this field passing the object as its only argument. -In this case this function returns true and pushes onto the -stack the value returned by the call. -If there is no metatable or no metamethod, -this function returns false (without pushing any value on the stack). - - - - - -<hr><h3><a name="luaL_checkany"><code>luaL_checkany</code></a></h3><p> -<span class="apii">[-0, +0, <em>v</em>]</span> -<pre>void luaL_checkany (lua_State *L, int arg);</pre> - -<p> -Checks whether the function has an argument -of any type (including <b>nil</b>) at position <code>arg</code>. - - - - - -<hr><h3><a name="luaL_checkint"><code>luaL_checkint</code></a></h3><p> -<span class="apii">[-0, +0, <em>v</em>]</span> -<pre>int luaL_checkint (lua_State *L, int arg);</pre> - -<p> -Checks whether the function argument <code>arg</code> is a number -and returns this number cast to an <code>int</code>. - - - - - -<hr><h3><a name="luaL_checkinteger"><code>luaL_checkinteger</code></a></h3><p> -<span class="apii">[-0, +0, <em>v</em>]</span> -<pre>lua_Integer luaL_checkinteger (lua_State *L, int arg);</pre> - -<p> -Checks whether the function argument <code>arg</code> is a number -and returns this number cast to a <a href="#lua_Integer"><code>lua_Integer</code></a>. - - - - - -<hr><h3><a name="luaL_checklong"><code>luaL_checklong</code></a></h3><p> -<span class="apii">[-0, +0, <em>v</em>]</span> -<pre>long luaL_checklong (lua_State *L, int arg);</pre> - -<p> -Checks whether the function argument <code>arg</code> is a number -and returns this number cast to a <code>long</code>. - - - - - -<hr><h3><a name="luaL_checklstring"><code>luaL_checklstring</code></a></h3><p> -<span class="apii">[-0, +0, <em>v</em>]</span> -<pre>const char *luaL_checklstring (lua_State *L, int arg, size_t *l);</pre> - -<p> -Checks whether the function argument <code>arg</code> is a string -and returns this string; -if <code>l</code> is not <code>NULL</code> fills <code>*l</code> -with the string's length. - - -<p> -This function uses <a href="#lua_tolstring"><code>lua_tolstring</code></a> to get its result, -so all conversions and caveats of that function apply here. - - - - - -<hr><h3><a name="luaL_checknumber"><code>luaL_checknumber</code></a></h3><p> -<span class="apii">[-0, +0, <em>v</em>]</span> -<pre>lua_Number luaL_checknumber (lua_State *L, int arg);</pre> - -<p> -Checks whether the function argument <code>arg</code> is a number -and returns this number. - - - - - -<hr><h3><a name="luaL_checkoption"><code>luaL_checkoption</code></a></h3><p> -<span class="apii">[-0, +0, <em>v</em>]</span> -<pre>int luaL_checkoption (lua_State *L, - int arg, - const char *def, - const char *const lst[]);</pre> - -<p> -Checks whether the function argument <code>arg</code> is a string and -searches for this string in the array <code>lst</code> -(which must be NULL-terminated). -Returns the index in the array where the string was found. -Raises an error if the argument is not a string or -if the string cannot be found. - - -<p> -If <code>def</code> is not <code>NULL</code>, -the function uses <code>def</code> as a default value when -there is no argument <code>arg</code> or when this argument is <b>nil</b>. - - -<p> -This is a useful function for mapping strings to C enums. -(The usual convention in Lua libraries is -to use strings instead of numbers to select options.) - - - - - -<hr><h3><a name="luaL_checkstack"><code>luaL_checkstack</code></a></h3><p> -<span class="apii">[-0, +0, <em>v</em>]</span> -<pre>void luaL_checkstack (lua_State *L, int sz, const char *msg);</pre> - -<p> -Grows the stack size to <code>top + sz</code> elements, -raising an error if the stack cannot grow to that size. -<code>msg</code> is an additional text to go into the error message -(or <code>NULL</code> for no additional text). - - - - - -<hr><h3><a name="luaL_checkstring"><code>luaL_checkstring</code></a></h3><p> -<span class="apii">[-0, +0, <em>v</em>]</span> -<pre>const char *luaL_checkstring (lua_State *L, int arg);</pre> - -<p> -Checks whether the function argument <code>arg</code> is a string -and returns this string. - - -<p> -This function uses <a href="#lua_tolstring"><code>lua_tolstring</code></a> to get its result, -so all conversions and caveats of that function apply here. - - - - - -<hr><h3><a name="luaL_checktype"><code>luaL_checktype</code></a></h3><p> -<span class="apii">[-0, +0, <em>v</em>]</span> -<pre>void luaL_checktype (lua_State *L, int arg, int t);</pre> - -<p> -Checks whether the function argument <code>arg</code> has type <code>t</code>. -See <a href="#lua_type"><code>lua_type</code></a> for the encoding of types for <code>t</code>. - - - - - -<hr><h3><a name="luaL_checkudata"><code>luaL_checkudata</code></a></h3><p> -<span class="apii">[-0, +0, <em>v</em>]</span> -<pre>void *luaL_checkudata (lua_State *L, int arg, const char *tname);</pre> - -<p> -Checks whether the function argument <code>arg</code> is a userdata -of the type <code>tname</code> (see <a href="#luaL_newmetatable"><code>luaL_newmetatable</code></a>) and -returns the userdata address (see <a href="#lua_touserdata"><code>lua_touserdata</code></a>). - - - - - -<hr><h3><a name="luaL_checkunsigned"><code>luaL_checkunsigned</code></a></h3><p> -<span class="apii">[-0, +0, <em>v</em>]</span> -<pre>lua_Unsigned luaL_checkunsigned (lua_State *L, int arg);</pre> - -<p> -Checks whether the function argument <code>arg</code> is a number -and returns this number cast to a <a href="#lua_Unsigned"><code>lua_Unsigned</code></a>. - - - - - -<hr><h3><a name="luaL_checkversion"><code>luaL_checkversion</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>void luaL_checkversion (lua_State *L);</pre> - -<p> -Checks whether the core running the call, -the core that created the Lua state, -and the code making the call are all using the same version of Lua. -Also checks whether the core running the call -and the core that created the Lua state -are using the same address space. - - - - - -<hr><h3><a name="luaL_dofile"><code>luaL_dofile</code></a></h3><p> -<span class="apii">[-0, +?, <em>e</em>]</span> -<pre>int luaL_dofile (lua_State *L, const char *filename);</pre> - -<p> -Loads and runs the given file. -It is defined as the following macro: - -<pre> - (luaL_loadfile(L, filename) || lua_pcall(L, 0, LUA_MULTRET, 0)) -</pre><p> -It returns false if there are no errors -or true in case of errors. - - - - - -<hr><h3><a name="luaL_dostring"><code>luaL_dostring</code></a></h3><p> -<span class="apii">[-0, +?, –]</span> -<pre>int luaL_dostring (lua_State *L, const char *str);</pre> - -<p> -Loads and runs the given string. -It is defined as the following macro: - -<pre> - (luaL_loadstring(L, str) || lua_pcall(L, 0, LUA_MULTRET, 0)) -</pre><p> -It returns false if there are no errors -or true in case of errors. - - - - - -<hr><h3><a name="luaL_error"><code>luaL_error</code></a></h3><p> -<span class="apii">[-0, +0, <em>v</em>]</span> -<pre>int luaL_error (lua_State *L, const char *fmt, ...);</pre> - -<p> -Raises an error. -The error message format is given by <code>fmt</code> -plus any extra arguments, -following the same rules of <a href="#lua_pushfstring"><code>lua_pushfstring</code></a>. -It also adds at the beginning of the message the file name and -the line number where the error occurred, -if this information is available. - - -<p> -This function never returns, -but it is an idiom to use it in C functions -as <code>return luaL_error(<em>args</em>)</code>. - - - - - -<hr><h3><a name="luaL_execresult"><code>luaL_execresult</code></a></h3><p> -<span class="apii">[-0, +3, <em>e</em>]</span> -<pre>int luaL_execresult (lua_State *L, int stat);</pre> - -<p> -This function produces the return values for -process-related functions in the standard library -(<a href="#pdf-os.execute"><code>os.execute</code></a> and <a href="#pdf-io.close"><code>io.close</code></a>). - - - - - -<hr><h3><a name="luaL_fileresult"><code>luaL_fileresult</code></a></h3><p> -<span class="apii">[-0, +(1|3), <em>e</em>]</span> -<pre>int luaL_fileresult (lua_State *L, int stat, const char *fname);</pre> - -<p> -This function produces the return values for -file-related functions in the standard library -(<a href="#pdf-io.open"><code>io.open</code></a>, <a href="#pdf-os.rename"><code>os.rename</code></a>, <a href="#pdf-file:seek"><code>file:seek</code></a>, etc.). - - - - - -<hr><h3><a name="luaL_getmetafield"><code>luaL_getmetafield</code></a></h3><p> -<span class="apii">[-0, +(0|1), <em>e</em>]</span> -<pre>int luaL_getmetafield (lua_State *L, int obj, const char *e);</pre> - -<p> -Pushes onto the stack the field <code>e</code> from the metatable -of the object at index <code>obj</code>. -If the object does not have a metatable, -or if the metatable does not have this field, -returns false and pushes nothing. - - - - - -<hr><h3><a name="luaL_getmetatable"><code>luaL_getmetatable</code></a></h3><p> -<span class="apii">[-0, +1, –]</span> -<pre>void luaL_getmetatable (lua_State *L, const char *tname);</pre> - -<p> -Pushes onto the stack the metatable associated with name <code>tname</code> -in the registry (see <a href="#luaL_newmetatable"><code>luaL_newmetatable</code></a>). - - - - - -<hr><h3><a name="luaL_getsubtable"><code>luaL_getsubtable</code></a></h3><p> -<span class="apii">[-0, +1, <em>e</em>]</span> -<pre>int luaL_getsubtable (lua_State *L, int idx, const char *fname);</pre> - -<p> -Ensures that the value <code>t[fname]</code>, -where <code>t</code> is the value at index <code>idx</code>, -is a table, -and pushes that table onto the stack. -Returns true if it finds a previous table there -and false if it creates a new table. - - - - - -<hr><h3><a name="luaL_gsub"><code>luaL_gsub</code></a></h3><p> -<span class="apii">[-0, +1, <em>e</em>]</span> -<pre>const char *luaL_gsub (lua_State *L, - const char *s, - const char *p, - const char *r);</pre> - -<p> -Creates a copy of string <code>s</code> by replacing -any occurrence of the string <code>p</code> -with the string <code>r</code>. -Pushes the resulting string on the stack and returns it. - - - - - -<hr><h3><a name="luaL_len"><code>luaL_len</code></a></h3><p> -<span class="apii">[-0, +0, <em>e</em>]</span> -<pre>int luaL_len (lua_State *L, int index);</pre> - -<p> -Returns the "length" of the value at the given index -as a number; -it is equivalent to the '<code>#</code>' operator in Lua (see <a href="#3.4.6">§3.4.6</a>). -Raises an error if the result of the operation is not a number. -(This case only can happen through metamethods.) - - - - - -<hr><h3><a name="luaL_loadbuffer"><code>luaL_loadbuffer</code></a></h3><p> -<span class="apii">[-0, +1, –]</span> -<pre>int luaL_loadbuffer (lua_State *L, - const char *buff, - size_t sz, - const char *name);</pre> - -<p> -Equivalent to <a href="#luaL_loadbufferx"><code>luaL_loadbufferx</code></a> with <code>mode</code> equal to <code>NULL</code>. - - - - - -<hr><h3><a name="luaL_loadbufferx"><code>luaL_loadbufferx</code></a></h3><p> -<span class="apii">[-0, +1, –]</span> -<pre>int luaL_loadbufferx (lua_State *L, - const char *buff, - size_t sz, - const char *name, - const char *mode);</pre> - -<p> -Loads a buffer as a Lua chunk. -This function uses <a href="#lua_load"><code>lua_load</code></a> to load the chunk in the -buffer pointed to by <code>buff</code> with size <code>sz</code>. - - -<p> -This function returns the same results as <a href="#lua_load"><code>lua_load</code></a>. -<code>name</code> is the chunk name, -used for debug information and error messages. -The string <code>mode</code> works as in function <a href="#lua_load"><code>lua_load</code></a>. - - - - - -<hr><h3><a name="luaL_loadfile"><code>luaL_loadfile</code></a></h3><p> -<span class="apii">[-0, +1, <em>e</em>]</span> -<pre>int luaL_loadfile (lua_State *L, const char *filename);</pre> - -<p> -Equivalent to <a href="#luaL_loadfilex"><code>luaL_loadfilex</code></a> with <code>mode</code> equal to <code>NULL</code>. - - - - - -<hr><h3><a name="luaL_loadfilex"><code>luaL_loadfilex</code></a></h3><p> -<span class="apii">[-0, +1, <em>e</em>]</span> -<pre>int luaL_loadfilex (lua_State *L, const char *filename, - const char *mode);</pre> - -<p> -Loads a file as a Lua chunk. -This function uses <a href="#lua_load"><code>lua_load</code></a> to load the chunk in the file -named <code>filename</code>. -If <code>filename</code> is <code>NULL</code>, -then it loads from the standard input. -The first line in the file is ignored if it starts with a <code>#</code>. - - -<p> -The string <code>mode</code> works as in function <a href="#lua_load"><code>lua_load</code></a>. - - -<p> -This function returns the same results as <a href="#lua_load"><code>lua_load</code></a>, -but it has an extra error code <a name="pdf-LUA_ERRFILE"><code>LUA_ERRFILE</code></a> -if it cannot open/read the file or the file has a wrong mode. - - -<p> -As <a href="#lua_load"><code>lua_load</code></a>, this function only loads the chunk; -it does not run it. - - - - - -<hr><h3><a name="luaL_loadstring"><code>luaL_loadstring</code></a></h3><p> -<span class="apii">[-0, +1, –]</span> -<pre>int luaL_loadstring (lua_State *L, const char *s);</pre> - -<p> -Loads a string as a Lua chunk. -This function uses <a href="#lua_load"><code>lua_load</code></a> to load the chunk in -the zero-terminated string <code>s</code>. - - -<p> -This function returns the same results as <a href="#lua_load"><code>lua_load</code></a>. - - -<p> -Also as <a href="#lua_load"><code>lua_load</code></a>, this function only loads the chunk; -it does not run it. - - - - - -<hr><h3><a name="luaL_newlib"><code>luaL_newlib</code></a></h3><p> -<span class="apii">[-0, +1, <em>e</em>]</span> -<pre>void luaL_newlib (lua_State *L, const luaL_Reg *l);</pre> - -<p> -Creates a new table and registers there -the functions in list <code>l</code>. -It is implemented as the following macro: - -<pre> - (luaL_newlibtable(L,l), luaL_setfuncs(L,l,0)) -</pre> - - - - -<hr><h3><a name="luaL_newlibtable"><code>luaL_newlibtable</code></a></h3><p> -<span class="apii">[-0, +1, <em>e</em>]</span> -<pre>void luaL_newlibtable (lua_State *L, const luaL_Reg l[]);</pre> - -<p> -Creates a new table with a size optimized -to store all entries in the array <code>l</code> -(but does not actually store them). -It is intended to be used in conjunction with <a href="#luaL_setfuncs"><code>luaL_setfuncs</code></a> -(see <a href="#luaL_newlib"><code>luaL_newlib</code></a>). - - -<p> -It is implemented as a macro. -The array <code>l</code> must be the actual array, -not a pointer to it. - - - - - -<hr><h3><a name="luaL_newmetatable"><code>luaL_newmetatable</code></a></h3><p> -<span class="apii">[-0, +1, <em>e</em>]</span> -<pre>int luaL_newmetatable (lua_State *L, const char *tname);</pre> - -<p> -If the registry already has the key <code>tname</code>, -returns 0. -Otherwise, -creates a new table to be used as a metatable for userdata, -adds it to the registry with key <code>tname</code>, -and returns 1. - - -<p> -In both cases pushes onto the stack the final value associated -with <code>tname</code> in the registry. - - - - - -<hr><h3><a name="luaL_newstate"><code>luaL_newstate</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>lua_State *luaL_newstate (void);</pre> - -<p> -Creates a new Lua state. -It calls <a href="#lua_newstate"><code>lua_newstate</code></a> with an -allocator based on the standard C <code>realloc</code> function -and then sets a panic function (see <a href="#4.6">§4.6</a>) that prints -an error message to the standard error output in case of fatal -errors. - - -<p> -Returns the new state, -or <code>NULL</code> if there is a memory allocation error. - - - - - -<hr><h3><a name="luaL_openlibs"><code>luaL_openlibs</code></a></h3><p> -<span class="apii">[-0, +0, <em>e</em>]</span> -<pre>void luaL_openlibs (lua_State *L);</pre> - -<p> -Opens all standard Lua libraries into the given state. - - - - - -<hr><h3><a name="luaL_optint"><code>luaL_optint</code></a></h3><p> -<span class="apii">[-0, +0, <em>v</em>]</span> -<pre>int luaL_optint (lua_State *L, int arg, int d);</pre> - -<p> -If the function argument <code>arg</code> is a number, -returns this number cast to an <code>int</code>. -If this argument is absent or is <b>nil</b>, -returns <code>d</code>. -Otherwise, raises an error. - - - - - -<hr><h3><a name="luaL_optinteger"><code>luaL_optinteger</code></a></h3><p> -<span class="apii">[-0, +0, <em>v</em>]</span> -<pre>lua_Integer luaL_optinteger (lua_State *L, - int arg, - lua_Integer d);</pre> - -<p> -If the function argument <code>arg</code> is a number, -returns this number cast to a <a href="#lua_Integer"><code>lua_Integer</code></a>. -If this argument is absent or is <b>nil</b>, -returns <code>d</code>. -Otherwise, raises an error. - - - - - -<hr><h3><a name="luaL_optlong"><code>luaL_optlong</code></a></h3><p> -<span class="apii">[-0, +0, <em>v</em>]</span> -<pre>long luaL_optlong (lua_State *L, int arg, long d);</pre> - -<p> -If the function argument <code>arg</code> is a number, -returns this number cast to a <code>long</code>. -If this argument is absent or is <b>nil</b>, -returns <code>d</code>. -Otherwise, raises an error. - - - - - -<hr><h3><a name="luaL_optlstring"><code>luaL_optlstring</code></a></h3><p> -<span class="apii">[-0, +0, <em>v</em>]</span> -<pre>const char *luaL_optlstring (lua_State *L, - int arg, - const char *d, - size_t *l);</pre> - -<p> -If the function argument <code>arg</code> is a string, -returns this string. -If this argument is absent or is <b>nil</b>, -returns <code>d</code>. -Otherwise, raises an error. - - -<p> -If <code>l</code> is not <code>NULL</code>, -fills the position <code>*l</code> with the result's length. - - - - - -<hr><h3><a name="luaL_optnumber"><code>luaL_optnumber</code></a></h3><p> -<span class="apii">[-0, +0, <em>v</em>]</span> -<pre>lua_Number luaL_optnumber (lua_State *L, int arg, lua_Number d);</pre> - -<p> -If the function argument <code>arg</code> is a number, -returns this number. -If this argument is absent or is <b>nil</b>, -returns <code>d</code>. -Otherwise, raises an error. - - - - - -<hr><h3><a name="luaL_optstring"><code>luaL_optstring</code></a></h3><p> -<span class="apii">[-0, +0, <em>v</em>]</span> -<pre>const char *luaL_optstring (lua_State *L, - int arg, - const char *d);</pre> - -<p> -If the function argument <code>arg</code> is a string, -returns this string. -If this argument is absent or is <b>nil</b>, -returns <code>d</code>. -Otherwise, raises an error. - - - - - -<hr><h3><a name="luaL_optunsigned"><code>luaL_optunsigned</code></a></h3><p> -<span class="apii">[-0, +0, <em>v</em>]</span> -<pre>lua_Unsigned luaL_optunsigned (lua_State *L, - int arg, - lua_Unsigned u);</pre> - -<p> -If the function argument <code>arg</code> is a number, -returns this number cast to a <a href="#lua_Unsigned"><code>lua_Unsigned</code></a>. -If this argument is absent or is <b>nil</b>, -returns <code>u</code>. -Otherwise, raises an error. - - - - - -<hr><h3><a name="luaL_prepbuffer"><code>luaL_prepbuffer</code></a></h3><p> -<span class="apii">[-?, +?, <em>e</em>]</span> -<pre>char *luaL_prepbuffer (luaL_Buffer *B);</pre> - -<p> -Equivalent to <a href="#luaL_prepbuffsize"><code>luaL_prepbuffsize</code></a> -with the predefined size <a name="pdf-LUAL_BUFFERSIZE"><code>LUAL_BUFFERSIZE</code></a>. - - - - - -<hr><h3><a name="luaL_prepbuffsize"><code>luaL_prepbuffsize</code></a></h3><p> -<span class="apii">[-?, +?, <em>e</em>]</span> -<pre>char *luaL_prepbuffsize (luaL_Buffer *B, size_t sz);</pre> - -<p> -Returns an address to a space of size <code>sz</code> -where you can copy a string to be added to buffer <code>B</code> -(see <a href="#luaL_Buffer"><code>luaL_Buffer</code></a>). -After copying the string into this space you must call -<a href="#luaL_addsize"><code>luaL_addsize</code></a> with the size of the string to actually add -it to the buffer. - - - - - -<hr><h3><a name="luaL_pushresult"><code>luaL_pushresult</code></a></h3><p> -<span class="apii">[-?, +1, <em>e</em>]</span> -<pre>void luaL_pushresult (luaL_Buffer *B);</pre> - -<p> -Finishes the use of buffer <code>B</code> leaving the final string on -the top of the stack. - - - - - -<hr><h3><a name="luaL_pushresultsize"><code>luaL_pushresultsize</code></a></h3><p> -<span class="apii">[-?, +1, <em>e</em>]</span> -<pre>void luaL_pushresultsize (luaL_Buffer *B, size_t sz);</pre> - -<p> -Equivalent to the sequence <a href="#luaL_addsize"><code>luaL_addsize</code></a>, <a href="#luaL_pushresult"><code>luaL_pushresult</code></a>. - - - - - -<hr><h3><a name="luaL_ref"><code>luaL_ref</code></a></h3><p> -<span class="apii">[-1, +0, <em>e</em>]</span> -<pre>int luaL_ref (lua_State *L, int t);</pre> - -<p> -Creates and returns a <em>reference</em>, -in the table at index <code>t</code>, -for the object at the top of the stack (and pops the object). - - -<p> -A reference is a unique integer key. -As long as you do not manually add integer keys into table <code>t</code>, -<a href="#luaL_ref"><code>luaL_ref</code></a> ensures the uniqueness of the key it returns. -You can retrieve an object referred by reference <code>r</code> -by calling <code>lua_rawgeti(L, t, r)</code>. -Function <a href="#luaL_unref"><code>luaL_unref</code></a> frees a reference and its associated object. - - -<p> -If the object at the top of the stack is <b>nil</b>, -<a href="#luaL_ref"><code>luaL_ref</code></a> returns the constant <a name="pdf-LUA_REFNIL"><code>LUA_REFNIL</code></a>. -The constant <a name="pdf-LUA_NOREF"><code>LUA_NOREF</code></a> is guaranteed to be different -from any reference returned by <a href="#luaL_ref"><code>luaL_ref</code></a>. - - - - - -<hr><h3><a name="luaL_Reg"><code>luaL_Reg</code></a></h3> -<pre>typedef struct luaL_Reg { - const char *name; - lua_CFunction func; -} luaL_Reg;</pre> - -<p> -Type for arrays of functions to be registered by -<a href="#luaL_setfuncs"><code>luaL_setfuncs</code></a>. -<code>name</code> is the function name and <code>func</code> is a pointer to -the function. -Any array of <a href="#luaL_Reg"><code>luaL_Reg</code></a> must end with an sentinel entry -in which both <code>name</code> and <code>func</code> are <code>NULL</code>. - - - - - -<hr><h3><a name="luaL_requiref"><code>luaL_requiref</code></a></h3><p> -<span class="apii">[-0, +1, <em>e</em>]</span> -<pre>void luaL_requiref (lua_State *L, const char *modname, - lua_CFunction openf, int glb);</pre> - -<p> -Calls function <code>openf</code> with string <code>modname</code> as an argument -and sets the call result in <code>package.loaded[modname]</code>, -as if that function has been called through <a href="#pdf-require"><code>require</code></a>. - - -<p> -If <code>glb</code> is true, -also stores the result into global <code>modname</code>. - - -<p> -Leaves a copy of that result on the stack. - - - - - -<hr><h3><a name="luaL_setfuncs"><code>luaL_setfuncs</code></a></h3><p> -<span class="apii">[-nup, +0, <em>e</em>]</span> -<pre>void luaL_setfuncs (lua_State *L, const luaL_Reg *l, int nup);</pre> - -<p> -Registers all functions in the array <code>l</code> -(see <a href="#luaL_Reg"><code>luaL_Reg</code></a>) into the table on the top of the stack -(below optional upvalues, see next). - - -<p> -When <code>nup</code> is not zero, -all functions are created sharing <code>nup</code> upvalues, -which must be previously pushed on the stack -on top of the library table. -These values are popped from the stack after the registration. - - - - - -<hr><h3><a name="luaL_setmetatable"><code>luaL_setmetatable</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>void luaL_setmetatable (lua_State *L, const char *tname);</pre> - -<p> -Sets the metatable of the object at the top of the stack -as the metatable associated with name <code>tname</code> -in the registry (see <a href="#luaL_newmetatable"><code>luaL_newmetatable</code></a>). - - - - - -<hr><h3><a name="luaL_testudata"><code>luaL_testudata</code></a></h3><p> -<span class="apii">[-0, +0, <em>e</em>]</span> -<pre>void *luaL_testudata (lua_State *L, int arg, const char *tname);</pre> - -<p> -This function works like <a href="#luaL_checkudata"><code>luaL_checkudata</code></a>, -except that, when the test fails, -it returns <code>NULL</code> instead of throwing an error. - - - - - -<hr><h3><a name="luaL_tolstring"><code>luaL_tolstring</code></a></h3><p> -<span class="apii">[-0, +1, <em>e</em>]</span> -<pre>const char *luaL_tolstring (lua_State *L, int idx, size_t *len);</pre> - -<p> -Converts any Lua value at the given index to a C string -in a reasonable format. -The resulting string is pushed onto the stack and also -returned by the function. -If <code>len</code> is not <code>NULL</code>, -the function also sets <code>*len</code> with the string length. - - -<p> -If the value has a metatable with a <code>"__tostring"</code> field, -then <code>luaL_tolstring</code> calls the corresponding metamethod -with the value as argument, -and uses the result of the call as its result. - - - - - -<hr><h3><a name="luaL_traceback"><code>luaL_traceback</code></a></h3><p> -<span class="apii">[-0, +1, <em>e</em>]</span> -<pre>void luaL_traceback (lua_State *L, lua_State *L1, const char *msg, - int level);</pre> - -<p> -Creates and pushes a traceback of the stack <code>L1</code>. -If <code>msg</code> is not <code>NULL</code> it is appended -at the beginning of the traceback. -The <code>level</code> parameter tells at which level -to start the traceback. - - - - - -<hr><h3><a name="luaL_typename"><code>luaL_typename</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>const char *luaL_typename (lua_State *L, int index);</pre> - -<p> -Returns the name of the type of the value at the given index. - - - - - -<hr><h3><a name="luaL_unref"><code>luaL_unref</code></a></h3><p> -<span class="apii">[-0, +0, –]</span> -<pre>void luaL_unref (lua_State *L, int t, int ref);</pre> - -<p> -Releases reference <code>ref</code> from the table at index <code>t</code> -(see <a href="#luaL_ref"><code>luaL_ref</code></a>). -The entry is removed from the table, -so that the referred object can be collected. -The reference <code>ref</code> is also freed to be used again. - - -<p> -If <code>ref</code> is <a href="#pdf-LUA_NOREF"><code>LUA_NOREF</code></a> or <a href="#pdf-LUA_REFNIL"><code>LUA_REFNIL</code></a>, -<a href="#luaL_unref"><code>luaL_unref</code></a> does nothing. - - - - - -<hr><h3><a name="luaL_where"><code>luaL_where</code></a></h3><p> -<span class="apii">[-0, +1, <em>e</em>]</span> -<pre>void luaL_where (lua_State *L, int lvl);</pre> - -<p> -Pushes onto the stack a string identifying the current position -of the control at level <code>lvl</code> in the call stack. -Typically this string has the following format: - -<pre> - <em>chunkname</em>:<em>currentline</em>: -</pre><p> -Level 0 is the running function, -level 1 is the function that called the running function, -etc. - - -<p> -This function is used to build a prefix for error messages. - - - - - - - -<h1>6 – <a name="6">Standard Libraries</a></h1> - -<p> -The standard Lua libraries provide useful functions -that are implemented directly through the C API. -Some of these functions provide essential services to the language -(e.g., <a href="#pdf-type"><code>type</code></a> and <a href="#pdf-getmetatable"><code>getmetatable</code></a>); -others provide access to "outside" services (e.g., I/O); -and others could be implemented in Lua itself, -but are quite useful or have critical performance requirements that -deserve an implementation in C (e.g., <a href="#pdf-table.sort"><code>table.sort</code></a>). - - -<p> -All libraries are implemented through the official C API -and are provided as separate C modules. -Currently, Lua has the following standard libraries: - -<ul> - -<li>basic library (<a href="#6.1">§6.1</a>);</li> - -<li>coroutine library (<a href="#6.2">§6.2</a>);</li> - -<li>package library (<a href="#6.3">§6.3</a>);</li> - -<li>string manipulation (<a href="#6.4">§6.4</a>);</li> - -<li>table manipulation (<a href="#6.5">§6.5</a>);</li> - -<li>mathematical functions (<a href="#6.6">§6.6</a>) (sin, log, etc.);</li> - -<li>bitwise operations (<a href="#6.7">§6.7</a>);</li> - -<li>input and output (<a href="#6.8">§6.8</a>);</li> - -<li>operating system facilities (<a href="#6.9">§6.9</a>);</li> - -<li>debug facilities (<a href="#6.10">§6.10</a>).</li> - -</ul><p> -Except for the basic and the package libraries, -each library provides all its functions as fields of a global table -or as methods of its objects. - - -<p> -To have access to these libraries, -the C host program should call the <a href="#luaL_openlibs"><code>luaL_openlibs</code></a> function, -which opens all standard libraries. -Alternatively, -the host program can open them individually by using -<a href="#luaL_requiref"><code>luaL_requiref</code></a> to call -<a name="pdf-luaopen_base"><code>luaopen_base</code></a> (for the basic library), -<a name="pdf-luaopen_package"><code>luaopen_package</code></a> (for the package library), -<a name="pdf-luaopen_coroutine"><code>luaopen_coroutine</code></a> (for the coroutine library), -<a name="pdf-luaopen_string"><code>luaopen_string</code></a> (for the string library), -<a name="pdf-luaopen_table"><code>luaopen_table</code></a> (for the table library), -<a name="pdf-luaopen_math"><code>luaopen_math</code></a> (for the mathematical library), -<a name="pdf-luaopen_bit32"><code>luaopen_bit32</code></a> (for the bit library), -<a name="pdf-luaopen_io"><code>luaopen_io</code></a> (for the I/O library), -<a name="pdf-luaopen_os"><code>luaopen_os</code></a> (for the Operating System library), -and <a name="pdf-luaopen_debug"><code>luaopen_debug</code></a> (for the debug library). -These functions are declared in <a name="pdf-lualib.h"><code>lualib.h</code></a>. - - - -<h2>6.1 – <a name="6.1">Basic Functions</a></h2> - -<p> -The basic library provides core functions to Lua. -If you do not include this library in your application, -you should check carefully whether you need to provide -implementations for some of its facilities. - - -<p> -<hr><h3><a name="pdf-assert"><code>assert (v [, message])</code></a></h3> -Issues an error when -the value of its argument <code>v</code> is false (i.e., <b>nil</b> or <b>false</b>); -otherwise, returns all its arguments. -<code>message</code> is an error message; -when absent, it defaults to "assertion failed!" - - - - -<p> -<hr><h3><a name="pdf-collectgarbage"><code>collectgarbage ([opt [, arg]])</code></a></h3> - - -<p> -This function is a generic interface to the garbage collector. -It performs different functions according to its first argument, <code>opt</code>: - -<ul> - -<li><b>"<code>collect</code>": </b> -performs a full garbage-collection cycle. -This is the default option. -</li> - -<li><b>"<code>stop</code>": </b> -stops automatic execution of the garbage collector. -The collector will run only when explicitly invoked, -until a call to restart it. -</li> - -<li><b>"<code>restart</code>": </b> -restarts automatic execution of the garbage collector. -</li> - -<li><b>"<code>count</code>": </b> -returns the total memory in use by Lua (in Kbytes) and -a second value with the total memory in bytes modulo 1024. -The first value has a fractional part, -so the following equality is always true: - -<pre> - k, b = collectgarbage("count") - assert(k*1024 == math.floor(k)*1024 + b) -</pre><p> -(The second result is useful when Lua is compiled -with a non floating-point type for numbers.) -</li> - -<li><b>"<code>step</code>": </b> -performs a garbage-collection step. -The step "size" is controlled by <code>arg</code> -(larger values mean more steps) in a non-specified way. -If you want to control the step size -you must experimentally tune the value of <code>arg</code>. -Returns <b>true</b> if the step finished a collection cycle. -</li> - -<li><b>"<code>setpause</code>": </b> -sets <code>arg</code> as the new value for the <em>pause</em> of -the collector (see <a href="#2.5">§2.5</a>). -Returns the previous value for <em>pause</em>. -</li> - -<li><b>"<code>setstepmul</code>": </b> -sets <code>arg</code> as the new value for the <em>step multiplier</em> of -the collector (see <a href="#2.5">§2.5</a>). -Returns the previous value for <em>step</em>. -</li> - -<li><b>"<code>isrunning</code>": </b> -returns a boolean that tells whether the collector is running -(i.e., not stopped). -</li> - -<li><b>"<code>generational</code>": </b> -changes the collector to generational mode. -This is an experimental feature (see <a href="#2.5">§2.5</a>). -</li> - -<li><b>"<code>incremental</code>": </b> -changes the collector to incremental mode. -This is the default mode. -</li> - -</ul> - - - -<p> -<hr><h3><a name="pdf-dofile"><code>dofile ([filename])</code></a></h3> -Opens the named file and executes its contents as a Lua chunk. -When called without arguments, -<code>dofile</code> executes the contents of the standard input (<code>stdin</code>). -Returns all values returned by the chunk. -In case of errors, <code>dofile</code> propagates the error -to its caller (that is, <code>dofile</code> does not run in protected mode). - - - - -<p> -<hr><h3><a name="pdf-error"><code>error (message [, level])</code></a></h3> -Terminates the last protected function called -and returns <code>message</code> as the error message. -Function <code>error</code> never returns. - - -<p> -Usually, <code>error</code> adds some information about the error position -at the beginning of the message, if the message is a string. -The <code>level</code> argument specifies how to get the error position. -With level 1 (the default), the error position is where the -<code>error</code> function was called. -Level 2 points the error to where the function -that called <code>error</code> was called; and so on. -Passing a level 0 avoids the addition of error position information -to the message. - - - - -<p> -<hr><h3><a name="pdf-_G"><code>_G</code></a></h3> -A global variable (not a function) that -holds the global environment (see <a href="#2.2">§2.2</a>). -Lua itself does not use this variable; -changing its value does not affect any environment, -nor vice-versa. - - - - -<p> -<hr><h3><a name="pdf-getmetatable"><code>getmetatable (object)</code></a></h3> - - -<p> -If <code>object</code> does not have a metatable, returns <b>nil</b>. -Otherwise, -if the object's metatable has a <code>"__metatable"</code> field, -returns the associated value. -Otherwise, returns the metatable of the given object. - - - - -<p> -<hr><h3><a name="pdf-ipairs"><code>ipairs (t)</code></a></h3> - - -<p> -If <code>t</code> has a metamethod <code>__ipairs</code>, -calls it with <code>t</code> as argument and returns the first three -results from the call. - - -<p> -Otherwise, -returns three values: an iterator function, the table <code>t</code>, and 0, -so that the construction - -<pre> - for i,v in ipairs(t) do <em>body</em> end -</pre><p> -will iterate over the pairs (<code>1,t[1]</code>), (<code>2,t[2]</code>), ..., -up to the first integer key absent from the table. - - - - -<p> -<hr><h3><a name="pdf-load"><code>load (ld [, source [, mode [, env]]])</code></a></h3> - - -<p> -Loads a chunk. - - -<p> -If <code>ld</code> is a string, the chunk is this string. -If <code>ld</code> is a function, -<code>load</code> calls it repeatedly to get the chunk pieces. -Each call to <code>ld</code> must return a string that concatenates -with previous results. -A return of an empty string, <b>nil</b>, or no value signals the end of the chunk. - - -<p> -If there are no syntactic errors, -returns the compiled chunk as a function; -otherwise, returns <b>nil</b> plus the error message. - - -<p> -If the resulting function has upvalues, -the first upvalue is set to the value of <code>env</code>, -if that parameter is given, -or to the value of the global environment. -(When you load a main chunk, -the resulting function will always have exactly one upvalue, -the <code>_ENV</code> variable (see <a href="#2.2">§2.2</a>). -When you load a binary chunk created from a function (see <a href="#pdf-string.dump"><code>string.dump</code></a>), -the resulting function can have arbitrary upvalues.) - - -<p> -<code>source</code> is used as the source of the chunk for error messages -and debug information (see <a href="#4.9">§4.9</a>). -When absent, -it defaults to <code>ld</code>, if <code>ld</code> is a string, -or to "<code>=(load)</code>" otherwise. - - -<p> -The string <code>mode</code> controls whether the chunk can be text or binary -(that is, a precompiled chunk). -It may be the string "<code>b</code>" (only binary chunks), -"<code>t</code>" (only text chunks), -or "<code>bt</code>" (both binary and text). -The default is "<code>bt</code>". - - - - -<p> -<hr><h3><a name="pdf-loadfile"><code>loadfile ([filename [, mode [, env]]])</code></a></h3> - - -<p> -Similar to <a href="#pdf-load"><code>load</code></a>, -but gets the chunk from file <code>filename</code> -or from the standard input, -if no file name is given. - - - - -<p> -<hr><h3><a name="pdf-next"><code>next (table [, index])</code></a></h3> - - -<p> -Allows a program to traverse all fields of a table. -Its first argument is a table and its second argument -is an index in this table. -<code>next</code> returns the next index of the table -and its associated value. -When called with <b>nil</b> as its second argument, -<code>next</code> returns an initial index -and its associated value. -When called with the last index, -or with <b>nil</b> in an empty table, -<code>next</code> returns <b>nil</b>. -If the second argument is absent, then it is interpreted as <b>nil</b>. -In particular, -you can use <code>next(t)</code> to check whether a table is empty. - - -<p> -The order in which the indices are enumerated is not specified, -<em>even for numeric indices</em>. -(To traverse a table in numeric order, -use a numerical <b>for</b>.) - - -<p> -The behavior of <code>next</code> is undefined if, -during the traversal, -you assign any value to a non-existent field in the table. -You may however modify existing fields. -In particular, you may clear existing fields. - - - - -<p> -<hr><h3><a name="pdf-pairs"><code>pairs (t)</code></a></h3> - - -<p> -If <code>t</code> has a metamethod <code>__pairs</code>, -calls it with <code>t</code> as argument and returns the first three -results from the call. - - -<p> -Otherwise, -returns three values: the <a href="#pdf-next"><code>next</code></a> function, the table <code>t</code>, and <b>nil</b>, -so that the construction - -<pre> - for k,v in pairs(t) do <em>body</em> end -</pre><p> -will iterate over all key–value pairs of table <code>t</code>. - - -<p> -See function <a href="#pdf-next"><code>next</code></a> for the caveats of modifying -the table during its traversal. - - - - -<p> -<hr><h3><a name="pdf-pcall"><code>pcall (f [, arg1, ···])</code></a></h3> - - -<p> -Calls function <code>f</code> with -the given arguments in <em>protected mode</em>. -This means that any error inside <code>f</code> is not propagated; -instead, <code>pcall</code> catches the error -and returns a status code. -Its first result is the status code (a boolean), -which is true if the call succeeds without errors. -In such case, <code>pcall</code> also returns all results from the call, -after this first result. -In case of any error, <code>pcall</code> returns <b>false</b> plus the error message. - - - - -<p> -<hr><h3><a name="pdf-print"><code>print (···)</code></a></h3> -Receives any number of arguments -and prints their values to <code>stdout</code>, -using the <a href="#pdf-tostring"><code>tostring</code></a> function to convert each argument to a string. -<code>print</code> is not intended for formatted output, -but only as a quick way to show a value, -for instance for debugging. -For complete control over the output, -use <a href="#pdf-string.format"><code>string.format</code></a> and <a href="#pdf-io.write"><code>io.write</code></a>. - - - - -<p> -<hr><h3><a name="pdf-rawequal"><code>rawequal (v1, v2)</code></a></h3> -Checks whether <code>v1</code> is equal to <code>v2</code>, -without invoking any metamethod. -Returns a boolean. - - - - -<p> -<hr><h3><a name="pdf-rawget"><code>rawget (table, index)</code></a></h3> -Gets the real value of <code>table[index]</code>, -without invoking any metamethod. -<code>table</code> must be a table; -<code>index</code> may be any value. - - - - -<p> -<hr><h3><a name="pdf-rawlen"><code>rawlen (v)</code></a></h3> -Returns the length of the object <code>v</code>, -which must be a table or a string, -without invoking any metamethod. -Returns an integer number. - - - - -<p> -<hr><h3><a name="pdf-rawset"><code>rawset (table, index, value)</code></a></h3> -Sets the real value of <code>table[index]</code> to <code>value</code>, -without invoking any metamethod. -<code>table</code> must be a table, -<code>index</code> any value different from <b>nil</b> and NaN, -and <code>value</code> any Lua value. - - -<p> -This function returns <code>table</code>. - - - - -<p> -<hr><h3><a name="pdf-select"><code>select (index, ···)</code></a></h3> - - -<p> -If <code>index</code> is a number, -returns all arguments after argument number <code>index</code>; -a negative number indexes from the end (-1 is the last argument). -Otherwise, <code>index</code> must be the string <code>"#"</code>, -and <code>select</code> returns the total number of extra arguments it received. - - - - -<p> -<hr><h3><a name="pdf-setmetatable"><code>setmetatable (table, metatable)</code></a></h3> - - -<p> -Sets the metatable for the given table. -(You cannot change the metatable of other types from Lua, only from C.) -If <code>metatable</code> is <b>nil</b>, -removes the metatable of the given table. -If the original metatable has a <code>"__metatable"</code> field, -raises an error. - - -<p> -This function returns <code>table</code>. - - - - -<p> -<hr><h3><a name="pdf-tonumber"><code>tonumber (e [, base])</code></a></h3> - - -<p> -When called with no <code>base</code>, -<code>tonumber</code> tries to convert its argument to a number. -If the argument is already a number or -a string convertible to a number (see <a href="#3.4.2">§3.4.2</a>), -then <code>tonumber</code> returns this number; -otherwise, it returns <b>nil</b>. - - -<p> -When called with <code>base</code>, -then <code>e</code> should be a string to be interpreted as -an integer numeral in that base. -The base may be any integer between 2 and 36, inclusive. -In bases above 10, the letter '<code>A</code>' (in either upper or lower case) -represents 10, '<code>B</code>' represents 11, and so forth, -with '<code>Z</code>' representing 35. -If the string <code>e</code> is not a valid numeral in the given base, -the function returns <b>nil</b>. - - - - -<p> -<hr><h3><a name="pdf-tostring"><code>tostring (v)</code></a></h3> -Receives a value of any type and -converts it to a string in a reasonable format. -(For complete control of how numbers are converted, -use <a href="#pdf-string.format"><code>string.format</code></a>.) - - -<p> -If the metatable of <code>v</code> has a <code>"__tostring"</code> field, -then <code>tostring</code> calls the corresponding value -with <code>v</code> as argument, -and uses the result of the call as its result. - - - - -<p> -<hr><h3><a name="pdf-type"><code>type (v)</code></a></h3> -Returns the type of its only argument, coded as a string. -The possible results of this function are -"<code>nil</code>" (a string, not the value <b>nil</b>), -"<code>number</code>", -"<code>string</code>", -"<code>boolean</code>", -"<code>table</code>", -"<code>function</code>", -"<code>thread</code>", -and "<code>userdata</code>". - - - - -<p> -<hr><h3><a name="pdf-_VERSION"><code>_VERSION</code></a></h3> -A global variable (not a function) that -holds a string containing the current interpreter version. -The current contents of this variable is "<code>Lua 5.2</code>". - - - - -<p> -<hr><h3><a name="pdf-xpcall"><code>xpcall (f, msgh [, arg1, ···])</code></a></h3> - - -<p> -This function is similar to <a href="#pdf-pcall"><code>pcall</code></a>, -except that it sets a new message handler <code>msgh</code>. - - - - - - - -<h2>6.2 – <a name="6.2">Coroutine Manipulation</a></h2> - -<p> -The operations related to coroutines comprise a sub-library of -the basic library and come inside the table <a name="pdf-coroutine"><code>coroutine</code></a>. -See <a href="#2.6">§2.6</a> for a general description of coroutines. - - -<p> -<hr><h3><a name="pdf-coroutine.create"><code>coroutine.create (f)</code></a></h3> - - -<p> -Creates a new coroutine, with body <code>f</code>. -<code>f</code> must be a Lua function. -Returns this new coroutine, -an object with type <code>"thread"</code>. - - - - -<p> -<hr><h3><a name="pdf-coroutine.resume"><code>coroutine.resume (co [, val1, ···])</code></a></h3> - - -<p> -Starts or continues the execution of coroutine <code>co</code>. -The first time you resume a coroutine, -it starts running its body. -The values <code>val1</code>, ... are passed -as the arguments to the body function. -If the coroutine has yielded, -<code>resume</code> restarts it; -the values <code>val1</code>, ... are passed -as the results from the yield. - - -<p> -If the coroutine runs without any errors, -<code>resume</code> returns <b>true</b> plus any values passed to <code>yield</code> -(if the coroutine yields) or any values returned by the body function -(if the coroutine terminates). -If there is any error, -<code>resume</code> returns <b>false</b> plus the error message. - - - - -<p> -<hr><h3><a name="pdf-coroutine.running"><code>coroutine.running ()</code></a></h3> - - -<p> -Returns the running coroutine plus a boolean, -true when the running coroutine is the main one. - - - - -<p> -<hr><h3><a name="pdf-coroutine.status"><code>coroutine.status (co)</code></a></h3> - - -<p> -Returns the status of coroutine <code>co</code>, as a string: -<code>"running"</code>, -if the coroutine is running (that is, it called <code>status</code>); -<code>"suspended"</code>, if the coroutine is suspended in a call to <code>yield</code>, -or if it has not started running yet; -<code>"normal"</code> if the coroutine is active but not running -(that is, it has resumed another coroutine); -and <code>"dead"</code> if the coroutine has finished its body function, -or if it has stopped with an error. - - - - -<p> -<hr><h3><a name="pdf-coroutine.wrap"><code>coroutine.wrap (f)</code></a></h3> - - -<p> -Creates a new coroutine, with body <code>f</code>. -<code>f</code> must be a Lua function. -Returns a function that resumes the coroutine each time it is called. -Any arguments passed to the function behave as the -extra arguments to <code>resume</code>. -Returns the same values returned by <code>resume</code>, -except the first boolean. -In case of error, propagates the error. - - - - -<p> -<hr><h3><a name="pdf-coroutine.yield"><code>coroutine.yield (···)</code></a></h3> - - -<p> -Suspends the execution of the calling coroutine. -Any arguments to <code>yield</code> are passed as extra results to <code>resume</code>. - - - - - - - -<h2>6.3 – <a name="6.3">Modules</a></h2> - -<p> -The package library provides basic -facilities for loading modules in Lua. -It exports one function directly in the global environment: -<a href="#pdf-require"><code>require</code></a>. -Everything else is exported in a table <a name="pdf-package"><code>package</code></a>. - - -<p> -<hr><h3><a name="pdf-require"><code>require (modname)</code></a></h3> - - -<p> -Loads the given module. -The function starts by looking into the <a href="#pdf-package.loaded"><code>package.loaded</code></a> table -to determine whether <code>modname</code> is already loaded. -If it is, then <code>require</code> returns the value stored -at <code>package.loaded[modname]</code>. -Otherwise, it tries to find a <em>loader</em> for the module. - - -<p> -To find a loader, -<code>require</code> is guided by the <a href="#pdf-package.searchers"><code>package.searchers</code></a> sequence. -By changing this sequence, -we can change how <code>require</code> looks for a module. -The following explanation is based on the default configuration -for <a href="#pdf-package.searchers"><code>package.searchers</code></a>. - - -<p> -First <code>require</code> queries <code>package.preload[modname]</code>. -If it has a value, -this value (which should be a function) is the loader. -Otherwise <code>require</code> searches for a Lua loader using the -path stored in <a href="#pdf-package.path"><code>package.path</code></a>. -If that also fails, it searches for a C loader using the -path stored in <a href="#pdf-package.cpath"><code>package.cpath</code></a>. -If that also fails, -it tries an <em>all-in-one</em> loader (see <a href="#pdf-package.searchers"><code>package.searchers</code></a>). - - -<p> -Once a loader is found, -<code>require</code> calls the loader with two arguments: -<code>modname</code> and an extra value dependent on how it got the loader. -(If the loader came from a file, -this extra value is the file name.) -If the loader returns any non-nil value, -<code>require</code> assigns the returned value to <code>package.loaded[modname]</code>. -If the loader does not return a non-nil value and -has not assigned any value to <code>package.loaded[modname]</code>, -then <code>require</code> assigns <b>true</b> to this entry. -In any case, <code>require</code> returns the -final value of <code>package.loaded[modname]</code>. - - -<p> -If there is any error loading or running the module, -or if it cannot find any loader for the module, -then <code>require</code> raises an error. - - - - -<p> -<hr><h3><a name="pdf-package.config"><code>package.config</code></a></h3> - - -<p> -A string describing some compile-time configurations for packages. -This string is a sequence of lines: - -<ul> - -<li>The first line is the directory separator string. -Default is '<code>\</code>' for Windows and '<code>/</code>' for all other systems.</li> - -<li>The second line is the character that separates templates in a path. -Default is '<code>;</code>'.</li> - -<li>The third line is the string that marks the -substitution points in a template. -Default is '<code>?</code>'.</li> - -<li>The fourth line is a string that, in a path in Windows, -is replaced by the executable's directory. -Default is '<code>!</code>'.</li> - -<li>The fifth line is a mark to ignore all text before it -when building the <code>luaopen_</code> function name. -Default is '<code>-</code>'.</li> - -</ul> - - - -<p> -<hr><h3><a name="pdf-package.cpath"><code>package.cpath</code></a></h3> - - -<p> -The path used by <a href="#pdf-require"><code>require</code></a> to search for a C loader. - - -<p> -Lua initializes the C path <a href="#pdf-package.cpath"><code>package.cpath</code></a> in the same way -it initializes the Lua path <a href="#pdf-package.path"><code>package.path</code></a>, -using the environment variable <a name="pdf-LUA_CPATH_5_2"><code>LUA_CPATH_5_2</code></a> -or the environment variable <a name="pdf-LUA_CPATH"><code>LUA_CPATH</code></a> -or a default path defined in <code>luaconf.h</code>. - - - - -<p> -<hr><h3><a name="pdf-package.loaded"><code>package.loaded</code></a></h3> - - -<p> -A table used by <a href="#pdf-require"><code>require</code></a> to control which -modules are already loaded. -When you require a module <code>modname</code> and -<code>package.loaded[modname]</code> is not false, -<a href="#pdf-require"><code>require</code></a> simply returns the value stored there. - - -<p> -This variable is only a reference to the real table; -assignments to this variable do not change the -table used by <a href="#pdf-require"><code>require</code></a>. - - - - -<p> -<hr><h3><a name="pdf-package.loadlib"><code>package.loadlib (libname, funcname)</code></a></h3> - - -<p> -Dynamically links the host program with the C library <code>libname</code>. - - -<p> -If <code>funcname</code> is "<code>*</code>", -then it only links with the library, -making the symbols exported by the library -available to other dynamically linked libraries. -Otherwise, -it looks for a function <code>funcname</code> inside the library -and returns this function as a C function. -So, <code>funcname</code> must follow the <a href="#lua_CFunction"><code>lua_CFunction</code></a> prototype -(see <a href="#lua_CFunction"><code>lua_CFunction</code></a>). - - -<p> -This is a low-level function. -It completely bypasses the package and module system. -Unlike <a href="#pdf-require"><code>require</code></a>, -it does not perform any path searching and -does not automatically adds extensions. -<code>libname</code> must be the complete file name of the C library, -including if necessary a path and an extension. -<code>funcname</code> must be the exact name exported by the C library -(which may depend on the C compiler and linker used). - - -<p> -This function is not supported by Standard C. -As such, it is only available on some platforms -(Windows, Linux, Mac OS X, Solaris, BSD, -plus other Unix systems that support the <code>dlfcn</code> standard). - - - - -<p> -<hr><h3><a name="pdf-package.path"><code>package.path</code></a></h3> - - -<p> -The path used by <a href="#pdf-require"><code>require</code></a> to search for a Lua loader. - - -<p> -At start-up, Lua initializes this variable with -the value of the environment variable <a name="pdf-LUA_PATH_5_2"><code>LUA_PATH_5_2</code></a> or -the environment variable <a name="pdf-LUA_PATH"><code>LUA_PATH</code></a> or -with a default path defined in <code>luaconf.h</code>, -if those environment variables are not defined. -Any "<code>;;</code>" in the value of the environment variable -is replaced by the default path. - - - - -<p> -<hr><h3><a name="pdf-package.preload"><code>package.preload</code></a></h3> - - -<p> -A table to store loaders for specific modules -(see <a href="#pdf-require"><code>require</code></a>). - - -<p> -This variable is only a reference to the real table; -assignments to this variable do not change the -table used by <a href="#pdf-require"><code>require</code></a>. - - - - -<p> -<hr><h3><a name="pdf-package.searchers"><code>package.searchers</code></a></h3> - - -<p> -A table used by <a href="#pdf-require"><code>require</code></a> to control how to load modules. - - -<p> -Each entry in this table is a <em>searcher function</em>. -When looking for a module, -<a href="#pdf-require"><code>require</code></a> calls each of these searchers in ascending order, -with the module name (the argument given to <a href="#pdf-require"><code>require</code></a>) as its -sole parameter. -The function can return another function (the module <em>loader</em>) -plus an extra value that will be passed to that loader, -or a string explaining why it did not find that module -(or <b>nil</b> if it has nothing to say). - - -<p> -Lua initializes this table with four searcher functions. - - -<p> -The first searcher simply looks for a loader in the -<a href="#pdf-package.preload"><code>package.preload</code></a> table. - - -<p> -The second searcher looks for a loader as a Lua library, -using the path stored at <a href="#pdf-package.path"><code>package.path</code></a>. -The search is done as described in function <a href="#pdf-package.searchpath"><code>package.searchpath</code></a>. - - -<p> -The third searcher looks for a loader as a C library, -using the path given by the variable <a href="#pdf-package.cpath"><code>package.cpath</code></a>. -Again, -the search is done as described in function <a href="#pdf-package.searchpath"><code>package.searchpath</code></a>. -For instance, -if the C path is the string - -<pre> - "./?.so;./?.dll;/usr/local/?/init.so" -</pre><p> -the searcher for module <code>foo</code> -will try to open the files <code>./foo.so</code>, <code>./foo.dll</code>, -and <code>/usr/local/foo/init.so</code>, in that order. -Once it finds a C library, -this searcher first uses a dynamic link facility to link the -application with the library. -Then it tries to find a C function inside the library to -be used as the loader. -The name of this C function is the string "<code>luaopen_</code>" -concatenated with a copy of the module name where each dot -is replaced by an underscore. -Moreover, if the module name has a hyphen, -its prefix up to (and including) the first hyphen is removed. -For instance, if the module name is <code>a.v1-b.c</code>, -the function name will be <code>luaopen_b_c</code>. - - -<p> -The fourth searcher tries an <em>all-in-one loader</em>. -It searches the C path for a library for -the root name of the given module. -For instance, when requiring <code>a.b.c</code>, -it will search for a C library for <code>a</code>. -If found, it looks into it for an open function for -the submodule; -in our example, that would be <code>luaopen_a_b_c</code>. -With this facility, a package can pack several C submodules -into one single library, -with each submodule keeping its original open function. - - -<p> -All searchers except the first one (preload) return as the extra value -the file name where the module was found, -as returned by <a href="#pdf-package.searchpath"><code>package.searchpath</code></a>. -The first searcher returns no extra value. - - - - -<p> -<hr><h3><a name="pdf-package.searchpath"><code>package.searchpath (name, path [, sep [, rep]])</code></a></h3> - - -<p> -Searches for the given <code>name</code> in the given <code>path</code>. - - -<p> -A path is a string containing a sequence of -<em>templates</em> separated by semicolons. -For each template, -the function replaces each interrogation mark (if any) -in the template with a copy of <code>name</code> -wherein all occurrences of <code>sep</code> -(a dot, by default) -were replaced by <code>rep</code> -(the system's directory separator, by default), -and then tries to open the resulting file name. - - -<p> -For instance, if the path is the string - -<pre> - "./?.lua;./?.lc;/usr/local/?/init.lua" -</pre><p> -the search for the name <code>foo.a</code> -will try to open the files -<code>./foo/a.lua</code>, <code>./foo/a.lc</code>, and -<code>/usr/local/foo/a/init.lua</code>, in that order. - - -<p> -Returns the resulting name of the first file that it can -open in read mode (after closing the file), -or <b>nil</b> plus an error message if none succeeds. -(This error message lists all file names it tried to open.) - - - - - - - -<h2>6.4 – <a name="6.4">String Manipulation</a></h2> - -<p> -This library provides generic functions for string manipulation, -such as finding and extracting substrings, and pattern matching. -When indexing a string in Lua, the first character is at position 1 -(not at 0, as in C). -Indices are allowed to be negative and are interpreted as indexing backwards, -from the end of the string. -Thus, the last character is at position -1, and so on. - - -<p> -The string library provides all its functions inside the table -<a name="pdf-string"><code>string</code></a>. -It also sets a metatable for strings -where the <code>__index</code> field points to the <code>string</code> table. -Therefore, you can use the string functions in object-oriented style. -For instance, <code>string.byte(s,i)</code> -can be written as <code>s:byte(i)</code>. - - -<p> -The string library assumes one-byte character encodings. - - -<p> -<hr><h3><a name="pdf-string.byte"><code>string.byte (s [, i [, j]])</code></a></h3> -Returns the internal numerical codes of the characters <code>s[i]</code>, -<code>s[i+1]</code>, ..., <code>s[j]</code>. -The default value for <code>i</code> is 1; -the default value for <code>j</code> is <code>i</code>. -These indices are corrected -following the same rules of function <a href="#pdf-string.sub"><code>string.sub</code></a>. - - -<p> -Numerical codes are not necessarily portable across platforms. - - - - -<p> -<hr><h3><a name="pdf-string.char"><code>string.char (···)</code></a></h3> -Receives zero or more integers. -Returns a string with length equal to the number of arguments, -in which each character has the internal numerical code equal -to its corresponding argument. - - -<p> -Numerical codes are not necessarily portable across platforms. - - - - -<p> -<hr><h3><a name="pdf-string.dump"><code>string.dump (function)</code></a></h3> - - -<p> -Returns a string containing a binary representation of the given function, -so that a later <a href="#pdf-load"><code>load</code></a> on this string returns -a copy of the function (but with new upvalues). - - - - -<p> -<hr><h3><a name="pdf-string.find"><code>string.find (s, pattern [, init [, plain]])</code></a></h3> - - -<p> -Looks for the first match of -<code>pattern</code> in the string <code>s</code>. -If it finds a match, then <code>find</code> returns the indices of <code>s</code> -where this occurrence starts and ends; -otherwise, it returns <b>nil</b>. -A third, optional numerical argument <code>init</code> specifies -where to start the search; -its default value is 1 and can be negative. -A value of <b>true</b> as a fourth, optional argument <code>plain</code> -turns off the pattern matching facilities, -so the function does a plain "find substring" operation, -with no characters in <code>pattern</code> being considered magic. -Note that if <code>plain</code> is given, then <code>init</code> must be given as well. - - -<p> -If the pattern has captures, -then in a successful match -the captured values are also returned, -after the two indices. - - - - -<p> -<hr><h3><a name="pdf-string.format"><code>string.format (formatstring, ···)</code></a></h3> - - -<p> -Returns a formatted version of its variable number of arguments -following the description given in its first argument (which must be a string). -The format string follows the same rules as the ISO C function <code>sprintf</code>. -The only differences are that the options/modifiers -<code>*</code>, <code>h</code>, <code>L</code>, <code>l</code>, <code>n</code>, -and <code>p</code> are not supported -and that there is an extra option, <code>q</code>. -The <code>q</code> option formats a string between double quotes, -using escape sequences when necessary to ensure that -it can safely be read back by the Lua interpreter. -For instance, the call - -<pre> - string.format('%q', 'a string with "quotes" and \n new line') -</pre><p> -may produce the string: - -<pre> - "a string with \"quotes\" and \ - new line" -</pre> - -<p> -Options -<code>A</code> and <code>a</code> (when available), -<code>E</code>, <code>e</code>, <code>f</code>, -<code>G</code>, and <code>g</code> all expect a number as argument. -Options <code>c</code>, <code>d</code>, -<code>i</code>, <code>o</code>, <code>u</code>, <code>X</code>, and <code>x</code> -also expect a number, -but the range of that number may be limited by -the underlying C implementation. -For options <code>o</code>, <code>u</code>, <code>X</code>, and <code>x</code>, -the number cannot be negative. -Option <code>q</code> expects a string; -option <code>s</code> expects a string without embedded zeros. -If the argument to option <code>s</code> is not a string, -it is converted to one following the same rules of <a href="#pdf-tostring"><code>tostring</code></a>. - - - - -<p> -<hr><h3><a name="pdf-string.gmatch"><code>string.gmatch (s, pattern)</code></a></h3> -Returns an iterator function that, -each time it is called, -returns the next captures from <code>pattern</code> over the string <code>s</code>. -If <code>pattern</code> specifies no captures, -then the whole match is produced in each call. - - -<p> -As an example, the following loop -will iterate over all the words from string <code>s</code>, -printing one per line: - -<pre> - s = "hello world from Lua" - for w in string.gmatch(s, "%a+") do - print(w) - end -</pre><p> -The next example collects all pairs <code>key=value</code> from the -given string into a table: - -<pre> - t = {} - s = "from=world, to=Lua" - for k, v in string.gmatch(s, "(%w+)=(%w+)") do - t[k] = v - end -</pre> - -<p> -For this function, a caret '<code>^</code>' at the start of a pattern does not -work as an anchor, as this would prevent the iteration. - - - - -<p> -<hr><h3><a name="pdf-string.gsub"><code>string.gsub (s, pattern, repl [, n])</code></a></h3> -Returns a copy of <code>s</code> -in which all (or the first <code>n</code>, if given) -occurrences of the <code>pattern</code> have been -replaced by a replacement string specified by <code>repl</code>, -which can be a string, a table, or a function. -<code>gsub</code> also returns, as its second value, -the total number of matches that occurred. -The name <code>gsub</code> comes from <em>Global SUBstitution</em>. - - -<p> -If <code>repl</code> is a string, then its value is used for replacement. -The character <code>%</code> works as an escape character: -any sequence in <code>repl</code> of the form <code>%<em>d</em></code>, -with <em>d</em> between 1 and 9, -stands for the value of the <em>d</em>-th captured substring. -The sequence <code>%0</code> stands for the whole match. -The sequence <code>%%</code> stands for a single <code>%</code>. - - -<p> -If <code>repl</code> is a table, then the table is queried for every match, -using the first capture as the key. - - -<p> -If <code>repl</code> is a function, then this function is called every time a -match occurs, with all captured substrings passed as arguments, -in order. - - -<p> -In any case, -if the pattern specifies no captures, -then it behaves as if the whole pattern was inside a capture. - - -<p> -If the value returned by the table query or by the function call -is a string or a number, -then it is used as the replacement string; -otherwise, if it is <b>false</b> or <b>nil</b>, -then there is no replacement -(that is, the original match is kept in the string). - - -<p> -Here are some examples: - -<pre> - x = string.gsub("hello world", "(%w+)", "%1 %1") - --> x="hello hello world world" - - x = string.gsub("hello world", "%w+", "%0 %0", 1) - --> x="hello hello world" - - x = string.gsub("hello world from Lua", "(%w+)%s*(%w+)", "%2 %1") - --> x="world hello Lua from" - - x = string.gsub("home = $HOME, user = $USER", "%$(%w+)", os.getenv) - --> x="home = /home/roberto, user = roberto" - - x = string.gsub("4+5 = $return 4+5$", "%$(.-)%$", function (s) - return load(s)() - end) - --> x="4+5 = 9" - - local t = {name="lua", version="5.2"} - x = string.gsub("$name-$version.tar.gz", "%$(%w+)", t) - --> x="lua-5.2.tar.gz" -</pre> - - - -<p> -<hr><h3><a name="pdf-string.len"><code>string.len (s)</code></a></h3> -Receives a string and returns its length. -The empty string <code>""</code> has length 0. -Embedded zeros are counted, -so <code>"a\000bc\000"</code> has length 5. - - - - -<p> -<hr><h3><a name="pdf-string.lower"><code>string.lower (s)</code></a></h3> -Receives a string and returns a copy of this string with all -uppercase letters changed to lowercase. -All other characters are left unchanged. -The definition of what an uppercase letter is depends on the current locale. - - - - -<p> -<hr><h3><a name="pdf-string.match"><code>string.match (s, pattern [, init])</code></a></h3> -Looks for the first <em>match</em> of -<code>pattern</code> in the string <code>s</code>. -If it finds one, then <code>match</code> returns -the captures from the pattern; -otherwise it returns <b>nil</b>. -If <code>pattern</code> specifies no captures, -then the whole match is returned. -A third, optional numerical argument <code>init</code> specifies -where to start the search; -its default value is 1 and can be negative. - - - - -<p> -<hr><h3><a name="pdf-string.rep"><code>string.rep (s, n [, sep])</code></a></h3> -Returns a string that is the concatenation of <code>n</code> copies of -the string <code>s</code> separated by the string <code>sep</code>. -The default value for <code>sep</code> is the empty string -(that is, no separator). - - - - -<p> -<hr><h3><a name="pdf-string.reverse"><code>string.reverse (s)</code></a></h3> -Returns a string that is the string <code>s</code> reversed. - - - - -<p> -<hr><h3><a name="pdf-string.sub"><code>string.sub (s, i [, j])</code></a></h3> -Returns the substring of <code>s</code> that -starts at <code>i</code> and continues until <code>j</code>; -<code>i</code> and <code>j</code> can be negative. -If <code>j</code> is absent, then it is assumed to be equal to -1 -(which is the same as the string length). -In particular, -the call <code>string.sub(s,1,j)</code> returns a prefix of <code>s</code> -with length <code>j</code>, -and <code>string.sub(s, -i)</code> returns a suffix of <code>s</code> -with length <code>i</code>. - - -<p> -If, after the translation of negative indices, -<code>i</code> is less than 1, -it is corrected to 1. -If <code>j</code> is greater than the string length, -it is corrected to that length. -If, after these corrections, -<code>i</code> is greater than <code>j</code>, -the function returns the empty string. - - - - -<p> -<hr><h3><a name="pdf-string.upper"><code>string.upper (s)</code></a></h3> -Receives a string and returns a copy of this string with all -lowercase letters changed to uppercase. -All other characters are left unchanged. -The definition of what a lowercase letter is depends on the current locale. - - - -<h3>6.4.1 – <a name="6.4.1">Patterns</a></h3> - - -<h4>Character Class:</h4><p> -A <em>character class</em> is used to represent a set of characters. -The following combinations are allowed in describing a character class: - -<ul> - -<li><b><em>x</em>: </b> -(where <em>x</em> is not one of the <em>magic characters</em> -<code>^$()%.[]*+-?</code>) -represents the character <em>x</em> itself. -</li> - -<li><b><code>.</code>: </b> (a dot) represents all characters.</li> - -<li><b><code>%a</code>: </b> represents all letters.</li> - -<li><b><code>%c</code>: </b> represents all control characters.</li> - -<li><b><code>%d</code>: </b> represents all digits.</li> - -<li><b><code>%g</code>: </b> represents all printable characters except space.</li> - -<li><b><code>%l</code>: </b> represents all lowercase letters.</li> - -<li><b><code>%p</code>: </b> represents all punctuation characters.</li> - -<li><b><code>%s</code>: </b> represents all space characters.</li> - -<li><b><code>%u</code>: </b> represents all uppercase letters.</li> - -<li><b><code>%w</code>: </b> represents all alphanumeric characters.</li> - -<li><b><code>%x</code>: </b> represents all hexadecimal digits.</li> - -<li><b><code>%<em>x</em></code>: </b> (where <em>x</em> is any non-alphanumeric character) -represents the character <em>x</em>. -This is the standard way to escape the magic characters. -Any punctuation character (even the non magic) -can be preceded by a '<code>%</code>' -when used to represent itself in a pattern. -</li> - -<li><b><code>[<em>set</em>]</code>: </b> -represents the class which is the union of all -characters in <em>set</em>. -A range of characters can be specified by -separating the end characters of the range, -in ascending order, with a '<code>-</code>', -All classes <code>%</code><em>x</em> described above can also be used as -components in <em>set</em>. -All other characters in <em>set</em> represent themselves. -For example, <code>[%w_]</code> (or <code>[_%w]</code>) -represents all alphanumeric characters plus the underscore, -<code>[0-7]</code> represents the octal digits, -and <code>[0-7%l%-]</code> represents the octal digits plus -the lowercase letters plus the '<code>-</code>' character. - - -<p> -The interaction between ranges and classes is not defined. -Therefore, patterns like <code>[%a-z]</code> or <code>[a-%%]</code> -have no meaning. -</li> - -<li><b><code>[^<em>set</em>]</code>: </b> -represents the complement of <em>set</em>, -where <em>set</em> is interpreted as above. -</li> - -</ul><p> -For all classes represented by single letters (<code>%a</code>, <code>%c</code>, etc.), -the corresponding uppercase letter represents the complement of the class. -For instance, <code>%S</code> represents all non-space characters. - - -<p> -The definitions of letter, space, and other character groups -depend on the current locale. -In particular, the class <code>[a-z]</code> may not be equivalent to <code>%l</code>. - - - - - -<h4>Pattern Item:</h4><p> -A <em>pattern item</em> can be - -<ul> - -<li> -a single character class, -which matches any single character in the class; -</li> - -<li> -a single character class followed by '<code>*</code>', -which matches 0 or more repetitions of characters in the class. -These repetition items will always match the longest possible sequence; -</li> - -<li> -a single character class followed by '<code>+</code>', -which matches 1 or more repetitions of characters in the class. -These repetition items will always match the longest possible sequence; -</li> - -<li> -a single character class followed by '<code>-</code>', -which also matches 0 or more repetitions of characters in the class. -Unlike '<code>*</code>', -these repetition items will always match the shortest possible sequence; -</li> - -<li> -a single character class followed by '<code>?</code>', -which matches 0 or 1 occurrence of a character in the class; -</li> - -<li> -<code>%<em>n</em></code>, for <em>n</em> between 1 and 9; -such item matches a substring equal to the <em>n</em>-th captured string -(see below); -</li> - -<li> -<code>%b<em>xy</em></code>, where <em>x</em> and <em>y</em> are two distinct characters; -such item matches strings that start with <em>x</em>, end with <em>y</em>, -and where the <em>x</em> and <em>y</em> are <em>balanced</em>. -This means that, if one reads the string from left to right, -counting <em>+1</em> for an <em>x</em> and <em>-1</em> for a <em>y</em>, -the ending <em>y</em> is the first <em>y</em> where the count reaches 0. -For instance, the item <code>%b()</code> matches expressions with -balanced parentheses. -</li> - -<li> -<code>%f[<em>set</em>]</code>, a <em>frontier pattern</em>; -such item matches an empty string at any position such that -the next character belongs to <em>set</em> -and the previous character does not belong to <em>set</em>. -The set <em>set</em> is interpreted as previously described. -The beginning and the end of the subject are handled as if -they were the character '<code>\0</code>'. -</li> - -</ul> - - - - -<h4>Pattern:</h4><p> -A <em>pattern</em> is a sequence of pattern items. -A caret '<code>^</code>' at the beginning of a pattern anchors the match at the -beginning of the subject string. -A '<code>$</code>' at the end of a pattern anchors the match at the -end of the subject string. -At other positions, -'<code>^</code>' and '<code>$</code>' have no special meaning and represent themselves. - - - - - -<h4>Captures:</h4><p> -A pattern can contain sub-patterns enclosed in parentheses; -they describe <em>captures</em>. -When a match succeeds, the substrings of the subject string -that match captures are stored (<em>captured</em>) for future use. -Captures are numbered according to their left parentheses. -For instance, in the pattern <code>"(a*(.)%w(%s*))"</code>, -the part of the string matching <code>"a*(.)%w(%s*)"</code> is -stored as the first capture (and therefore has number 1); -the character matching "<code>.</code>" is captured with number 2, -and the part matching "<code>%s*</code>" has number 3. - - -<p> -As a special case, the empty capture <code>()</code> captures -the current string position (a number). -For instance, if we apply the pattern <code>"()aa()"</code> on the -string <code>"flaaap"</code>, there will be two captures: 3 and 5. - - - - - - - - - - - -<h2>6.5 – <a name="6.5">Table Manipulation</a></h2> - -<p> -This library provides generic functions for table manipulation. -It provides all its functions inside the table <a name="pdf-table"><code>table</code></a>. - - -<p> -Remember that, whenever an operation needs the length of a table, -the table should be a proper sequence -or have a <code>__len</code> metamethod (see <a href="#3.4.6">§3.4.6</a>). -All functions ignore non-numeric keys -in tables given as arguments. - - -<p> -For performance reasons, -all table accesses (get/set) performed by these functions are raw. - - -<p> -<hr><h3><a name="pdf-table.concat"><code>table.concat (list [, sep [, i [, j]]])</code></a></h3> - - -<p> -Given a list where all elements are strings or numbers, -returns the string <code>list[i]..sep..list[i+1] ··· sep..list[j]</code>. -The default value for <code>sep</code> is the empty string, -the default for <code>i</code> is 1, -and the default for <code>j</code> is <code>#list</code>. -If <code>i</code> is greater than <code>j</code>, returns the empty string. - - - - -<p> -<hr><h3><a name="pdf-table.insert"><code>table.insert (list, [pos,] value)</code></a></h3> - - -<p> -Inserts element <code>value</code> at position <code>pos</code> in <code>list</code>, -shifting up the elements -<code>list[pos], list[pos+1], ···, list[#list]</code>. -The default value for <code>pos</code> is <code>#list+1</code>, -so that a call <code>table.insert(t,x)</code> inserts <code>x</code> at the end -of list <code>t</code>. - - - - -<p> -<hr><h3><a name="pdf-table.pack"><code>table.pack (···)</code></a></h3> - - -<p> -Returns a new table with all parameters stored into keys 1, 2, etc. -and with a field "<code>n</code>" with the total number of parameters. -Note that the resulting table may not be a sequence. - - - - -<p> -<hr><h3><a name="pdf-table.remove"><code>table.remove (list [, pos])</code></a></h3> - - -<p> -Removes from <code>list</code> the element at position <code>pos</code>, -returning the value of the removed element. -When <code>pos</code> is an integer between 1 and <code>#list</code>, -it shifts down the elements -<code>list[pos+1], list[pos+2], ···, list[#list]</code> -and erases element <code>list[#list]</code>; -The index <code>pos</code> can also be 0 when <code>#list</code> is 0, -or <code>#list + 1</code>; -in those cases, the function erases the element <code>list[pos]</code>. - - -<p> -The default value for <code>pos</code> is <code>#list</code>, -so that a call <code>table.remove(t)</code> removes the last element -of list <code>t</code>. - - - - -<p> -<hr><h3><a name="pdf-table.sort"><code>table.sort (list [, comp])</code></a></h3> - - -<p> -Sorts list elements in a given order, <em>in-place</em>, -from <code>list[1]</code> to <code>list[#list]</code>. -If <code>comp</code> is given, -then it must be a function that receives two list elements -and returns true when the first element must come -before the second in the final order -(so that <code>not comp(list[i+1],list[i])</code> will be true after the sort). -If <code>comp</code> is not given, -then the standard Lua operator <code><</code> is used instead. - - -<p> -The sort algorithm is not stable; -that is, elements considered equal by the given order -may have their relative positions changed by the sort. - - - - -<p> -<hr><h3><a name="pdf-table.unpack"><code>table.unpack (list [, i [, j]])</code></a></h3> - - -<p> -Returns the elements from the given table. -This function is equivalent to - -<pre> - return list[i], list[i+1], ···, list[j] -</pre><p> -By default, <code>i</code> is 1 and <code>j</code> is <code>#list</code>. - - - - - - - -<h2>6.6 – <a name="6.6">Mathematical Functions</a></h2> - -<p> -This library is an interface to the standard C math library. -It provides all its functions inside the table <a name="pdf-math"><code>math</code></a>. - - -<p> -<hr><h3><a name="pdf-math.abs"><code>math.abs (x)</code></a></h3> - - -<p> -Returns the absolute value of <code>x</code>. - - - - -<p> -<hr><h3><a name="pdf-math.acos"><code>math.acos (x)</code></a></h3> - - -<p> -Returns the arc cosine of <code>x</code> (in radians). - - - - -<p> -<hr><h3><a name="pdf-math.asin"><code>math.asin (x)</code></a></h3> - - -<p> -Returns the arc sine of <code>x</code> (in radians). - - - - -<p> -<hr><h3><a name="pdf-math.atan"><code>math.atan (x)</code></a></h3> - - -<p> -Returns the arc tangent of <code>x</code> (in radians). - - - - -<p> -<hr><h3><a name="pdf-math.atan2"><code>math.atan2 (y, x)</code></a></h3> - - -<p> -Returns the arc tangent of <code>y/x</code> (in radians), -but uses the signs of both parameters to find the -quadrant of the result. -(It also handles correctly the case of <code>x</code> being zero.) - - - - -<p> -<hr><h3><a name="pdf-math.ceil"><code>math.ceil (x)</code></a></h3> - - -<p> -Returns the smallest integer larger than or equal to <code>x</code>. - - - - -<p> -<hr><h3><a name="pdf-math.cos"><code>math.cos (x)</code></a></h3> - - -<p> -Returns the cosine of <code>x</code> (assumed to be in radians). - - - - -<p> -<hr><h3><a name="pdf-math.cosh"><code>math.cosh (x)</code></a></h3> - - -<p> -Returns the hyperbolic cosine of <code>x</code>. - - - - -<p> -<hr><h3><a name="pdf-math.deg"><code>math.deg (x)</code></a></h3> - - -<p> -Returns the angle <code>x</code> (given in radians) in degrees. - - - - -<p> -<hr><h3><a name="pdf-math.exp"><code>math.exp (x)</code></a></h3> - - -<p> -Returns the value <em>e<sup>x</sup></em>. - - - - -<p> -<hr><h3><a name="pdf-math.floor"><code>math.floor (x)</code></a></h3> - - -<p> -Returns the largest integer smaller than or equal to <code>x</code>. - - - - -<p> -<hr><h3><a name="pdf-math.fmod"><code>math.fmod (x, y)</code></a></h3> - - -<p> -Returns the remainder of the division of <code>x</code> by <code>y</code> -that rounds the quotient towards zero. - - - - -<p> -<hr><h3><a name="pdf-math.frexp"><code>math.frexp (x)</code></a></h3> - - -<p> -Returns <code>m</code> and <code>e</code> such that <em>x = m2<sup>e</sup></em>, -<code>e</code> is an integer and the absolute value of <code>m</code> is -in the range <em>[0.5, 1)</em> -(or zero when <code>x</code> is zero). - - - - -<p> -<hr><h3><a name="pdf-math.huge"><code>math.huge</code></a></h3> - - -<p> -The value <code>HUGE_VAL</code>, -a value larger than or equal to any other numerical value. - - - - -<p> -<hr><h3><a name="pdf-math.ldexp"><code>math.ldexp (m, e)</code></a></h3> - - -<p> -Returns <em>m2<sup>e</sup></em> (<code>e</code> should be an integer). - - - - -<p> -<hr><h3><a name="pdf-math.log"><code>math.log (x [, base])</code></a></h3> - - -<p> -Returns the logarithm of <code>x</code> in the given base. -The default for <code>base</code> is <em>e</em> -(so that the function returns the natural logarithm of <code>x</code>). - - - - -<p> -<hr><h3><a name="pdf-math.max"><code>math.max (x, ···)</code></a></h3> - - -<p> -Returns the maximum value among its arguments. - - - - -<p> -<hr><h3><a name="pdf-math.min"><code>math.min (x, ···)</code></a></h3> - - -<p> -Returns the minimum value among its arguments. - - - - -<p> -<hr><h3><a name="pdf-math.modf"><code>math.modf (x)</code></a></h3> - - -<p> -Returns two numbers, -the integral part of <code>x</code> and the fractional part of <code>x</code>. - - - - -<p> -<hr><h3><a name="pdf-math.pi"><code>math.pi</code></a></h3> - - -<p> -The value of <em>π</em>. - - - - -<p> -<hr><h3><a name="pdf-math.pow"><code>math.pow (x, y)</code></a></h3> - - -<p> -Returns <em>x<sup>y</sup></em>. -(You can also use the expression <code>x^y</code> to compute this value.) - - - - -<p> -<hr><h3><a name="pdf-math.rad"><code>math.rad (x)</code></a></h3> - - -<p> -Returns the angle <code>x</code> (given in degrees) in radians. - - - - -<p> -<hr><h3><a name="pdf-math.random"><code>math.random ([m [, n]])</code></a></h3> - - -<p> -This function is an interface to the simple -pseudo-random generator function <code>rand</code> provided by Standard C. -(No guarantees can be given for its statistical properties.) - - -<p> -When called without arguments, -returns a uniform pseudo-random real number -in the range <em>[0,1)</em>. -When called with an integer number <code>m</code>, -<code>math.random</code> returns -a uniform pseudo-random integer in the range <em>[1, m]</em>. -When called with two integer numbers <code>m</code> and <code>n</code>, -<code>math.random</code> returns a uniform pseudo-random -integer in the range <em>[m, n]</em>. - - - - -<p> -<hr><h3><a name="pdf-math.randomseed"><code>math.randomseed (x)</code></a></h3> - - -<p> -Sets <code>x</code> as the "seed" -for the pseudo-random generator: -equal seeds produce equal sequences of numbers. - - - - -<p> -<hr><h3><a name="pdf-math.sin"><code>math.sin (x)</code></a></h3> - - -<p> -Returns the sine of <code>x</code> (assumed to be in radians). - - - - -<p> -<hr><h3><a name="pdf-math.sinh"><code>math.sinh (x)</code></a></h3> - - -<p> -Returns the hyperbolic sine of <code>x</code>. - - - - -<p> -<hr><h3><a name="pdf-math.sqrt"><code>math.sqrt (x)</code></a></h3> - - -<p> -Returns the square root of <code>x</code>. -(You can also use the expression <code>x^0.5</code> to compute this value.) - - - - -<p> -<hr><h3><a name="pdf-math.tan"><code>math.tan (x)</code></a></h3> - - -<p> -Returns the tangent of <code>x</code> (assumed to be in radians). - - - - -<p> -<hr><h3><a name="pdf-math.tanh"><code>math.tanh (x)</code></a></h3> - - -<p> -Returns the hyperbolic tangent of <code>x</code>. - - - - - - - -<h2>6.7 – <a name="6.7">Bitwise Operations</a></h2> - -<p> -This library provides bitwise operations. -It provides all its functions inside the table <a name="pdf-bit32"><code>bit32</code></a>. - - -<p> -Unless otherwise stated, -all functions accept numeric arguments in the range -<em>(-2<sup>51</sup>,+2<sup>51</sup>)</em>; -each argument is normalized to -the remainder of its division by <em>2<sup>32</sup></em> -and truncated to an integer (in some unspecified way), -so that its final value falls in the range <em>[0,2<sup>32</sup> - 1]</em>. -Similarly, all results are in the range <em>[0,2<sup>32</sup> - 1]</em>. -Note that <code>bit32.bnot(0)</code> is <code>0xFFFFFFFF</code>, -which is different from <code>-1</code>. - - -<p> -<hr><h3><a name="pdf-bit32.arshift"><code>bit32.arshift (x, disp)</code></a></h3> - - -<p> -Returns the number <code>x</code> shifted <code>disp</code> bits to the right. -The number <code>disp</code> may be any representable integer. -Negative displacements shift to the left. - - -<p> -This shift operation is what is called arithmetic shift. -Vacant bits on the left are filled -with copies of the higher bit of <code>x</code>; -vacant bits on the right are filled with zeros. -In particular, -displacements with absolute values higher than 31 -result in zero or <code>0xFFFFFFFF</code> (all original bits are shifted out). - - - - -<p> -<hr><h3><a name="pdf-bit32.band"><code>bit32.band (···)</code></a></h3> - - -<p> -Returns the bitwise <em>and</em> of its operands. - - - - -<p> -<hr><h3><a name="pdf-bit32.bnot"><code>bit32.bnot (x)</code></a></h3> - - -<p> -Returns the bitwise negation of <code>x</code>. -For any integer <code>x</code>, -the following identity holds: - -<pre> - assert(bit32.bnot(x) == (-1 - x) % 2^32) -</pre> - - - -<p> -<hr><h3><a name="pdf-bit32.bor"><code>bit32.bor (···)</code></a></h3> - - -<p> -Returns the bitwise <em>or</em> of its operands. - - - - -<p> -<hr><h3><a name="pdf-bit32.btest"><code>bit32.btest (···)</code></a></h3> - - -<p> -Returns a boolean signaling -whether the bitwise <em>and</em> of its operands is different from zero. - - - - -<p> -<hr><h3><a name="pdf-bit32.bxor"><code>bit32.bxor (···)</code></a></h3> - - -<p> -Returns the bitwise <em>exclusive or</em> of its operands. - - - - -<p> -<hr><h3><a name="pdf-bit32.extract"><code>bit32.extract (n, field [, width])</code></a></h3> - - -<p> -Returns the unsigned number formed by the bits -<code>field</code> to <code>field + width - 1</code> from <code>n</code>. -Bits are numbered from 0 (least significant) to 31 (most significant). -All accessed bits must be in the range <em>[0, 31]</em>. - - -<p> -The default for <code>width</code> is 1. - - - - -<p> -<hr><h3><a name="pdf-bit32.replace"><code>bit32.replace (n, v, field [, width])</code></a></h3> - - -<p> -Returns a copy of <code>n</code> with -the bits <code>field</code> to <code>field + width - 1</code> -replaced by the value <code>v</code>. -See <a href="#pdf-bit32.extract"><code>bit32.extract</code></a> for details about <code>field</code> and <code>width</code>. - - - - -<p> -<hr><h3><a name="pdf-bit32.lrotate"><code>bit32.lrotate (x, disp)</code></a></h3> - - -<p> -Returns the number <code>x</code> rotated <code>disp</code> bits to the left. -The number <code>disp</code> may be any representable integer. - - -<p> -For any valid displacement, -the following identity holds: - -<pre> - assert(bit32.lrotate(x, disp) == bit32.lrotate(x, disp % 32)) -</pre><p> -In particular, -negative displacements rotate to the right. - - - - -<p> -<hr><h3><a name="pdf-bit32.lshift"><code>bit32.lshift (x, disp)</code></a></h3> - - -<p> -Returns the number <code>x</code> shifted <code>disp</code> bits to the left. -The number <code>disp</code> may be any representable integer. -Negative displacements shift to the right. -In any direction, vacant bits are filled with zeros. -In particular, -displacements with absolute values higher than 31 -result in zero (all bits are shifted out). - - -<p> -For positive displacements, -the following equality holds: - -<pre> - assert(bit32.lshift(b, disp) == (b * 2^disp) % 2^32) -</pre> - - - -<p> -<hr><h3><a name="pdf-bit32.rrotate"><code>bit32.rrotate (x, disp)</code></a></h3> - - -<p> -Returns the number <code>x</code> rotated <code>disp</code> bits to the right. -The number <code>disp</code> may be any representable integer. - - -<p> -For any valid displacement, -the following identity holds: - -<pre> - assert(bit32.rrotate(x, disp) == bit32.rrotate(x, disp % 32)) -</pre><p> -In particular, -negative displacements rotate to the left. - - - - -<p> -<hr><h3><a name="pdf-bit32.rshift"><code>bit32.rshift (x, disp)</code></a></h3> - - -<p> -Returns the number <code>x</code> shifted <code>disp</code> bits to the right. -The number <code>disp</code> may be any representable integer. -Negative displacements shift to the left. -In any direction, vacant bits are filled with zeros. -In particular, -displacements with absolute values higher than 31 -result in zero (all bits are shifted out). - - -<p> -For positive displacements, -the following equality holds: - -<pre> - assert(bit32.rshift(b, disp) == math.floor(b % 2^32 / 2^disp)) -</pre> - -<p> -This shift operation is what is called logical shift. - - - - - - - -<h2>6.8 – <a name="6.8">Input and Output Facilities</a></h2> - -<p> -The I/O library provides two different styles for file manipulation. -The first one uses implicit file descriptors; -that is, there are operations to set a default input file and a -default output file, -and all input/output operations are over these default files. -The second style uses explicit file descriptors. - - -<p> -When using implicit file descriptors, -all operations are supplied by table <a name="pdf-io"><code>io</code></a>. -When using explicit file descriptors, -the operation <a href="#pdf-io.open"><code>io.open</code></a> returns a file descriptor -and then all operations are supplied as methods of the file descriptor. - - -<p> -The table <code>io</code> also provides -three predefined file descriptors with their usual meanings from C: -<a name="pdf-io.stdin"><code>io.stdin</code></a>, <a name="pdf-io.stdout"><code>io.stdout</code></a>, and <a name="pdf-io.stderr"><code>io.stderr</code></a>. -The I/O library never closes these files. - - -<p> -Unless otherwise stated, -all I/O functions return <b>nil</b> on failure -(plus an error message as a second result and -a system-dependent error code as a third result) -and some value different from <b>nil</b> on success. -On non-Posix systems, -the computation of the error message and error code -in case of errors -may be not thread safe, -because they rely on the global C variable <code>errno</code>. - - -<p> -<hr><h3><a name="pdf-io.close"><code>io.close ([file])</code></a></h3> - - -<p> -Equivalent to <code>file:close()</code>. -Without a <code>file</code>, closes the default output file. - - - - -<p> -<hr><h3><a name="pdf-io.flush"><code>io.flush ()</code></a></h3> - - -<p> -Equivalent to <code>io.output():flush()</code>. - - - - -<p> -<hr><h3><a name="pdf-io.input"><code>io.input ([file])</code></a></h3> - - -<p> -When called with a file name, it opens the named file (in text mode), -and sets its handle as the default input file. -When called with a file handle, -it simply sets this file handle as the default input file. -When called without parameters, -it returns the current default input file. - - -<p> -In case of errors this function raises the error, -instead of returning an error code. - - - - -<p> -<hr><h3><a name="pdf-io.lines"><code>io.lines ([filename ···])</code></a></h3> - - -<p> -Opens the given file name in read mode -and returns an iterator function that -works like <code>file:lines(···)</code> over the opened file. -When the iterator function detects the end of file, -it returns <b>nil</b> (to finish the loop) and automatically closes the file. - - -<p> -The call <code>io.lines()</code> (with no file name) is equivalent -to <code>io.input():lines()</code>; -that is, it iterates over the lines of the default input file. -In this case it does not close the file when the loop ends. - - -<p> -In case of errors this function raises the error, -instead of returning an error code. - - - - -<p> -<hr><h3><a name="pdf-io.open"><code>io.open (filename [, mode])</code></a></h3> - - -<p> -This function opens a file, -in the mode specified in the string <code>mode</code>. -It returns a new file handle, -or, in case of errors, <b>nil</b> plus an error message. - - -<p> -The <code>mode</code> string can be any of the following: - -<ul> -<li><b>"<code>r</code>": </b> read mode (the default);</li> -<li><b>"<code>w</code>": </b> write mode;</li> -<li><b>"<code>a</code>": </b> append mode;</li> -<li><b>"<code>r+</code>": </b> update mode, all previous data is preserved;</li> -<li><b>"<code>w+</code>": </b> update mode, all previous data is erased;</li> -<li><b>"<code>a+</code>": </b> append update mode, previous data is preserved, - writing is only allowed at the end of file.</li> -</ul><p> -The <code>mode</code> string can also have a '<code>b</code>' at the end, -which is needed in some systems to open the file in binary mode. - - - - -<p> -<hr><h3><a name="pdf-io.output"><code>io.output ([file])</code></a></h3> - - -<p> -Similar to <a href="#pdf-io.input"><code>io.input</code></a>, but operates over the default output file. - - - - -<p> -<hr><h3><a name="pdf-io.popen"><code>io.popen (prog [, mode])</code></a></h3> - - -<p> -This function is system dependent and is not available -on all platforms. - - -<p> -Starts program <code>prog</code> in a separated process and returns -a file handle that you can use to read data from this program -(if <code>mode</code> is <code>"r"</code>, the default) -or to write data to this program -(if <code>mode</code> is <code>"w"</code>). - - - - -<p> -<hr><h3><a name="pdf-io.read"><code>io.read (···)</code></a></h3> - - -<p> -Equivalent to <code>io.input():read(···)</code>. - - - - -<p> -<hr><h3><a name="pdf-io.tmpfile"><code>io.tmpfile ()</code></a></h3> - - -<p> -Returns a handle for a temporary file. -This file is opened in update mode -and it is automatically removed when the program ends. - - - - -<p> -<hr><h3><a name="pdf-io.type"><code>io.type (obj)</code></a></h3> - - -<p> -Checks whether <code>obj</code> is a valid file handle. -Returns the string <code>"file"</code> if <code>obj</code> is an open file handle, -<code>"closed file"</code> if <code>obj</code> is a closed file handle, -or <b>nil</b> if <code>obj</code> is not a file handle. - - - - -<p> -<hr><h3><a name="pdf-io.write"><code>io.write (···)</code></a></h3> - - -<p> -Equivalent to <code>io.output():write(···)</code>. - - - - -<p> -<hr><h3><a name="pdf-file:close"><code>file:close ()</code></a></h3> - - -<p> -Closes <code>file</code>. -Note that files are automatically closed when -their handles are garbage collected, -but that takes an unpredictable amount of time to happen. - - -<p> -When closing a file handle created with <a href="#pdf-io.popen"><code>io.popen</code></a>, -<a href="#pdf-file:close"><code>file:close</code></a> returns the same values -returned by <a href="#pdf-os.execute"><code>os.execute</code></a>. - - - - -<p> -<hr><h3><a name="pdf-file:flush"><code>file:flush ()</code></a></h3> - - -<p> -Saves any written data to <code>file</code>. - - - - -<p> -<hr><h3><a name="pdf-file:lines"><code>file:lines (···)</code></a></h3> - - -<p> -Returns an iterator function that, -each time it is called, -reads the file according to the given formats. -When no format is given, -uses "*l" as a default. -As an example, the construction - -<pre> - for c in file:lines(1) do <em>body</em> end -</pre><p> -will iterate over all characters of the file, -starting at the current position. -Unlike <a href="#pdf-io.lines"><code>io.lines</code></a>, this function does not close the file -when the loop ends. - - -<p> -In case of errors this function raises the error, -instead of returning an error code. - - - - -<p> -<hr><h3><a name="pdf-file:read"><code>file:read (···)</code></a></h3> - - -<p> -Reads the file <code>file</code>, -according to the given formats, which specify what to read. -For each format, -the function returns a string (or a number) with the characters read, -or <b>nil</b> if it cannot read data with the specified format. -When called without formats, -it uses a default format that reads the next line -(see below). - - -<p> -The available formats are - -<ul> - -<li><b>"<code>*n</code>": </b> -reads a number; -this is the only format that returns a number instead of a string. -</li> - -<li><b>"<code>*a</code>": </b> -reads the whole file, starting at the current position. -On end of file, it returns the empty string. -</li> - -<li><b>"<code>*l</code>": </b> -reads the next line skipping the end of line, -returning <b>nil</b> on end of file. -This is the default format. -</li> - -<li><b>"<code>*L</code>": </b> -reads the next line keeping the end of line (if present), -returning <b>nil</b> on end of file. -</li> - -<li><b><em>number</em>: </b> -reads a string with up to this number of bytes, -returning <b>nil</b> on end of file. -If number is zero, -it reads nothing and returns an empty string, -or <b>nil</b> on end of file. -</li> - -</ul> - - - -<p> -<hr><h3><a name="pdf-file:seek"><code>file:seek ([whence [, offset]])</code></a></h3> - - -<p> -Sets and gets the file position, -measured from the beginning of the file, -to the position given by <code>offset</code> plus a base -specified by the string <code>whence</code>, as follows: - -<ul> -<li><b>"<code>set</code>": </b> base is position 0 (beginning of the file);</li> -<li><b>"<code>cur</code>": </b> base is current position;</li> -<li><b>"<code>end</code>": </b> base is end of file;</li> -</ul><p> -In case of success, <code>seek</code> returns the final file position, -measured in bytes from the beginning of the file. -If <code>seek</code> fails, it returns <b>nil</b>, -plus a string describing the error. - - -<p> -The default value for <code>whence</code> is <code>"cur"</code>, -and for <code>offset</code> is 0. -Therefore, the call <code>file:seek()</code> returns the current -file position, without changing it; -the call <code>file:seek("set")</code> sets the position to the -beginning of the file (and returns 0); -and the call <code>file:seek("end")</code> sets the position to the -end of the file, and returns its size. - - - - -<p> -<hr><h3><a name="pdf-file:setvbuf"><code>file:setvbuf (mode [, size])</code></a></h3> - - -<p> -Sets the buffering mode for an output file. -There are three available modes: - -<ul> - -<li><b>"<code>no</code>": </b> -no buffering; the result of any output operation appears immediately. -</li> - -<li><b>"<code>full</code>": </b> -full buffering; output operation is performed only -when the buffer is full or when -you explicitly <code>flush</code> the file (see <a href="#pdf-io.flush"><code>io.flush</code></a>). -</li> - -<li><b>"<code>line</code>": </b> -line buffering; output is buffered until a newline is output -or there is any input from some special files -(such as a terminal device). -</li> - -</ul><p> -For the last two cases, <code>size</code> -specifies the size of the buffer, in bytes. -The default is an appropriate size. - - - - -<p> -<hr><h3><a name="pdf-file:write"><code>file:write (···)</code></a></h3> - - -<p> -Writes the value of each of its arguments to <code>file</code>. -The arguments must be strings or numbers. - - -<p> -In case of success, this function returns <code>file</code>. -Otherwise it returns <b>nil</b> plus a string describing the error. - - - - - - - -<h2>6.9 – <a name="6.9">Operating System Facilities</a></h2> - -<p> -This library is implemented through table <a name="pdf-os"><code>os</code></a>. - - -<p> -<hr><h3><a name="pdf-os.clock"><code>os.clock ()</code></a></h3> - - -<p> -Returns an approximation of the amount in seconds of CPU time -used by the program. - - - - -<p> -<hr><h3><a name="pdf-os.date"><code>os.date ([format [, time]])</code></a></h3> - - -<p> -Returns a string or a table containing date and time, -formatted according to the given string <code>format</code>. - - -<p> -If the <code>time</code> argument is present, -this is the time to be formatted -(see the <a href="#pdf-os.time"><code>os.time</code></a> function for a description of this value). -Otherwise, <code>date</code> formats the current time. - - -<p> -If <code>format</code> starts with '<code>!</code>', -then the date is formatted in Coordinated Universal Time. -After this optional character, -if <code>format</code> is the string "<code>*t</code>", -then <code>date</code> returns a table with the following fields: -<code>year</code> (four digits), <code>month</code> (1–12), <code>day</code> (1–31), -<code>hour</code> (0–23), <code>min</code> (0–59), <code>sec</code> (0–61), -<code>wday</code> (weekday, Sunday is 1), -<code>yday</code> (day of the year), -and <code>isdst</code> (daylight saving flag, a boolean). -This last field may be absent -if the information is not available. - - -<p> -If <code>format</code> is not "<code>*t</code>", -then <code>date</code> returns the date as a string, -formatted according to the same rules as the ISO C function <code>strftime</code>. - - -<p> -When called without arguments, -<code>date</code> returns a reasonable date and time representation that depends on -the host system and on the current locale -(that is, <code>os.date()</code> is equivalent to <code>os.date("%c")</code>). - - -<p> -On non-Posix systems, -this function may be not thread safe -because of its reliance on C function <code>gmtime</code> and C function <code>localtime</code>. - - - - -<p> -<hr><h3><a name="pdf-os.difftime"><code>os.difftime (t2, t1)</code></a></h3> - - -<p> -Returns the number of seconds from time <code>t1</code> to time <code>t2</code>. -In POSIX, Windows, and some other systems, -this value is exactly <code>t2</code><em>-</em><code>t1</code>. - - - - -<p> -<hr><h3><a name="pdf-os.execute"><code>os.execute ([command])</code></a></h3> - - -<p> -This function is equivalent to the ISO C function <code>system</code>. -It passes <code>command</code> to be executed by an operating system shell. -Its first result is <b>true</b> -if the command terminated successfully, -or <b>nil</b> otherwise. -After this first result -the function returns a string and a number, -as follows: - -<ul> - -<li><b>"<code>exit</code>": </b> -the command terminated normally; -the following number is the exit status of the command. -</li> - -<li><b>"<code>signal</code>": </b> -the command was terminated by a signal; -the following number is the signal that terminated the command. -</li> - -</ul> - -<p> -When called without a <code>command</code>, -<code>os.execute</code> returns a boolean that is true if a shell is available. - - - - -<p> -<hr><h3><a name="pdf-os.exit"><code>os.exit ([code [, close])</code></a></h3> - - -<p> -Calls the ISO C function <code>exit</code> to terminate the host program. -If <code>code</code> is <b>true</b>, -the returned status is <code>EXIT_SUCCESS</code>; -if <code>code</code> is <b>false</b>, -the returned status is <code>EXIT_FAILURE</code>; -if <code>code</code> is a number, -the returned status is this number. -The default value for <code>code</code> is <b>true</b>. - - -<p> -If the optional second argument <code>close</code> is true, -closes the Lua state before exiting. - - - - -<p> -<hr><h3><a name="pdf-os.getenv"><code>os.getenv (varname)</code></a></h3> - - -<p> -Returns the value of the process environment variable <code>varname</code>, -or <b>nil</b> if the variable is not defined. - - - - -<p> -<hr><h3><a name="pdf-os.remove"><code>os.remove (filename)</code></a></h3> - - -<p> -Deletes the file (or empty directory, on POSIX systems) -with the given name. -If this function fails, it returns <b>nil</b>, -plus a string describing the error and the error code. - - - - -<p> -<hr><h3><a name="pdf-os.rename"><code>os.rename (oldname, newname)</code></a></h3> - - -<p> -Renames file or directory named <code>oldname</code> to <code>newname</code>. -If this function fails, it returns <b>nil</b>, -plus a string describing the error and the error code. - - - - -<p> -<hr><h3><a name="pdf-os.setlocale"><code>os.setlocale (locale [, category])</code></a></h3> - - -<p> -Sets the current locale of the program. -<code>locale</code> is a system-dependent string specifying a locale; -<code>category</code> is an optional string describing which category to change: -<code>"all"</code>, <code>"collate"</code>, <code>"ctype"</code>, -<code>"monetary"</code>, <code>"numeric"</code>, or <code>"time"</code>; -the default category is <code>"all"</code>. -The function returns the name of the new locale, -or <b>nil</b> if the request cannot be honored. - - -<p> -If <code>locale</code> is the empty string, -the current locale is set to an implementation-defined native locale. -If <code>locale</code> is the string "<code>C</code>", -the current locale is set to the standard C locale. - - -<p> -When called with <b>nil</b> as the first argument, -this function only returns the name of the current locale -for the given category. - - -<p> -This function may be not thread safe -because of its reliance on C function <code>setlocale</code>. - - - - -<p> -<hr><h3><a name="pdf-os.time"><code>os.time ([table])</code></a></h3> - - -<p> -Returns the current time when called without arguments, -or a time representing the date and time specified by the given table. -This table must have fields <code>year</code>, <code>month</code>, and <code>day</code>, -and may have fields -<code>hour</code> (default is 12), -<code>min</code> (default is 0), -<code>sec</code> (default is 0), -and <code>isdst</code> (default is <b>nil</b>). -For a description of these fields, see the <a href="#pdf-os.date"><code>os.date</code></a> function. - - -<p> -The returned value is a number, whose meaning depends on your system. -In POSIX, Windows, and some other systems, -this number counts the number -of seconds since some given start time (the "epoch"). -In other systems, the meaning is not specified, -and the number returned by <code>time</code> can be used only as an argument to -<a href="#pdf-os.date"><code>os.date</code></a> and <a href="#pdf-os.difftime"><code>os.difftime</code></a>. - - - - -<p> -<hr><h3><a name="pdf-os.tmpname"><code>os.tmpname ()</code></a></h3> - - -<p> -Returns a string with a file name that can -be used for a temporary file. -The file must be explicitly opened before its use -and explicitly removed when no longer needed. - - -<p> -On POSIX systems, -this function also creates a file with that name, -to avoid security risks. -(Someone else might create the file with wrong permissions -in the time between getting the name and creating the file.) -You still have to open the file to use it -and to remove it (even if you do not use it). - - -<p> -When possible, -you may prefer to use <a href="#pdf-io.tmpfile"><code>io.tmpfile</code></a>, -which automatically removes the file when the program ends. - - - - - - - -<h2>6.10 – <a name="6.10">The Debug Library</a></h2> - -<p> -This library provides -the functionality of the debug interface (<a href="#4.9">§4.9</a>) to Lua programs. -You should exert care when using this library. -Several of its functions -violate basic assumptions about Lua code -(e.g., that variables local to a function -cannot be accessed from outside; -that userdata metatables cannot be changed by Lua code; -that Lua programs do not crash) -and therefore can compromise otherwise secure code. -Moreover, some functions in this library may be slow. - - -<p> -All functions in this library are provided -inside the <a name="pdf-debug"><code>debug</code></a> table. -All functions that operate over a thread -have an optional first argument which is the -thread to operate over. -The default is always the current thread. - - -<p> -<hr><h3><a name="pdf-debug.debug"><code>debug.debug ()</code></a></h3> - - -<p> -Enters an interactive mode with the user, -running each string that the user enters. -Using simple commands and other debug facilities, -the user can inspect global and local variables, -change their values, evaluate expressions, and so on. -A line containing only the word <code>cont</code> finishes this function, -so that the caller continues its execution. - - -<p> -Note that commands for <code>debug.debug</code> are not lexically nested -within any function and so have no direct access to local variables. - - - - -<p> -<hr><h3><a name="pdf-debug.gethook"><code>debug.gethook ([thread])</code></a></h3> - - -<p> -Returns the current hook settings of the thread, as three values: -the current hook function, the current hook mask, -and the current hook count -(as set by the <a href="#pdf-debug.sethook"><code>debug.sethook</code></a> function). - - - - -<p> -<hr><h3><a name="pdf-debug.getinfo"><code>debug.getinfo ([thread,] f [, what])</code></a></h3> - - -<p> -Returns a table with information about a function. -You can give the function directly -or you can give a number as the value of <code>f</code>, -which means the function running at level <code>f</code> of the call stack -of the given thread: -level 0 is the current function (<code>getinfo</code> itself); -level 1 is the function that called <code>getinfo</code> -(except for tail calls, which do not count on the stack); -and so on. -If <code>f</code> is a number larger than the number of active functions, -then <code>getinfo</code> returns <b>nil</b>. - - -<p> -The returned table can contain all the fields returned by <a href="#lua_getinfo"><code>lua_getinfo</code></a>, -with the string <code>what</code> describing which fields to fill in. -The default for <code>what</code> is to get all information available, -except the table of valid lines. -If present, -the option '<code>f</code>' -adds a field named <code>func</code> with the function itself. -If present, -the option '<code>L</code>' -adds a field named <code>activelines</code> with the table of -valid lines. - - -<p> -For instance, the expression <code>debug.getinfo(1,"n").name</code> returns -a table with a name for the current function, -if a reasonable name can be found, -and the expression <code>debug.getinfo(print)</code> -returns a table with all available information -about the <a href="#pdf-print"><code>print</code></a> function. - - - - -<p> -<hr><h3><a name="pdf-debug.getlocal"><code>debug.getlocal ([thread,] f, local)</code></a></h3> - - -<p> -This function returns the name and the value of the local variable -with index <code>local</code> of the function at level <code>f</code> of the stack. -This function accesses not only explicit local variables, -but also parameters, temporaries, etc. - - -<p> -The first parameter or local variable has index 1, and so on, -until the last active variable. -Negative indices refer to vararg parameters; --1 is the first vararg parameter. -The function returns <b>nil</b> if there is no variable with the given index, -and raises an error when called with a level out of range. -(You can call <a href="#pdf-debug.getinfo"><code>debug.getinfo</code></a> to check whether the level is valid.) - - -<p> -Variable names starting with '<code>(</code>' (open parenthesis) -represent internal variables -(loop control variables, temporaries, varargs, and C function locals). - - -<p> -The parameter <code>f</code> may also be a function. -In that case, <code>getlocal</code> returns only the name of function parameters. - - - - -<p> -<hr><h3><a name="pdf-debug.getmetatable"><code>debug.getmetatable (value)</code></a></h3> - - -<p> -Returns the metatable of the given <code>value</code> -or <b>nil</b> if it does not have a metatable. - - - - -<p> -<hr><h3><a name="pdf-debug.getregistry"><code>debug.getregistry ()</code></a></h3> - - -<p> -Returns the registry table (see <a href="#4.5">§4.5</a>). - - - - -<p> -<hr><h3><a name="pdf-debug.getupvalue"><code>debug.getupvalue (f, up)</code></a></h3> - - -<p> -This function returns the name and the value of the upvalue -with index <code>up</code> of the function <code>f</code>. -The function returns <b>nil</b> if there is no upvalue with the given index. - - - - -<p> -<hr><h3><a name="pdf-debug.getuservalue"><code>debug.getuservalue (u)</code></a></h3> - - -<p> -Returns the Lua value associated to <code>u</code>. -If <code>u</code> is not a userdata, -returns <b>nil</b>. - - - - -<p> -<hr><h3><a name="pdf-debug.sethook"><code>debug.sethook ([thread,] hook, mask [, count])</code></a></h3> - - -<p> -Sets the given function as a hook. -The string <code>mask</code> and the number <code>count</code> describe -when the hook will be called. -The string mask may have any combination of the following characters, -with the given meaning: - -<ul> -<li><b>'<code>c</code>': </b> the hook is called every time Lua calls a function;</li> -<li><b>'<code>r</code>': </b> the hook is called every time Lua returns from a function;</li> -<li><b>'<code>l</code>': </b> the hook is called every time Lua enters a new line of code.</li> -</ul><p> -Moreover, -with a <code>count</code> different from zero, -the hook is called also after every <code>count</code> instructions. - - -<p> -When called without arguments, -<a href="#pdf-debug.sethook"><code>debug.sethook</code></a> turns off the hook. - - -<p> -When the hook is called, its first parameter is a string -describing the event that has triggered its call: -<code>"call"</code> (or <code>"tail call"</code>), -<code>"return"</code>, -<code>"line"</code>, and <code>"count"</code>. -For line events, -the hook also gets the new line number as its second parameter. -Inside a hook, -you can call <code>getinfo</code> with level 2 to get more information about -the running function -(level 0 is the <code>getinfo</code> function, -and level 1 is the hook function). - - - - -<p> -<hr><h3><a name="pdf-debug.setlocal"><code>debug.setlocal ([thread,] level, local, value)</code></a></h3> - - -<p> -This function assigns the value <code>value</code> to the local variable -with index <code>local</code> of the function at level <code>level</code> of the stack. -The function returns <b>nil</b> if there is no local -variable with the given index, -and raises an error when called with a <code>level</code> out of range. -(You can call <code>getinfo</code> to check whether the level is valid.) -Otherwise, it returns the name of the local variable. - - -<p> -See <a href="#pdf-debug.getlocal"><code>debug.getlocal</code></a> for more information about -variable indices and names. - - - - -<p> -<hr><h3><a name="pdf-debug.setmetatable"><code>debug.setmetatable (value, table)</code></a></h3> - - -<p> -Sets the metatable for the given <code>value</code> to the given <code>table</code> -(which can be <b>nil</b>). -Returns <code>value</code>. - - - - -<p> -<hr><h3><a name="pdf-debug.setupvalue"><code>debug.setupvalue (f, up, value)</code></a></h3> - - -<p> -This function assigns the value <code>value</code> to the upvalue -with index <code>up</code> of the function <code>f</code>. -The function returns <b>nil</b> if there is no upvalue -with the given index. -Otherwise, it returns the name of the upvalue. - - - - -<p> -<hr><h3><a name="pdf-debug.setuservalue"><code>debug.setuservalue (udata, value)</code></a></h3> - - -<p> -Sets the given <code>value</code> as -the Lua value associated to the given <code>udata</code>. -<code>value</code> must be a table or <b>nil</b>; -<code>udata</code> must be a full userdata. - - -<p> -Returns <code>udata</code>. - - - - -<p> -<hr><h3><a name="pdf-debug.traceback"><code>debug.traceback ([thread,] [message [, level]])</code></a></h3> - - -<p> -If <code>message</code> is present but is neither a string nor <b>nil</b>, -this function returns <code>message</code> without further processing. -Otherwise, -it returns a string with a traceback of the call stack. -An optional <code>message</code> string is appended -at the beginning of the traceback. -An optional <code>level</code> number tells at which level -to start the traceback -(default is 1, the function calling <code>traceback</code>). - - - - -<p> -<hr><h3><a name="pdf-debug.upvalueid"><code>debug.upvalueid (f, n)</code></a></h3> - - -<p> -Returns an unique identifier (as a light userdata) -for the upvalue numbered <code>n</code> -from the given function. - - -<p> -These unique identifiers allow a program to check whether different -closures share upvalues. -Lua closures that share an upvalue -(that is, that access a same external local variable) -will return identical ids for those upvalue indices. - - - - -<p> -<hr><h3><a name="pdf-debug.upvaluejoin"><code>debug.upvaluejoin (f1, n1, f2, n2)</code></a></h3> - - -<p> -Make the <code>n1</code>-th upvalue of the Lua closure <code>f1</code> -refer to the <code>n2</code>-th upvalue of the Lua closure <code>f2</code>. - - - - - - - -<h1>7 – <a name="7">Lua Standalone</a></h1> - -<p> -Although Lua has been designed as an extension language, -to be embedded in a host C program, -it is also frequently used as a standalone language. -An interpreter for Lua as a standalone language, -called simply <code>lua</code>, -is provided with the standard distribution. -The standalone interpreter includes -all standard libraries, including the debug library. -Its usage is: - -<pre> - lua [options] [script [args]] -</pre><p> -The options are: - -<ul> -<li><b><code>-e <em>stat</em></code>: </b> executes string <em>stat</em>;</li> -<li><b><code>-l <em>mod</em></code>: </b> "requires" <em>mod</em>;</li> -<li><b><code>-i</code>: </b> enters interactive mode after running <em>script</em>;</li> -<li><b><code>-v</code>: </b> prints version information;</li> -<li><b><code>-E</code>: </b> ignores environment variables;</li> -<li><b><code>--</code>: </b> stops handling options;</li> -<li><b><code>-</code>: </b> executes <code>stdin</code> as a file and stops handling options.</li> -</ul><p> -After handling its options, <code>lua</code> runs the given <em>script</em>, -passing to it the given <em>args</em> as string arguments. -When called without arguments, -<code>lua</code> behaves as <code>lua -v -i</code> -when the standard input (<code>stdin</code>) is a terminal, -and as <code>lua -</code> otherwise. - - -<p> -When called without option <code>-E</code>, -the interpreter checks for an environment variable <a name="pdf-LUA_INIT_5_2"><code>LUA_INIT_5_2</code></a> -(or <a name="pdf-LUA_INIT"><code>LUA_INIT</code></a> if it is not defined) -before running any argument. -If the variable content has the format <code>@<em>filename</em></code>, -then <code>lua</code> executes the file. -Otherwise, <code>lua</code> executes the string itself. - - -<p> -When called with option <code>-E</code>, -besides ignoring <code>LUA_INIT</code>, -Lua also ignores -the values of <code>LUA_PATH</code> and <code>LUA_CPATH</code>, -setting the values of -<a href="#pdf-package.path"><code>package.path</code></a> and <a href="#pdf-package.cpath"><code>package.cpath</code></a> -with the default paths defined in <code>luaconf.h</code>. - - -<p> -All options are handled in order, except <code>-i</code> and <code>-E</code>. -For instance, an invocation like - -<pre> - $ lua -e'a=1' -e 'print(a)' script.lua -</pre><p> -will first set <code>a</code> to 1, then print the value of <code>a</code>, -and finally run the file <code>script.lua</code> with no arguments. -(Here <code>$</code> is the shell prompt. Your prompt may be different.) - - -<p> -Before starting to run the script, -<code>lua</code> collects all arguments in the command line -in a global table called <code>arg</code>. -The script name is stored at index 0, -the first argument after the script name goes to index 1, -and so on. -Any arguments before the script name -(that is, the interpreter name plus the options) -go to negative indices. -For instance, in the call - -<pre> - $ lua -la b.lua t1 t2 -</pre><p> -the interpreter first runs the file <code>a.lua</code>, -then creates a table - -<pre> - arg = { [-2] = "lua", [-1] = "-la", - [0] = "b.lua", - [1] = "t1", [2] = "t2" } -</pre><p> -and finally runs the file <code>b.lua</code>. -The script is called with <code>arg[1]</code>, <code>arg[2]</code>, ... -as arguments; -it can also access these arguments with the vararg expression '<code>...</code>'. - - -<p> -In interactive mode, -if you write an incomplete statement, -the interpreter waits for its completion -by issuing a different prompt. - - -<p> -In case of unprotected errors in the script, -the interpreter reports the error to the standard error stream. -If the error object is a string, -the interpreter adds a stack traceback to it. -Otherwise, if the error object has a metamethod <code>__tostring</code>, -the interpreter calls this metamethod to produce the final message. -Finally, if the error object is <b>nil</b>, -the interpreter does not report the error. - - -<p> -When finishing normally, -the interpreter closes its main Lua state -(see <a href="#lua_close"><code>lua_close</code></a>). -The script can avoid this step by -calling <a href="#pdf-os.exit"><code>os.exit</code></a> to terminate. - - -<p> -To allow the use of Lua as a -script interpreter in Unix systems, -the standalone interpreter skips -the first line of a chunk if it starts with <code>#</code>. -Therefore, Lua scripts can be made into executable programs -by using <code>chmod +x</code> and the <code>#!</code> form, -as in - -<pre> - #!/usr/local/bin/lua -</pre><p> -(Of course, -the location of the Lua interpreter may be different in your machine. -If <code>lua</code> is in your <code>PATH</code>, -then - -<pre> - #!/usr/bin/env lua -</pre><p> -is a more portable solution.) - - - -<h1>8 – <a name="8">Incompatibilities with the Previous Version</a></h1> - -<p> -Here we list the incompatibilities that you may find when moving a program -from Lua 5.1 to Lua 5.2. -You can avoid some incompatibilities by compiling Lua with -appropriate options (see file <code>luaconf.h</code>). -However, -all these compatibility options will be removed in the next version of Lua. -Similarly, -all features marked as deprecated in Lua 5.1 -have been removed in Lua 5.2. - - - -<h2>8.1 – <a name="8.1">Changes in the Language</a></h2> -<ul> - -<li> -The concept of <em>environment</em> changed. -Only Lua functions have environments. -To set the environment of a Lua function, -use the variable <code>_ENV</code> or the function <a href="#pdf-load"><code>load</code></a>. - - -<p> -C functions no longer have environments. -Use an upvalue with a shared table if you need to keep -shared state among several C functions. -(You may use <a href="#luaL_setfuncs"><code>luaL_setfuncs</code></a> to open a C library -with all functions sharing a common upvalue.) - - -<p> -To manipulate the "environment" of a userdata -(which is now called user value), -use the new functions -<a href="#lua_getuservalue"><code>lua_getuservalue</code></a> and <a href="#lua_setuservalue"><code>lua_setuservalue</code></a>. -</li> - -<li> -Lua identifiers cannot use locale-dependent letters. -</li> - -<li> -Doing a step or a full collection in the garbage collector -does not restart the collector if it has been stopped. -</li> - -<li> -Weak tables with weak keys now perform like <em>ephemeron tables</em>. -</li> - -<li> -The event <em>tail return</em> in debug hooks was removed. -Instead, tail calls generate a special new event, -<em>tail call</em>, so that the debugger can know that -there will not be a corresponding return event. -</li> - -<li> -Equality between function values has changed. -Now, a function definition may not create a new value; -it may reuse some previous value if there is no -observable difference to the new function. -</li> - -</ul> - - - - -<h2>8.2 – <a name="8.2">Changes in the Libraries</a></h2> -<ul> - -<li> -Function <code>module</code> is deprecated. -It is easy to set up a module with regular Lua code. -Modules are not expected to set global variables. -</li> - -<li> -Functions <code>setfenv</code> and <code>getfenv</code> were removed, -because of the changes in environments. -</li> - -<li> -Function <code>math.log10</code> is deprecated. -Use <a href="#pdf-math.log"><code>math.log</code></a> with 10 as its second argument, instead. -</li> - -<li> -Function <code>loadstring</code> is deprecated. -Use <code>load</code> instead; it now accepts string arguments -and are exactly equivalent to <code>loadstring</code>. -</li> - -<li> -Function <code>table.maxn</code> is deprecated. -Write it in Lua if you really need it. -</li> - -<li> -Function <code>os.execute</code> now returns <b>true</b> when command -terminates successfully and <b>nil</b> plus error information -otherwise. -</li> - -<li> -Function <code>unpack</code> was moved into the table library -and therefore must be called as <a href="#pdf-table.unpack"><code>table.unpack</code></a>. -</li> - -<li> -Character class <code>%z</code> in patterns is deprecated, -as now patterns may contain '<code>\0</code>' as a regular character. -</li> - -<li> -The table <code>package.loaders</code> was renamed <code>package.searchers</code>. -</li> - -<li> -Lua does not have bytecode verification anymore. -So, all functions that load code -(<a href="#pdf-load"><code>load</code></a> and <a href="#pdf-loadfile"><code>loadfile</code></a>) -are potentially insecure when loading untrusted binary data. -(Actually, those functions were already insecure because -of flaws in the verification algorithm.) -When in doubt, -use the <code>mode</code> argument of those functions -to restrict them to loading textual chunks. -</li> - -<li> -The standard paths in the official distribution may -change between versions. -</li> - -</ul> - - - - -<h2>8.3 – <a name="8.3">Changes in the API</a></h2> -<ul> - -<li> -Pseudoindex <code>LUA_GLOBALSINDEX</code> was removed. -You must get the global environment from the registry -(see <a href="#4.5">§4.5</a>). -</li> - -<li> -Pseudoindex <code>LUA_ENVIRONINDEX</code> -and functions <code>lua_getfenv</code>/<code>lua_setfenv</code> -were removed, -as C functions no longer have environments. -</li> - -<li> -Function <code>luaL_register</code> is deprecated. -Use <a href="#luaL_setfuncs"><code>luaL_setfuncs</code></a> so that your module does not create globals. -(Modules are not expected to set global variables anymore.) -</li> - -<li> -The <code>osize</code> argument to the allocation function -may not be zero when creating a new block, -that is, when <code>ptr</code> is <code>NULL</code> -(see <a href="#lua_Alloc"><code>lua_Alloc</code></a>). -Use only the test <code>ptr == NULL</code> to check whether -the block is new. -</li> - -<li> -Finalizers (<code>__gc</code> metamethods) for userdata are called in the -reverse order that they were marked for finalization, -not that they were created (see <a href="#2.5.1">§2.5.1</a>). -(Most userdata are marked immediately after they are created.) -Moreover, -if the metatable does not have a <code>__gc</code> field when set, -the finalizer will not be called, -even if it is set later. -</li> - -<li> -<code>luaL_typerror</code> was removed. -Write your own version if you need it. -</li> - -<li> -Function <code>lua_cpcall</code> is deprecated. -You can simply push the function with <a href="#lua_pushcfunction"><code>lua_pushcfunction</code></a> -and call it with <a href="#lua_pcall"><code>lua_pcall</code></a>. -</li> - -<li> -Functions <code>lua_equal</code> and <code>lua_lessthan</code> are deprecated. -Use the new <a href="#lua_compare"><code>lua_compare</code></a> with appropriate options instead. -</li> - -<li> -Function <code>lua_objlen</code> was renamed <a href="#lua_rawlen"><code>lua_rawlen</code></a>. -</li> - -<li> -Function <a href="#lua_load"><code>lua_load</code></a> has an extra parameter, <code>mode</code>. -Pass <code>NULL</code> to simulate the old behavior. -</li> - -<li> -Function <a href="#lua_resume"><code>lua_resume</code></a> has an extra parameter, <code>from</code>. -Pass <code>NULL</code> or the thread doing the call. -</li> - -</ul> - - - - -<h1>9 – <a name="9">The Complete Syntax of Lua</a></h1> - -<p> -Here is the complete syntax of Lua in extended BNF. -(It does not describe operator precedences.) - - - - -<pre> - - chunk ::= block - - block ::= {stat} [retstat] - - stat ::= ‘<b>;</b>’ | - varlist ‘<b>=</b>’ explist | - functioncall | - label | - <b>break</b> | - <b>goto</b> Name | - <b>do</b> block <b>end</b> | - <b>while</b> exp <b>do</b> block <b>end</b> | - <b>repeat</b> block <b>until</b> exp | - <b>if</b> exp <b>then</b> block {<b>elseif</b> exp <b>then</b> block} [<b>else</b> block] <b>end</b> | - <b>for</b> Name ‘<b>=</b>’ exp ‘<b>,</b>’ exp [‘<b>,</b>’ exp] <b>do</b> block <b>end</b> | - <b>for</b> namelist <b>in</b> explist <b>do</b> block <b>end</b> | - <b>function</b> funcname funcbody | - <b>local</b> <b>function</b> Name funcbody | - <b>local</b> namelist [‘<b>=</b>’ explist] - - retstat ::= <b>return</b> [explist] [‘<b>;</b>’] - - label ::= ‘<b>::</b>’ Name ‘<b>::</b>’ - - funcname ::= Name {‘<b>.</b>’ Name} [‘<b>:</b>’ Name] - - varlist ::= var {‘<b>,</b>’ var} - - var ::= Name | prefixexp ‘<b>[</b>’ exp ‘<b>]</b>’ | prefixexp ‘<b>.</b>’ Name - - namelist ::= Name {‘<b>,</b>’ Name} - - explist ::= exp {‘<b>,</b>’ exp} - - exp ::= <b>nil</b> | <b>false</b> | <b>true</b> | Number | String | ‘<b>...</b>’ | functiondef | - prefixexp | tableconstructor | exp binop exp | unop exp - - prefixexp ::= var | functioncall | ‘<b>(</b>’ exp ‘<b>)</b>’ - - functioncall ::= prefixexp args | prefixexp ‘<b>:</b>’ Name args - - args ::= ‘<b>(</b>’ [explist] ‘<b>)</b>’ | tableconstructor | String - - functiondef ::= <b>function</b> funcbody - - funcbody ::= ‘<b>(</b>’ [parlist] ‘<b>)</b>’ block <b>end</b> - - parlist ::= namelist [‘<b>,</b>’ ‘<b>...</b>’] | ‘<b>...</b>’ - - tableconstructor ::= ‘<b>{</b>’ [fieldlist] ‘<b>}</b>’ - - fieldlist ::= field {fieldsep field} [fieldsep] - - field ::= ‘<b>[</b>’ exp ‘<b>]</b>’ ‘<b>=</b>’ exp | Name ‘<b>=</b>’ exp | exp - - fieldsep ::= ‘<b>,</b>’ | ‘<b>;</b>’ - - binop ::= ‘<b>+</b>’ | ‘<b>-</b>’ | ‘<b>*</b>’ | ‘<b>/</b>’ | ‘<b>^</b>’ | ‘<b>%</b>’ | ‘<b>..</b>’ | - ‘<b><</b>’ | ‘<b><=</b>’ | ‘<b>></b>’ | ‘<b>>=</b>’ | ‘<b>==</b>’ | ‘<b>~=</b>’ | - <b>and</b> | <b>or</b> - - unop ::= ‘<b>-</b>’ | <b>not</b> | ‘<b>#</b>’ - -</pre> - -<p> - - - - - - - -<HR> -<SMALL CLASS="footer"> -Last update: -Mon Feb 23 22:24:44 BRT 2015 -</SMALL> -<!-- -Last change: revised for Lua 5.2.4 ---> - -</body></html> - diff --git a/source/libs/lua52/lua52-src/doc/osi-certified-72x60.png b/source/libs/lua52/lua52-src/doc/osi-certified-72x60.png deleted file mode 100644 index 07df5f6ee7a7a8b2108025dcd815f73f145a83af..0000000000000000000000000000000000000000 Binary files a/source/libs/lua52/lua52-src/doc/osi-certified-72x60.png and /dev/null differ diff --git a/source/libs/lua52/lua52-src/doc/readme.html b/source/libs/lua52/lua52-src/doc/readme.html deleted file mode 100644 index 82dfe8119b6ad5dfbc86548855298a77674bd861..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/doc/readme.html +++ /dev/null @@ -1,417 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<HTML> -<HEAD> -<TITLE>Lua 5.2 readme</TITLE> -<LINK REL="stylesheet" TYPE="text/css" HREF="lua.css"> -<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1"> -<STYLE TYPE="text/css"> -blockquote, .display { - border: solid #a0a0a0 2px ; - border-radius: 8px ; - padding: 1em ; - margin: 0px ; -} - -.display { - word-spacing: 0.25em ; -} - -dl.display dd { - padding-bottom: 0.2em ; -} - -tt, kbd, code { - font-size: 12pt ; -} -</STYLE> -</HEAD> - -<BODY> - -<HR> -<H1> -<A HREF="http://www.lua.org/"><IMG SRC="logo.gif" ALT="Lua" BORDER=0></A> -Welcome to Lua 5.2 -</H1> - -<P> -<A HREF="#about">about</A> -· -<A HREF="#install">installation</A> -· -<A HREF="#changes">changes</A> -· -<A HREF="#license">license</A> -· -<A HREF="contents.html">reference manual</A> - -<H2><A NAME="about">About Lua</A></H2> - -<P> -Lua is a powerful, fast, lightweight, embeddable scripting language -developed by a -<A HREF="http://www.lua.org/authors.html">team</A> -at -<A HREF="http://www.puc-rio.br/">PUC-Rio</A>, -the Pontifical Catholic University of Rio de Janeiro in Brazil. -Lua is -<A HREF="#license">free software</A> -used in many products and projects around the world. - -<P> -Lua's -<A HREF="http://www.lua.org/">official web site</A> -provides complete information -about Lua, -including -an -<A HREF="http://www.lua.org/about.html">executive summary</A> -and -updated -<A HREF="http://www.lua.org/docs.html">documentation</A>, -especially the -<A HREF="http://www.lua.org/manual/5.2/">reference manual</A>, -which may differ slightly from the -<A HREF="contents.html">local copy</A> -distributed in this package. - -<H2><A NAME="install">Installing Lua</A></H2> - -<P> -Lua is distributed in -<A HREF="http://www.lua.org/ftp/">source</A> -form. -You need to build it before using it. -Building Lua should be straightforward -because -Lua is implemented in pure ANSI C and compiles unmodified in all known -platforms that have an ANSI C compiler. -Lua also compiles unmodified as C++. -The instructions given below for building Lua are for Unix-like platforms. -See also -<A HREF="#other">instructions for other systems</A> -and -<A HREF="#customization">customization options</A>. - -<P> -If you don't have the time or the inclination to compile Lua yourself, -get a binary from -<A HREF="http://lua-users.org/wiki/LuaBinaries">LuaBinaries</A>. -Try also -<A HREF="http://luadist.org/">LuaDist</A>, -a multi-platform distribution of Lua that includes batteries. - -<H3>Building Lua</H3> - -<P> -In most Unix-like platforms, simply do "<KBD>make</KBD>" with a suitable target. -Here are the details. - -<OL> -<LI> -Open a terminal window and move to -the top-level directory, which is named <TT>lua-5.2.x</TT>. -The <TT>Makefile</TT> there controls both the build process and the installation process. -<P> -<LI> - Do "<KBD>make</KBD>" and see if your platform is listed. - The platforms currently supported are: -<P> -<P CLASS="display"> - aix ansi bsd freebsd generic linux macosx mingw posix solaris -</P> -<P> - If your platform is listed, just do "<KBD>make xxx</KBD>", where xxx - is your platform name. -<P> - If your platform is not listed, try the closest one or posix, generic, - ansi, in this order. -<P> -<LI> -The compilation takes only a few moments -and produces three files in the <TT>src</TT> directory: -lua (the interpreter), -luac (the compiler), -and liblua.a (the library). -<P> -<LI> - To check that Lua has been built correctly, do "<KBD>make test</KBD>" - after building Lua. This will run the interpreter and print its version. -</OL> -<P> -If you're running Linux and get compilation errors, -make sure you have installed the <TT>readline</TT> development package -(which is probably named <TT>libreadline-dev</TT> or <TT>readline-devel</TT>). -If you get link errors after that, -then try "<KBD>make linux MYLIBS=-ltermcap</KBD>". - -<H3>Installing Lua</H3> -<P> - Once you have built Lua, you may want to install it in an official - place in your system. In this case, do "<KBD>make install</KBD>". The official - place and the way to install files are defined in the <TT>Makefile</TT>. You'll - probably need the right permissions to install files. - -<P> - To build and install Lua in one step, do "<KBD>make xxx install</KBD>", - where xxx is your platform name. - -<P> - To install Lua locally, do "<KBD>make local</KBD>". - This will create a directory <TT>install</TT> with subdirectories - <TT>bin</TT>, <TT>include</TT>, <TT>lib</TT>, <TT>man</TT>, <TT>share</TT>, - and install Lua as listed below. - - To install Lua locally, but in some other directory, do - "<KBD>make install INSTALL_TOP=xxx</KBD>", where xxx is your chosen directory. - The installation starts in the <TT>src</TT> and <TT>doc</TT> directories, - so take care if <TT>INSTALL_TOP</TT> is not an absolute path. - -<DL CLASS="display"> -<DT> - bin: -<DD> - lua luac -<DT> - include: -<DD> - lua.h luaconf.h lualib.h lauxlib.h lua.hpp -<DT> - lib: -<DD> - liblua.a -<DT> - man/man1: -<DD> - lua.1 luac.1 -</DL> - -<P> - These are the only directories you need for development. - If you only want to run Lua programs, - you only need the files in <TT>bin</TT> and <TT>man</TT>. - The files in <TT>include</TT> and <TT>lib</TT> are needed for - embedding Lua in C or C++ programs. - -<H3><A NAME="customization">Customization</A></H3> -<P> - Three kinds of things can be customized by editing a file: -<UL> - <LI> Where and how to install Lua — edit <TT>Makefile</TT>. - <LI> How to build Lua — edit <TT>src/Makefile</TT>. - <LI> Lua features — edit <TT>src/luaconf.h</TT>. -</UL> - -<P> - You don't actually need to edit the Makefiles because you may set the - relevant variables in the command line when invoking make. - Nevertheless, it's probably best to edit and save the Makefiles to - record the changes you've made. - -<P> - On the other hand, if you need to customize some Lua features, you'll need - to edit <TT>src/luaconf.h</TT> before building and installing Lua. - The edited file will be the one installed, and - it will be used by any Lua clients that you build, to ensure consistency. - Further customization is available to experts by editing the Lua sources. - -<P> - We strongly recommend that you enable dynamic loading in <TT>src/luaconf.h</TT>. - This is done automatically for all platforms listed above that have - this feature and also for Windows. - -<H3><A NAME="other">Building Lua on other systems</A></H3> - -<P> - If you're not using the usual Unix tools, then the instructions for - building Lua depend on the compiler you use. You'll need to create - projects (or whatever your compiler uses) for building the library, - the interpreter, and the compiler, as follows: - -<DL CLASS="display"> -<DT> -library: -<DD> -lapi.c lcode.c lctype.c ldebug.c ldo.c ldump.c lfunc.c lgc.c llex.c -lmem.c lobject.c lopcodes.c lparser.c lstate.c lstring.c ltable.c -ltm.c lundump.c lvm.c lzio.c -lauxlib.c lbaselib.c lbitlib.c lcorolib.c ldblib.c liolib.c -lmathlib.c loslib.c lstrlib.c ltablib.c loadlib.c linit.c -<DT> -interpreter: -<DD> - library, lua.c -<DT> -compiler: -<DD> - library, luac.c -</DL> - -<P> - To use Lua as a library in your own programs you'll need to know how to - create and use libraries with your compiler. Moreover, to dynamically load - C libraries for Lua you'll need to know how to create dynamic libraries - and you'll need to make sure that the Lua API functions are accessible to - those dynamic libraries — but <EM>don't</EM> link the Lua library - into each dynamic library. For Unix, we recommend that the Lua library - be linked statically into the host program and its symbols exported for - dynamic linking; <TT>src/Makefile</TT> does this for the Lua interpreter. - For Windows, we recommend that the Lua library be a DLL. - In all cases, the compiler luac should be linked statically. - -<P> - As mentioned above, you may edit <TT>src/luaconf.h</TT> to customize - some features before building Lua. - -<H2><A NAME="changes">Changes since Lua 5.1</A></H2> - -<P> -Here are the main changes introduced in Lua 5.2. -The -<A HREF="contents.html">reference manual</A> -lists the -<A HREF="manual.html#8">incompatibilities</A> that had to be introduced. - -<H3>Main changes</H3> -<UL> -<LI> yieldable pcall and metamethods -<LI> new lexical scheme for globals -<LI> ephemeron tables -<LI> new library for bitwise operations -<LI> light C functions -<LI> emergency garbage collector -<LI> <CODE>goto</CODE> statement -<LI> finalizers for tables -</UL> - -Here are the other changes introduced in Lua 5.2: -<H3>Language</H3> -<UL> -<LI> no more fenv for threads or functions -<LI> tables honor the <CODE>__len</CODE> metamethod -<LI> hex and <CODE>\z</CODE> escapes in strings -<LI> support for hexadecimal floats -<LI> order metamethods work for different types -<LI> no more verification of opcode consistency -<LI> hook event "tail return" replaced by "tail call" -<LI> empty statement -<LI> <CODE>break</CODE> statement may appear in the middle of a block -</UL> - -<H3>Libraries</H3> -<UL> -<LI> arguments for function called through <CODE>xpcall</CODE> -<LI> optional 'mode' argument to load and loadfile (to control binary x text) -<LI> optional 'env' argument to load and loadfile (environment for loaded chunk) -<LI> <CODE>loadlib</CODE> may load libraries with global names (RTLD_GLOBAL) -<LI> new function <CODE>package.searchpath</CODE> -<LI> modules receive their paths when loaded -<LI> optional base in <CODE>math.log</CODE> -<LI> optional separator in <CODE>string.rep</CODE> -<LI> <CODE>file:write</CODE> returns <CODE>file</CODE> -<LI> closing a pipe returns exit status -<LI> <CODE>os.exit</CODE> may close state -<LI> new metamethods <CODE>__pairs</CODE> and <CODE>__ipairs</CODE> -<LI> new option 'isrunning' for <CODE>collectgarbage</CODE> and <CODE>lua_gc</CODE> -<LI> frontier patterns -<LI> <CODE>\0</CODE> in patterns -<LI> new option <CODE>*L</CODE> for <CODE>io.read</CODE> -<LI> options for <CODE>io.lines</CODE> -<LI> <CODE>debug.getlocal</CODE> can access function varargs -</UL> - -<H3>C API</H3> -<UL> -<LI> main thread predefined in the registry -<LI> new functions -<CODE>lua_absindex</CODE>, -<CODE>lua_arith</CODE>, -<CODE>lua_compare</CODE>, -<CODE>lua_copy</CODE>, -<CODE>lua_len</CODE>, -<CODE>lua_rawgetp</CODE>, -<CODE>lua_rawsetp</CODE>, -<CODE>lua_upvalueid</CODE>, -<CODE>lua_upvaluejoin</CODE>, -<CODE>lua_version</CODE>. -<LI> new functions -<CODE>luaL_checkversion</CODE>, -<CODE>luaL_setmetatable</CODE>, -<CODE>luaL_testudata</CODE>, -<CODE>luaL_tolstring</CODE>. -<LI> <CODE>lua_pushstring</CODE> and <CODE>pushlstring</CODE> return string -<LI> <CODE>nparams</CODE> and <CODE>isvararg</CODE> available in debug API -<LI> new <CODE>lua_Unsigned</CODE> -</UL> - -<H3>Implementation</H3> -<UL> -<LI> max constants per function raised to 2<SUP>26</SUP> -<LI> generational mode for garbage collection (experimental) -<LI> NaN trick (experimental) -<LI> internal (immutable) version of ctypes -<LI> simpler implementation for string buffers -<LI> parser uses much less C-stack space (no more auto arrays) -</UL> - -<H3>Lua standalone interpreter</H3> -<UL> -<LI> new <CODE>-E</CODE> option to avoid environment variables -<LI> handling of non-string error messages -</UL> - -<H2><A NAME="license">License</A></H2> -<A HREF="http://www.opensource.org/docs/definition.php"> -<IMG SRC="osi-certified-72x60.png" ALIGN="right" BORDER="0" ALT="[osi certified]" STYLE="padding-left: 30px ;"> -</A> - -<P> -Lua is free software distributed under the terms of the -<A HREF="http://www.opensource.org/licenses/mit-license.html">MIT license</A> -reproduced below; -it may be used for any purpose, including commercial purposes, -at absolutely no cost without having to ask us. - -The only requirement is that if you do use Lua, -then you should give us credit by including the appropriate copyright notice somewhere in your product or its documentation. - -For details, see -<A HREF="http://www.lua.org/license.html">this</A>. - -<BLOCKQUOTE STYLE="padding-bottom: 0em"> -Copyright © 1994–2015 Lua.org, PUC-Rio. - -<P> -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: - -<P> -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -<P> -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 -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -</BLOCKQUOTE> -<P> - -<HR> -<SMALL CLASS="footer"> -Last update: -Mon Feb 23 22:25:08 BRT 2015 -</SMALL> -<!-- -Last change: revised for Lua 5.2.4 ---> - -</BODY> -</HTML> diff --git a/source/libs/lua52/lua52-src/src/Makefile b/source/libs/lua52/lua52-src/src/Makefile deleted file mode 100644 index 7b4b2b75420b876d0116b8af25c11ac44288ce10..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/Makefile +++ /dev/null @@ -1,187 +0,0 @@ -# Makefile for building Lua -# See ../doc/readme.html for installation and customization instructions. - -# == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT ======================= - -# Your platform. See PLATS for possible values. -PLAT= none - -CC= gcc -CFLAGS= -O2 -Wall -DLUA_COMPAT_ALL $(SYSCFLAGS) $(MYCFLAGS) -LDFLAGS= $(SYSLDFLAGS) $(MYLDFLAGS) -LIBS= -lm $(SYSLIBS) $(MYLIBS) - -AR= ar rcu -RANLIB= ranlib -RM= rm -f - -SYSCFLAGS= -SYSLDFLAGS= -SYSLIBS= - -MYCFLAGS= -MYLDFLAGS= -MYLIBS= -MYOBJS= - -# == END OF USER SETTINGS -- NO NEED TO CHANGE ANYTHING BELOW THIS LINE ======= - -PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris - -LUA_A= liblua.a -CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o \ - lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o \ - ltm.o lundump.o lvm.o lzio.o -LIB_O= lauxlib.o lbaselib.o lbitlib.o lcorolib.o ldblib.o liolib.o \ - lmathlib.o loslib.o lstrlib.o ltablib.o loadlib.o linit.o -BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS) - -LUA_T= lua -LUA_O= lua.o - -LUAC_T= luac -LUAC_O= luac.o - -ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O) -ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) -ALL_A= $(LUA_A) - -# Targets start here. -default: $(PLAT) - -all: $(ALL_T) - -o: $(ALL_O) - -a: $(ALL_A) - -$(LUA_A): $(BASE_O) - $(AR) $@ $(BASE_O) - $(RANLIB) $@ - -$(LUA_T): $(LUA_O) $(LUA_A) - $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) - -$(LUAC_T): $(LUAC_O) $(LUA_A) - $(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS) - -clean: - $(RM) $(ALL_T) $(ALL_O) - -depend: - @$(CC) $(CFLAGS) -MM l*.c - -echo: - @echo "PLAT= $(PLAT)" - @echo "CC= $(CC)" - @echo "CFLAGS= $(CFLAGS)" - @echo "LDFLAGS= $(SYSLDFLAGS)" - @echo "LIBS= $(LIBS)" - @echo "AR= $(AR)" - @echo "RANLIB= $(RANLIB)" - @echo "RM= $(RM)" - -# Convenience targets for popular platforms -ALL= all - -none: - @echo "Please do 'make PLATFORM' where PLATFORM is one of these:" - @echo " $(PLATS)" - -aix: - $(MAKE) $(ALL) CC="xlc" CFLAGS="-O2 -DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS="-ldl" SYSLDFLAGS="-brtl -bexpall" - -ansi: - $(MAKE) $(ALL) SYSCFLAGS="-DLUA_ANSI" - -bsd: - $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS="-Wl,-E" - -freebsd: - $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -lreadline" - -generic: $(ALL) - -linux: - $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline" - -macosx: - $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_MACOSX" SYSLIBS="-lreadline" CC=cc - -mingw: - $(MAKE) "LUA_A=lua52.dll" "LUA_T=lua.exe" \ - "AR=$(CC) -shared -o" "RANLIB=strip --strip-unneeded" \ - "SYSCFLAGS=-DLUA_BUILD_AS_DLL" "SYSLIBS=" "SYSLDFLAGS=-s" lua.exe - $(MAKE) "LUAC_T=luac.exe" luac.exe - -posix: - $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX" - -solaris: - $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS="-ldl" - -# list targets that do not create files (but not all makes understand .PHONY) -.PHONY: all $(PLATS) default o a clean depend echo none - -# DO NOT DELETE - -lapi.o: lapi.c lua.h luaconf.h lapi.h llimits.h lstate.h lobject.h ltm.h \ - lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h lstring.h ltable.h lundump.h \ - lvm.h -lauxlib.o: lauxlib.c lua.h luaconf.h lauxlib.h -lbaselib.o: lbaselib.c lua.h luaconf.h lauxlib.h lualib.h -lbitlib.o: lbitlib.c lua.h luaconf.h lauxlib.h lualib.h -lcode.o: lcode.c lua.h luaconf.h lcode.h llex.h lobject.h llimits.h \ - lzio.h lmem.h lopcodes.h lparser.h ldebug.h lstate.h ltm.h ldo.h lgc.h \ - lstring.h ltable.h lvm.h -lcorolib.o: lcorolib.c lua.h luaconf.h lauxlib.h lualib.h -lctype.o: lctype.c lctype.h lua.h luaconf.h llimits.h -ldblib.o: ldblib.c lua.h luaconf.h lauxlib.h lualib.h -ldebug.o: ldebug.c lua.h luaconf.h lapi.h llimits.h lstate.h lobject.h \ - ltm.h lzio.h lmem.h lcode.h llex.h lopcodes.h lparser.h ldebug.h ldo.h \ - lfunc.h lstring.h lgc.h ltable.h lvm.h -ldo.o: ldo.c lua.h luaconf.h lapi.h llimits.h lstate.h lobject.h ltm.h \ - lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h lopcodes.h lparser.h \ - lstring.h ltable.h lundump.h lvm.h -ldump.o: ldump.c lua.h luaconf.h lobject.h llimits.h lstate.h ltm.h \ - lzio.h lmem.h lundump.h -lfunc.o: lfunc.c lua.h luaconf.h lfunc.h lobject.h llimits.h lgc.h \ - lstate.h ltm.h lzio.h lmem.h -lgc.o: lgc.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h ltm.h \ - lzio.h lmem.h ldo.h lfunc.h lgc.h lstring.h ltable.h -linit.o: linit.c lua.h luaconf.h lualib.h lauxlib.h -liolib.o: liolib.c lua.h luaconf.h lauxlib.h lualib.h -llex.o: llex.c lua.h luaconf.h lctype.h llimits.h ldo.h lobject.h \ - lstate.h ltm.h lzio.h lmem.h llex.h lparser.h lstring.h lgc.h ltable.h -lmathlib.o: lmathlib.c lua.h luaconf.h lauxlib.h lualib.h -lmem.o: lmem.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h \ - ltm.h lzio.h lmem.h ldo.h lgc.h -loadlib.o: loadlib.c lua.h luaconf.h lauxlib.h lualib.h -lobject.o: lobject.c lua.h luaconf.h lctype.h llimits.h ldebug.h lstate.h \ - lobject.h ltm.h lzio.h lmem.h ldo.h lstring.h lgc.h lvm.h -lopcodes.o: lopcodes.c lopcodes.h llimits.h lua.h luaconf.h -loslib.o: loslib.c lua.h luaconf.h lauxlib.h lualib.h -lparser.o: lparser.c lua.h luaconf.h lcode.h llex.h lobject.h llimits.h \ - lzio.h lmem.h lopcodes.h lparser.h ldebug.h lstate.h ltm.h ldo.h lfunc.h \ - lstring.h lgc.h ltable.h -lstate.o: lstate.c lua.h luaconf.h lapi.h llimits.h lstate.h lobject.h \ - ltm.h lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h llex.h lstring.h \ - ltable.h -lstring.o: lstring.c lua.h luaconf.h lmem.h llimits.h lobject.h lstate.h \ - ltm.h lzio.h lstring.h lgc.h -lstrlib.o: lstrlib.c lua.h luaconf.h lauxlib.h lualib.h -ltable.o: ltable.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h \ - ltm.h lzio.h lmem.h ldo.h lgc.h lstring.h ltable.h lvm.h -ltablib.o: ltablib.c lua.h luaconf.h lauxlib.h lualib.h -ltm.o: ltm.c lua.h luaconf.h lobject.h llimits.h lstate.h ltm.h lzio.h \ - lmem.h lstring.h lgc.h ltable.h -lua.o: lua.c lua.h luaconf.h lauxlib.h lualib.h -luac.o: luac.c lua.h luaconf.h lauxlib.h lobject.h llimits.h lstate.h \ - ltm.h lzio.h lmem.h lundump.h ldebug.h lopcodes.h -lundump.o: lundump.c lua.h luaconf.h ldebug.h lstate.h lobject.h \ - llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lstring.h lgc.h lundump.h -lvm.o: lvm.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h ltm.h \ - lzio.h lmem.h ldo.h lfunc.h lgc.h lopcodes.h lstring.h ltable.h lvm.h -lzio.o: lzio.c lua.h luaconf.h llimits.h lmem.h lstate.h lobject.h ltm.h \ - lzio.h - diff --git a/source/libs/lua52/lua52-src/src/lapi.c b/source/libs/lua52/lua52-src/src/lapi.c deleted file mode 100644 index d011431eadf1583c4e60de32d63eca69762a4250..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lapi.c +++ /dev/null @@ -1,1284 +0,0 @@ -/* -** $Id: lapi.c,v 2.171.1.1 2013/04/12 18:48:47 roberto Exp $ -** Lua API -** See Copyright Notice in lua.h -*/ - - -#include <stdarg.h> -#include <string.h> - -#define lapi_c -#define LUA_CORE - -#include "lua.h" - -#include "lapi.h" -#include "ldebug.h" -#include "ldo.h" -#include "lfunc.h" -#include "lgc.h" -#include "lmem.h" -#include "lobject.h" -#include "lstate.h" -#include "lstring.h" -#include "ltable.h" -#include "ltm.h" -#include "lundump.h" -#include "lvm.h" - - - -const char lua_ident[] = - "$LuaVersion: " LUA_COPYRIGHT " $" - "$LuaAuthors: " LUA_AUTHORS " $"; - - -/* value at a non-valid index */ -#define NONVALIDVALUE cast(TValue *, luaO_nilobject) - -/* corresponding test */ -#define isvalid(o) ((o) != luaO_nilobject) - -/* test for pseudo index */ -#define ispseudo(i) ((i) <= LUA_REGISTRYINDEX) - -/* test for valid but not pseudo index */ -#define isstackindex(i, o) (isvalid(o) && !ispseudo(i)) - -#define api_checkvalidindex(L, o) api_check(L, isvalid(o), "invalid index") - -#define api_checkstackindex(L, i, o) \ - api_check(L, isstackindex(i, o), "index not in the stack") - - -static TValue *index2addr (lua_State *L, int idx) { - CallInfo *ci = L->ci; - if (idx > 0) { - TValue *o = ci->func + idx; - api_check(L, idx <= ci->top - (ci->func + 1), "unacceptable index"); - if (o >= L->top) return NONVALIDVALUE; - else return o; - } - else if (!ispseudo(idx)) { /* negative index */ - api_check(L, idx != 0 && -idx <= L->top - (ci->func + 1), "invalid index"); - return L->top + idx; - } - else if (idx == LUA_REGISTRYINDEX) - return &G(L)->l_registry; - else { /* upvalues */ - idx = LUA_REGISTRYINDEX - idx; - api_check(L, idx <= MAXUPVAL + 1, "upvalue index too large"); - if (ttislcf(ci->func)) /* light C function? */ - return NONVALIDVALUE; /* it has no upvalues */ - else { - CClosure *func = clCvalue(ci->func); - return (idx <= func->nupvalues) ? &func->upvalue[idx-1] : NONVALIDVALUE; - } - } -} - - -/* -** to be called by 'lua_checkstack' in protected mode, to grow stack -** capturing memory errors -*/ -static void growstack (lua_State *L, void *ud) { - int size = *(int *)ud; - luaD_growstack(L, size); -} - - -LUA_API int lua_checkstack (lua_State *L, int size) { - int res; - CallInfo *ci = L->ci; - lua_lock(L); - if (L->stack_last - L->top > size) /* stack large enough? */ - res = 1; /* yes; check is OK */ - else { /* no; need to grow stack */ - int inuse = cast_int(L->top - L->stack) + EXTRA_STACK; - if (inuse > LUAI_MAXSTACK - size) /* can grow without overflow? */ - res = 0; /* no */ - else /* try to grow stack */ - res = (luaD_rawrunprotected(L, &growstack, &size) == LUA_OK); - } - if (res && ci->top < L->top + size) - ci->top = L->top + size; /* adjust frame top */ - lua_unlock(L); - return res; -} - - -LUA_API void lua_xmove (lua_State *from, lua_State *to, int n) { - int i; - if (from == to) return; - lua_lock(to); - api_checknelems(from, n); - api_check(from, G(from) == G(to), "moving among independent states"); - api_check(from, to->ci->top - to->top >= n, "not enough elements to move"); - from->top -= n; - for (i = 0; i < n; i++) { - setobj2s(to, to->top++, from->top + i); - } - lua_unlock(to); -} - - -LUA_API lua_CFunction lua_atpanic (lua_State *L, lua_CFunction panicf) { - lua_CFunction old; - lua_lock(L); - old = G(L)->panic; - G(L)->panic = panicf; - lua_unlock(L); - return old; -} - - -LUA_API const lua_Number *lua_version (lua_State *L) { - static const lua_Number version = LUA_VERSION_NUM; - if (L == NULL) return &version; - else return G(L)->version; -} - - - -/* -** basic stack manipulation -*/ - - -/* -** convert an acceptable stack index into an absolute index -*/ -LUA_API int lua_absindex (lua_State *L, int idx) { - return (idx > 0 || ispseudo(idx)) - ? idx - : cast_int(L->top - L->ci->func + idx); -} - - -LUA_API int lua_gettop (lua_State *L) { - return cast_int(L->top - (L->ci->func + 1)); -} - - -LUA_API void lua_settop (lua_State *L, int idx) { - StkId func = L->ci->func; - lua_lock(L); - if (idx >= 0) { - api_check(L, idx <= L->stack_last - (func + 1), "new top too large"); - while (L->top < (func + 1) + idx) - setnilvalue(L->top++); - L->top = (func + 1) + idx; - } - else { - api_check(L, -(idx+1) <= (L->top - (func + 1)), "invalid new top"); - L->top += idx+1; /* `subtract' index (index is negative) */ - } - lua_unlock(L); -} - - -LUA_API void lua_remove (lua_State *L, int idx) { - StkId p; - lua_lock(L); - p = index2addr(L, idx); - api_checkstackindex(L, idx, p); - while (++p < L->top) setobjs2s(L, p-1, p); - L->top--; - lua_unlock(L); -} - - -LUA_API void lua_insert (lua_State *L, int idx) { - StkId p; - StkId q; - lua_lock(L); - p = index2addr(L, idx); - api_checkstackindex(L, idx, p); - for (q = L->top; q > p; q--) /* use L->top as a temporary */ - setobjs2s(L, q, q - 1); - setobjs2s(L, p, L->top); - lua_unlock(L); -} - - -static void moveto (lua_State *L, TValue *fr, int idx) { - TValue *to = index2addr(L, idx); - api_checkvalidindex(L, to); - setobj(L, to, fr); - if (idx < LUA_REGISTRYINDEX) /* function upvalue? */ - luaC_barrier(L, clCvalue(L->ci->func), fr); - /* LUA_REGISTRYINDEX does not need gc barrier - (collector revisits it before finishing collection) */ -} - - -LUA_API void lua_replace (lua_State *L, int idx) { - lua_lock(L); - api_checknelems(L, 1); - moveto(L, L->top - 1, idx); - L->top--; - lua_unlock(L); -} - - -LUA_API void lua_copy (lua_State *L, int fromidx, int toidx) { - TValue *fr; - lua_lock(L); - fr = index2addr(L, fromidx); - moveto(L, fr, toidx); - lua_unlock(L); -} - - -LUA_API void lua_pushvalue (lua_State *L, int idx) { - lua_lock(L); - setobj2s(L, L->top, index2addr(L, idx)); - api_incr_top(L); - lua_unlock(L); -} - - - -/* -** access functions (stack -> C) -*/ - - -LUA_API int lua_type (lua_State *L, int idx) { - StkId o = index2addr(L, idx); - return (isvalid(o) ? ttypenv(o) : LUA_TNONE); -} - - -LUA_API const char *lua_typename (lua_State *L, int t) { - UNUSED(L); - return ttypename(t); -} - - -LUA_API int lua_iscfunction (lua_State *L, int idx) { - StkId o = index2addr(L, idx); - return (ttislcf(o) || (ttisCclosure(o))); -} - - -LUA_API int lua_isnumber (lua_State *L, int idx) { - TValue n; - const TValue *o = index2addr(L, idx); - return tonumber(o, &n); -} - - -LUA_API int lua_isstring (lua_State *L, int idx) { - int t = lua_type(L, idx); - return (t == LUA_TSTRING || t == LUA_TNUMBER); -} - - -LUA_API int lua_isuserdata (lua_State *L, int idx) { - const TValue *o = index2addr(L, idx); - return (ttisuserdata(o) || ttislightuserdata(o)); -} - - -LUA_API int lua_rawequal (lua_State *L, int index1, int index2) { - StkId o1 = index2addr(L, index1); - StkId o2 = index2addr(L, index2); - return (isvalid(o1) && isvalid(o2)) ? luaV_rawequalobj(o1, o2) : 0; -} - - -LUA_API void lua_arith (lua_State *L, int op) { - StkId o1; /* 1st operand */ - StkId o2; /* 2nd operand */ - lua_lock(L); - if (op != LUA_OPUNM) /* all other operations expect two operands */ - api_checknelems(L, 2); - else { /* for unary minus, add fake 2nd operand */ - api_checknelems(L, 1); - setobjs2s(L, L->top, L->top - 1); - L->top++; - } - o1 = L->top - 2; - o2 = L->top - 1; - if (ttisnumber(o1) && ttisnumber(o2)) { - setnvalue(o1, luaO_arith(op, nvalue(o1), nvalue(o2))); - } - else - luaV_arith(L, o1, o1, o2, cast(TMS, op - LUA_OPADD + TM_ADD)); - L->top--; - lua_unlock(L); -} - - -LUA_API int lua_compare (lua_State *L, int index1, int index2, int op) { - StkId o1, o2; - int i = 0; - lua_lock(L); /* may call tag method */ - o1 = index2addr(L, index1); - o2 = index2addr(L, index2); - if (isvalid(o1) && isvalid(o2)) { - switch (op) { - case LUA_OPEQ: i = equalobj(L, o1, o2); break; - case LUA_OPLT: i = luaV_lessthan(L, o1, o2); break; - case LUA_OPLE: i = luaV_lessequal(L, o1, o2); break; - default: api_check(L, 0, "invalid option"); - } - } - lua_unlock(L); - return i; -} - - -LUA_API lua_Number lua_tonumberx (lua_State *L, int idx, int *isnum) { - TValue n; - const TValue *o = index2addr(L, idx); - if (tonumber(o, &n)) { - if (isnum) *isnum = 1; - return nvalue(o); - } - else { - if (isnum) *isnum = 0; - return 0; - } -} - - -LUA_API lua_Integer lua_tointegerx (lua_State *L, int idx, int *isnum) { - TValue n; - const TValue *o = index2addr(L, idx); - if (tonumber(o, &n)) { - lua_Integer res; - lua_Number num = nvalue(o); - lua_number2integer(res, num); - if (isnum) *isnum = 1; - return res; - } - else { - if (isnum) *isnum = 0; - return 0; - } -} - - -LUA_API lua_Unsigned lua_tounsignedx (lua_State *L, int idx, int *isnum) { - TValue n; - const TValue *o = index2addr(L, idx); - if (tonumber(o, &n)) { - lua_Unsigned res; - lua_Number num = nvalue(o); - lua_number2unsigned(res, num); - if (isnum) *isnum = 1; - return res; - } - else { - if (isnum) *isnum = 0; - return 0; - } -} - - -LUA_API int lua_toboolean (lua_State *L, int idx) { - const TValue *o = index2addr(L, idx); - return !l_isfalse(o); -} - - -LUA_API const char *lua_tolstring (lua_State *L, int idx, size_t *len) { - StkId o = index2addr(L, idx); - if (!ttisstring(o)) { - lua_lock(L); /* `luaV_tostring' may create a new string */ - if (!luaV_tostring(L, o)) { /* conversion failed? */ - if (len != NULL) *len = 0; - lua_unlock(L); - return NULL; - } - luaC_checkGC(L); - o = index2addr(L, idx); /* previous call may reallocate the stack */ - lua_unlock(L); - } - if (len != NULL) *len = tsvalue(o)->len; - return svalue(o); -} - - -LUA_API size_t lua_rawlen (lua_State *L, int idx) { - StkId o = index2addr(L, idx); - switch (ttypenv(o)) { - case LUA_TSTRING: return tsvalue(o)->len; - case LUA_TUSERDATA: return uvalue(o)->len; - case LUA_TTABLE: return luaH_getn(hvalue(o)); - default: return 0; - } -} - - -LUA_API lua_CFunction lua_tocfunction (lua_State *L, int idx) { - StkId o = index2addr(L, idx); - if (ttislcf(o)) return fvalue(o); - else if (ttisCclosure(o)) - return clCvalue(o)->f; - else return NULL; /* not a C function */ -} - - -LUA_API void *lua_touserdata (lua_State *L, int idx) { - StkId o = index2addr(L, idx); - switch (ttypenv(o)) { - case LUA_TUSERDATA: return (rawuvalue(o) + 1); - case LUA_TLIGHTUSERDATA: return pvalue(o); - default: return NULL; - } -} - - -LUA_API lua_State *lua_tothread (lua_State *L, int idx) { - StkId o = index2addr(L, idx); - return (!ttisthread(o)) ? NULL : thvalue(o); -} - - -LUA_API const void *lua_topointer (lua_State *L, int idx) { - StkId o = index2addr(L, idx); - switch (ttype(o)) { - case LUA_TTABLE: return hvalue(o); - case LUA_TLCL: return clLvalue(o); - case LUA_TCCL: return clCvalue(o); - case LUA_TLCF: return cast(void *, cast(size_t, fvalue(o))); - case LUA_TTHREAD: return thvalue(o); - case LUA_TUSERDATA: - case LUA_TLIGHTUSERDATA: - return lua_touserdata(L, idx); - default: return NULL; - } -} - - - -/* -** push functions (C -> stack) -*/ - - -LUA_API void lua_pushnil (lua_State *L) { - lua_lock(L); - setnilvalue(L->top); - api_incr_top(L); - lua_unlock(L); -} - - -LUA_API void lua_pushnumber (lua_State *L, lua_Number n) { - lua_lock(L); - setnvalue(L->top, n); - luai_checknum(L, L->top, - luaG_runerror(L, "C API - attempt to push a signaling NaN")); - api_incr_top(L); - lua_unlock(L); -} - - -LUA_API void lua_pushinteger (lua_State *L, lua_Integer n) { - lua_lock(L); - setnvalue(L->top, cast_num(n)); - api_incr_top(L); - lua_unlock(L); -} - - -LUA_API void lua_pushunsigned (lua_State *L, lua_Unsigned u) { - lua_Number n; - lua_lock(L); - n = lua_unsigned2number(u); - setnvalue(L->top, n); - api_incr_top(L); - lua_unlock(L); -} - - -LUA_API const char *lua_pushlstring (lua_State *L, const char *s, size_t len) { - TString *ts; - lua_lock(L); - luaC_checkGC(L); - ts = luaS_newlstr(L, s, len); - setsvalue2s(L, L->top, ts); - api_incr_top(L); - lua_unlock(L); - return getstr(ts); -} - - -LUA_API const char *lua_pushstring (lua_State *L, const char *s) { - if (s == NULL) { - lua_pushnil(L); - return NULL; - } - else { - TString *ts; - lua_lock(L); - luaC_checkGC(L); - ts = luaS_new(L, s); - setsvalue2s(L, L->top, ts); - api_incr_top(L); - lua_unlock(L); - return getstr(ts); - } -} - - -LUA_API const char *lua_pushvfstring (lua_State *L, const char *fmt, - va_list argp) { - const char *ret; - lua_lock(L); - luaC_checkGC(L); - ret = luaO_pushvfstring(L, fmt, argp); - lua_unlock(L); - return ret; -} - - -LUA_API const char *lua_pushfstring (lua_State *L, const char *fmt, ...) { - const char *ret; - va_list argp; - lua_lock(L); - luaC_checkGC(L); - va_start(argp, fmt); - ret = luaO_pushvfstring(L, fmt, argp); - va_end(argp); - lua_unlock(L); - return ret; -} - - -LUA_API void lua_pushcclosure (lua_State *L, lua_CFunction fn, int n) { - lua_lock(L); - if (n == 0) { - setfvalue(L->top, fn); - } - else { - Closure *cl; - api_checknelems(L, n); - api_check(L, n <= MAXUPVAL, "upvalue index too large"); - luaC_checkGC(L); - cl = luaF_newCclosure(L, n); - cl->c.f = fn; - L->top -= n; - while (n--) - setobj2n(L, &cl->c.upvalue[n], L->top + n); - setclCvalue(L, L->top, cl); - } - api_incr_top(L); - lua_unlock(L); -} - - -LUA_API void lua_pushboolean (lua_State *L, int b) { - lua_lock(L); - setbvalue(L->top, (b != 0)); /* ensure that true is 1 */ - api_incr_top(L); - lua_unlock(L); -} - - -LUA_API void lua_pushlightuserdata (lua_State *L, void *p) { - lua_lock(L); - setpvalue(L->top, p); - api_incr_top(L); - lua_unlock(L); -} - - -LUA_API int lua_pushthread (lua_State *L) { - lua_lock(L); - setthvalue(L, L->top, L); - api_incr_top(L); - lua_unlock(L); - return (G(L)->mainthread == L); -} - - - -/* -** get functions (Lua -> stack) -*/ - - -LUA_API void lua_getglobal (lua_State *L, const char *var) { - Table *reg = hvalue(&G(L)->l_registry); - const TValue *gt; /* global table */ - lua_lock(L); - gt = luaH_getint(reg, LUA_RIDX_GLOBALS); - setsvalue2s(L, L->top++, luaS_new(L, var)); - luaV_gettable(L, gt, L->top - 1, L->top - 1); - lua_unlock(L); -} - - -LUA_API void lua_gettable (lua_State *L, int idx) { - StkId t; - lua_lock(L); - t = index2addr(L, idx); - luaV_gettable(L, t, L->top - 1, L->top - 1); - lua_unlock(L); -} - - -LUA_API void lua_getfield (lua_State *L, int idx, const char *k) { - StkId t; - lua_lock(L); - t = index2addr(L, idx); - setsvalue2s(L, L->top, luaS_new(L, k)); - api_incr_top(L); - luaV_gettable(L, t, L->top - 1, L->top - 1); - lua_unlock(L); -} - - -LUA_API void lua_rawget (lua_State *L, int idx) { - StkId t; - lua_lock(L); - t = index2addr(L, idx); - api_check(L, ttistable(t), "table expected"); - setobj2s(L, L->top - 1, luaH_get(hvalue(t), L->top - 1)); - lua_unlock(L); -} - - -LUA_API void lua_rawgeti (lua_State *L, int idx, int n) { - StkId t; - lua_lock(L); - t = index2addr(L, idx); - api_check(L, ttistable(t), "table expected"); - setobj2s(L, L->top, luaH_getint(hvalue(t), n)); - api_incr_top(L); - lua_unlock(L); -} - - -LUA_API void lua_rawgetp (lua_State *L, int idx, const void *p) { - StkId t; - TValue k; - lua_lock(L); - t = index2addr(L, idx); - api_check(L, ttistable(t), "table expected"); - setpvalue(&k, cast(void *, p)); - setobj2s(L, L->top, luaH_get(hvalue(t), &k)); - api_incr_top(L); - lua_unlock(L); -} - - -LUA_API void lua_createtable (lua_State *L, int narray, int nrec) { - Table *t; - lua_lock(L); - luaC_checkGC(L); - t = luaH_new(L); - sethvalue(L, L->top, t); - api_incr_top(L); - if (narray > 0 || nrec > 0) - luaH_resize(L, t, narray, nrec); - lua_unlock(L); -} - - -LUA_API int lua_getmetatable (lua_State *L, int objindex) { - const TValue *obj; - Table *mt = NULL; - int res; - lua_lock(L); - obj = index2addr(L, objindex); - switch (ttypenv(obj)) { - case LUA_TTABLE: - mt = hvalue(obj)->metatable; - break; - case LUA_TUSERDATA: - mt = uvalue(obj)->metatable; - break; - default: - mt = G(L)->mt[ttypenv(obj)]; - break; - } - if (mt == NULL) - res = 0; - else { - sethvalue(L, L->top, mt); - api_incr_top(L); - res = 1; - } - lua_unlock(L); - return res; -} - - -LUA_API void lua_getuservalue (lua_State *L, int idx) { - StkId o; - lua_lock(L); - o = index2addr(L, idx); - api_check(L, ttisuserdata(o), "userdata expected"); - if (uvalue(o)->env) { - sethvalue(L, L->top, uvalue(o)->env); - } else - setnilvalue(L->top); - api_incr_top(L); - lua_unlock(L); -} - - -/* -** set functions (stack -> Lua) -*/ - - -LUA_API void lua_setglobal (lua_State *L, const char *var) { - Table *reg = hvalue(&G(L)->l_registry); - const TValue *gt; /* global table */ - lua_lock(L); - api_checknelems(L, 1); - gt = luaH_getint(reg, LUA_RIDX_GLOBALS); - setsvalue2s(L, L->top++, luaS_new(L, var)); - luaV_settable(L, gt, L->top - 1, L->top - 2); - L->top -= 2; /* pop value and key */ - lua_unlock(L); -} - - -LUA_API void lua_settable (lua_State *L, int idx) { - StkId t; - lua_lock(L); - api_checknelems(L, 2); - t = index2addr(L, idx); - luaV_settable(L, t, L->top - 2, L->top - 1); - L->top -= 2; /* pop index and value */ - lua_unlock(L); -} - - -LUA_API void lua_setfield (lua_State *L, int idx, const char *k) { - StkId t; - lua_lock(L); - api_checknelems(L, 1); - t = index2addr(L, idx); - setsvalue2s(L, L->top++, luaS_new(L, k)); - luaV_settable(L, t, L->top - 1, L->top - 2); - L->top -= 2; /* pop value and key */ - lua_unlock(L); -} - - -LUA_API void lua_rawset (lua_State *L, int idx) { - StkId t; - lua_lock(L); - api_checknelems(L, 2); - t = index2addr(L, idx); - api_check(L, ttistable(t), "table expected"); - setobj2t(L, luaH_set(L, hvalue(t), L->top-2), L->top-1); - invalidateTMcache(hvalue(t)); - luaC_barrierback(L, gcvalue(t), L->top-1); - L->top -= 2; - lua_unlock(L); -} - - -LUA_API void lua_rawseti (lua_State *L, int idx, int n) { - StkId t; - lua_lock(L); - api_checknelems(L, 1); - t = index2addr(L, idx); - api_check(L, ttistable(t), "table expected"); - luaH_setint(L, hvalue(t), n, L->top - 1); - luaC_barrierback(L, gcvalue(t), L->top-1); - L->top--; - lua_unlock(L); -} - - -LUA_API void lua_rawsetp (lua_State *L, int idx, const void *p) { - StkId t; - TValue k; - lua_lock(L); - api_checknelems(L, 1); - t = index2addr(L, idx); - api_check(L, ttistable(t), "table expected"); - setpvalue(&k, cast(void *, p)); - setobj2t(L, luaH_set(L, hvalue(t), &k), L->top - 1); - luaC_barrierback(L, gcvalue(t), L->top - 1); - L->top--; - lua_unlock(L); -} - - -LUA_API int lua_setmetatable (lua_State *L, int objindex) { - TValue *obj; - Table *mt; - lua_lock(L); - api_checknelems(L, 1); - obj = index2addr(L, objindex); - if (ttisnil(L->top - 1)) - mt = NULL; - else { - api_check(L, ttistable(L->top - 1), "table expected"); - mt = hvalue(L->top - 1); - } - switch (ttypenv(obj)) { - case LUA_TTABLE: { - hvalue(obj)->metatable = mt; - if (mt) { - luaC_objbarrierback(L, gcvalue(obj), mt); - luaC_checkfinalizer(L, gcvalue(obj), mt); - } - break; - } - case LUA_TUSERDATA: { - uvalue(obj)->metatable = mt; - if (mt) { - luaC_objbarrier(L, rawuvalue(obj), mt); - luaC_checkfinalizer(L, gcvalue(obj), mt); - } - break; - } - default: { - G(L)->mt[ttypenv(obj)] = mt; - break; - } - } - L->top--; - lua_unlock(L); - return 1; -} - - -LUA_API void lua_setuservalue (lua_State *L, int idx) { - StkId o; - lua_lock(L); - api_checknelems(L, 1); - o = index2addr(L, idx); - api_check(L, ttisuserdata(o), "userdata expected"); - if (ttisnil(L->top - 1)) - uvalue(o)->env = NULL; - else { - api_check(L, ttistable(L->top - 1), "table expected"); - uvalue(o)->env = hvalue(L->top - 1); - luaC_objbarrier(L, gcvalue(o), hvalue(L->top - 1)); - } - L->top--; - lua_unlock(L); -} - - -/* -** `load' and `call' functions (run Lua code) -*/ - - -#define checkresults(L,na,nr) \ - api_check(L, (nr) == LUA_MULTRET || (L->ci->top - L->top >= (nr) - (na)), \ - "results from function overflow current stack size") - - -LUA_API int lua_getctx (lua_State *L, int *ctx) { - if (L->ci->callstatus & CIST_YIELDED) { - if (ctx) *ctx = L->ci->u.c.ctx; - return L->ci->u.c.status; - } - else return LUA_OK; -} - - -LUA_API void lua_callk (lua_State *L, int nargs, int nresults, int ctx, - lua_CFunction k) { - StkId func; - lua_lock(L); - api_check(L, k == NULL || !isLua(L->ci), - "cannot use continuations inside hooks"); - api_checknelems(L, nargs+1); - api_check(L, L->status == LUA_OK, "cannot do calls on non-normal thread"); - checkresults(L, nargs, nresults); - func = L->top - (nargs+1); - if (k != NULL && L->nny == 0) { /* need to prepare continuation? */ - L->ci->u.c.k = k; /* save continuation */ - L->ci->u.c.ctx = ctx; /* save context */ - luaD_call(L, func, nresults, 1); /* do the call */ - } - else /* no continuation or no yieldable */ - luaD_call(L, func, nresults, 0); /* just do the call */ - adjustresults(L, nresults); - lua_unlock(L); -} - - - -/* -** Execute a protected call. -*/ -struct CallS { /* data to `f_call' */ - StkId func; - int nresults; -}; - - -static void f_call (lua_State *L, void *ud) { - struct CallS *c = cast(struct CallS *, ud); - luaD_call(L, c->func, c->nresults, 0); -} - - - -LUA_API int lua_pcallk (lua_State *L, int nargs, int nresults, int errfunc, - int ctx, lua_CFunction k) { - struct CallS c; - int status; - ptrdiff_t func; - lua_lock(L); - api_check(L, k == NULL || !isLua(L->ci), - "cannot use continuations inside hooks"); - api_checknelems(L, nargs+1); - api_check(L, L->status == LUA_OK, "cannot do calls on non-normal thread"); - checkresults(L, nargs, nresults); - if (errfunc == 0) - func = 0; - else { - StkId o = index2addr(L, errfunc); - api_checkstackindex(L, errfunc, o); - func = savestack(L, o); - } - c.func = L->top - (nargs+1); /* function to be called */ - if (k == NULL || L->nny > 0) { /* no continuation or no yieldable? */ - c.nresults = nresults; /* do a 'conventional' protected call */ - status = luaD_pcall(L, f_call, &c, savestack(L, c.func), func); - } - else { /* prepare continuation (call is already protected by 'resume') */ - CallInfo *ci = L->ci; - ci->u.c.k = k; /* save continuation */ - ci->u.c.ctx = ctx; /* save context */ - /* save information for error recovery */ - ci->extra = savestack(L, c.func); - ci->u.c.old_allowhook = L->allowhook; - ci->u.c.old_errfunc = L->errfunc; - L->errfunc = func; - /* mark that function may do error recovery */ - ci->callstatus |= CIST_YPCALL; - luaD_call(L, c.func, nresults, 1); /* do the call */ - ci->callstatus &= ~CIST_YPCALL; - L->errfunc = ci->u.c.old_errfunc; - status = LUA_OK; /* if it is here, there were no errors */ - } - adjustresults(L, nresults); - lua_unlock(L); - return status; -} - - -LUA_API int lua_load (lua_State *L, lua_Reader reader, void *data, - const char *chunkname, const char *mode) { - ZIO z; - int status; - lua_lock(L); - if (!chunkname) chunkname = "?"; - luaZ_init(L, &z, reader, data); - status = luaD_protectedparser(L, &z, chunkname, mode); - if (status == LUA_OK) { /* no errors? */ - LClosure *f = clLvalue(L->top - 1); /* get newly created function */ - if (f->nupvalues == 1) { /* does it have one upvalue? */ - /* get global table from registry */ - Table *reg = hvalue(&G(L)->l_registry); - const TValue *gt = luaH_getint(reg, LUA_RIDX_GLOBALS); - /* set global table as 1st upvalue of 'f' (may be LUA_ENV) */ - setobj(L, f->upvals[0]->v, gt); - luaC_barrier(L, f->upvals[0], gt); - } - } - lua_unlock(L); - return status; -} - - -LUA_API int lua_dump (lua_State *L, lua_Writer writer, void *data) { - int status; - TValue *o; - lua_lock(L); - api_checknelems(L, 1); - o = L->top - 1; - if (isLfunction(o)) - status = luaU_dump(L, getproto(o), writer, data, 0); - else - status = 1; - lua_unlock(L); - return status; -} - - -LUA_API int lua_status (lua_State *L) { - return L->status; -} - - -/* -** Garbage-collection function -*/ - -LUA_API int lua_gc (lua_State *L, int what, int data) { - int res = 0; - global_State *g; - lua_lock(L); - g = G(L); - switch (what) { - case LUA_GCSTOP: { - g->gcrunning = 0; - break; - } - case LUA_GCRESTART: { - luaE_setdebt(g, 0); - g->gcrunning = 1; - break; - } - case LUA_GCCOLLECT: { - luaC_fullgc(L, 0); - break; - } - case LUA_GCCOUNT: { - /* GC values are expressed in Kbytes: #bytes/2^10 */ - res = cast_int(gettotalbytes(g) >> 10); - break; - } - case LUA_GCCOUNTB: { - res = cast_int(gettotalbytes(g) & 0x3ff); - break; - } - case LUA_GCSTEP: { - if (g->gckind == KGC_GEN) { /* generational mode? */ - res = (g->GCestimate == 0); /* true if it will do major collection */ - luaC_forcestep(L); /* do a single step */ - } - else { - lu_mem debt = cast(lu_mem, data) * 1024 - GCSTEPSIZE; - if (g->gcrunning) - debt += g->GCdebt; /* include current debt */ - luaE_setdebt(g, debt); - luaC_forcestep(L); - if (g->gcstate == GCSpause) /* end of cycle? */ - res = 1; /* signal it */ - } - break; - } - case LUA_GCSETPAUSE: { - res = g->gcpause; - g->gcpause = data; - break; - } - case LUA_GCSETMAJORINC: { - res = g->gcmajorinc; - g->gcmajorinc = data; - break; - } - case LUA_GCSETSTEPMUL: { - res = g->gcstepmul; - g->gcstepmul = data; - break; - } - case LUA_GCISRUNNING: { - res = g->gcrunning; - break; - } - case LUA_GCGEN: { /* change collector to generational mode */ - luaC_changemode(L, KGC_GEN); - break; - } - case LUA_GCINC: { /* change collector to incremental mode */ - luaC_changemode(L, KGC_NORMAL); - break; - } - default: res = -1; /* invalid option */ - } - lua_unlock(L); - return res; -} - - - -/* -** miscellaneous functions -*/ - - -LUA_API int lua_error (lua_State *L) { - lua_lock(L); - api_checknelems(L, 1); - luaG_errormsg(L); - /* code unreachable; will unlock when control actually leaves the kernel */ - return 0; /* to avoid warnings */ -} - - -LUA_API int lua_next (lua_State *L, int idx) { - StkId t; - int more; - lua_lock(L); - t = index2addr(L, idx); - api_check(L, ttistable(t), "table expected"); - more = luaH_next(L, hvalue(t), L->top - 1); - if (more) { - api_incr_top(L); - } - else /* no more elements */ - L->top -= 1; /* remove key */ - lua_unlock(L); - return more; -} - - -LUA_API void lua_concat (lua_State *L, int n) { - lua_lock(L); - api_checknelems(L, n); - if (n >= 2) { - luaC_checkGC(L); - luaV_concat(L, n); - } - else if (n == 0) { /* push empty string */ - setsvalue2s(L, L->top, luaS_newlstr(L, "", 0)); - api_incr_top(L); - } - /* else n == 1; nothing to do */ - lua_unlock(L); -} - - -LUA_API void lua_len (lua_State *L, int idx) { - StkId t; - lua_lock(L); - t = index2addr(L, idx); - luaV_objlen(L, L->top, t); - api_incr_top(L); - lua_unlock(L); -} - - -LUA_API lua_Alloc lua_getallocf (lua_State *L, void **ud) { - lua_Alloc f; - lua_lock(L); - if (ud) *ud = G(L)->ud; - f = G(L)->frealloc; - lua_unlock(L); - return f; -} - - -LUA_API void lua_setallocf (lua_State *L, lua_Alloc f, void *ud) { - lua_lock(L); - G(L)->ud = ud; - G(L)->frealloc = f; - lua_unlock(L); -} - - -LUA_API void *lua_newuserdata (lua_State *L, size_t size) { - Udata *u; - lua_lock(L); - luaC_checkGC(L); - u = luaS_newudata(L, size, NULL); - setuvalue(L, L->top, u); - api_incr_top(L); - lua_unlock(L); - return u + 1; -} - - - -static const char *aux_upvalue (StkId fi, int n, TValue **val, - GCObject **owner) { - switch (ttype(fi)) { - case LUA_TCCL: { /* C closure */ - CClosure *f = clCvalue(fi); - if (!(1 <= n && n <= f->nupvalues)) return NULL; - *val = &f->upvalue[n-1]; - if (owner) *owner = obj2gco(f); - return ""; - } - case LUA_TLCL: { /* Lua closure */ - LClosure *f = clLvalue(fi); - TString *name; - Proto *p = f->p; - if (!(1 <= n && n <= p->sizeupvalues)) return NULL; - *val = f->upvals[n-1]->v; - if (owner) *owner = obj2gco(f->upvals[n - 1]); - name = p->upvalues[n-1].name; - return (name == NULL) ? "" : getstr(name); - } - default: return NULL; /* not a closure */ - } -} - - -LUA_API const char *lua_getupvalue (lua_State *L, int funcindex, int n) { - const char *name; - TValue *val = NULL; /* to avoid warnings */ - lua_lock(L); - name = aux_upvalue(index2addr(L, funcindex), n, &val, NULL); - if (name) { - setobj2s(L, L->top, val); - api_incr_top(L); - } - lua_unlock(L); - return name; -} - - -LUA_API const char *lua_setupvalue (lua_State *L, int funcindex, int n) { - const char *name; - TValue *val = NULL; /* to avoid warnings */ - GCObject *owner = NULL; /* to avoid warnings */ - StkId fi; - lua_lock(L); - fi = index2addr(L, funcindex); - api_checknelems(L, 1); - name = aux_upvalue(fi, n, &val, &owner); - if (name) { - L->top--; - setobj(L, val, L->top); - luaC_barrier(L, owner, L->top); - } - lua_unlock(L); - return name; -} - - -static UpVal **getupvalref (lua_State *L, int fidx, int n, LClosure **pf) { - LClosure *f; - StkId fi = index2addr(L, fidx); - api_check(L, ttisLclosure(fi), "Lua function expected"); - f = clLvalue(fi); - api_check(L, (1 <= n && n <= f->p->sizeupvalues), "invalid upvalue index"); - if (pf) *pf = f; - return &f->upvals[n - 1]; /* get its upvalue pointer */ -} - - -LUA_API void *lua_upvalueid (lua_State *L, int fidx, int n) { - StkId fi = index2addr(L, fidx); - switch (ttype(fi)) { - case LUA_TLCL: { /* lua closure */ - return *getupvalref(L, fidx, n, NULL); - } - case LUA_TCCL: { /* C closure */ - CClosure *f = clCvalue(fi); - api_check(L, 1 <= n && n <= f->nupvalues, "invalid upvalue index"); - return &f->upvalue[n - 1]; - } - default: { - api_check(L, 0, "closure expected"); - return NULL; - } - } -} - - -LUA_API void lua_upvaluejoin (lua_State *L, int fidx1, int n1, - int fidx2, int n2) { - LClosure *f1; - UpVal **up1 = getupvalref(L, fidx1, n1, &f1); - UpVal **up2 = getupvalref(L, fidx2, n2, NULL); - *up1 = *up2; - luaC_objbarrier(L, f1, *up2); -} - diff --git a/source/libs/lua52/lua52-src/src/lapi.h b/source/libs/lua52/lua52-src/src/lapi.h deleted file mode 100644 index c7d34ad84866ae10bb2358ad93d6884c761c1d78..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lapi.h +++ /dev/null @@ -1,24 +0,0 @@ -/* -** $Id: lapi.h,v 2.7.1.1 2013/04/12 18:48:47 roberto Exp $ -** Auxiliary functions from Lua API -** See Copyright Notice in lua.h -*/ - -#ifndef lapi_h -#define lapi_h - - -#include "llimits.h" -#include "lstate.h" - -#define api_incr_top(L) {L->top++; api_check(L, L->top <= L->ci->top, \ - "stack overflow");} - -#define adjustresults(L,nres) \ - { if ((nres) == LUA_MULTRET && L->ci->top < L->top) L->ci->top = L->top; } - -#define api_checknelems(L,n) api_check(L, (n) < (L->top - L->ci->func), \ - "not enough elements in the stack") - - -#endif diff --git a/source/libs/lua52/lua52-src/src/lauxlib.c b/source/libs/lua52/lua52-src/src/lauxlib.c deleted file mode 100644 index b00f8c709680dfdd3207c60d443337be74a0f102..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lauxlib.c +++ /dev/null @@ -1,959 +0,0 @@ -/* -** $Id: lauxlib.c,v 1.248.1.1 2013/04/12 18:48:47 roberto Exp $ -** Auxiliary functions for building Lua libraries -** See Copyright Notice in lua.h -*/ - - -#include <errno.h> -#include <stdarg.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - - -/* This file uses only the official API of Lua. -** Any function declared here could be written as an application function. -*/ - -#define lauxlib_c -#define LUA_LIB - -#include "lua.h" - -#include "lauxlib.h" - - -/* -** {====================================================== -** Traceback -** ======================================================= -*/ - - -#define LEVELS1 12 /* size of the first part of the stack */ -#define LEVELS2 10 /* size of the second part of the stack */ - - - -/* -** search for 'objidx' in table at index -1. -** return 1 + string at top if find a good name. -*/ -static int findfield (lua_State *L, int objidx, int level) { - if (level == 0 || !lua_istable(L, -1)) - return 0; /* not found */ - lua_pushnil(L); /* start 'next' loop */ - while (lua_next(L, -2)) { /* for each pair in table */ - if (lua_type(L, -2) == LUA_TSTRING) { /* ignore non-string keys */ - if (lua_rawequal(L, objidx, -1)) { /* found object? */ - lua_pop(L, 1); /* remove value (but keep name) */ - return 1; - } - else if (findfield(L, objidx, level - 1)) { /* try recursively */ - lua_remove(L, -2); /* remove table (but keep name) */ - lua_pushliteral(L, "."); - lua_insert(L, -2); /* place '.' between the two names */ - lua_concat(L, 3); - return 1; - } - } - lua_pop(L, 1); /* remove value */ - } - return 0; /* not found */ -} - - -static int pushglobalfuncname (lua_State *L, lua_Debug *ar) { - int top = lua_gettop(L); - lua_getinfo(L, "f", ar); /* push function */ - lua_pushglobaltable(L); - if (findfield(L, top + 1, 2)) { - lua_copy(L, -1, top + 1); /* move name to proper place */ - lua_pop(L, 2); /* remove pushed values */ - return 1; - } - else { - lua_settop(L, top); /* remove function and global table */ - return 0; - } -} - - -static void pushfuncname (lua_State *L, lua_Debug *ar) { - if (*ar->namewhat != '\0') /* is there a name? */ - lua_pushfstring(L, "function " LUA_QS, ar->name); - else if (*ar->what == 'm') /* main? */ - lua_pushliteral(L, "main chunk"); - else if (*ar->what == 'C') { - if (pushglobalfuncname(L, ar)) { - lua_pushfstring(L, "function " LUA_QS, lua_tostring(L, -1)); - lua_remove(L, -2); /* remove name */ - } - else - lua_pushliteral(L, "?"); - } - else - lua_pushfstring(L, "function <%s:%d>", ar->short_src, ar->linedefined); -} - - -static int countlevels (lua_State *L) { - lua_Debug ar; - int li = 1, le = 1; - /* find an upper bound */ - while (lua_getstack(L, le, &ar)) { li = le; le *= 2; } - /* do a binary search */ - while (li < le) { - int m = (li + le)/2; - if (lua_getstack(L, m, &ar)) li = m + 1; - else le = m; - } - return le - 1; -} - - -LUALIB_API void luaL_traceback (lua_State *L, lua_State *L1, - const char *msg, int level) { - lua_Debug ar; - int top = lua_gettop(L); - int numlevels = countlevels(L1); - int mark = (numlevels > LEVELS1 + LEVELS2) ? LEVELS1 : 0; - if (msg) lua_pushfstring(L, "%s\n", msg); - lua_pushliteral(L, "stack traceback:"); - while (lua_getstack(L1, level++, &ar)) { - if (level == mark) { /* too many levels? */ - lua_pushliteral(L, "\n\t..."); /* add a '...' */ - level = numlevels - LEVELS2; /* and skip to last ones */ - } - else { - lua_getinfo(L1, "Slnt", &ar); - lua_pushfstring(L, "\n\t%s:", ar.short_src); - if (ar.currentline > 0) - lua_pushfstring(L, "%d:", ar.currentline); - lua_pushliteral(L, " in "); - pushfuncname(L, &ar); - if (ar.istailcall) - lua_pushliteral(L, "\n\t(...tail calls...)"); - lua_concat(L, lua_gettop(L) - top); - } - } - lua_concat(L, lua_gettop(L) - top); -} - -/* }====================================================== */ - - -/* -** {====================================================== -** Error-report functions -** ======================================================= -*/ - -LUALIB_API int luaL_argerror (lua_State *L, int narg, const char *extramsg) { - lua_Debug ar; - if (!lua_getstack(L, 0, &ar)) /* no stack frame? */ - return luaL_error(L, "bad argument #%d (%s)", narg, extramsg); - lua_getinfo(L, "n", &ar); - if (strcmp(ar.namewhat, "method") == 0) { - narg--; /* do not count `self' */ - if (narg == 0) /* error is in the self argument itself? */ - return luaL_error(L, "calling " LUA_QS " on bad self (%s)", - ar.name, extramsg); - } - if (ar.name == NULL) - ar.name = (pushglobalfuncname(L, &ar)) ? lua_tostring(L, -1) : "?"; - return luaL_error(L, "bad argument #%d to " LUA_QS " (%s)", - narg, ar.name, extramsg); -} - - -static int typeerror (lua_State *L, int narg, const char *tname) { - const char *msg = lua_pushfstring(L, "%s expected, got %s", - tname, luaL_typename(L, narg)); - return luaL_argerror(L, narg, msg); -} - - -static void tag_error (lua_State *L, int narg, int tag) { - typeerror(L, narg, lua_typename(L, tag)); -} - - -LUALIB_API void luaL_where (lua_State *L, int level) { - lua_Debug ar; - if (lua_getstack(L, level, &ar)) { /* check function at level */ - lua_getinfo(L, "Sl", &ar); /* get info about it */ - if (ar.currentline > 0) { /* is there info? */ - lua_pushfstring(L, "%s:%d: ", ar.short_src, ar.currentline); - return; - } - } - lua_pushliteral(L, ""); /* else, no information available... */ -} - - -LUALIB_API int luaL_error (lua_State *L, const char *fmt, ...) { - va_list argp; - va_start(argp, fmt); - luaL_where(L, 1); - lua_pushvfstring(L, fmt, argp); - va_end(argp); - lua_concat(L, 2); - return lua_error(L); -} - - -LUALIB_API int luaL_fileresult (lua_State *L, int stat, const char *fname) { - int en = errno; /* calls to Lua API may change this value */ - if (stat) { - lua_pushboolean(L, 1); - return 1; - } - else { - lua_pushnil(L); - if (fname) - lua_pushfstring(L, "%s: %s", fname, strerror(en)); - else - lua_pushstring(L, strerror(en)); - lua_pushinteger(L, en); - return 3; - } -} - - -#if !defined(inspectstat) /* { */ - -#if defined(LUA_USE_POSIX) - -#include <sys/wait.h> - -/* -** use appropriate macros to interpret 'pclose' return status -*/ -#define inspectstat(stat,what) \ - if (WIFEXITED(stat)) { stat = WEXITSTATUS(stat); } \ - else if (WIFSIGNALED(stat)) { stat = WTERMSIG(stat); what = "signal"; } - -#else - -#define inspectstat(stat,what) /* no op */ - -#endif - -#endif /* } */ - - -LUALIB_API int luaL_execresult (lua_State *L, int stat) { - const char *what = "exit"; /* type of termination */ - if (stat == -1) /* error? */ - return luaL_fileresult(L, 0, NULL); - else { - inspectstat(stat, what); /* interpret result */ - if (*what == 'e' && stat == 0) /* successful termination? */ - lua_pushboolean(L, 1); - else - lua_pushnil(L); - lua_pushstring(L, what); - lua_pushinteger(L, stat); - return 3; /* return true/nil,what,code */ - } -} - -/* }====================================================== */ - - -/* -** {====================================================== -** Userdata's metatable manipulation -** ======================================================= -*/ - -LUALIB_API int luaL_newmetatable (lua_State *L, const char *tname) { - luaL_getmetatable(L, tname); /* try to get metatable */ - if (!lua_isnil(L, -1)) /* name already in use? */ - return 0; /* leave previous value on top, but return 0 */ - lua_pop(L, 1); - lua_newtable(L); /* create metatable */ - lua_pushvalue(L, -1); - lua_setfield(L, LUA_REGISTRYINDEX, tname); /* registry.name = metatable */ - return 1; -} - - -LUALIB_API void luaL_setmetatable (lua_State *L, const char *tname) { - luaL_getmetatable(L, tname); - lua_setmetatable(L, -2); -} - - -LUALIB_API void *luaL_testudata (lua_State *L, int ud, const char *tname) { - void *p = lua_touserdata(L, ud); - if (p != NULL) { /* value is a userdata? */ - if (lua_getmetatable(L, ud)) { /* does it have a metatable? */ - luaL_getmetatable(L, tname); /* get correct metatable */ - if (!lua_rawequal(L, -1, -2)) /* not the same? */ - p = NULL; /* value is a userdata with wrong metatable */ - lua_pop(L, 2); /* remove both metatables */ - return p; - } - } - return NULL; /* value is not a userdata with a metatable */ -} - - -LUALIB_API void *luaL_checkudata (lua_State *L, int ud, const char *tname) { - void *p = luaL_testudata(L, ud, tname); - if (p == NULL) typeerror(L, ud, tname); - return p; -} - -/* }====================================================== */ - - -/* -** {====================================================== -** Argument check functions -** ======================================================= -*/ - -LUALIB_API int luaL_checkoption (lua_State *L, int narg, const char *def, - const char *const lst[]) { - const char *name = (def) ? luaL_optstring(L, narg, def) : - luaL_checkstring(L, narg); - int i; - for (i=0; lst[i]; i++) - if (strcmp(lst[i], name) == 0) - return i; - return luaL_argerror(L, narg, - lua_pushfstring(L, "invalid option " LUA_QS, name)); -} - - -LUALIB_API void luaL_checkstack (lua_State *L, int space, const char *msg) { - /* keep some extra space to run error routines, if needed */ - const int extra = LUA_MINSTACK; - if (!lua_checkstack(L, space + extra)) { - if (msg) - luaL_error(L, "stack overflow (%s)", msg); - else - luaL_error(L, "stack overflow"); - } -} - - -LUALIB_API void luaL_checktype (lua_State *L, int narg, int t) { - if (lua_type(L, narg) != t) - tag_error(L, narg, t); -} - - -LUALIB_API void luaL_checkany (lua_State *L, int narg) { - if (lua_type(L, narg) == LUA_TNONE) - luaL_argerror(L, narg, "value expected"); -} - - -LUALIB_API const char *luaL_checklstring (lua_State *L, int narg, size_t *len) { - const char *s = lua_tolstring(L, narg, len); - if (!s) tag_error(L, narg, LUA_TSTRING); - return s; -} - - -LUALIB_API const char *luaL_optlstring (lua_State *L, int narg, - const char *def, size_t *len) { - if (lua_isnoneornil(L, narg)) { - if (len) - *len = (def ? strlen(def) : 0); - return def; - } - else return luaL_checklstring(L, narg, len); -} - - -LUALIB_API lua_Number luaL_checknumber (lua_State *L, int narg) { - int isnum; - lua_Number d = lua_tonumberx(L, narg, &isnum); - if (!isnum) - tag_error(L, narg, LUA_TNUMBER); - return d; -} - - -LUALIB_API lua_Number luaL_optnumber (lua_State *L, int narg, lua_Number def) { - return luaL_opt(L, luaL_checknumber, narg, def); -} - - -LUALIB_API lua_Integer luaL_checkinteger (lua_State *L, int narg) { - int isnum; - lua_Integer d = lua_tointegerx(L, narg, &isnum); - if (!isnum) - tag_error(L, narg, LUA_TNUMBER); - return d; -} - - -LUALIB_API lua_Unsigned luaL_checkunsigned (lua_State *L, int narg) { - int isnum; - lua_Unsigned d = lua_tounsignedx(L, narg, &isnum); - if (!isnum) - tag_error(L, narg, LUA_TNUMBER); - return d; -} - - -LUALIB_API lua_Integer luaL_optinteger (lua_State *L, int narg, - lua_Integer def) { - return luaL_opt(L, luaL_checkinteger, narg, def); -} - - -LUALIB_API lua_Unsigned luaL_optunsigned (lua_State *L, int narg, - lua_Unsigned def) { - return luaL_opt(L, luaL_checkunsigned, narg, def); -} - -/* }====================================================== */ - - -/* -** {====================================================== -** Generic Buffer manipulation -** ======================================================= -*/ - -/* -** check whether buffer is using a userdata on the stack as a temporary -** buffer -*/ -#define buffonstack(B) ((B)->b != (B)->initb) - - -/* -** returns a pointer to a free area with at least 'sz' bytes -*/ -LUALIB_API char *luaL_prepbuffsize (luaL_Buffer *B, size_t sz) { - lua_State *L = B->L; - if (B->size - B->n < sz) { /* not enough space? */ - char *newbuff; - size_t newsize = B->size * 2; /* double buffer size */ - if (newsize - B->n < sz) /* not big enough? */ - newsize = B->n + sz; - if (newsize < B->n || newsize - B->n < sz) - luaL_error(L, "buffer too large"); - /* create larger buffer */ - newbuff = (char *)lua_newuserdata(L, newsize * sizeof(char)); - /* move content to new buffer */ - memcpy(newbuff, B->b, B->n * sizeof(char)); - if (buffonstack(B)) - lua_remove(L, -2); /* remove old buffer */ - B->b = newbuff; - B->size = newsize; - } - return &B->b[B->n]; -} - - -LUALIB_API void luaL_addlstring (luaL_Buffer *B, const char *s, size_t l) { - char *b = luaL_prepbuffsize(B, l); - memcpy(b, s, l * sizeof(char)); - luaL_addsize(B, l); -} - - -LUALIB_API void luaL_addstring (luaL_Buffer *B, const char *s) { - luaL_addlstring(B, s, strlen(s)); -} - - -LUALIB_API void luaL_pushresult (luaL_Buffer *B) { - lua_State *L = B->L; - lua_pushlstring(L, B->b, B->n); - if (buffonstack(B)) - lua_remove(L, -2); /* remove old buffer */ -} - - -LUALIB_API void luaL_pushresultsize (luaL_Buffer *B, size_t sz) { - luaL_addsize(B, sz); - luaL_pushresult(B); -} - - -LUALIB_API void luaL_addvalue (luaL_Buffer *B) { - lua_State *L = B->L; - size_t l; - const char *s = lua_tolstring(L, -1, &l); - if (buffonstack(B)) - lua_insert(L, -2); /* put value below buffer */ - luaL_addlstring(B, s, l); - lua_remove(L, (buffonstack(B)) ? -2 : -1); /* remove value */ -} - - -LUALIB_API void luaL_buffinit (lua_State *L, luaL_Buffer *B) { - B->L = L; - B->b = B->initb; - B->n = 0; - B->size = LUAL_BUFFERSIZE; -} - - -LUALIB_API char *luaL_buffinitsize (lua_State *L, luaL_Buffer *B, size_t sz) { - luaL_buffinit(L, B); - return luaL_prepbuffsize(B, sz); -} - -/* }====================================================== */ - - -/* -** {====================================================== -** Reference system -** ======================================================= -*/ - -/* index of free-list header */ -#define freelist 0 - - -LUALIB_API int luaL_ref (lua_State *L, int t) { - int ref; - if (lua_isnil(L, -1)) { - lua_pop(L, 1); /* remove from stack */ - return LUA_REFNIL; /* `nil' has a unique fixed reference */ - } - t = lua_absindex(L, t); - lua_rawgeti(L, t, freelist); /* get first free element */ - ref = (int)lua_tointeger(L, -1); /* ref = t[freelist] */ - lua_pop(L, 1); /* remove it from stack */ - if (ref != 0) { /* any free element? */ - lua_rawgeti(L, t, ref); /* remove it from list */ - lua_rawseti(L, t, freelist); /* (t[freelist] = t[ref]) */ - } - else /* no free elements */ - ref = (int)lua_rawlen(L, t) + 1; /* get a new reference */ - lua_rawseti(L, t, ref); - return ref; -} - - -LUALIB_API void luaL_unref (lua_State *L, int t, int ref) { - if (ref >= 0) { - t = lua_absindex(L, t); - lua_rawgeti(L, t, freelist); - lua_rawseti(L, t, ref); /* t[ref] = t[freelist] */ - lua_pushinteger(L, ref); - lua_rawseti(L, t, freelist); /* t[freelist] = ref */ - } -} - -/* }====================================================== */ - - -/* -** {====================================================== -** Load functions -** ======================================================= -*/ - -typedef struct LoadF { - int n; /* number of pre-read characters */ - FILE *f; /* file being read */ - char buff[LUAL_BUFFERSIZE]; /* area for reading file */ -} LoadF; - - -static const char *getF (lua_State *L, void *ud, size_t *size) { - LoadF *lf = (LoadF *)ud; - (void)L; /* not used */ - if (lf->n > 0) { /* are there pre-read characters to be read? */ - *size = lf->n; /* return them (chars already in buffer) */ - lf->n = 0; /* no more pre-read characters */ - } - else { /* read a block from file */ - /* 'fread' can return > 0 *and* set the EOF flag. If next call to - 'getF' called 'fread', it might still wait for user input. - The next check avoids this problem. */ - if (feof(lf->f)) return NULL; - *size = fread(lf->buff, 1, sizeof(lf->buff), lf->f); /* read block */ - } - return lf->buff; -} - - -static int errfile (lua_State *L, const char *what, int fnameindex) { - const char *serr = strerror(errno); - const char *filename = lua_tostring(L, fnameindex) + 1; - lua_pushfstring(L, "cannot %s %s: %s", what, filename, serr); - lua_remove(L, fnameindex); - return LUA_ERRFILE; -} - - -static int skipBOM (LoadF *lf) { - const char *p = "\xEF\xBB\xBF"; /* Utf8 BOM mark */ - int c; - lf->n = 0; - do { - c = getc(lf->f); - if (c == EOF || c != *(const unsigned char *)p++) return c; - lf->buff[lf->n++] = c; /* to be read by the parser */ - } while (*p != '\0'); - lf->n = 0; /* prefix matched; discard it */ - return getc(lf->f); /* return next character */ -} - - -/* -** reads the first character of file 'f' and skips an optional BOM mark -** in its beginning plus its first line if it starts with '#'. Returns -** true if it skipped the first line. In any case, '*cp' has the -** first "valid" character of the file (after the optional BOM and -** a first-line comment). -*/ -static int skipcomment (LoadF *lf, int *cp) { - int c = *cp = skipBOM(lf); - if (c == '#') { /* first line is a comment (Unix exec. file)? */ - do { /* skip first line */ - c = getc(lf->f); - } while (c != EOF && c != '\n') ; - *cp = getc(lf->f); /* skip end-of-line, if present */ - return 1; /* there was a comment */ - } - else return 0; /* no comment */ -} - - -LUALIB_API int luaL_loadfilex (lua_State *L, const char *filename, - const char *mode) { - LoadF lf; - int status, readstatus; - int c; - int fnameindex = lua_gettop(L) + 1; /* index of filename on the stack */ - if (filename == NULL) { - lua_pushliteral(L, "=stdin"); - lf.f = stdin; - } - else { - lua_pushfstring(L, "@%s", filename); - lf.f = fopen(filename, "r"); - if (lf.f == NULL) return errfile(L, "open", fnameindex); - } - if (skipcomment(&lf, &c)) /* read initial portion */ - lf.buff[lf.n++] = '\n'; /* add line to correct line numbers */ - if (c == LUA_SIGNATURE[0] && filename) { /* binary file? */ - lf.f = freopen(filename, "rb", lf.f); /* reopen in binary mode */ - if (lf.f == NULL) return errfile(L, "reopen", fnameindex); - skipcomment(&lf, &c); /* re-read initial portion */ - } - if (c != EOF) - lf.buff[lf.n++] = c; /* 'c' is the first character of the stream */ - status = lua_load(L, getF, &lf, lua_tostring(L, -1), mode); - readstatus = ferror(lf.f); - if (filename) fclose(lf.f); /* close file (even in case of errors) */ - if (readstatus) { - lua_settop(L, fnameindex); /* ignore results from `lua_load' */ - return errfile(L, "read", fnameindex); - } - lua_remove(L, fnameindex); - return status; -} - - -typedef struct LoadS { - const char *s; - size_t size; -} LoadS; - - -static const char *getS (lua_State *L, void *ud, size_t *size) { - LoadS *ls = (LoadS *)ud; - (void)L; /* not used */ - if (ls->size == 0) return NULL; - *size = ls->size; - ls->size = 0; - return ls->s; -} - - -LUALIB_API int luaL_loadbufferx (lua_State *L, const char *buff, size_t size, - const char *name, const char *mode) { - LoadS ls; - ls.s = buff; - ls.size = size; - return lua_load(L, getS, &ls, name, mode); -} - - -LUALIB_API int luaL_loadstring (lua_State *L, const char *s) { - return luaL_loadbuffer(L, s, strlen(s), s); -} - -/* }====================================================== */ - - - -LUALIB_API int luaL_getmetafield (lua_State *L, int obj, const char *event) { - if (!lua_getmetatable(L, obj)) /* no metatable? */ - return 0; - lua_pushstring(L, event); - lua_rawget(L, -2); - if (lua_isnil(L, -1)) { - lua_pop(L, 2); /* remove metatable and metafield */ - return 0; - } - else { - lua_remove(L, -2); /* remove only metatable */ - return 1; - } -} - - -LUALIB_API int luaL_callmeta (lua_State *L, int obj, const char *event) { - obj = lua_absindex(L, obj); - if (!luaL_getmetafield(L, obj, event)) /* no metafield? */ - return 0; - lua_pushvalue(L, obj); - lua_call(L, 1, 1); - return 1; -} - - -LUALIB_API int luaL_len (lua_State *L, int idx) { - int l; - int isnum; - lua_len(L, idx); - l = (int)lua_tointegerx(L, -1, &isnum); - if (!isnum) - luaL_error(L, "object length is not a number"); - lua_pop(L, 1); /* remove object */ - return l; -} - - -LUALIB_API const char *luaL_tolstring (lua_State *L, int idx, size_t *len) { - if (!luaL_callmeta(L, idx, "__tostring")) { /* no metafield? */ - switch (lua_type(L, idx)) { - case LUA_TNUMBER: - case LUA_TSTRING: - lua_pushvalue(L, idx); - break; - case LUA_TBOOLEAN: - lua_pushstring(L, (lua_toboolean(L, idx) ? "true" : "false")); - break; - case LUA_TNIL: - lua_pushliteral(L, "nil"); - break; - default: - lua_pushfstring(L, "%s: %p", luaL_typename(L, idx), - lua_topointer(L, idx)); - break; - } - } - return lua_tolstring(L, -1, len); -} - - -/* -** {====================================================== -** Compatibility with 5.1 module functions -** ======================================================= -*/ -#if defined(LUA_COMPAT_MODULE) - -static const char *luaL_findtable (lua_State *L, int idx, - const char *fname, int szhint) { - const char *e; - if (idx) lua_pushvalue(L, idx); - do { - e = strchr(fname, '.'); - if (e == NULL) e = fname + strlen(fname); - lua_pushlstring(L, fname, e - fname); - lua_rawget(L, -2); - if (lua_isnil(L, -1)) { /* no such field? */ - lua_pop(L, 1); /* remove this nil */ - lua_createtable(L, 0, (*e == '.' ? 1 : szhint)); /* new table for field */ - lua_pushlstring(L, fname, e - fname); - lua_pushvalue(L, -2); - lua_settable(L, -4); /* set new table into field */ - } - else if (!lua_istable(L, -1)) { /* field has a non-table value? */ - lua_pop(L, 2); /* remove table and value */ - return fname; /* return problematic part of the name */ - } - lua_remove(L, -2); /* remove previous table */ - fname = e + 1; - } while (*e == '.'); - return NULL; -} - - -/* -** Count number of elements in a luaL_Reg list. -*/ -static int libsize (const luaL_Reg *l) { - int size = 0; - for (; l && l->name; l++) size++; - return size; -} - - -/* -** Find or create a module table with a given name. The function -** first looks at the _LOADED table and, if that fails, try a -** global variable with that name. In any case, leaves on the stack -** the module table. -*/ -LUALIB_API void luaL_pushmodule (lua_State *L, const char *modname, - int sizehint) { - luaL_findtable(L, LUA_REGISTRYINDEX, "_LOADED", 1); /* get _LOADED table */ - lua_getfield(L, -1, modname); /* get _LOADED[modname] */ - if (!lua_istable(L, -1)) { /* not found? */ - lua_pop(L, 1); /* remove previous result */ - /* try global variable (and create one if it does not exist) */ - lua_pushglobaltable(L); - if (luaL_findtable(L, 0, modname, sizehint) != NULL) - luaL_error(L, "name conflict for module " LUA_QS, modname); - lua_pushvalue(L, -1); - lua_setfield(L, -3, modname); /* _LOADED[modname] = new table */ - } - lua_remove(L, -2); /* remove _LOADED table */ -} - - -LUALIB_API void luaL_openlib (lua_State *L, const char *libname, - const luaL_Reg *l, int nup) { - luaL_checkversion(L); - if (libname) { - luaL_pushmodule(L, libname, libsize(l)); /* get/create library table */ - lua_insert(L, -(nup + 1)); /* move library table to below upvalues */ - } - if (l) - luaL_setfuncs(L, l, nup); - else - lua_pop(L, nup); /* remove upvalues */ -} - -#endif -/* }====================================================== */ - -/* -** set functions from list 'l' into table at top - 'nup'; each -** function gets the 'nup' elements at the top as upvalues. -** Returns with only the table at the stack. -*/ -LUALIB_API void luaL_setfuncs (lua_State *L, const luaL_Reg *l, int nup) { - luaL_checkversion(L); - luaL_checkstack(L, nup, "too many upvalues"); - for (; l->name != NULL; l++) { /* fill the table with given functions */ - int i; - for (i = 0; i < nup; i++) /* copy upvalues to the top */ - lua_pushvalue(L, -nup); - lua_pushcclosure(L, l->func, nup); /* closure with those upvalues */ - lua_setfield(L, -(nup + 2), l->name); - } - lua_pop(L, nup); /* remove upvalues */ -} - - -/* -** ensure that stack[idx][fname] has a table and push that table -** into the stack -*/ -LUALIB_API int luaL_getsubtable (lua_State *L, int idx, const char *fname) { - lua_getfield(L, idx, fname); - if (lua_istable(L, -1)) return 1; /* table already there */ - else { - lua_pop(L, 1); /* remove previous result */ - idx = lua_absindex(L, idx); - lua_newtable(L); - lua_pushvalue(L, -1); /* copy to be left at top */ - lua_setfield(L, idx, fname); /* assign new table to field */ - return 0; /* false, because did not find table there */ - } -} - - -/* -** stripped-down 'require'. Calls 'openf' to open a module, -** registers the result in 'package.loaded' table and, if 'glb' -** is true, also registers the result in the global table. -** Leaves resulting module on the top. -*/ -LUALIB_API void luaL_requiref (lua_State *L, const char *modname, - lua_CFunction openf, int glb) { - lua_pushcfunction(L, openf); - lua_pushstring(L, modname); /* argument to open function */ - lua_call(L, 1, 1); /* open module */ - luaL_getsubtable(L, LUA_REGISTRYINDEX, "_LOADED"); - lua_pushvalue(L, -2); /* make copy of module (call result) */ - lua_setfield(L, -2, modname); /* _LOADED[modname] = module */ - lua_pop(L, 1); /* remove _LOADED table */ - if (glb) { - lua_pushvalue(L, -1); /* copy of 'mod' */ - lua_setglobal(L, modname); /* _G[modname] = module */ - } -} - - -LUALIB_API const char *luaL_gsub (lua_State *L, const char *s, const char *p, - const char *r) { - const char *wild; - size_t l = strlen(p); - luaL_Buffer b; - luaL_buffinit(L, &b); - while ((wild = strstr(s, p)) != NULL) { - luaL_addlstring(&b, s, wild - s); /* push prefix */ - luaL_addstring(&b, r); /* push replacement in place of pattern */ - s = wild + l; /* continue after `p' */ - } - luaL_addstring(&b, s); /* push last suffix */ - luaL_pushresult(&b); - return lua_tostring(L, -1); -} - - -static void *l_alloc (void *ud, void *ptr, size_t osize, size_t nsize) { - (void)ud; (void)osize; /* not used */ - if (nsize == 0) { - free(ptr); - return NULL; - } - else - return realloc(ptr, nsize); -} - - -static int panic (lua_State *L) { - luai_writestringerror("PANIC: unprotected error in call to Lua API (%s)\n", - lua_tostring(L, -1)); - return 0; /* return to Lua to abort */ -} - - -LUALIB_API lua_State *luaL_newstate (void) { - lua_State *L = lua_newstate(l_alloc, NULL); - if (L) lua_atpanic(L, &panic); - return L; -} - - -LUALIB_API void luaL_checkversion_ (lua_State *L, lua_Number ver) { - const lua_Number *v = lua_version(L); - if (v != lua_version(NULL)) - luaL_error(L, "multiple Lua VMs detected"); - else if (*v != ver) - luaL_error(L, "version mismatch: app. needs %f, Lua core provides %f", - ver, *v); - /* check conversions number -> integer types */ - lua_pushnumber(L, -(lua_Number)0x1234); - if (lua_tointeger(L, -1) != -0x1234 || - lua_tounsigned(L, -1) != (lua_Unsigned)-0x1234) - luaL_error(L, "bad conversion number->int;" - " must recompile Lua with proper settings"); - lua_pop(L, 1); -} - diff --git a/source/libs/lua52/lua52-src/src/lauxlib.h b/source/libs/lua52/lua52-src/src/lauxlib.h deleted file mode 100644 index 0fb023b8e735d0f725f1c1627dd2dd86ca0bdba0..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lauxlib.h +++ /dev/null @@ -1,212 +0,0 @@ -/* -** $Id: lauxlib.h,v 1.120.1.1 2013/04/12 18:48:47 roberto Exp $ -** Auxiliary functions for building Lua libraries -** See Copyright Notice in lua.h -*/ - - -#ifndef lauxlib_h -#define lauxlib_h - - -#include <stddef.h> -#include <stdio.h> - -#include "lua.h" - - - -/* extra error code for `luaL_load' */ -#define LUA_ERRFILE (LUA_ERRERR+1) - - -typedef struct luaL_Reg { - const char *name; - lua_CFunction func; -} luaL_Reg; - - -LUALIB_API void (luaL_checkversion_) (lua_State *L, lua_Number ver); -#define luaL_checkversion(L) luaL_checkversion_(L, LUA_VERSION_NUM) - -LUALIB_API int (luaL_getmetafield) (lua_State *L, int obj, const char *e); -LUALIB_API int (luaL_callmeta) (lua_State *L, int obj, const char *e); -LUALIB_API const char *(luaL_tolstring) (lua_State *L, int idx, size_t *len); -LUALIB_API int (luaL_argerror) (lua_State *L, int numarg, const char *extramsg); -LUALIB_API const char *(luaL_checklstring) (lua_State *L, int numArg, - size_t *l); -LUALIB_API const char *(luaL_optlstring) (lua_State *L, int numArg, - const char *def, size_t *l); -LUALIB_API lua_Number (luaL_checknumber) (lua_State *L, int numArg); -LUALIB_API lua_Number (luaL_optnumber) (lua_State *L, int nArg, lua_Number def); - -LUALIB_API lua_Integer (luaL_checkinteger) (lua_State *L, int numArg); -LUALIB_API lua_Integer (luaL_optinteger) (lua_State *L, int nArg, - lua_Integer def); -LUALIB_API lua_Unsigned (luaL_checkunsigned) (lua_State *L, int numArg); -LUALIB_API lua_Unsigned (luaL_optunsigned) (lua_State *L, int numArg, - lua_Unsigned def); - -LUALIB_API void (luaL_checkstack) (lua_State *L, int sz, const char *msg); -LUALIB_API void (luaL_checktype) (lua_State *L, int narg, int t); -LUALIB_API void (luaL_checkany) (lua_State *L, int narg); - -LUALIB_API int (luaL_newmetatable) (lua_State *L, const char *tname); -LUALIB_API void (luaL_setmetatable) (lua_State *L, const char *tname); -LUALIB_API void *(luaL_testudata) (lua_State *L, int ud, const char *tname); -LUALIB_API void *(luaL_checkudata) (lua_State *L, int ud, const char *tname); - -LUALIB_API void (luaL_where) (lua_State *L, int lvl); -LUALIB_API int (luaL_error) (lua_State *L, const char *fmt, ...); - -LUALIB_API int (luaL_checkoption) (lua_State *L, int narg, const char *def, - const char *const lst[]); - -LUALIB_API int (luaL_fileresult) (lua_State *L, int stat, const char *fname); -LUALIB_API int (luaL_execresult) (lua_State *L, int stat); - -/* pre-defined references */ -#define LUA_NOREF (-2) -#define LUA_REFNIL (-1) - -LUALIB_API int (luaL_ref) (lua_State *L, int t); -LUALIB_API void (luaL_unref) (lua_State *L, int t, int ref); - -LUALIB_API int (luaL_loadfilex) (lua_State *L, const char *filename, - const char *mode); - -#define luaL_loadfile(L,f) luaL_loadfilex(L,f,NULL) - -LUALIB_API int (luaL_loadbufferx) (lua_State *L, const char *buff, size_t sz, - const char *name, const char *mode); -LUALIB_API int (luaL_loadstring) (lua_State *L, const char *s); - -LUALIB_API lua_State *(luaL_newstate) (void); - -LUALIB_API int (luaL_len) (lua_State *L, int idx); - -LUALIB_API const char *(luaL_gsub) (lua_State *L, const char *s, const char *p, - const char *r); - -LUALIB_API void (luaL_setfuncs) (lua_State *L, const luaL_Reg *l, int nup); - -LUALIB_API int (luaL_getsubtable) (lua_State *L, int idx, const char *fname); - -LUALIB_API void (luaL_traceback) (lua_State *L, lua_State *L1, - const char *msg, int level); - -LUALIB_API void (luaL_requiref) (lua_State *L, const char *modname, - lua_CFunction openf, int glb); - -/* -** =============================================================== -** some useful macros -** =============================================================== -*/ - - -#define luaL_newlibtable(L,l) \ - lua_createtable(L, 0, sizeof(l)/sizeof((l)[0]) - 1) - -#define luaL_newlib(L,l) (luaL_newlibtable(L,l), luaL_setfuncs(L,l,0)) - -#define luaL_argcheck(L, cond,numarg,extramsg) \ - ((void)((cond) || luaL_argerror(L, (numarg), (extramsg)))) -#define luaL_checkstring(L,n) (luaL_checklstring(L, (n), NULL)) -#define luaL_optstring(L,n,d) (luaL_optlstring(L, (n), (d), NULL)) -#define luaL_checkint(L,n) ((int)luaL_checkinteger(L, (n))) -#define luaL_optint(L,n,d) ((int)luaL_optinteger(L, (n), (d))) -#define luaL_checklong(L,n) ((long)luaL_checkinteger(L, (n))) -#define luaL_optlong(L,n,d) ((long)luaL_optinteger(L, (n), (d))) - -#define luaL_typename(L,i) lua_typename(L, lua_type(L,(i))) - -#define luaL_dofile(L, fn) \ - (luaL_loadfile(L, fn) || lua_pcall(L, 0, LUA_MULTRET, 0)) - -#define luaL_dostring(L, s) \ - (luaL_loadstring(L, s) || lua_pcall(L, 0, LUA_MULTRET, 0)) - -#define luaL_getmetatable(L,n) (lua_getfield(L, LUA_REGISTRYINDEX, (n))) - -#define luaL_opt(L,f,n,d) (lua_isnoneornil(L,(n)) ? (d) : f(L,(n))) - -#define luaL_loadbuffer(L,s,sz,n) luaL_loadbufferx(L,s,sz,n,NULL) - - -/* -** {====================================================== -** Generic Buffer manipulation -** ======================================================= -*/ - -typedef struct luaL_Buffer { - char *b; /* buffer address */ - size_t size; /* buffer size */ - size_t n; /* number of characters in buffer */ - lua_State *L; - char initb[LUAL_BUFFERSIZE]; /* initial buffer */ -} luaL_Buffer; - - -#define luaL_addchar(B,c) \ - ((void)((B)->n < (B)->size || luaL_prepbuffsize((B), 1)), \ - ((B)->b[(B)->n++] = (c))) - -#define luaL_addsize(B,s) ((B)->n += (s)) - -LUALIB_API void (luaL_buffinit) (lua_State *L, luaL_Buffer *B); -LUALIB_API char *(luaL_prepbuffsize) (luaL_Buffer *B, size_t sz); -LUALIB_API void (luaL_addlstring) (luaL_Buffer *B, const char *s, size_t l); -LUALIB_API void (luaL_addstring) (luaL_Buffer *B, const char *s); -LUALIB_API void (luaL_addvalue) (luaL_Buffer *B); -LUALIB_API void (luaL_pushresult) (luaL_Buffer *B); -LUALIB_API void (luaL_pushresultsize) (luaL_Buffer *B, size_t sz); -LUALIB_API char *(luaL_buffinitsize) (lua_State *L, luaL_Buffer *B, size_t sz); - -#define luaL_prepbuffer(B) luaL_prepbuffsize(B, LUAL_BUFFERSIZE) - -/* }====================================================== */ - - - -/* -** {====================================================== -** File handles for IO library -** ======================================================= -*/ - -/* -** A file handle is a userdata with metatable 'LUA_FILEHANDLE' and -** initial structure 'luaL_Stream' (it may contain other fields -** after that initial structure). -*/ - -#define LUA_FILEHANDLE "FILE*" - - -typedef struct luaL_Stream { - FILE *f; /* stream (NULL for incompletely created streams) */ - lua_CFunction closef; /* to close stream (NULL for closed streams) */ -} luaL_Stream; - -/* }====================================================== */ - - - -/* compatibility with old module system */ -#if defined(LUA_COMPAT_MODULE) - -LUALIB_API void (luaL_pushmodule) (lua_State *L, const char *modname, - int sizehint); -LUALIB_API void (luaL_openlib) (lua_State *L, const char *libname, - const luaL_Reg *l, int nup); - -#define luaL_register(L,n,l) (luaL_openlib(L,(n),(l),0)) - -#endif - - -#endif - - diff --git a/source/libs/lua52/lua52-src/src/lbaselib.c b/source/libs/lua52/lua52-src/src/lbaselib.c deleted file mode 100644 index 5255b3cd9b7209591fbf2f084870ff1549e8d04b..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lbaselib.c +++ /dev/null @@ -1,458 +0,0 @@ -/* -** $Id: lbaselib.c,v 1.276.1.1 2013/04/12 18:48:47 roberto Exp $ -** Basic library -** See Copyright Notice in lua.h -*/ - - - -#include <ctype.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#define lbaselib_c -#define LUA_LIB - -#include "lua.h" - -#include "lauxlib.h" -#include "lualib.h" - - -static int luaB_print (lua_State *L) { - int n = lua_gettop(L); /* number of arguments */ - int i; - lua_getglobal(L, "tostring"); - for (i=1; i<=n; i++) { - const char *s; - size_t l; - lua_pushvalue(L, -1); /* function to be called */ - lua_pushvalue(L, i); /* value to print */ - lua_call(L, 1, 1); - s = lua_tolstring(L, -1, &l); /* get result */ - if (s == NULL) - return luaL_error(L, - LUA_QL("tostring") " must return a string to " LUA_QL("print")); - if (i>1) luai_writestring("\t", 1); - luai_writestring(s, l); - lua_pop(L, 1); /* pop result */ - } - luai_writeline(); - return 0; -} - - -#define SPACECHARS " \f\n\r\t\v" - -static int luaB_tonumber (lua_State *L) { - if (lua_isnoneornil(L, 2)) { /* standard conversion */ - int isnum; - lua_Number n = lua_tonumberx(L, 1, &isnum); - if (isnum) { - lua_pushnumber(L, n); - return 1; - } /* else not a number; must be something */ - luaL_checkany(L, 1); - } - else { - size_t l; - const char *s = luaL_checklstring(L, 1, &l); - const char *e = s + l; /* end point for 's' */ - int base = luaL_checkint(L, 2); - int neg = 0; - luaL_argcheck(L, 2 <= base && base <= 36, 2, "base out of range"); - s += strspn(s, SPACECHARS); /* skip initial spaces */ - if (*s == '-') { s++; neg = 1; } /* handle signal */ - else if (*s == '+') s++; - if (isalnum((unsigned char)*s)) { - lua_Number n = 0; - do { - int digit = (isdigit((unsigned char)*s)) ? *s - '0' - : toupper((unsigned char)*s) - 'A' + 10; - if (digit >= base) break; /* invalid numeral; force a fail */ - n = n * (lua_Number)base + (lua_Number)digit; - s++; - } while (isalnum((unsigned char)*s)); - s += strspn(s, SPACECHARS); /* skip trailing spaces */ - if (s == e) { /* no invalid trailing characters? */ - lua_pushnumber(L, (neg) ? -n : n); - return 1; - } /* else not a number */ - } /* else not a number */ - } - lua_pushnil(L); /* not a number */ - return 1; -} - - -static int luaB_error (lua_State *L) { - int level = luaL_optint(L, 2, 1); - lua_settop(L, 1); - if (lua_isstring(L, 1) && level > 0) { /* add extra information? */ - luaL_where(L, level); - lua_pushvalue(L, 1); - lua_concat(L, 2); - } - return lua_error(L); -} - - -static int luaB_getmetatable (lua_State *L) { - luaL_checkany(L, 1); - if (!lua_getmetatable(L, 1)) { - lua_pushnil(L); - return 1; /* no metatable */ - } - luaL_getmetafield(L, 1, "__metatable"); - return 1; /* returns either __metatable field (if present) or metatable */ -} - - -static int luaB_setmetatable (lua_State *L) { - int t = lua_type(L, 2); - luaL_checktype(L, 1, LUA_TTABLE); - luaL_argcheck(L, t == LUA_TNIL || t == LUA_TTABLE, 2, - "nil or table expected"); - if (luaL_getmetafield(L, 1, "__metatable")) - return luaL_error(L, "cannot change a protected metatable"); - lua_settop(L, 2); - lua_setmetatable(L, 1); - return 1; -} - - -static int luaB_rawequal (lua_State *L) { - luaL_checkany(L, 1); - luaL_checkany(L, 2); - lua_pushboolean(L, lua_rawequal(L, 1, 2)); - return 1; -} - - -static int luaB_rawlen (lua_State *L) { - int t = lua_type(L, 1); - luaL_argcheck(L, t == LUA_TTABLE || t == LUA_TSTRING, 1, - "table or string expected"); - lua_pushinteger(L, lua_rawlen(L, 1)); - return 1; -} - - -static int luaB_rawget (lua_State *L) { - luaL_checktype(L, 1, LUA_TTABLE); - luaL_checkany(L, 2); - lua_settop(L, 2); - lua_rawget(L, 1); - return 1; -} - -static int luaB_rawset (lua_State *L) { - luaL_checktype(L, 1, LUA_TTABLE); - luaL_checkany(L, 2); - luaL_checkany(L, 3); - lua_settop(L, 3); - lua_rawset(L, 1); - return 1; -} - - -static int luaB_collectgarbage (lua_State *L) { - static const char *const opts[] = {"stop", "restart", "collect", - "count", "step", "setpause", "setstepmul", - "setmajorinc", "isrunning", "generational", "incremental", NULL}; - static const int optsnum[] = {LUA_GCSTOP, LUA_GCRESTART, LUA_GCCOLLECT, - LUA_GCCOUNT, LUA_GCSTEP, LUA_GCSETPAUSE, LUA_GCSETSTEPMUL, - LUA_GCSETMAJORINC, LUA_GCISRUNNING, LUA_GCGEN, LUA_GCINC}; - int o = optsnum[luaL_checkoption(L, 1, "collect", opts)]; - int ex = luaL_optint(L, 2, 0); - int res = lua_gc(L, o, ex); - switch (o) { - case LUA_GCCOUNT: { - int b = lua_gc(L, LUA_GCCOUNTB, 0); - lua_pushnumber(L, res + ((lua_Number)b/1024)); - lua_pushinteger(L, b); - return 2; - } - case LUA_GCSTEP: case LUA_GCISRUNNING: { - lua_pushboolean(L, res); - return 1; - } - default: { - lua_pushinteger(L, res); - return 1; - } - } -} - - -static int luaB_type (lua_State *L) { - luaL_checkany(L, 1); - lua_pushstring(L, luaL_typename(L, 1)); - return 1; -} - - -static int pairsmeta (lua_State *L, const char *method, int iszero, - lua_CFunction iter) { - if (!luaL_getmetafield(L, 1, method)) { /* no metamethod? */ - luaL_checktype(L, 1, LUA_TTABLE); /* argument must be a table */ - lua_pushcfunction(L, iter); /* will return generator, */ - lua_pushvalue(L, 1); /* state, */ - if (iszero) lua_pushinteger(L, 0); /* and initial value */ - else lua_pushnil(L); - } - else { - lua_pushvalue(L, 1); /* argument 'self' to metamethod */ - lua_call(L, 1, 3); /* get 3 values from metamethod */ - } - return 3; -} - - -static int luaB_next (lua_State *L) { - luaL_checktype(L, 1, LUA_TTABLE); - lua_settop(L, 2); /* create a 2nd argument if there isn't one */ - if (lua_next(L, 1)) - return 2; - else { - lua_pushnil(L); - return 1; - } -} - - -static int luaB_pairs (lua_State *L) { - return pairsmeta(L, "__pairs", 0, luaB_next); -} - - -static int ipairsaux (lua_State *L) { - int i = luaL_checkint(L, 2); - luaL_checktype(L, 1, LUA_TTABLE); - i++; /* next value */ - lua_pushinteger(L, i); - lua_rawgeti(L, 1, i); - return (lua_isnil(L, -1)) ? 1 : 2; -} - - -static int luaB_ipairs (lua_State *L) { - return pairsmeta(L, "__ipairs", 1, ipairsaux); -} - - -static int load_aux (lua_State *L, int status, int envidx) { - if (status == LUA_OK) { - if (envidx != 0) { /* 'env' parameter? */ - lua_pushvalue(L, envidx); /* environment for loaded function */ - if (!lua_setupvalue(L, -2, 1)) /* set it as 1st upvalue */ - lua_pop(L, 1); /* remove 'env' if not used by previous call */ - } - return 1; - } - else { /* error (message is on top of the stack) */ - lua_pushnil(L); - lua_insert(L, -2); /* put before error message */ - return 2; /* return nil plus error message */ - } -} - - -static int luaB_loadfile (lua_State *L) { - const char *fname = luaL_optstring(L, 1, NULL); - const char *mode = luaL_optstring(L, 2, NULL); - int env = (!lua_isnone(L, 3) ? 3 : 0); /* 'env' index or 0 if no 'env' */ - int status = luaL_loadfilex(L, fname, mode); - return load_aux(L, status, env); -} - - -/* -** {====================================================== -** Generic Read function -** ======================================================= -*/ - - -/* -** reserved slot, above all arguments, to hold a copy of the returned -** string to avoid it being collected while parsed. 'load' has four -** optional arguments (chunk, source name, mode, and environment). -*/ -#define RESERVEDSLOT 5 - - -/* -** Reader for generic `load' function: `lua_load' uses the -** stack for internal stuff, so the reader cannot change the -** stack top. Instead, it keeps its resulting string in a -** reserved slot inside the stack. -*/ -static const char *generic_reader (lua_State *L, void *ud, size_t *size) { - (void)(ud); /* not used */ - luaL_checkstack(L, 2, "too many nested functions"); - lua_pushvalue(L, 1); /* get function */ - lua_call(L, 0, 1); /* call it */ - if (lua_isnil(L, -1)) { - lua_pop(L, 1); /* pop result */ - *size = 0; - return NULL; - } - else if (!lua_isstring(L, -1)) - luaL_error(L, "reader function must return a string"); - lua_replace(L, RESERVEDSLOT); /* save string in reserved slot */ - return lua_tolstring(L, RESERVEDSLOT, size); -} - - -static int luaB_load (lua_State *L) { - int status; - size_t l; - const char *s = lua_tolstring(L, 1, &l); - const char *mode = luaL_optstring(L, 3, "bt"); - int env = (!lua_isnone(L, 4) ? 4 : 0); /* 'env' index or 0 if no 'env' */ - if (s != NULL) { /* loading a string? */ - const char *chunkname = luaL_optstring(L, 2, s); - status = luaL_loadbufferx(L, s, l, chunkname, mode); - } - else { /* loading from a reader function */ - const char *chunkname = luaL_optstring(L, 2, "=(load)"); - luaL_checktype(L, 1, LUA_TFUNCTION); - lua_settop(L, RESERVEDSLOT); /* create reserved slot */ - status = lua_load(L, generic_reader, NULL, chunkname, mode); - } - return load_aux(L, status, env); -} - -/* }====================================================== */ - - -static int dofilecont (lua_State *L) { - return lua_gettop(L) - 1; -} - - -static int luaB_dofile (lua_State *L) { - const char *fname = luaL_optstring(L, 1, NULL); - lua_settop(L, 1); - if (luaL_loadfile(L, fname) != LUA_OK) - return lua_error(L); - lua_callk(L, 0, LUA_MULTRET, 0, dofilecont); - return dofilecont(L); -} - - -static int luaB_assert (lua_State *L) { - if (!lua_toboolean(L, 1)) - return luaL_error(L, "%s", luaL_optstring(L, 2, "assertion failed!")); - return lua_gettop(L); -} - - -static int luaB_select (lua_State *L) { - int n = lua_gettop(L); - if (lua_type(L, 1) == LUA_TSTRING && *lua_tostring(L, 1) == '#') { - lua_pushinteger(L, n-1); - return 1; - } - else { - int i = luaL_checkint(L, 1); - if (i < 0) i = n + i; - else if (i > n) i = n; - luaL_argcheck(L, 1 <= i, 1, "index out of range"); - return n - i; - } -} - - -static int finishpcall (lua_State *L, int status) { - if (!lua_checkstack(L, 1)) { /* no space for extra boolean? */ - lua_settop(L, 0); /* create space for return values */ - lua_pushboolean(L, 0); - lua_pushstring(L, "stack overflow"); - return 2; /* return false, msg */ - } - lua_pushboolean(L, status); /* first result (status) */ - lua_replace(L, 1); /* put first result in first slot */ - return lua_gettop(L); -} - - -static int pcallcont (lua_State *L) { - int status = lua_getctx(L, NULL); - return finishpcall(L, (status == LUA_YIELD)); -} - - -static int luaB_pcall (lua_State *L) { - int status; - luaL_checkany(L, 1); - lua_pushnil(L); - lua_insert(L, 1); /* create space for status result */ - status = lua_pcallk(L, lua_gettop(L) - 2, LUA_MULTRET, 0, 0, pcallcont); - return finishpcall(L, (status == LUA_OK)); -} - - -static int luaB_xpcall (lua_State *L) { - int status; - int n = lua_gettop(L); - luaL_argcheck(L, n >= 2, 2, "value expected"); - lua_pushvalue(L, 1); /* exchange function... */ - lua_copy(L, 2, 1); /* ...and error handler */ - lua_replace(L, 2); - status = lua_pcallk(L, n - 2, LUA_MULTRET, 1, 0, pcallcont); - return finishpcall(L, (status == LUA_OK)); -} - - -static int luaB_tostring (lua_State *L) { - luaL_checkany(L, 1); - luaL_tolstring(L, 1, NULL); - return 1; -} - - -static const luaL_Reg base_funcs[] = { - {"assert", luaB_assert}, - {"collectgarbage", luaB_collectgarbage}, - {"dofile", luaB_dofile}, - {"error", luaB_error}, - {"getmetatable", luaB_getmetatable}, - {"ipairs", luaB_ipairs}, - {"loadfile", luaB_loadfile}, - {"load", luaB_load}, -#if defined(LUA_COMPAT_LOADSTRING) - {"loadstring", luaB_load}, -#endif - {"next", luaB_next}, - {"pairs", luaB_pairs}, - {"pcall", luaB_pcall}, - {"print", luaB_print}, - {"rawequal", luaB_rawequal}, - {"rawlen", luaB_rawlen}, - {"rawget", luaB_rawget}, - {"rawset", luaB_rawset}, - {"select", luaB_select}, - {"setmetatable", luaB_setmetatable}, - {"tonumber", luaB_tonumber}, - {"tostring", luaB_tostring}, - {"type", luaB_type}, - {"xpcall", luaB_xpcall}, - {NULL, NULL} -}; - - -LUAMOD_API int luaopen_base (lua_State *L) { - /* set global _G */ - lua_pushglobaltable(L); - lua_pushglobaltable(L); - lua_setfield(L, -2, "_G"); - /* open lib into global table */ - luaL_setfuncs(L, base_funcs, 0); - lua_pushliteral(L, LUA_VERSION); - lua_setfield(L, -2, "_VERSION"); /* set global _VERSION */ - return 1; -} - diff --git a/source/libs/lua52/lua52-src/src/lbitlib.c b/source/libs/lua52/lua52-src/src/lbitlib.c deleted file mode 100644 index 31c7b66f1290d4800e995cec6e1f58140f1ca334..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lbitlib.c +++ /dev/null @@ -1,212 +0,0 @@ -/* -** $Id: lbitlib.c,v 1.18.1.2 2013/07/09 18:01:41 roberto Exp $ -** Standard library for bitwise operations -** See Copyright Notice in lua.h -*/ - -#define lbitlib_c -#define LUA_LIB - -#include "lua.h" - -#include "lauxlib.h" -#include "lualib.h" - - -/* number of bits to consider in a number */ -#if !defined(LUA_NBITS) -#define LUA_NBITS 32 -#endif - - -#define ALLONES (~(((~(lua_Unsigned)0) << (LUA_NBITS - 1)) << 1)) - -/* macro to trim extra bits */ -#define trim(x) ((x) & ALLONES) - - -/* builds a number with 'n' ones (1 <= n <= LUA_NBITS) */ -#define mask(n) (~((ALLONES << 1) << ((n) - 1))) - - -typedef lua_Unsigned b_uint; - - - -static b_uint andaux (lua_State *L) { - int i, n = lua_gettop(L); - b_uint r = ~(b_uint)0; - for (i = 1; i <= n; i++) - r &= luaL_checkunsigned(L, i); - return trim(r); -} - - -static int b_and (lua_State *L) { - b_uint r = andaux(L); - lua_pushunsigned(L, r); - return 1; -} - - -static int b_test (lua_State *L) { - b_uint r = andaux(L); - lua_pushboolean(L, r != 0); - return 1; -} - - -static int b_or (lua_State *L) { - int i, n = lua_gettop(L); - b_uint r = 0; - for (i = 1; i <= n; i++) - r |= luaL_checkunsigned(L, i); - lua_pushunsigned(L, trim(r)); - return 1; -} - - -static int b_xor (lua_State *L) { - int i, n = lua_gettop(L); - b_uint r = 0; - for (i = 1; i <= n; i++) - r ^= luaL_checkunsigned(L, i); - lua_pushunsigned(L, trim(r)); - return 1; -} - - -static int b_not (lua_State *L) { - b_uint r = ~luaL_checkunsigned(L, 1); - lua_pushunsigned(L, trim(r)); - return 1; -} - - -static int b_shift (lua_State *L, b_uint r, int i) { - if (i < 0) { /* shift right? */ - i = -i; - r = trim(r); - if (i >= LUA_NBITS) r = 0; - else r >>= i; - } - else { /* shift left */ - if (i >= LUA_NBITS) r = 0; - else r <<= i; - r = trim(r); - } - lua_pushunsigned(L, r); - return 1; -} - - -static int b_lshift (lua_State *L) { - return b_shift(L, luaL_checkunsigned(L, 1), luaL_checkint(L, 2)); -} - - -static int b_rshift (lua_State *L) { - return b_shift(L, luaL_checkunsigned(L, 1), -luaL_checkint(L, 2)); -} - - -static int b_arshift (lua_State *L) { - b_uint r = luaL_checkunsigned(L, 1); - int i = luaL_checkint(L, 2); - if (i < 0 || !(r & ((b_uint)1 << (LUA_NBITS - 1)))) - return b_shift(L, r, -i); - else { /* arithmetic shift for 'negative' number */ - if (i >= LUA_NBITS) r = ALLONES; - else - r = trim((r >> i) | ~(~(b_uint)0 >> i)); /* add signal bit */ - lua_pushunsigned(L, r); - return 1; - } -} - - -static int b_rot (lua_State *L, int i) { - b_uint r = luaL_checkunsigned(L, 1); - i &= (LUA_NBITS - 1); /* i = i % NBITS */ - r = trim(r); - if (i != 0) /* avoid undefined shift of LUA_NBITS when i == 0 */ - r = (r << i) | (r >> (LUA_NBITS - i)); - lua_pushunsigned(L, trim(r)); - return 1; -} - - -static int b_lrot (lua_State *L) { - return b_rot(L, luaL_checkint(L, 2)); -} - - -static int b_rrot (lua_State *L) { - return b_rot(L, -luaL_checkint(L, 2)); -} - - -/* -** get field and width arguments for field-manipulation functions, -** checking whether they are valid. -** ('luaL_error' called without 'return' to avoid later warnings about -** 'width' being used uninitialized.) -*/ -static int fieldargs (lua_State *L, int farg, int *width) { - int f = luaL_checkint(L, farg); - int w = luaL_optint(L, farg + 1, 1); - luaL_argcheck(L, 0 <= f, farg, "field cannot be negative"); - luaL_argcheck(L, 0 < w, farg + 1, "width must be positive"); - if (f + w > LUA_NBITS) - luaL_error(L, "trying to access non-existent bits"); - *width = w; - return f; -} - - -static int b_extract (lua_State *L) { - int w; - b_uint r = luaL_checkunsigned(L, 1); - int f = fieldargs(L, 2, &w); - r = (r >> f) & mask(w); - lua_pushunsigned(L, r); - return 1; -} - - -static int b_replace (lua_State *L) { - int w; - b_uint r = luaL_checkunsigned(L, 1); - b_uint v = luaL_checkunsigned(L, 2); - int f = fieldargs(L, 3, &w); - int m = mask(w); - v &= m; /* erase bits outside given width */ - r = (r & ~(m << f)) | (v << f); - lua_pushunsigned(L, r); - return 1; -} - - -static const luaL_Reg bitlib[] = { - {"arshift", b_arshift}, - {"band", b_and}, - {"bnot", b_not}, - {"bor", b_or}, - {"bxor", b_xor}, - {"btest", b_test}, - {"extract", b_extract}, - {"lrotate", b_lrot}, - {"lshift", b_lshift}, - {"replace", b_replace}, - {"rrotate", b_rrot}, - {"rshift", b_rshift}, - {NULL, NULL} -}; - - - -LUAMOD_API int luaopen_bit32 (lua_State *L) { - luaL_newlib(L, bitlib); - return 1; -} - diff --git a/source/libs/lua52/lua52-src/src/lcode.c b/source/libs/lua52/lua52-src/src/lcode.c deleted file mode 100644 index 820b95c0e18e41c863c799b8c4a0d8fee7755e80..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lcode.c +++ /dev/null @@ -1,881 +0,0 @@ -/* -** $Id: lcode.c,v 2.62.1.1 2013/04/12 18:48:47 roberto Exp $ -** Code generator for Lua -** See Copyright Notice in lua.h -*/ - - -#include <stdlib.h> - -#define lcode_c -#define LUA_CORE - -#include "lua.h" - -#include "lcode.h" -#include "ldebug.h" -#include "ldo.h" -#include "lgc.h" -#include "llex.h" -#include "lmem.h" -#include "lobject.h" -#include "lopcodes.h" -#include "lparser.h" -#include "lstring.h" -#include "ltable.h" -#include "lvm.h" - - -#define hasjumps(e) ((e)->t != (e)->f) - - -static int isnumeral(expdesc *e) { - return (e->k == VKNUM && e->t == NO_JUMP && e->f == NO_JUMP); -} - - -void luaK_nil (FuncState *fs, int from, int n) { - Instruction *previous; - int l = from + n - 1; /* last register to set nil */ - if (fs->pc > fs->lasttarget) { /* no jumps to current position? */ - previous = &fs->f->code[fs->pc-1]; - if (GET_OPCODE(*previous) == OP_LOADNIL) { - int pfrom = GETARG_A(*previous); - int pl = pfrom + GETARG_B(*previous); - if ((pfrom <= from && from <= pl + 1) || - (from <= pfrom && pfrom <= l + 1)) { /* can connect both? */ - if (pfrom < from) from = pfrom; /* from = min(from, pfrom) */ - if (pl > l) l = pl; /* l = max(l, pl) */ - SETARG_A(*previous, from); - SETARG_B(*previous, l - from); - return; - } - } /* else go through */ - } - luaK_codeABC(fs, OP_LOADNIL, from, n - 1, 0); /* else no optimization */ -} - - -int luaK_jump (FuncState *fs) { - int jpc = fs->jpc; /* save list of jumps to here */ - int j; - fs->jpc = NO_JUMP; - j = luaK_codeAsBx(fs, OP_JMP, 0, NO_JUMP); - luaK_concat(fs, &j, jpc); /* keep them on hold */ - return j; -} - - -void luaK_ret (FuncState *fs, int first, int nret) { - luaK_codeABC(fs, OP_RETURN, first, nret+1, 0); -} - - -static int condjump (FuncState *fs, OpCode op, int A, int B, int C) { - luaK_codeABC(fs, op, A, B, C); - return luaK_jump(fs); -} - - -static void fixjump (FuncState *fs, int pc, int dest) { - Instruction *jmp = &fs->f->code[pc]; - int offset = dest-(pc+1); - lua_assert(dest != NO_JUMP); - if (abs(offset) > MAXARG_sBx) - luaX_syntaxerror(fs->ls, "control structure too long"); - SETARG_sBx(*jmp, offset); -} - - -/* -** returns current `pc' and marks it as a jump target (to avoid wrong -** optimizations with consecutive instructions not in the same basic block). -*/ -int luaK_getlabel (FuncState *fs) { - fs->lasttarget = fs->pc; - return fs->pc; -} - - -static int getjump (FuncState *fs, int pc) { - int offset = GETARG_sBx(fs->f->code[pc]); - if (offset == NO_JUMP) /* point to itself represents end of list */ - return NO_JUMP; /* end of list */ - else - return (pc+1)+offset; /* turn offset into absolute position */ -} - - -static Instruction *getjumpcontrol (FuncState *fs, int pc) { - Instruction *pi = &fs->f->code[pc]; - if (pc >= 1 && testTMode(GET_OPCODE(*(pi-1)))) - return pi-1; - else - return pi; -} - - -/* -** check whether list has any jump that do not produce a value -** (or produce an inverted value) -*/ -static int need_value (FuncState *fs, int list) { - for (; list != NO_JUMP; list = getjump(fs, list)) { - Instruction i = *getjumpcontrol(fs, list); - if (GET_OPCODE(i) != OP_TESTSET) return 1; - } - return 0; /* not found */ -} - - -static int patchtestreg (FuncState *fs, int node, int reg) { - Instruction *i = getjumpcontrol(fs, node); - if (GET_OPCODE(*i) != OP_TESTSET) - return 0; /* cannot patch other instructions */ - if (reg != NO_REG && reg != GETARG_B(*i)) - SETARG_A(*i, reg); - else /* no register to put value or register already has the value */ - *i = CREATE_ABC(OP_TEST, GETARG_B(*i), 0, GETARG_C(*i)); - - return 1; -} - - -static void removevalues (FuncState *fs, int list) { - for (; list != NO_JUMP; list = getjump(fs, list)) - patchtestreg(fs, list, NO_REG); -} - - -static void patchlistaux (FuncState *fs, int list, int vtarget, int reg, - int dtarget) { - while (list != NO_JUMP) { - int next = getjump(fs, list); - if (patchtestreg(fs, list, reg)) - fixjump(fs, list, vtarget); - else - fixjump(fs, list, dtarget); /* jump to default target */ - list = next; - } -} - - -static void dischargejpc (FuncState *fs) { - patchlistaux(fs, fs->jpc, fs->pc, NO_REG, fs->pc); - fs->jpc = NO_JUMP; -} - - -void luaK_patchlist (FuncState *fs, int list, int target) { - if (target == fs->pc) - luaK_patchtohere(fs, list); - else { - lua_assert(target < fs->pc); - patchlistaux(fs, list, target, NO_REG, target); - } -} - - -LUAI_FUNC void luaK_patchclose (FuncState *fs, int list, int level) { - level++; /* argument is +1 to reserve 0 as non-op */ - while (list != NO_JUMP) { - int next = getjump(fs, list); - lua_assert(GET_OPCODE(fs->f->code[list]) == OP_JMP && - (GETARG_A(fs->f->code[list]) == 0 || - GETARG_A(fs->f->code[list]) >= level)); - SETARG_A(fs->f->code[list], level); - list = next; - } -} - - -void luaK_patchtohere (FuncState *fs, int list) { - luaK_getlabel(fs); - luaK_concat(fs, &fs->jpc, list); -} - - -void luaK_concat (FuncState *fs, int *l1, int l2) { - if (l2 == NO_JUMP) return; - else if (*l1 == NO_JUMP) - *l1 = l2; - else { - int list = *l1; - int next; - while ((next = getjump(fs, list)) != NO_JUMP) /* find last element */ - list = next; - fixjump(fs, list, l2); - } -} - - -static int luaK_code (FuncState *fs, Instruction i) { - Proto *f = fs->f; - dischargejpc(fs); /* `pc' will change */ - /* put new instruction in code array */ - luaM_growvector(fs->ls->L, f->code, fs->pc, f->sizecode, Instruction, - MAX_INT, "opcodes"); - f->code[fs->pc] = i; - /* save corresponding line information */ - luaM_growvector(fs->ls->L, f->lineinfo, fs->pc, f->sizelineinfo, int, - MAX_INT, "opcodes"); - f->lineinfo[fs->pc] = fs->ls->lastline; - return fs->pc++; -} - - -int luaK_codeABC (FuncState *fs, OpCode o, int a, int b, int c) { - lua_assert(getOpMode(o) == iABC); - lua_assert(getBMode(o) != OpArgN || b == 0); - lua_assert(getCMode(o) != OpArgN || c == 0); - lua_assert(a <= MAXARG_A && b <= MAXARG_B && c <= MAXARG_C); - return luaK_code(fs, CREATE_ABC(o, a, b, c)); -} - - -int luaK_codeABx (FuncState *fs, OpCode o, int a, unsigned int bc) { - lua_assert(getOpMode(o) == iABx || getOpMode(o) == iAsBx); - lua_assert(getCMode(o) == OpArgN); - lua_assert(a <= MAXARG_A && bc <= MAXARG_Bx); - return luaK_code(fs, CREATE_ABx(o, a, bc)); -} - - -static int codeextraarg (FuncState *fs, int a) { - lua_assert(a <= MAXARG_Ax); - return luaK_code(fs, CREATE_Ax(OP_EXTRAARG, a)); -} - - -int luaK_codek (FuncState *fs, int reg, int k) { - if (k <= MAXARG_Bx) - return luaK_codeABx(fs, OP_LOADK, reg, k); - else { - int p = luaK_codeABx(fs, OP_LOADKX, reg, 0); - codeextraarg(fs, k); - return p; - } -} - - -void luaK_checkstack (FuncState *fs, int n) { - int newstack = fs->freereg + n; - if (newstack > fs->f->maxstacksize) { - if (newstack >= MAXSTACK) - luaX_syntaxerror(fs->ls, "function or expression too complex"); - fs->f->maxstacksize = cast_byte(newstack); - } -} - - -void luaK_reserveregs (FuncState *fs, int n) { - luaK_checkstack(fs, n); - fs->freereg += n; -} - - -static void freereg (FuncState *fs, int reg) { - if (!ISK(reg) && reg >= fs->nactvar) { - fs->freereg--; - lua_assert(reg == fs->freereg); - } -} - - -static void freeexp (FuncState *fs, expdesc *e) { - if (e->k == VNONRELOC) - freereg(fs, e->u.info); -} - - -static int addk (FuncState *fs, TValue *key, TValue *v) { - lua_State *L = fs->ls->L; - TValue *idx = luaH_set(L, fs->h, key); - Proto *f = fs->f; - int k, oldsize; - if (ttisnumber(idx)) { - lua_Number n = nvalue(idx); - lua_number2int(k, n); - if (luaV_rawequalobj(&f->k[k], v)) - return k; - /* else may be a collision (e.g., between 0.0 and "\0\0\0\0\0\0\0\0"); - go through and create a new entry for this value */ - } - /* constant not found; create a new entry */ - oldsize = f->sizek; - k = fs->nk; - /* numerical value does not need GC barrier; - table has no metatable, so it does not need to invalidate cache */ - setnvalue(idx, cast_num(k)); - luaM_growvector(L, f->k, k, f->sizek, TValue, MAXARG_Ax, "constants"); - while (oldsize < f->sizek) setnilvalue(&f->k[oldsize++]); - setobj(L, &f->k[k], v); - fs->nk++; - luaC_barrier(L, f, v); - return k; -} - - -int luaK_stringK (FuncState *fs, TString *s) { - TValue o; - setsvalue(fs->ls->L, &o, s); - return addk(fs, &o, &o); -} - - -int luaK_numberK (FuncState *fs, lua_Number r) { - int n; - lua_State *L = fs->ls->L; - TValue o; - setnvalue(&o, r); - if (r == 0 || luai_numisnan(NULL, r)) { /* handle -0 and NaN */ - /* use raw representation as key to avoid numeric problems */ - setsvalue(L, L->top++, luaS_newlstr(L, (char *)&r, sizeof(r))); - n = addk(fs, L->top - 1, &o); - L->top--; - } - else - n = addk(fs, &o, &o); /* regular case */ - return n; -} - - -static int boolK (FuncState *fs, int b) { - TValue o; - setbvalue(&o, b); - return addk(fs, &o, &o); -} - - -static int nilK (FuncState *fs) { - TValue k, v; - setnilvalue(&v); - /* cannot use nil as key; instead use table itself to represent nil */ - sethvalue(fs->ls->L, &k, fs->h); - return addk(fs, &k, &v); -} - - -void luaK_setreturns (FuncState *fs, expdesc *e, int nresults) { - if (e->k == VCALL) { /* expression is an open function call? */ - SETARG_C(getcode(fs, e), nresults+1); - } - else if (e->k == VVARARG) { - SETARG_B(getcode(fs, e), nresults+1); - SETARG_A(getcode(fs, e), fs->freereg); - luaK_reserveregs(fs, 1); - } -} - - -void luaK_setoneret (FuncState *fs, expdesc *e) { - if (e->k == VCALL) { /* expression is an open function call? */ - e->k = VNONRELOC; - e->u.info = GETARG_A(getcode(fs, e)); - } - else if (e->k == VVARARG) { - SETARG_B(getcode(fs, e), 2); - e->k = VRELOCABLE; /* can relocate its simple result */ - } -} - - -void luaK_dischargevars (FuncState *fs, expdesc *e) { - switch (e->k) { - case VLOCAL: { - e->k = VNONRELOC; - break; - } - case VUPVAL: { - e->u.info = luaK_codeABC(fs, OP_GETUPVAL, 0, e->u.info, 0); - e->k = VRELOCABLE; - break; - } - case VINDEXED: { - OpCode op = OP_GETTABUP; /* assume 't' is in an upvalue */ - freereg(fs, e->u.ind.idx); - if (e->u.ind.vt == VLOCAL) { /* 't' is in a register? */ - freereg(fs, e->u.ind.t); - op = OP_GETTABLE; - } - e->u.info = luaK_codeABC(fs, op, 0, e->u.ind.t, e->u.ind.idx); - e->k = VRELOCABLE; - break; - } - case VVARARG: - case VCALL: { - luaK_setoneret(fs, e); - break; - } - default: break; /* there is one value available (somewhere) */ - } -} - - -static int code_label (FuncState *fs, int A, int b, int jump) { - luaK_getlabel(fs); /* those instructions may be jump targets */ - return luaK_codeABC(fs, OP_LOADBOOL, A, b, jump); -} - - -static void discharge2reg (FuncState *fs, expdesc *e, int reg) { - luaK_dischargevars(fs, e); - switch (e->k) { - case VNIL: { - luaK_nil(fs, reg, 1); - break; - } - case VFALSE: case VTRUE: { - luaK_codeABC(fs, OP_LOADBOOL, reg, e->k == VTRUE, 0); - break; - } - case VK: { - luaK_codek(fs, reg, e->u.info); - break; - } - case VKNUM: { - luaK_codek(fs, reg, luaK_numberK(fs, e->u.nval)); - break; - } - case VRELOCABLE: { - Instruction *pc = &getcode(fs, e); - SETARG_A(*pc, reg); - break; - } - case VNONRELOC: { - if (reg != e->u.info) - luaK_codeABC(fs, OP_MOVE, reg, e->u.info, 0); - break; - } - default: { - lua_assert(e->k == VVOID || e->k == VJMP); - return; /* nothing to do... */ - } - } - e->u.info = reg; - e->k = VNONRELOC; -} - - -static void discharge2anyreg (FuncState *fs, expdesc *e) { - if (e->k != VNONRELOC) { - luaK_reserveregs(fs, 1); - discharge2reg(fs, e, fs->freereg-1); - } -} - - -static void exp2reg (FuncState *fs, expdesc *e, int reg) { - discharge2reg(fs, e, reg); - if (e->k == VJMP) - luaK_concat(fs, &e->t, e->u.info); /* put this jump in `t' list */ - if (hasjumps(e)) { - int final; /* position after whole expression */ - int p_f = NO_JUMP; /* position of an eventual LOAD false */ - int p_t = NO_JUMP; /* position of an eventual LOAD true */ - if (need_value(fs, e->t) || need_value(fs, e->f)) { - int fj = (e->k == VJMP) ? NO_JUMP : luaK_jump(fs); - p_f = code_label(fs, reg, 0, 1); - p_t = code_label(fs, reg, 1, 0); - luaK_patchtohere(fs, fj); - } - final = luaK_getlabel(fs); - patchlistaux(fs, e->f, final, reg, p_f); - patchlistaux(fs, e->t, final, reg, p_t); - } - e->f = e->t = NO_JUMP; - e->u.info = reg; - e->k = VNONRELOC; -} - - -void luaK_exp2nextreg (FuncState *fs, expdesc *e) { - luaK_dischargevars(fs, e); - freeexp(fs, e); - luaK_reserveregs(fs, 1); - exp2reg(fs, e, fs->freereg - 1); -} - - -int luaK_exp2anyreg (FuncState *fs, expdesc *e) { - luaK_dischargevars(fs, e); - if (e->k == VNONRELOC) { - if (!hasjumps(e)) return e->u.info; /* exp is already in a register */ - if (e->u.info >= fs->nactvar) { /* reg. is not a local? */ - exp2reg(fs, e, e->u.info); /* put value on it */ - return e->u.info; - } - } - luaK_exp2nextreg(fs, e); /* default */ - return e->u.info; -} - - -void luaK_exp2anyregup (FuncState *fs, expdesc *e) { - if (e->k != VUPVAL || hasjumps(e)) - luaK_exp2anyreg(fs, e); -} - - -void luaK_exp2val (FuncState *fs, expdesc *e) { - if (hasjumps(e)) - luaK_exp2anyreg(fs, e); - else - luaK_dischargevars(fs, e); -} - - -int luaK_exp2RK (FuncState *fs, expdesc *e) { - luaK_exp2val(fs, e); - switch (e->k) { - case VTRUE: - case VFALSE: - case VNIL: { - if (fs->nk <= MAXINDEXRK) { /* constant fits in RK operand? */ - e->u.info = (e->k == VNIL) ? nilK(fs) : boolK(fs, (e->k == VTRUE)); - e->k = VK; - return RKASK(e->u.info); - } - else break; - } - case VKNUM: { - e->u.info = luaK_numberK(fs, e->u.nval); - e->k = VK; - /* go through */ - } - case VK: { - if (e->u.info <= MAXINDEXRK) /* constant fits in argC? */ - return RKASK(e->u.info); - else break; - } - default: break; - } - /* not a constant in the right range: put it in a register */ - return luaK_exp2anyreg(fs, e); -} - - -void luaK_storevar (FuncState *fs, expdesc *var, expdesc *ex) { - switch (var->k) { - case VLOCAL: { - freeexp(fs, ex); - exp2reg(fs, ex, var->u.info); - return; - } - case VUPVAL: { - int e = luaK_exp2anyreg(fs, ex); - luaK_codeABC(fs, OP_SETUPVAL, e, var->u.info, 0); - break; - } - case VINDEXED: { - OpCode op = (var->u.ind.vt == VLOCAL) ? OP_SETTABLE : OP_SETTABUP; - int e = luaK_exp2RK(fs, ex); - luaK_codeABC(fs, op, var->u.ind.t, var->u.ind.idx, e); - break; - } - default: { - lua_assert(0); /* invalid var kind to store */ - break; - } - } - freeexp(fs, ex); -} - - -void luaK_self (FuncState *fs, expdesc *e, expdesc *key) { - int ereg; - luaK_exp2anyreg(fs, e); - ereg = e->u.info; /* register where 'e' was placed */ - freeexp(fs, e); - e->u.info = fs->freereg; /* base register for op_self */ - e->k = VNONRELOC; - luaK_reserveregs(fs, 2); /* function and 'self' produced by op_self */ - luaK_codeABC(fs, OP_SELF, e->u.info, ereg, luaK_exp2RK(fs, key)); - freeexp(fs, key); -} - - -static void invertjump (FuncState *fs, expdesc *e) { - Instruction *pc = getjumpcontrol(fs, e->u.info); - lua_assert(testTMode(GET_OPCODE(*pc)) && GET_OPCODE(*pc) != OP_TESTSET && - GET_OPCODE(*pc) != OP_TEST); - SETARG_A(*pc, !(GETARG_A(*pc))); -} - - -static int jumponcond (FuncState *fs, expdesc *e, int cond) { - if (e->k == VRELOCABLE) { - Instruction ie = getcode(fs, e); - if (GET_OPCODE(ie) == OP_NOT) { - fs->pc--; /* remove previous OP_NOT */ - return condjump(fs, OP_TEST, GETARG_B(ie), 0, !cond); - } - /* else go through */ - } - discharge2anyreg(fs, e); - freeexp(fs, e); - return condjump(fs, OP_TESTSET, NO_REG, e->u.info, cond); -} - - -void luaK_goiftrue (FuncState *fs, expdesc *e) { - int pc; /* pc of last jump */ - luaK_dischargevars(fs, e); - switch (e->k) { - case VJMP: { - invertjump(fs, e); - pc = e->u.info; - break; - } - case VK: case VKNUM: case VTRUE: { - pc = NO_JUMP; /* always true; do nothing */ - break; - } - default: { - pc = jumponcond(fs, e, 0); - break; - } - } - luaK_concat(fs, &e->f, pc); /* insert last jump in `f' list */ - luaK_patchtohere(fs, e->t); - e->t = NO_JUMP; -} - - -void luaK_goiffalse (FuncState *fs, expdesc *e) { - int pc; /* pc of last jump */ - luaK_dischargevars(fs, e); - switch (e->k) { - case VJMP: { - pc = e->u.info; - break; - } - case VNIL: case VFALSE: { - pc = NO_JUMP; /* always false; do nothing */ - break; - } - default: { - pc = jumponcond(fs, e, 1); - break; - } - } - luaK_concat(fs, &e->t, pc); /* insert last jump in `t' list */ - luaK_patchtohere(fs, e->f); - e->f = NO_JUMP; -} - - -static void codenot (FuncState *fs, expdesc *e) { - luaK_dischargevars(fs, e); - switch (e->k) { - case VNIL: case VFALSE: { - e->k = VTRUE; - break; - } - case VK: case VKNUM: case VTRUE: { - e->k = VFALSE; - break; - } - case VJMP: { - invertjump(fs, e); - break; - } - case VRELOCABLE: - case VNONRELOC: { - discharge2anyreg(fs, e); - freeexp(fs, e); - e->u.info = luaK_codeABC(fs, OP_NOT, 0, e->u.info, 0); - e->k = VRELOCABLE; - break; - } - default: { - lua_assert(0); /* cannot happen */ - break; - } - } - /* interchange true and false lists */ - { int temp = e->f; e->f = e->t; e->t = temp; } - removevalues(fs, e->f); - removevalues(fs, e->t); -} - - -void luaK_indexed (FuncState *fs, expdesc *t, expdesc *k) { - lua_assert(!hasjumps(t)); - t->u.ind.t = t->u.info; - t->u.ind.idx = luaK_exp2RK(fs, k); - t->u.ind.vt = (t->k == VUPVAL) ? VUPVAL - : check_exp(vkisinreg(t->k), VLOCAL); - t->k = VINDEXED; -} - - -static int constfolding (OpCode op, expdesc *e1, expdesc *e2) { - lua_Number r; - if (!isnumeral(e1) || !isnumeral(e2)) return 0; - if ((op == OP_DIV || op == OP_MOD) && e2->u.nval == 0) - return 0; /* do not attempt to divide by 0 */ - r = luaO_arith(op - OP_ADD + LUA_OPADD, e1->u.nval, e2->u.nval); - e1->u.nval = r; - return 1; -} - - -static void codearith (FuncState *fs, OpCode op, - expdesc *e1, expdesc *e2, int line) { - if (constfolding(op, e1, e2)) - return; - else { - int o2 = (op != OP_UNM && op != OP_LEN) ? luaK_exp2RK(fs, e2) : 0; - int o1 = luaK_exp2RK(fs, e1); - if (o1 > o2) { - freeexp(fs, e1); - freeexp(fs, e2); - } - else { - freeexp(fs, e2); - freeexp(fs, e1); - } - e1->u.info = luaK_codeABC(fs, op, 0, o1, o2); - e1->k = VRELOCABLE; - luaK_fixline(fs, line); - } -} - - -static void codecomp (FuncState *fs, OpCode op, int cond, expdesc *e1, - expdesc *e2) { - int o1 = luaK_exp2RK(fs, e1); - int o2 = luaK_exp2RK(fs, e2); - freeexp(fs, e2); - freeexp(fs, e1); - if (cond == 0 && op != OP_EQ) { - int temp; /* exchange args to replace by `<' or `<=' */ - temp = o1; o1 = o2; o2 = temp; /* o1 <==> o2 */ - cond = 1; - } - e1->u.info = condjump(fs, op, cond, o1, o2); - e1->k = VJMP; -} - - -void luaK_prefix (FuncState *fs, UnOpr op, expdesc *e, int line) { - expdesc e2; - e2.t = e2.f = NO_JUMP; e2.k = VKNUM; e2.u.nval = 0; - switch (op) { - case OPR_MINUS: { - if (isnumeral(e)) /* minus constant? */ - e->u.nval = luai_numunm(NULL, e->u.nval); /* fold it */ - else { - luaK_exp2anyreg(fs, e); - codearith(fs, OP_UNM, e, &e2, line); - } - break; - } - case OPR_NOT: codenot(fs, e); break; - case OPR_LEN: { - luaK_exp2anyreg(fs, e); /* cannot operate on constants */ - codearith(fs, OP_LEN, e, &e2, line); - break; - } - default: lua_assert(0); - } -} - - -void luaK_infix (FuncState *fs, BinOpr op, expdesc *v) { - switch (op) { - case OPR_AND: { - luaK_goiftrue(fs, v); - break; - } - case OPR_OR: { - luaK_goiffalse(fs, v); - break; - } - case OPR_CONCAT: { - luaK_exp2nextreg(fs, v); /* operand must be on the `stack' */ - break; - } - case OPR_ADD: case OPR_SUB: case OPR_MUL: case OPR_DIV: - case OPR_MOD: case OPR_POW: { - if (!isnumeral(v)) luaK_exp2RK(fs, v); - break; - } - default: { - luaK_exp2RK(fs, v); - break; - } - } -} - - -void luaK_posfix (FuncState *fs, BinOpr op, - expdesc *e1, expdesc *e2, int line) { - switch (op) { - case OPR_AND: { - lua_assert(e1->t == NO_JUMP); /* list must be closed */ - luaK_dischargevars(fs, e2); - luaK_concat(fs, &e2->f, e1->f); - *e1 = *e2; - break; - } - case OPR_OR: { - lua_assert(e1->f == NO_JUMP); /* list must be closed */ - luaK_dischargevars(fs, e2); - luaK_concat(fs, &e2->t, e1->t); - *e1 = *e2; - break; - } - case OPR_CONCAT: { - luaK_exp2val(fs, e2); - if (e2->k == VRELOCABLE && GET_OPCODE(getcode(fs, e2)) == OP_CONCAT) { - lua_assert(e1->u.info == GETARG_B(getcode(fs, e2))-1); - freeexp(fs, e1); - SETARG_B(getcode(fs, e2), e1->u.info); - e1->k = VRELOCABLE; e1->u.info = e2->u.info; - } - else { - luaK_exp2nextreg(fs, e2); /* operand must be on the 'stack' */ - codearith(fs, OP_CONCAT, e1, e2, line); - } - break; - } - case OPR_ADD: case OPR_SUB: case OPR_MUL: case OPR_DIV: - case OPR_MOD: case OPR_POW: { - codearith(fs, cast(OpCode, op - OPR_ADD + OP_ADD), e1, e2, line); - break; - } - case OPR_EQ: case OPR_LT: case OPR_LE: { - codecomp(fs, cast(OpCode, op - OPR_EQ + OP_EQ), 1, e1, e2); - break; - } - case OPR_NE: case OPR_GT: case OPR_GE: { - codecomp(fs, cast(OpCode, op - OPR_NE + OP_EQ), 0, e1, e2); - break; - } - default: lua_assert(0); - } -} - - -void luaK_fixline (FuncState *fs, int line) { - fs->f->lineinfo[fs->pc - 1] = line; -} - - -void luaK_setlist (FuncState *fs, int base, int nelems, int tostore) { - int c = (nelems - 1)/LFIELDS_PER_FLUSH + 1; - int b = (tostore == LUA_MULTRET) ? 0 : tostore; - lua_assert(tostore != 0); - if (c <= MAXARG_C) - luaK_codeABC(fs, OP_SETLIST, base, b, c); - else if (c <= MAXARG_Ax) { - luaK_codeABC(fs, OP_SETLIST, base, b, 0); - codeextraarg(fs, c); - } - else - luaX_syntaxerror(fs->ls, "constructor too long"); - fs->freereg = base + 1; /* free registers with list values */ -} - diff --git a/source/libs/lua52/lua52-src/src/lcode.h b/source/libs/lua52/lua52-src/src/lcode.h deleted file mode 100644 index 6a1424cf5a737fdd3f90911a88e3f500b54ced4e..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lcode.h +++ /dev/null @@ -1,83 +0,0 @@ -/* -** $Id: lcode.h,v 1.58.1.1 2013/04/12 18:48:47 roberto Exp $ -** Code generator for Lua -** See Copyright Notice in lua.h -*/ - -#ifndef lcode_h -#define lcode_h - -#include "llex.h" -#include "lobject.h" -#include "lopcodes.h" -#include "lparser.h" - - -/* -** Marks the end of a patch list. It is an invalid value both as an absolute -** address, and as a list link (would link an element to itself). -*/ -#define NO_JUMP (-1) - - -/* -** grep "ORDER OPR" if you change these enums (ORDER OP) -*/ -typedef enum BinOpr { - OPR_ADD, OPR_SUB, OPR_MUL, OPR_DIV, OPR_MOD, OPR_POW, - OPR_CONCAT, - OPR_EQ, OPR_LT, OPR_LE, - OPR_NE, OPR_GT, OPR_GE, - OPR_AND, OPR_OR, - OPR_NOBINOPR -} BinOpr; - - -typedef enum UnOpr { OPR_MINUS, OPR_NOT, OPR_LEN, OPR_NOUNOPR } UnOpr; - - -#define getcode(fs,e) ((fs)->f->code[(e)->u.info]) - -#define luaK_codeAsBx(fs,o,A,sBx) luaK_codeABx(fs,o,A,(sBx)+MAXARG_sBx) - -#define luaK_setmultret(fs,e) luaK_setreturns(fs, e, LUA_MULTRET) - -#define luaK_jumpto(fs,t) luaK_patchlist(fs, luaK_jump(fs), t) - -LUAI_FUNC int luaK_codeABx (FuncState *fs, OpCode o, int A, unsigned int Bx); -LUAI_FUNC int luaK_codeABC (FuncState *fs, OpCode o, int A, int B, int C); -LUAI_FUNC int luaK_codek (FuncState *fs, int reg, int k); -LUAI_FUNC void luaK_fixline (FuncState *fs, int line); -LUAI_FUNC void luaK_nil (FuncState *fs, int from, int n); -LUAI_FUNC void luaK_reserveregs (FuncState *fs, int n); -LUAI_FUNC void luaK_checkstack (FuncState *fs, int n); -LUAI_FUNC int luaK_stringK (FuncState *fs, TString *s); -LUAI_FUNC int luaK_numberK (FuncState *fs, lua_Number r); -LUAI_FUNC void luaK_dischargevars (FuncState *fs, expdesc *e); -LUAI_FUNC int luaK_exp2anyreg (FuncState *fs, expdesc *e); -LUAI_FUNC void luaK_exp2anyregup (FuncState *fs, expdesc *e); -LUAI_FUNC void luaK_exp2nextreg (FuncState *fs, expdesc *e); -LUAI_FUNC void luaK_exp2val (FuncState *fs, expdesc *e); -LUAI_FUNC int luaK_exp2RK (FuncState *fs, expdesc *e); -LUAI_FUNC void luaK_self (FuncState *fs, expdesc *e, expdesc *key); -LUAI_FUNC void luaK_indexed (FuncState *fs, expdesc *t, expdesc *k); -LUAI_FUNC void luaK_goiftrue (FuncState *fs, expdesc *e); -LUAI_FUNC void luaK_goiffalse (FuncState *fs, expdesc *e); -LUAI_FUNC void luaK_storevar (FuncState *fs, expdesc *var, expdesc *e); -LUAI_FUNC void luaK_setreturns (FuncState *fs, expdesc *e, int nresults); -LUAI_FUNC void luaK_setoneret (FuncState *fs, expdesc *e); -LUAI_FUNC int luaK_jump (FuncState *fs); -LUAI_FUNC void luaK_ret (FuncState *fs, int first, int nret); -LUAI_FUNC void luaK_patchlist (FuncState *fs, int list, int target); -LUAI_FUNC void luaK_patchtohere (FuncState *fs, int list); -LUAI_FUNC void luaK_patchclose (FuncState *fs, int list, int level); -LUAI_FUNC void luaK_concat (FuncState *fs, int *l1, int l2); -LUAI_FUNC int luaK_getlabel (FuncState *fs); -LUAI_FUNC void luaK_prefix (FuncState *fs, UnOpr op, expdesc *v, int line); -LUAI_FUNC void luaK_infix (FuncState *fs, BinOpr op, expdesc *v); -LUAI_FUNC void luaK_posfix (FuncState *fs, BinOpr op, expdesc *v1, - expdesc *v2, int line); -LUAI_FUNC void luaK_setlist (FuncState *fs, int base, int nelems, int tostore); - - -#endif diff --git a/source/libs/lua52/lua52-src/src/lcorolib.c b/source/libs/lua52/lua52-src/src/lcorolib.c deleted file mode 100644 index ce4f6ad42c69750037ee9c884351fa6d5ef03f78..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lcorolib.c +++ /dev/null @@ -1,155 +0,0 @@ -/* -** $Id: lcorolib.c,v 1.5.1.1 2013/04/12 18:48:47 roberto Exp $ -** Coroutine Library -** See Copyright Notice in lua.h -*/ - - -#include <stdlib.h> - - -#define lcorolib_c -#define LUA_LIB - -#include "lua.h" - -#include "lauxlib.h" -#include "lualib.h" - - -static int auxresume (lua_State *L, lua_State *co, int narg) { - int status; - if (!lua_checkstack(co, narg)) { - lua_pushliteral(L, "too many arguments to resume"); - return -1; /* error flag */ - } - if (lua_status(co) == LUA_OK && lua_gettop(co) == 0) { - lua_pushliteral(L, "cannot resume dead coroutine"); - return -1; /* error flag */ - } - lua_xmove(L, co, narg); - status = lua_resume(co, L, narg); - if (status == LUA_OK || status == LUA_YIELD) { - int nres = lua_gettop(co); - if (!lua_checkstack(L, nres + 1)) { - lua_pop(co, nres); /* remove results anyway */ - lua_pushliteral(L, "too many results to resume"); - return -1; /* error flag */ - } - lua_xmove(co, L, nres); /* move yielded values */ - return nres; - } - else { - lua_xmove(co, L, 1); /* move error message */ - return -1; /* error flag */ - } -} - - -static int luaB_coresume (lua_State *L) { - lua_State *co = lua_tothread(L, 1); - int r; - luaL_argcheck(L, co, 1, "coroutine expected"); - r = auxresume(L, co, lua_gettop(L) - 1); - if (r < 0) { - lua_pushboolean(L, 0); - lua_insert(L, -2); - return 2; /* return false + error message */ - } - else { - lua_pushboolean(L, 1); - lua_insert(L, -(r + 1)); - return r + 1; /* return true + `resume' returns */ - } -} - - -static int luaB_auxwrap (lua_State *L) { - lua_State *co = lua_tothread(L, lua_upvalueindex(1)); - int r = auxresume(L, co, lua_gettop(L)); - if (r < 0) { - if (lua_isstring(L, -1)) { /* error object is a string? */ - luaL_where(L, 1); /* add extra info */ - lua_insert(L, -2); - lua_concat(L, 2); - } - return lua_error(L); /* propagate error */ - } - return r; -} - - -static int luaB_cocreate (lua_State *L) { - lua_State *NL; - luaL_checktype(L, 1, LUA_TFUNCTION); - NL = lua_newthread(L); - lua_pushvalue(L, 1); /* move function to top */ - lua_xmove(L, NL, 1); /* move function from L to NL */ - return 1; -} - - -static int luaB_cowrap (lua_State *L) { - luaB_cocreate(L); - lua_pushcclosure(L, luaB_auxwrap, 1); - return 1; -} - - -static int luaB_yield (lua_State *L) { - return lua_yield(L, lua_gettop(L)); -} - - -static int luaB_costatus (lua_State *L) { - lua_State *co = lua_tothread(L, 1); - luaL_argcheck(L, co, 1, "coroutine expected"); - if (L == co) lua_pushliteral(L, "running"); - else { - switch (lua_status(co)) { - case LUA_YIELD: - lua_pushliteral(L, "suspended"); - break; - case LUA_OK: { - lua_Debug ar; - if (lua_getstack(co, 0, &ar) > 0) /* does it have frames? */ - lua_pushliteral(L, "normal"); /* it is running */ - else if (lua_gettop(co) == 0) - lua_pushliteral(L, "dead"); - else - lua_pushliteral(L, "suspended"); /* initial state */ - break; - } - default: /* some error occurred */ - lua_pushliteral(L, "dead"); - break; - } - } - return 1; -} - - -static int luaB_corunning (lua_State *L) { - int ismain = lua_pushthread(L); - lua_pushboolean(L, ismain); - return 2; -} - - -static const luaL_Reg co_funcs[] = { - {"create", luaB_cocreate}, - {"resume", luaB_coresume}, - {"running", luaB_corunning}, - {"status", luaB_costatus}, - {"wrap", luaB_cowrap}, - {"yield", luaB_yield}, - {NULL, NULL} -}; - - - -LUAMOD_API int luaopen_coroutine (lua_State *L) { - luaL_newlib(L, co_funcs); - return 1; -} - diff --git a/source/libs/lua52/lua52-src/src/lctype.c b/source/libs/lua52/lua52-src/src/lctype.c deleted file mode 100644 index 93f8cadc39d860f3d00628dfd7ceb62444b9f7c1..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lctype.c +++ /dev/null @@ -1,52 +0,0 @@ -/* -** $Id: lctype.c,v 1.11.1.1 2013/04/12 18:48:47 roberto Exp $ -** 'ctype' functions for Lua -** See Copyright Notice in lua.h -*/ - -#define lctype_c -#define LUA_CORE - -#include "lctype.h" - -#if !LUA_USE_CTYPE /* { */ - -#include <limits.h> - -LUAI_DDEF const lu_byte luai_ctype_[UCHAR_MAX + 2] = { - 0x00, /* EOZ */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0. */ - 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 1. */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0c, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, /* 2. */ - 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, - 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /* 3. */ - 0x16, 0x16, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, - 0x04, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x05, /* 4. */ - 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, - 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, /* 5. */ - 0x05, 0x05, 0x05, 0x04, 0x04, 0x04, 0x04, 0x05, - 0x04, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x05, /* 6. */ - 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, - 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, /* 7. */ - 0x05, 0x05, 0x05, 0x04, 0x04, 0x04, 0x04, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 8. */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 9. */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* a. */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* b. */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* c. */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* d. */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* e. */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* f. */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -#endif /* } */ diff --git a/source/libs/lua52/lua52-src/src/lctype.h b/source/libs/lua52/lua52-src/src/lctype.h deleted file mode 100644 index a963eb9015f5770735a07d128c35c5ca2750d28b..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lctype.h +++ /dev/null @@ -1,99 +0,0 @@ -/* -** $Id: lctype.h,v 1.12.1.1 2013/04/12 18:48:47 roberto Exp $ -** 'ctype' functions for Lua -** See Copyright Notice in lua.h -*/ - -#ifndef lctype_h -#define lctype_h - -#include <ctype.h> - -#include "lua.h" - - -/* -** WARNING: the functions defined here do not necessarily correspond -** to the similar functions in the standard C ctype.h. They are -** optimized for the specific needs of Lua -*/ - -#if !defined(LUA_USE_CTYPE) - -#if 'A' == 65 && '0' == 48 -/* ASCII case: can use its own tables; faster and fixed */ -#define LUA_USE_CTYPE 0 -#else -/* must use standard C ctype */ -#define LUA_USE_CTYPE 1 -#endif - -#endif - - -#if !LUA_USE_CTYPE /* { */ - -#include <limits.h> - -#include "llimits.h" - - -#define ALPHABIT 0 -#define DIGITBIT 1 -#define PRINTBIT 2 -#define SPACEBIT 3 -#define XDIGITBIT 4 - - -#define MASK(B) (1 << (B)) - - -/* -** add 1 to char to allow index -1 (EOZ) -*/ -#define testprop(c,p) (luai_ctype_[(c)+1] & (p)) - -/* -** 'lalpha' (Lua alphabetic) and 'lalnum' (Lua alphanumeric) both include '_' -** -** all utf-8 chars (greater than 0x7f) are always alphabetic -*/ -#define lislalpha(c) (isalpha(c) || (c) == '_' || (c) > 0x7f) -#define lislalnum(c) (isalnum(c) || (c) == '_' || (c) > 0x7f) -#define lisdigit(c) testprop(c, MASK(DIGITBIT)) -#define lisspace(c) testprop(c, MASK(SPACEBIT)) -#define lisprint(c) testprop(c, MASK(PRINTBIT)) -#define lisxdigit(c) testprop(c, MASK(XDIGITBIT)) - -/* -** this 'ltolower' only works for alphabetic characters -*/ -#define ltolower(c) ((c) | ('A' ^ 'a')) - - -/* two more entries for 0 and -1 (EOZ) */ -LUAI_DDEC const lu_byte luai_ctype_[UCHAR_MAX + 2]; - - -#else /* }{ */ - -/* -** use standard C ctypes -*/ - -#include <ctype.h> - - -#define lislalpha(c) (isalpha(c) || (c) == '_') -#define lislalnum(c) (isalnum(c) || (c) == '_') -#define lisdigit(c) (isdigit(c)) -#define lisspace(c) (isspace(c)) -#define lisprint(c) (isprint(c)) -#define lisxdigit(c) (isxdigit(c)) - -#define ltolower(c) (tolower(c)) - -#endif /* } */ - -#endif - diff --git a/source/libs/lua52/lua52-src/src/ldblib.c b/source/libs/lua52/lua52-src/src/ldblib.c deleted file mode 100644 index bd8df9da3813a059af61134fa1095f85e5226943..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/ldblib.c +++ /dev/null @@ -1,408 +0,0 @@ -/* -** $Id: ldblib.c,v 1.132.1.2 2015/02/19 17:16:55 roberto Exp $ -** Interface from Lua to its debug API -** See Copyright Notice in lua.h -*/ - - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#define ldblib_c -#define LUA_LIB - -#include "lua.h" - -#include "lauxlib.h" -#include "lualib.h" - - -#define HOOKKEY "_HKEY" - - -static void checkstack (lua_State *L, lua_State *L1, int n) { - if (L != L1 && !lua_checkstack(L1, n)) - luaL_error(L, "stack overflow"); -} - - -static int db_getregistry (lua_State *L) { - lua_pushvalue(L, LUA_REGISTRYINDEX); - return 1; -} - - -static int db_getmetatable (lua_State *L) { - luaL_checkany(L, 1); - if (!lua_getmetatable(L, 1)) { - lua_pushnil(L); /* no metatable */ - } - return 1; -} - - -static int db_setmetatable (lua_State *L) { - int t = lua_type(L, 2); - luaL_argcheck(L, t == LUA_TNIL || t == LUA_TTABLE, 2, - "nil or table expected"); - lua_settop(L, 2); - lua_setmetatable(L, 1); - return 1; /* return 1st argument */ -} - - -static int db_getuservalue (lua_State *L) { - if (lua_type(L, 1) != LUA_TUSERDATA) - lua_pushnil(L); - else - lua_getuservalue(L, 1); - return 1; -} - - -static int db_setuservalue (lua_State *L) { - if (lua_type(L, 1) == LUA_TLIGHTUSERDATA) - luaL_argerror(L, 1, "full userdata expected, got light userdata"); - luaL_checktype(L, 1, LUA_TUSERDATA); - if (!lua_isnoneornil(L, 2)) - luaL_checktype(L, 2, LUA_TTABLE); - lua_settop(L, 2); - lua_setuservalue(L, 1); - return 1; -} - - -static void settabss (lua_State *L, const char *i, const char *v) { - lua_pushstring(L, v); - lua_setfield(L, -2, i); -} - - -static void settabsi (lua_State *L, const char *i, int v) { - lua_pushinteger(L, v); - lua_setfield(L, -2, i); -} - - -static void settabsb (lua_State *L, const char *i, int v) { - lua_pushboolean(L, v); - lua_setfield(L, -2, i); -} - - -static lua_State *getthread (lua_State *L, int *arg) { - if (lua_isthread(L, 1)) { - *arg = 1; - return lua_tothread(L, 1); - } - else { - *arg = 0; - return L; - } -} - - -static void treatstackoption (lua_State *L, lua_State *L1, const char *fname) { - if (L == L1) { - lua_pushvalue(L, -2); - lua_remove(L, -3); - } - else - lua_xmove(L1, L, 1); - lua_setfield(L, -2, fname); -} - - -static int db_getinfo (lua_State *L) { - lua_Debug ar; - int arg; - lua_State *L1 = getthread(L, &arg); - const char *options = luaL_optstring(L, arg+2, "flnStu"); - checkstack(L, L1, 3); - if (lua_isnumber(L, arg+1)) { - if (!lua_getstack(L1, (int)lua_tointeger(L, arg+1), &ar)) { - lua_pushnil(L); /* level out of range */ - return 1; - } - } - else if (lua_isfunction(L, arg+1)) { - lua_pushfstring(L, ">%s", options); - options = lua_tostring(L, -1); - lua_pushvalue(L, arg+1); - lua_xmove(L, L1, 1); - } - else - return luaL_argerror(L, arg+1, "function or level expected"); - if (!lua_getinfo(L1, options, &ar)) - return luaL_argerror(L, arg+2, "invalid option"); - lua_createtable(L, 0, 2); - if (strchr(options, 'S')) { - settabss(L, "source", ar.source); - settabss(L, "short_src", ar.short_src); - settabsi(L, "linedefined", ar.linedefined); - settabsi(L, "lastlinedefined", ar.lastlinedefined); - settabss(L, "what", ar.what); - } - if (strchr(options, 'l')) - settabsi(L, "currentline", ar.currentline); - if (strchr(options, 'u')) { - settabsi(L, "nups", ar.nups); - settabsi(L, "nparams", ar.nparams); - settabsb(L, "isvararg", ar.isvararg); - } - if (strchr(options, 'n')) { - settabss(L, "name", ar.name); - settabss(L, "namewhat", ar.namewhat); - } - if (strchr(options, 't')) - settabsb(L, "istailcall", ar.istailcall); - if (strchr(options, 'L')) - treatstackoption(L, L1, "activelines"); - if (strchr(options, 'f')) - treatstackoption(L, L1, "func"); - return 1; /* return table */ -} - - -static int db_getlocal (lua_State *L) { - int arg; - lua_State *L1 = getthread(L, &arg); - lua_Debug ar; - const char *name; - int nvar = luaL_checkint(L, arg+2); /* local-variable index */ - if (lua_isfunction(L, arg + 1)) { /* function argument? */ - lua_pushvalue(L, arg + 1); /* push function */ - lua_pushstring(L, lua_getlocal(L, NULL, nvar)); /* push local name */ - return 1; - } - else { /* stack-level argument */ - if (!lua_getstack(L1, luaL_checkint(L, arg+1), &ar)) /* out of range? */ - return luaL_argerror(L, arg+1, "level out of range"); - checkstack(L, L1, 1); - name = lua_getlocal(L1, &ar, nvar); - if (name) { - lua_xmove(L1, L, 1); /* push local value */ - lua_pushstring(L, name); /* push name */ - lua_pushvalue(L, -2); /* re-order */ - return 2; - } - else { - lua_pushnil(L); /* no name (nor value) */ - return 1; - } - } -} - - -static int db_setlocal (lua_State *L) { - int arg; - lua_State *L1 = getthread(L, &arg); - lua_Debug ar; - if (!lua_getstack(L1, luaL_checkint(L, arg+1), &ar)) /* out of range? */ - return luaL_argerror(L, arg+1, "level out of range"); - luaL_checkany(L, arg+3); - lua_settop(L, arg+3); - checkstack(L, L1, 1); - lua_xmove(L, L1, 1); - lua_pushstring(L, lua_setlocal(L1, &ar, luaL_checkint(L, arg+2))); - return 1; -} - - -static int auxupvalue (lua_State *L, int get) { - const char *name; - int n = luaL_checkint(L, 2); - luaL_checktype(L, 1, LUA_TFUNCTION); - name = get ? lua_getupvalue(L, 1, n) : lua_setupvalue(L, 1, n); - if (name == NULL) return 0; - lua_pushstring(L, name); - lua_insert(L, -(get+1)); - return get + 1; -} - - -static int db_getupvalue (lua_State *L) { - return auxupvalue(L, 1); -} - - -static int db_setupvalue (lua_State *L) { - luaL_checkany(L, 3); - return auxupvalue(L, 0); -} - - -static int checkupval (lua_State *L, int argf, int argnup) { - lua_Debug ar; - int nup = luaL_checkint(L, argnup); - luaL_checktype(L, argf, LUA_TFUNCTION); - lua_pushvalue(L, argf); - lua_getinfo(L, ">u", &ar); - luaL_argcheck(L, 1 <= nup && nup <= ar.nups, argnup, "invalid upvalue index"); - return nup; -} - - -static int db_upvalueid (lua_State *L) { - int n = checkupval(L, 1, 2); - lua_pushlightuserdata(L, lua_upvalueid(L, 1, n)); - return 1; -} - - -static int db_upvaluejoin (lua_State *L) { - int n1 = checkupval(L, 1, 2); - int n2 = checkupval(L, 3, 4); - luaL_argcheck(L, !lua_iscfunction(L, 1), 1, "Lua function expected"); - luaL_argcheck(L, !lua_iscfunction(L, 3), 3, "Lua function expected"); - lua_upvaluejoin(L, 1, n1, 3, n2); - return 0; -} - - -#define gethooktable(L) luaL_getsubtable(L, LUA_REGISTRYINDEX, HOOKKEY) - - -static void hookf (lua_State *L, lua_Debug *ar) { - static const char *const hooknames[] = - {"call", "return", "line", "count", "tail call"}; - gethooktable(L); - lua_pushthread(L); - lua_rawget(L, -2); - if (lua_isfunction(L, -1)) { - lua_pushstring(L, hooknames[(int)ar->event]); - if (ar->currentline >= 0) - lua_pushinteger(L, ar->currentline); - else lua_pushnil(L); - lua_assert(lua_getinfo(L, "lS", ar)); - lua_call(L, 2, 0); - } -} - - -static int makemask (const char *smask, int count) { - int mask = 0; - if (strchr(smask, 'c')) mask |= LUA_MASKCALL; - if (strchr(smask, 'r')) mask |= LUA_MASKRET; - if (strchr(smask, 'l')) mask |= LUA_MASKLINE; - if (count > 0) mask |= LUA_MASKCOUNT; - return mask; -} - - -static char *unmakemask (int mask, char *smask) { - int i = 0; - if (mask & LUA_MASKCALL) smask[i++] = 'c'; - if (mask & LUA_MASKRET) smask[i++] = 'r'; - if (mask & LUA_MASKLINE) smask[i++] = 'l'; - smask[i] = '\0'; - return smask; -} - - -static int db_sethook (lua_State *L) { - int arg, mask, count; - lua_Hook func; - lua_State *L1 = getthread(L, &arg); - if (lua_isnoneornil(L, arg+1)) { - lua_settop(L, arg+1); - func = NULL; mask = 0; count = 0; /* turn off hooks */ - } - else { - const char *smask = luaL_checkstring(L, arg+2); - luaL_checktype(L, arg+1, LUA_TFUNCTION); - count = luaL_optint(L, arg+3, 0); - func = hookf; mask = makemask(smask, count); - } - if (gethooktable(L) == 0) { /* creating hook table? */ - lua_pushstring(L, "k"); - lua_setfield(L, -2, "__mode"); /** hooktable.__mode = "k" */ - lua_pushvalue(L, -1); - lua_setmetatable(L, -2); /* setmetatable(hooktable) = hooktable */ - } - checkstack(L, L1, 1); - lua_pushthread(L1); lua_xmove(L1, L, 1); - lua_pushvalue(L, arg+1); - lua_rawset(L, -3); /* set new hook */ - lua_sethook(L1, func, mask, count); /* set hooks */ - return 0; -} - - -static int db_gethook (lua_State *L) { - int arg; - lua_State *L1 = getthread(L, &arg); - char buff[5]; - int mask = lua_gethookmask(L1); - lua_Hook hook = lua_gethook(L1); - if (hook != NULL && hook != hookf) /* external hook? */ - lua_pushliteral(L, "external hook"); - else { - gethooktable(L); - checkstack(L, L1, 1); - lua_pushthread(L1); lua_xmove(L1, L, 1); - lua_rawget(L, -2); /* get hook */ - lua_remove(L, -2); /* remove hook table */ - } - lua_pushstring(L, unmakemask(mask, buff)); - lua_pushinteger(L, lua_gethookcount(L1)); - return 3; -} - - -static int db_debug (lua_State *L) { - for (;;) { - char buffer[250]; - luai_writestringerror("%s", "lua_debug> "); - if (fgets(buffer, sizeof(buffer), stdin) == 0 || - strcmp(buffer, "cont\n") == 0) - return 0; - if (luaL_loadbuffer(L, buffer, strlen(buffer), "=(debug command)") || - lua_pcall(L, 0, 0, 0)) - luai_writestringerror("%s\n", lua_tostring(L, -1)); - lua_settop(L, 0); /* remove eventual returns */ - } -} - - -static int db_traceback (lua_State *L) { - int arg; - lua_State *L1 = getthread(L, &arg); - const char *msg = lua_tostring(L, arg + 1); - if (msg == NULL && !lua_isnoneornil(L, arg + 1)) /* non-string 'msg'? */ - lua_pushvalue(L, arg + 1); /* return it untouched */ - else { - int level = luaL_optint(L, arg + 2, (L == L1) ? 1 : 0); - luaL_traceback(L, L1, msg, level); - } - return 1; -} - - -static const luaL_Reg dblib[] = { - {"debug", db_debug}, - {"getuservalue", db_getuservalue}, - {"gethook", db_gethook}, - {"getinfo", db_getinfo}, - {"getlocal", db_getlocal}, - {"getregistry", db_getregistry}, - {"getmetatable", db_getmetatable}, - {"getupvalue", db_getupvalue}, - {"upvaluejoin", db_upvaluejoin}, - {"upvalueid", db_upvalueid}, - {"setuservalue", db_setuservalue}, - {"sethook", db_sethook}, - {"setlocal", db_setlocal}, - {"setmetatable", db_setmetatable}, - {"setupvalue", db_setupvalue}, - {"traceback", db_traceback}, - {NULL, NULL} -}; - - -LUAMOD_API int luaopen_debug (lua_State *L) { - luaL_newlib(L, dblib); - return 1; -} - diff --git a/source/libs/lua52/lua52-src/src/ldebug.c b/source/libs/lua52/lua52-src/src/ldebug.c deleted file mode 100644 index 96118461d0f5eef6ffdcae55ee33ce5e9cf67713..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/ldebug.c +++ /dev/null @@ -1,610 +0,0 @@ -/* -** $Id: ldebug.c,v 2.90.1.4 2015/02/19 17:05:13 roberto Exp $ -** Debug Interface -** See Copyright Notice in lua.h -*/ - - -#include <stdarg.h> -#include <stddef.h> -#include <string.h> - - -#define ldebug_c -#define LUA_CORE - -#include "lua.h" - -#include "lapi.h" -#include "lcode.h" -#include "ldebug.h" -#include "ldo.h" -#include "lfunc.h" -#include "lobject.h" -#include "lopcodes.h" -#include "lstate.h" -#include "lstring.h" -#include "ltable.h" -#include "ltm.h" -#include "lvm.h" - - - -#define noLuaClosure(f) ((f) == NULL || (f)->c.tt == LUA_TCCL) - - -static const char *getfuncname (lua_State *L, CallInfo *ci, const char **name); - - -static int currentpc (CallInfo *ci) { - lua_assert(isLua(ci)); - return pcRel(ci->u.l.savedpc, ci_func(ci)->p); -} - - -static int currentline (CallInfo *ci) { - return getfuncline(ci_func(ci)->p, currentpc(ci)); -} - - -static void swapextra (lua_State *L) { - if (L->status == LUA_YIELD) { - CallInfo *ci = L->ci; /* get function that yielded */ - StkId temp = ci->func; /* exchange its 'func' and 'extra' values */ - ci->func = restorestack(L, ci->extra); - ci->extra = savestack(L, temp); - } -} - - -/* -** this function can be called asynchronous (e.g. during a signal) -*/ -LUA_API int lua_sethook (lua_State *L, lua_Hook func, int mask, int count) { - if (func == NULL || mask == 0) { /* turn off hooks? */ - mask = 0; - func = NULL; - } - if (isLua(L->ci)) - L->oldpc = L->ci->u.l.savedpc; - L->hook = func; - L->basehookcount = count; - resethookcount(L); - L->hookmask = cast_byte(mask); - return 1; -} - - -LUA_API lua_Hook lua_gethook (lua_State *L) { - return L->hook; -} - - -LUA_API int lua_gethookmask (lua_State *L) { - return L->hookmask; -} - - -LUA_API int lua_gethookcount (lua_State *L) { - return L->basehookcount; -} - - -LUA_API int lua_getstack (lua_State *L, int level, lua_Debug *ar) { - int status; - CallInfo *ci; - if (level < 0) return 0; /* invalid (negative) level */ - lua_lock(L); - for (ci = L->ci; level > 0 && ci != &L->base_ci; ci = ci->previous) - level--; - if (level == 0 && ci != &L->base_ci) { /* level found? */ - status = 1; - ar->i_ci = ci; - } - else status = 0; /* no such level */ - lua_unlock(L); - return status; -} - - -static const char *upvalname (Proto *p, int uv) { - TString *s = check_exp(uv < p->sizeupvalues, p->upvalues[uv].name); - if (s == NULL) return "?"; - else return getstr(s); -} - - -static const char *findvararg (CallInfo *ci, int n, StkId *pos) { - int nparams = clLvalue(ci->func)->p->numparams; - if (n >= ci->u.l.base - ci->func - nparams) - return NULL; /* no such vararg */ - else { - *pos = ci->func + nparams + n; - return "(*vararg)"; /* generic name for any vararg */ - } -} - - -static const char *findlocal (lua_State *L, CallInfo *ci, int n, - StkId *pos) { - const char *name = NULL; - StkId base; - if (isLua(ci)) { - if (n < 0) /* access to vararg values? */ - return findvararg(ci, -n, pos); - else { - base = ci->u.l.base; - name = luaF_getlocalname(ci_func(ci)->p, n, currentpc(ci)); - } - } - else - base = ci->func + 1; - if (name == NULL) { /* no 'standard' name? */ - StkId limit = (ci == L->ci) ? L->top : ci->next->func; - if (limit - base >= n && n > 0) /* is 'n' inside 'ci' stack? */ - name = "(*temporary)"; /* generic name for any valid slot */ - else - return NULL; /* no name */ - } - *pos = base + (n - 1); - return name; -} - - -LUA_API const char *lua_getlocal (lua_State *L, const lua_Debug *ar, int n) { - const char *name; - lua_lock(L); - swapextra(L); - if (ar == NULL) { /* information about non-active function? */ - if (!isLfunction(L->top - 1)) /* not a Lua function? */ - name = NULL; - else /* consider live variables at function start (parameters) */ - name = luaF_getlocalname(clLvalue(L->top - 1)->p, n, 0); - } - else { /* active function; get information through 'ar' */ - StkId pos = 0; /* to avoid warnings */ - name = findlocal(L, ar->i_ci, n, &pos); - if (name) { - setobj2s(L, L->top, pos); - api_incr_top(L); - } - } - swapextra(L); - lua_unlock(L); - return name; -} - - -LUA_API const char *lua_setlocal (lua_State *L, const lua_Debug *ar, int n) { - StkId pos = 0; /* to avoid warnings */ - const char *name; - lua_lock(L); - swapextra(L); - name = findlocal(L, ar->i_ci, n, &pos); - if (name) - setobjs2s(L, pos, L->top - 1); - L->top--; /* pop value */ - swapextra(L); - lua_unlock(L); - return name; -} - - -static void funcinfo (lua_Debug *ar, Closure *cl) { - if (noLuaClosure(cl)) { - ar->source = "=[C]"; - ar->linedefined = -1; - ar->lastlinedefined = -1; - ar->what = "C"; - } - else { - Proto *p = cl->l.p; - ar->source = p->source ? getstr(p->source) : "=?"; - ar->linedefined = p->linedefined; - ar->lastlinedefined = p->lastlinedefined; - ar->what = (ar->linedefined == 0) ? "main" : "Lua"; - } - luaO_chunkid(ar->short_src, ar->source, LUA_IDSIZE); -} - - -static void collectvalidlines (lua_State *L, Closure *f) { - if (noLuaClosure(f)) { - setnilvalue(L->top); - api_incr_top(L); - } - else { - int i; - TValue v; - int *lineinfo = f->l.p->lineinfo; - Table *t = luaH_new(L); /* new table to store active lines */ - sethvalue(L, L->top, t); /* push it on stack */ - api_incr_top(L); - setbvalue(&v, 1); /* boolean 'true' to be the value of all indices */ - for (i = 0; i < f->l.p->sizelineinfo; i++) /* for all lines with code */ - luaH_setint(L, t, lineinfo[i], &v); /* table[line] = true */ - } -} - - -static int auxgetinfo (lua_State *L, const char *what, lua_Debug *ar, - Closure *f, CallInfo *ci) { - int status = 1; - for (; *what; what++) { - switch (*what) { - case 'S': { - funcinfo(ar, f); - break; - } - case 'l': { - ar->currentline = (ci && isLua(ci)) ? currentline(ci) : -1; - break; - } - case 'u': { - ar->nups = (f == NULL) ? 0 : f->c.nupvalues; - if (noLuaClosure(f)) { - ar->isvararg = 1; - ar->nparams = 0; - } - else { - ar->isvararg = f->l.p->is_vararg; - ar->nparams = f->l.p->numparams; - } - break; - } - case 't': { - ar->istailcall = (ci) ? ci->callstatus & CIST_TAIL : 0; - break; - } - case 'n': { - /* calling function is a known Lua function? */ - if (ci && !(ci->callstatus & CIST_TAIL) && isLua(ci->previous)) - ar->namewhat = getfuncname(L, ci->previous, &ar->name); - else - ar->namewhat = NULL; - if (ar->namewhat == NULL) { - ar->namewhat = ""; /* not found */ - ar->name = NULL; - } - break; - } - case 'L': - case 'f': /* handled by lua_getinfo */ - break; - default: status = 0; /* invalid option */ - } - } - return status; -} - - -LUA_API int lua_getinfo (lua_State *L, const char *what, lua_Debug *ar) { - int status; - Closure *cl; - CallInfo *ci; - StkId func; - lua_lock(L); - swapextra(L); - if (*what == '>') { - ci = NULL; - func = L->top - 1; - api_check(L, ttisfunction(func), "function expected"); - what++; /* skip the '>' */ - L->top--; /* pop function */ - } - else { - ci = ar->i_ci; - func = ci->func; - lua_assert(ttisfunction(ci->func)); - } - cl = ttisclosure(func) ? clvalue(func) : NULL; - status = auxgetinfo(L, what, ar, cl, ci); - if (strchr(what, 'f')) { - setobjs2s(L, L->top, func); - api_incr_top(L); - } - swapextra(L); - if (strchr(what, 'L')) - collectvalidlines(L, cl); - lua_unlock(L); - return status; -} - - -/* -** {====================================================== -** Symbolic Execution -** ======================================================= -*/ - -static const char *getobjname (Proto *p, int lastpc, int reg, - const char **name); - - -/* -** find a "name" for the RK value 'c' -*/ -static void kname (Proto *p, int pc, int c, const char **name) { - if (ISK(c)) { /* is 'c' a constant? */ - TValue *kvalue = &p->k[INDEXK(c)]; - if (ttisstring(kvalue)) { /* literal constant? */ - *name = svalue(kvalue); /* it is its own name */ - return; - } - /* else no reasonable name found */ - } - else { /* 'c' is a register */ - const char *what = getobjname(p, pc, c, name); /* search for 'c' */ - if (what && *what == 'c') { /* found a constant name? */ - return; /* 'name' already filled */ - } - /* else no reasonable name found */ - } - *name = "?"; /* no reasonable name found */ -} - - -static int filterpc (int pc, int jmptarget) { - if (pc < jmptarget) /* is code conditional (inside a jump)? */ - return -1; /* cannot know who sets that register */ - else return pc; /* current position sets that register */ -} - - -/* -** try to find last instruction before 'lastpc' that modified register 'reg' -*/ -static int findsetreg (Proto *p, int lastpc, int reg) { - int pc; - int setreg = -1; /* keep last instruction that changed 'reg' */ - int jmptarget = 0; /* any code before this address is conditional */ - for (pc = 0; pc < lastpc; pc++) { - Instruction i = p->code[pc]; - OpCode op = GET_OPCODE(i); - int a = GETARG_A(i); - switch (op) { - case OP_LOADNIL: { - int b = GETARG_B(i); - if (a <= reg && reg <= a + b) /* set registers from 'a' to 'a+b' */ - setreg = filterpc(pc, jmptarget); - break; - } - case OP_TFORCALL: { - if (reg >= a + 2) /* affect all regs above its base */ - setreg = filterpc(pc, jmptarget); - break; - } - case OP_CALL: - case OP_TAILCALL: { - if (reg >= a) /* affect all registers above base */ - setreg = filterpc(pc, jmptarget); - break; - } - case OP_JMP: { - int b = GETARG_sBx(i); - int dest = pc + 1 + b; - /* jump is forward and do not skip `lastpc'? */ - if (pc < dest && dest <= lastpc) { - if (dest > jmptarget) - jmptarget = dest; /* update 'jmptarget' */ - } - break; - } - case OP_TEST: { - if (reg == a) /* jumped code can change 'a' */ - setreg = filterpc(pc, jmptarget); - break; - } - default: - if (testAMode(op) && reg == a) /* any instruction that set A */ - setreg = filterpc(pc, jmptarget); - break; - } - } - return setreg; -} - - -static const char *getobjname (Proto *p, int lastpc, int reg, - const char **name) { - int pc; - *name = luaF_getlocalname(p, reg + 1, lastpc); - if (*name) /* is a local? */ - return "local"; - /* else try symbolic execution */ - pc = findsetreg(p, lastpc, reg); - if (pc != -1) { /* could find instruction? */ - Instruction i = p->code[pc]; - OpCode op = GET_OPCODE(i); - switch (op) { - case OP_MOVE: { - int b = GETARG_B(i); /* move from 'b' to 'a' */ - if (b < GETARG_A(i)) - return getobjname(p, pc, b, name); /* get name for 'b' */ - break; - } - case OP_GETTABUP: - case OP_GETTABLE: { - int k = GETARG_C(i); /* key index */ - int t = GETARG_B(i); /* table index */ - const char *vn = (op == OP_GETTABLE) /* name of indexed variable */ - ? luaF_getlocalname(p, t + 1, pc) - : upvalname(p, t); - kname(p, pc, k, name); - return (vn && strcmp(vn, LUA_ENV) == 0) ? "global" : "field"; - } - case OP_GETUPVAL: { - *name = upvalname(p, GETARG_B(i)); - return "upvalue"; - } - case OP_LOADK: - case OP_LOADKX: { - int b = (op == OP_LOADK) ? GETARG_Bx(i) - : GETARG_Ax(p->code[pc + 1]); - if (ttisstring(&p->k[b])) { - *name = svalue(&p->k[b]); - return "constant"; - } - break; - } - case OP_SELF: { - int k = GETARG_C(i); /* key index */ - kname(p, pc, k, name); - return "method"; - } - default: break; /* go through to return NULL */ - } - } - return NULL; /* could not find reasonable name */ -} - - -static const char *getfuncname (lua_State *L, CallInfo *ci, const char **name) { - TMS tm; - Proto *p = ci_func(ci)->p; /* calling function */ - int pc = currentpc(ci); /* calling instruction index */ - Instruction i = p->code[pc]; /* calling instruction */ - switch (GET_OPCODE(i)) { - case OP_CALL: - case OP_TAILCALL: /* get function name */ - return getobjname(p, pc, GETARG_A(i), name); - case OP_TFORCALL: { /* for iterator */ - *name = "for iterator"; - return "for iterator"; - } - /* all other instructions can call only through metamethods */ - case OP_SELF: - case OP_GETTABUP: - case OP_GETTABLE: tm = TM_INDEX; break; - case OP_SETTABUP: - case OP_SETTABLE: tm = TM_NEWINDEX; break; - case OP_EQ: tm = TM_EQ; break; - case OP_ADD: tm = TM_ADD; break; - case OP_SUB: tm = TM_SUB; break; - case OP_MUL: tm = TM_MUL; break; - case OP_DIV: tm = TM_DIV; break; - case OP_MOD: tm = TM_MOD; break; - case OP_POW: tm = TM_POW; break; - case OP_UNM: tm = TM_UNM; break; - case OP_LEN: tm = TM_LEN; break; - case OP_LT: tm = TM_LT; break; - case OP_LE: tm = TM_LE; break; - case OP_CONCAT: tm = TM_CONCAT; break; - default: - return NULL; /* else no useful name can be found */ - } - *name = getstr(G(L)->tmname[tm]); - return "metamethod"; -} - -/* }====================================================== */ - - - -/* -** only ANSI way to check whether a pointer points to an array -** (used only for error messages, so efficiency is not a big concern) -*/ -static int isinstack (CallInfo *ci, const TValue *o) { - StkId p; - for (p = ci->u.l.base; p < ci->top; p++) - if (o == p) return 1; - return 0; -} - - -static const char *getupvalname (CallInfo *ci, const TValue *o, - const char **name) { - LClosure *c = ci_func(ci); - int i; - for (i = 0; i < c->nupvalues; i++) { - if (c->upvals[i]->v == o) { - *name = upvalname(c->p, i); - return "upvalue"; - } - } - return NULL; -} - - -l_noret luaG_typeerror (lua_State *L, const TValue *o, const char *op) { - CallInfo *ci = L->ci; - const char *name = NULL; - const char *t = objtypename(o); - const char *kind = NULL; - if (isLua(ci)) { - kind = getupvalname(ci, o, &name); /* check whether 'o' is an upvalue */ - if (!kind && isinstack(ci, o)) /* no? try a register */ - kind = getobjname(ci_func(ci)->p, currentpc(ci), - cast_int(o - ci->u.l.base), &name); - } - if (kind) - luaG_runerror(L, "attempt to %s %s " LUA_QS " (a %s value)", - op, kind, name, t); - else - luaG_runerror(L, "attempt to %s a %s value", op, t); -} - - -l_noret luaG_concaterror (lua_State *L, StkId p1, StkId p2) { - if (ttisstring(p1) || ttisnumber(p1)) p1 = p2; - lua_assert(!ttisstring(p1) && !ttisnumber(p1)); - luaG_typeerror(L, p1, "concatenate"); -} - - -l_noret luaG_aritherror (lua_State *L, const TValue *p1, const TValue *p2) { - TValue temp; - if (luaV_tonumber(p1, &temp) == NULL) - p2 = p1; /* first operand is wrong */ - luaG_typeerror(L, p2, "perform arithmetic on"); -} - - -l_noret luaG_ordererror (lua_State *L, const TValue *p1, const TValue *p2) { - const char *t1 = objtypename(p1); - const char *t2 = objtypename(p2); - if (t1 == t2) - luaG_runerror(L, "attempt to compare two %s values", t1); - else - luaG_runerror(L, "attempt to compare %s with %s", t1, t2); -} - - -static void addinfo (lua_State *L, const char *msg) { - CallInfo *ci = L->ci; - if (isLua(ci)) { /* is Lua code? */ - char buff[LUA_IDSIZE]; /* add file:line information */ - int line = currentline(ci); - TString *src = ci_func(ci)->p->source; - if (src) - luaO_chunkid(buff, getstr(src), LUA_IDSIZE); - else { /* no source available; use "?" instead */ - buff[0] = '?'; buff[1] = '\0'; - } - luaO_pushfstring(L, "%s:%d: %s", buff, line, msg); - } -} - - -l_noret luaG_errormsg (lua_State *L) { - if (L->errfunc != 0) { /* is there an error handling function? */ - StkId errfunc = restorestack(L, L->errfunc); - if (!ttisfunction(errfunc)) luaD_throw(L, LUA_ERRERR); - setobjs2s(L, L->top, L->top - 1); /* move argument */ - setobjs2s(L, L->top - 1, errfunc); /* push function */ - L->top++; - luaD_call(L, L->top - 2, 1, 0); /* call it */ - } - luaD_throw(L, LUA_ERRRUN); -} - - -l_noret luaG_runerror (lua_State *L, const char *fmt, ...) { - va_list argp; - va_start(argp, fmt); - addinfo(L, luaO_pushvfstring(L, fmt, argp)); - va_end(argp); - luaG_errormsg(L); -} - diff --git a/source/libs/lua52/lua52-src/src/ldebug.h b/source/libs/lua52/lua52-src/src/ldebug.h deleted file mode 100644 index 6445c763ea51bed4677ea28b638fad46b6aaf04e..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/ldebug.h +++ /dev/null @@ -1,34 +0,0 @@ -/* -** $Id: ldebug.h,v 2.7.1.1 2013/04/12 18:48:47 roberto Exp $ -** Auxiliary functions from Debug Interface module -** See Copyright Notice in lua.h -*/ - -#ifndef ldebug_h -#define ldebug_h - - -#include "lstate.h" - - -#define pcRel(pc, p) (cast(int, (pc) - (p)->code) - 1) - -#define getfuncline(f,pc) (((f)->lineinfo) ? (f)->lineinfo[pc] : 0) - -#define resethookcount(L) (L->hookcount = L->basehookcount) - -/* Active Lua function (given call info) */ -#define ci_func(ci) (clLvalue((ci)->func)) - - -LUAI_FUNC l_noret luaG_typeerror (lua_State *L, const TValue *o, - const char *opname); -LUAI_FUNC l_noret luaG_concaterror (lua_State *L, StkId p1, StkId p2); -LUAI_FUNC l_noret luaG_aritherror (lua_State *L, const TValue *p1, - const TValue *p2); -LUAI_FUNC l_noret luaG_ordererror (lua_State *L, const TValue *p1, - const TValue *p2); -LUAI_FUNC l_noret luaG_runerror (lua_State *L, const char *fmt, ...); -LUAI_FUNC l_noret luaG_errormsg (lua_State *L); - -#endif diff --git a/source/libs/lua52/lua52-src/src/ldo.c b/source/libs/lua52/lua52-src/src/ldo.c deleted file mode 100644 index e9dd5fa9519eb019c1198580055366ac91d66267..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/ldo.c +++ /dev/null @@ -1,681 +0,0 @@ -/* -** $Id: ldo.c,v 2.108.1.3 2013/11/08 18:22:50 roberto Exp $ -** Stack and Call structure of Lua -** See Copyright Notice in lua.h -*/ - - -#include <setjmp.h> -#include <stdlib.h> -#include <string.h> - -#define ldo_c -#define LUA_CORE - -#include "lua.h" - -#include "lapi.h" -#include "ldebug.h" -#include "ldo.h" -#include "lfunc.h" -#include "lgc.h" -#include "lmem.h" -#include "lobject.h" -#include "lopcodes.h" -#include "lparser.h" -#include "lstate.h" -#include "lstring.h" -#include "ltable.h" -#include "ltm.h" -#include "lundump.h" -#include "lvm.h" -#include "lzio.h" - - - - -/* -** {====================================================== -** Error-recovery functions -** ======================================================= -*/ - -/* -** LUAI_THROW/LUAI_TRY define how Lua does exception handling. By -** default, Lua handles errors with exceptions when compiling as -** C++ code, with _longjmp/_setjmp when asked to use them, and with -** longjmp/setjmp otherwise. -*/ -#if !defined(LUAI_THROW) - -#if defined(__cplusplus) && !defined(LUA_USE_LONGJMP) -/* C++ exceptions */ -#define LUAI_THROW(L,c) throw(c) -#define LUAI_TRY(L,c,a) \ - try { a } catch(...) { if ((c)->status == 0) (c)->status = -1; } -#define luai_jmpbuf int /* dummy variable */ - -#elif defined(LUA_USE_ULONGJMP) -/* in Unix, try _longjmp/_setjmp (more efficient) */ -#define LUAI_THROW(L,c) _longjmp((c)->b, 1) -#define LUAI_TRY(L,c,a) if (_setjmp((c)->b) == 0) { a } -#define luai_jmpbuf jmp_buf - -#else -/* default handling with long jumps */ -#define LUAI_THROW(L,c) longjmp((c)->b, 1) -#define LUAI_TRY(L,c,a) if (setjmp((c)->b) == 0) { a } -#define luai_jmpbuf jmp_buf - -#endif - -#endif - - - -/* chain list of long jump buffers */ -struct lua_longjmp { - struct lua_longjmp *previous; - luai_jmpbuf b; - volatile int status; /* error code */ -}; - - -static void seterrorobj (lua_State *L, int errcode, StkId oldtop) { - switch (errcode) { - case LUA_ERRMEM: { /* memory error? */ - setsvalue2s(L, oldtop, G(L)->memerrmsg); /* reuse preregistered msg. */ - break; - } - case LUA_ERRERR: { - setsvalue2s(L, oldtop, luaS_newliteral(L, "error in error handling")); - break; - } - default: { - setobjs2s(L, oldtop, L->top - 1); /* error message on current top */ - break; - } - } - L->top = oldtop + 1; -} - - -l_noret luaD_throw (lua_State *L, int errcode) { - if (L->errorJmp) { /* thread has an error handler? */ - L->errorJmp->status = errcode; /* set status */ - LUAI_THROW(L, L->errorJmp); /* jump to it */ - } - else { /* thread has no error handler */ - L->status = cast_byte(errcode); /* mark it as dead */ - if (G(L)->mainthread->errorJmp) { /* main thread has a handler? */ - setobjs2s(L, G(L)->mainthread->top++, L->top - 1); /* copy error obj. */ - luaD_throw(G(L)->mainthread, errcode); /* re-throw in main thread */ - } - else { /* no handler at all; abort */ - if (G(L)->panic) { /* panic function? */ - lua_unlock(L); - G(L)->panic(L); /* call it (last chance to jump out) */ - } - abort(); - } - } -} - - -int luaD_rawrunprotected (lua_State *L, Pfunc f, void *ud) { - unsigned short oldnCcalls = L->nCcalls; - struct lua_longjmp lj; - lj.status = LUA_OK; - lj.previous = L->errorJmp; /* chain new error handler */ - L->errorJmp = &lj; - LUAI_TRY(L, &lj, - (*f)(L, ud); - ); - L->errorJmp = lj.previous; /* restore old error handler */ - L->nCcalls = oldnCcalls; - return lj.status; -} - -/* }====================================================== */ - - -static void correctstack (lua_State *L, TValue *oldstack) { - CallInfo *ci; - GCObject *up; - L->top = (L->top - oldstack) + L->stack; - for (up = L->openupval; up != NULL; up = up->gch.next) - gco2uv(up)->v = (gco2uv(up)->v - oldstack) + L->stack; - for (ci = L->ci; ci != NULL; ci = ci->previous) { - ci->top = (ci->top - oldstack) + L->stack; - ci->func = (ci->func - oldstack) + L->stack; - if (isLua(ci)) - ci->u.l.base = (ci->u.l.base - oldstack) + L->stack; - } -} - - -/* some space for error handling */ -#define ERRORSTACKSIZE (LUAI_MAXSTACK + 200) - - -void luaD_reallocstack (lua_State *L, int newsize) { - TValue *oldstack = L->stack; - int lim = L->stacksize; - lua_assert(newsize <= LUAI_MAXSTACK || newsize == ERRORSTACKSIZE); - lua_assert(L->stack_last - L->stack == L->stacksize - EXTRA_STACK); - luaM_reallocvector(L, L->stack, L->stacksize, newsize, TValue); - for (; lim < newsize; lim++) - setnilvalue(L->stack + lim); /* erase new segment */ - L->stacksize = newsize; - L->stack_last = L->stack + newsize - EXTRA_STACK; - correctstack(L, oldstack); -} - - -void luaD_growstack (lua_State *L, int n) { - int size = L->stacksize; - if (size > LUAI_MAXSTACK) /* error after extra size? */ - luaD_throw(L, LUA_ERRERR); - else { - int needed = cast_int(L->top - L->stack) + n + EXTRA_STACK; - int newsize = 2 * size; - if (newsize > LUAI_MAXSTACK) newsize = LUAI_MAXSTACK; - if (newsize < needed) newsize = needed; - if (newsize > LUAI_MAXSTACK) { /* stack overflow? */ - luaD_reallocstack(L, ERRORSTACKSIZE); - luaG_runerror(L, "stack overflow"); - } - else - luaD_reallocstack(L, newsize); - } -} - - -static int stackinuse (lua_State *L) { - CallInfo *ci; - StkId lim = L->top; - for (ci = L->ci; ci != NULL; ci = ci->previous) { - lua_assert(ci->top <= L->stack_last); - if (lim < ci->top) lim = ci->top; - } - return cast_int(lim - L->stack) + 1; /* part of stack in use */ -} - - -void luaD_shrinkstack (lua_State *L) { - int inuse = stackinuse(L); - int goodsize = inuse + (inuse / 8) + 2*EXTRA_STACK; - if (goodsize > LUAI_MAXSTACK) goodsize = LUAI_MAXSTACK; - if (inuse > LUAI_MAXSTACK || /* handling stack overflow? */ - goodsize >= L->stacksize) /* would grow instead of shrink? */ - condmovestack(L); /* don't change stack (change only for debugging) */ - else - luaD_reallocstack(L, goodsize); /* shrink it */ -} - - -void luaD_hook (lua_State *L, int event, int line) { - lua_Hook hook = L->hook; - if (hook && L->allowhook) { - CallInfo *ci = L->ci; - ptrdiff_t top = savestack(L, L->top); - ptrdiff_t ci_top = savestack(L, ci->top); - lua_Debug ar; - ar.event = event; - ar.currentline = line; - ar.i_ci = ci; - luaD_checkstack(L, LUA_MINSTACK); /* ensure minimum stack size */ - ci->top = L->top + LUA_MINSTACK; - lua_assert(ci->top <= L->stack_last); - L->allowhook = 0; /* cannot call hooks inside a hook */ - ci->callstatus |= CIST_HOOKED; - lua_unlock(L); - (*hook)(L, &ar); - lua_lock(L); - lua_assert(!L->allowhook); - L->allowhook = 1; - ci->top = restorestack(L, ci_top); - L->top = restorestack(L, top); - ci->callstatus &= ~CIST_HOOKED; - } -} - - -static void callhook (lua_State *L, CallInfo *ci) { - int hook = LUA_HOOKCALL; - ci->u.l.savedpc++; /* hooks assume 'pc' is already incremented */ - if (isLua(ci->previous) && - GET_OPCODE(*(ci->previous->u.l.savedpc - 1)) == OP_TAILCALL) { - ci->callstatus |= CIST_TAIL; - hook = LUA_HOOKTAILCALL; - } - luaD_hook(L, hook, -1); - ci->u.l.savedpc--; /* correct 'pc' */ -} - - -static StkId adjust_varargs (lua_State *L, Proto *p, int actual) { - int i; - int nfixargs = p->numparams; - StkId base, fixed; - lua_assert(actual >= nfixargs); - /* move fixed parameters to final position */ - luaD_checkstack(L, p->maxstacksize); /* check again for new 'base' */ - fixed = L->top - actual; /* first fixed argument */ - base = L->top; /* final position of first argument */ - for (i=0; i<nfixargs; i++) { - setobjs2s(L, L->top++, fixed + i); - setnilvalue(fixed + i); - } - return base; -} - - -static StkId tryfuncTM (lua_State *L, StkId func) { - const TValue *tm = luaT_gettmbyobj(L, func, TM_CALL); - StkId p; - ptrdiff_t funcr = savestack(L, func); - if (!ttisfunction(tm)) - luaG_typeerror(L, func, "call"); - /* Open a hole inside the stack at `func' */ - for (p = L->top; p > func; p--) setobjs2s(L, p, p-1); - incr_top(L); - func = restorestack(L, funcr); /* previous call may change stack */ - setobj2s(L, func, tm); /* tag method is the new function to be called */ - return func; -} - - - -#define next_ci(L) (L->ci = (L->ci->next ? L->ci->next : luaE_extendCI(L))) - - -/* -** returns true if function has been executed (C function) -*/ -int luaD_precall (lua_State *L, StkId func, int nresults) { - lua_CFunction f; - CallInfo *ci; - int n; /* number of arguments (Lua) or returns (C) */ - ptrdiff_t funcr = savestack(L, func); - switch (ttype(func)) { - case LUA_TLCF: /* light C function */ - f = fvalue(func); - goto Cfunc; - case LUA_TCCL: { /* C closure */ - f = clCvalue(func)->f; - Cfunc: - luaD_checkstack(L, LUA_MINSTACK); /* ensure minimum stack size */ - ci = next_ci(L); /* now 'enter' new function */ - ci->nresults = nresults; - ci->func = restorestack(L, funcr); - ci->top = L->top + LUA_MINSTACK; - lua_assert(ci->top <= L->stack_last); - ci->callstatus = 0; - luaC_checkGC(L); /* stack grow uses memory */ - if (L->hookmask & LUA_MASKCALL) - luaD_hook(L, LUA_HOOKCALL, -1); - lua_unlock(L); - n = (*f)(L); /* do the actual call */ - lua_lock(L); - api_checknelems(L, n); - luaD_poscall(L, L->top - n); - return 1; - } - case LUA_TLCL: { /* Lua function: prepare its call */ - StkId base; - Proto *p = clLvalue(func)->p; - n = cast_int(L->top - func) - 1; /* number of real arguments */ - luaD_checkstack(L, p->maxstacksize); - for (; n < p->numparams; n++) - setnilvalue(L->top++); /* complete missing arguments */ - if (!p->is_vararg) { - func = restorestack(L, funcr); - base = func + 1; - } - else { - base = adjust_varargs(L, p, n); - func = restorestack(L, funcr); /* previous call can change stack */ - } - ci = next_ci(L); /* now 'enter' new function */ - ci->nresults = nresults; - ci->func = func; - ci->u.l.base = base; - ci->top = base + p->maxstacksize; - lua_assert(ci->top <= L->stack_last); - ci->u.l.savedpc = p->code; /* starting point */ - ci->callstatus = CIST_LUA; - L->top = ci->top; - luaC_checkGC(L); /* stack grow uses memory */ - if (L->hookmask & LUA_MASKCALL) - callhook(L, ci); - return 0; - } - default: { /* not a function */ - func = tryfuncTM(L, func); /* retry with 'function' tag method */ - return luaD_precall(L, func, nresults); /* now it must be a function */ - } - } -} - - -int luaD_poscall (lua_State *L, StkId firstResult) { - StkId res; - int wanted, i; - CallInfo *ci = L->ci; - if (L->hookmask & (LUA_MASKRET | LUA_MASKLINE)) { - if (L->hookmask & LUA_MASKRET) { - ptrdiff_t fr = savestack(L, firstResult); /* hook may change stack */ - luaD_hook(L, LUA_HOOKRET, -1); - firstResult = restorestack(L, fr); - } - L->oldpc = ci->previous->u.l.savedpc; /* 'oldpc' for caller function */ - } - res = ci->func; /* res == final position of 1st result */ - wanted = ci->nresults; - L->ci = ci = ci->previous; /* back to caller */ - /* move results to correct place */ - for (i = wanted; i != 0 && firstResult < L->top; i--) - setobjs2s(L, res++, firstResult++); - while (i-- > 0) - setnilvalue(res++); - L->top = res; - return (wanted - LUA_MULTRET); /* 0 iff wanted == LUA_MULTRET */ -} - - -/* -** Call a function (C or Lua). The function to be called is at *func. -** The arguments are on the stack, right after the function. -** When returns, all the results are on the stack, starting at the original -** function position. -*/ -void luaD_call (lua_State *L, StkId func, int nResults, int allowyield) { - if (++L->nCcalls >= LUAI_MAXCCALLS) { - if (L->nCcalls == LUAI_MAXCCALLS) - luaG_runerror(L, "C stack overflow"); - else if (L->nCcalls >= (LUAI_MAXCCALLS + (LUAI_MAXCCALLS>>3))) - luaD_throw(L, LUA_ERRERR); /* error while handing stack error */ - } - if (!allowyield) L->nny++; - if (!luaD_precall(L, func, nResults)) /* is a Lua function? */ - luaV_execute(L); /* call it */ - if (!allowyield) L->nny--; - L->nCcalls--; -} - - -static void finishCcall (lua_State *L) { - CallInfo *ci = L->ci; - int n; - lua_assert(ci->u.c.k != NULL); /* must have a continuation */ - lua_assert(L->nny == 0); - if (ci->callstatus & CIST_YPCALL) { /* was inside a pcall? */ - ci->callstatus &= ~CIST_YPCALL; /* finish 'lua_pcall' */ - L->errfunc = ci->u.c.old_errfunc; - } - /* finish 'lua_callk'/'lua_pcall' */ - adjustresults(L, ci->nresults); - /* call continuation function */ - if (!(ci->callstatus & CIST_STAT)) /* no call status? */ - ci->u.c.status = LUA_YIELD; /* 'default' status */ - lua_assert(ci->u.c.status != LUA_OK); - ci->callstatus = (ci->callstatus & ~(CIST_YPCALL | CIST_STAT)) | CIST_YIELDED; - lua_unlock(L); - n = (*ci->u.c.k)(L); - lua_lock(L); - api_checknelems(L, n); - /* finish 'luaD_precall' */ - luaD_poscall(L, L->top - n); -} - - -static void unroll (lua_State *L, void *ud) { - UNUSED(ud); - for (;;) { - if (L->ci == &L->base_ci) /* stack is empty? */ - return; /* coroutine finished normally */ - if (!isLua(L->ci)) /* C function? */ - finishCcall(L); - else { /* Lua function */ - luaV_finishOp(L); /* finish interrupted instruction */ - luaV_execute(L); /* execute down to higher C 'boundary' */ - } - } -} - - -/* -** check whether thread has a suspended protected call -*/ -static CallInfo *findpcall (lua_State *L) { - CallInfo *ci; - for (ci = L->ci; ci != NULL; ci = ci->previous) { /* search for a pcall */ - if (ci->callstatus & CIST_YPCALL) - return ci; - } - return NULL; /* no pending pcall */ -} - - -static int recover (lua_State *L, int status) { - StkId oldtop; - CallInfo *ci = findpcall(L); - if (ci == NULL) return 0; /* no recovery point */ - /* "finish" luaD_pcall */ - oldtop = restorestack(L, ci->extra); - luaF_close(L, oldtop); - seterrorobj(L, status, oldtop); - L->ci = ci; - L->allowhook = ci->u.c.old_allowhook; - L->nny = 0; /* should be zero to be yieldable */ - luaD_shrinkstack(L); - L->errfunc = ci->u.c.old_errfunc; - ci->callstatus |= CIST_STAT; /* call has error status */ - ci->u.c.status = status; /* (here it is) */ - return 1; /* continue running the coroutine */ -} - - -/* -** signal an error in the call to 'resume', not in the execution of the -** coroutine itself. (Such errors should not be handled by any coroutine -** error handler and should not kill the coroutine.) -*/ -static l_noret resume_error (lua_State *L, const char *msg, StkId firstArg) { - L->top = firstArg; /* remove args from the stack */ - setsvalue2s(L, L->top, luaS_new(L, msg)); /* push error message */ - api_incr_top(L); - luaD_throw(L, -1); /* jump back to 'lua_resume' */ -} - - -/* -** do the work for 'lua_resume' in protected mode -*/ -static void resume (lua_State *L, void *ud) { - int nCcalls = L->nCcalls; - StkId firstArg = cast(StkId, ud); - CallInfo *ci = L->ci; - if (nCcalls >= LUAI_MAXCCALLS) - resume_error(L, "C stack overflow", firstArg); - if (L->status == LUA_OK) { /* may be starting a coroutine */ - if (ci != &L->base_ci) /* not in base level? */ - resume_error(L, "cannot resume non-suspended coroutine", firstArg); - /* coroutine is in base level; start running it */ - if (!luaD_precall(L, firstArg - 1, LUA_MULTRET)) /* Lua function? */ - luaV_execute(L); /* call it */ - } - else if (L->status != LUA_YIELD) - resume_error(L, "cannot resume dead coroutine", firstArg); - else { /* resuming from previous yield */ - L->status = LUA_OK; - ci->func = restorestack(L, ci->extra); - if (isLua(ci)) /* yielded inside a hook? */ - luaV_execute(L); /* just continue running Lua code */ - else { /* 'common' yield */ - if (ci->u.c.k != NULL) { /* does it have a continuation? */ - int n; - ci->u.c.status = LUA_YIELD; /* 'default' status */ - ci->callstatus |= CIST_YIELDED; - lua_unlock(L); - n = (*ci->u.c.k)(L); /* call continuation */ - lua_lock(L); - api_checknelems(L, n); - firstArg = L->top - n; /* yield results come from continuation */ - } - luaD_poscall(L, firstArg); /* finish 'luaD_precall' */ - } - unroll(L, NULL); - } - lua_assert(nCcalls == L->nCcalls); -} - - -LUA_API int lua_resume (lua_State *L, lua_State *from, int nargs) { - int status; - int oldnny = L->nny; /* save 'nny' */ - lua_lock(L); - luai_userstateresume(L, nargs); - L->nCcalls = (from) ? from->nCcalls + 1 : 1; - L->nny = 0; /* allow yields */ - api_checknelems(L, (L->status == LUA_OK) ? nargs + 1 : nargs); - status = luaD_rawrunprotected(L, resume, L->top - nargs); - if (status == -1) /* error calling 'lua_resume'? */ - status = LUA_ERRRUN; - else { /* yield or regular error */ - while (status != LUA_OK && status != LUA_YIELD) { /* error? */ - if (recover(L, status)) /* recover point? */ - status = luaD_rawrunprotected(L, unroll, NULL); /* run continuation */ - else { /* unrecoverable error */ - L->status = cast_byte(status); /* mark thread as `dead' */ - seterrorobj(L, status, L->top); - L->ci->top = L->top; - break; - } - } - lua_assert(status == L->status); - } - L->nny = oldnny; /* restore 'nny' */ - L->nCcalls--; - lua_assert(L->nCcalls == ((from) ? from->nCcalls : 0)); - lua_unlock(L); - return status; -} - - -LUA_API int lua_yieldk (lua_State *L, int nresults, int ctx, lua_CFunction k) { - CallInfo *ci = L->ci; - luai_userstateyield(L, nresults); - lua_lock(L); - api_checknelems(L, nresults); - if (L->nny > 0) { - if (L != G(L)->mainthread) - luaG_runerror(L, "attempt to yield across a C-call boundary"); - else - luaG_runerror(L, "attempt to yield from outside a coroutine"); - } - L->status = LUA_YIELD; - ci->extra = savestack(L, ci->func); /* save current 'func' */ - if (isLua(ci)) { /* inside a hook? */ - api_check(L, k == NULL, "hooks cannot continue after yielding"); - } - else { - if ((ci->u.c.k = k) != NULL) /* is there a continuation? */ - ci->u.c.ctx = ctx; /* save context */ - ci->func = L->top - nresults - 1; /* protect stack below results */ - luaD_throw(L, LUA_YIELD); - } - lua_assert(ci->callstatus & CIST_HOOKED); /* must be inside a hook */ - lua_unlock(L); - return 0; /* return to 'luaD_hook' */ -} - - -int luaD_pcall (lua_State *L, Pfunc func, void *u, - ptrdiff_t old_top, ptrdiff_t ef) { - int status; - CallInfo *old_ci = L->ci; - lu_byte old_allowhooks = L->allowhook; - unsigned short old_nny = L->nny; - ptrdiff_t old_errfunc = L->errfunc; - L->errfunc = ef; - status = luaD_rawrunprotected(L, func, u); - if (status != LUA_OK) { /* an error occurred? */ - StkId oldtop = restorestack(L, old_top); - luaF_close(L, oldtop); /* close possible pending closures */ - seterrorobj(L, status, oldtop); - L->ci = old_ci; - L->allowhook = old_allowhooks; - L->nny = old_nny; - luaD_shrinkstack(L); - } - L->errfunc = old_errfunc; - return status; -} - - - -/* -** Execute a protected parser. -*/ -struct SParser { /* data to `f_parser' */ - ZIO *z; - Mbuffer buff; /* dynamic structure used by the scanner */ - Dyndata dyd; /* dynamic structures used by the parser */ - const char *mode; - const char *name; -}; - - -static void checkmode (lua_State *L, const char *mode, const char *x) { - if (mode && strchr(mode, x[0]) == NULL) { - luaO_pushfstring(L, - "attempt to load a %s chunk (mode is " LUA_QS ")", x, mode); - luaD_throw(L, LUA_ERRSYNTAX); - } -} - - -static void f_parser (lua_State *L, void *ud) { - int i; - Closure *cl; - struct SParser *p = cast(struct SParser *, ud); - int c = zgetc(p->z); /* read first character */ - if (c == LUA_SIGNATURE[0]) { - checkmode(L, p->mode, "binary"); - cl = luaU_undump(L, p->z, &p->buff, p->name); - } - else { - checkmode(L, p->mode, "text"); - cl = luaY_parser(L, p->z, &p->buff, &p->dyd, p->name, c); - } - lua_assert(cl->l.nupvalues == cl->l.p->sizeupvalues); - for (i = 0; i < cl->l.nupvalues; i++) { /* initialize upvalues */ - UpVal *up = luaF_newupval(L); - cl->l.upvals[i] = up; - luaC_objbarrier(L, cl, up); - } -} - - -int luaD_protectedparser (lua_State *L, ZIO *z, const char *name, - const char *mode) { - struct SParser p; - int status; - L->nny++; /* cannot yield during parsing */ - p.z = z; p.name = name; p.mode = mode; - p.dyd.actvar.arr = NULL; p.dyd.actvar.size = 0; - p.dyd.gt.arr = NULL; p.dyd.gt.size = 0; - p.dyd.label.arr = NULL; p.dyd.label.size = 0; - luaZ_initbuffer(L, &p.buff); - status = luaD_pcall(L, f_parser, &p, savestack(L, L->top), L->errfunc); - luaZ_freebuffer(L, &p.buff); - luaM_freearray(L, p.dyd.actvar.arr, p.dyd.actvar.size); - luaM_freearray(L, p.dyd.gt.arr, p.dyd.gt.size); - luaM_freearray(L, p.dyd.label.arr, p.dyd.label.size); - L->nny--; - return status; -} - - diff --git a/source/libs/lua52/lua52-src/src/ldo.h b/source/libs/lua52/lua52-src/src/ldo.h deleted file mode 100644 index d3d3082c9ba3ff2b8f2c6d04bf3025898df3cfd3..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/ldo.h +++ /dev/null @@ -1,46 +0,0 @@ -/* -** $Id: ldo.h,v 2.20.1.1 2013/04/12 18:48:47 roberto Exp $ -** Stack and Call structure of Lua -** See Copyright Notice in lua.h -*/ - -#ifndef ldo_h -#define ldo_h - - -#include "lobject.h" -#include "lstate.h" -#include "lzio.h" - - -#define luaD_checkstack(L,n) if (L->stack_last - L->top <= (n)) \ - luaD_growstack(L, n); else condmovestack(L); - - -#define incr_top(L) {L->top++; luaD_checkstack(L,0);} - -#define savestack(L,p) ((char *)(p) - (char *)L->stack) -#define restorestack(L,n) ((TValue *)((char *)L->stack + (n))) - - -/* type of protected functions, to be ran by `runprotected' */ -typedef void (*Pfunc) (lua_State *L, void *ud); - -LUAI_FUNC int luaD_protectedparser (lua_State *L, ZIO *z, const char *name, - const char *mode); -LUAI_FUNC void luaD_hook (lua_State *L, int event, int line); -LUAI_FUNC int luaD_precall (lua_State *L, StkId func, int nresults); -LUAI_FUNC void luaD_call (lua_State *L, StkId func, int nResults, - int allowyield); -LUAI_FUNC int luaD_pcall (lua_State *L, Pfunc func, void *u, - ptrdiff_t oldtop, ptrdiff_t ef); -LUAI_FUNC int luaD_poscall (lua_State *L, StkId firstResult); -LUAI_FUNC void luaD_reallocstack (lua_State *L, int newsize); -LUAI_FUNC void luaD_growstack (lua_State *L, int n); -LUAI_FUNC void luaD_shrinkstack (lua_State *L); - -LUAI_FUNC l_noret luaD_throw (lua_State *L, int errcode); -LUAI_FUNC int luaD_rawrunprotected (lua_State *L, Pfunc f, void *ud); - -#endif - diff --git a/source/libs/lua52/lua52-src/src/ldump.c b/source/libs/lua52/lua52-src/src/ldump.c deleted file mode 100644 index 61fa2cd892d3bf8bd754e3b38dc1c58b46811007..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/ldump.c +++ /dev/null @@ -1,173 +0,0 @@ -/* -** $Id: ldump.c,v 2.17.1.1 2013/04/12 18:48:47 roberto Exp $ -** save precompiled Lua chunks -** See Copyright Notice in lua.h -*/ - -#include <stddef.h> - -#define ldump_c -#define LUA_CORE - -#include "lua.h" - -#include "lobject.h" -#include "lstate.h" -#include "lundump.h" - -typedef struct { - lua_State* L; - lua_Writer writer; - void* data; - int strip; - int status; -} DumpState; - -#define DumpMem(b,n,size,D) DumpBlock(b,(n)*(size),D) -#define DumpVar(x,D) DumpMem(&x,1,sizeof(x),D) - -static void DumpBlock(const void* b, size_t size, DumpState* D) -{ - if (D->status==0) - { - lua_unlock(D->L); - D->status=(*D->writer)(D->L,b,size,D->data); - lua_lock(D->L); - } -} - -static void DumpChar(int y, DumpState* D) -{ - char x=(char)y; - DumpVar(x,D); -} - -static void DumpInt(int x, DumpState* D) -{ - DumpVar(x,D); -} - -static void DumpNumber(lua_Number x, DumpState* D) -{ - DumpVar(x,D); -} - -static void DumpVector(const void* b, int n, size_t size, DumpState* D) -{ - DumpInt(n,D); - DumpMem(b,n,size,D); -} - -static void DumpString(const TString* s, DumpState* D) -{ - if (s==NULL) - { - size_t size=0; - DumpVar(size,D); - } - else - { - size_t size=s->tsv.len+1; /* include trailing '\0' */ - DumpVar(size,D); - DumpBlock(getstr(s),size*sizeof(char),D); - } -} - -#define DumpCode(f,D) DumpVector(f->code,f->sizecode,sizeof(Instruction),D) - -static void DumpFunction(const Proto* f, DumpState* D); - -static void DumpConstants(const Proto* f, DumpState* D) -{ - int i,n=f->sizek; - DumpInt(n,D); - for (i=0; i<n; i++) - { - const TValue* o=&f->k[i]; - DumpChar(ttypenv(o),D); - switch (ttypenv(o)) - { - case LUA_TNIL: - break; - case LUA_TBOOLEAN: - DumpChar(bvalue(o),D); - break; - case LUA_TNUMBER: - DumpNumber(nvalue(o),D); - break; - case LUA_TSTRING: - DumpString(rawtsvalue(o),D); - break; - default: lua_assert(0); - } - } - n=f->sizep; - DumpInt(n,D); - for (i=0; i<n; i++) DumpFunction(f->p[i],D); -} - -static void DumpUpvalues(const Proto* f, DumpState* D) -{ - int i,n=f->sizeupvalues; - DumpInt(n,D); - for (i=0; i<n; i++) - { - DumpChar(f->upvalues[i].instack,D); - DumpChar(f->upvalues[i].idx,D); - } -} - -static void DumpDebug(const Proto* f, DumpState* D) -{ - int i,n; - DumpString((D->strip) ? NULL : f->source,D); - n= (D->strip) ? 0 : f->sizelineinfo; - DumpVector(f->lineinfo,n,sizeof(int),D); - n= (D->strip) ? 0 : f->sizelocvars; - DumpInt(n,D); - for (i=0; i<n; i++) - { - DumpString(f->locvars[i].varname,D); - DumpInt(f->locvars[i].startpc,D); - DumpInt(f->locvars[i].endpc,D); - } - n= (D->strip) ? 0 : f->sizeupvalues; - DumpInt(n,D); - for (i=0; i<n; i++) DumpString(f->upvalues[i].name,D); -} - -static void DumpFunction(const Proto* f, DumpState* D) -{ - DumpInt(f->linedefined,D); - DumpInt(f->lastlinedefined,D); - DumpChar(f->numparams,D); - DumpChar(f->is_vararg,D); - DumpChar(f->maxstacksize,D); - DumpCode(f,D); - DumpConstants(f,D); - DumpUpvalues(f,D); - DumpDebug(f,D); -} - -static void DumpHeader(DumpState* D) -{ - lu_byte h[LUAC_HEADERSIZE]; - luaU_header(h); - DumpBlock(h,LUAC_HEADERSIZE,D); -} - -/* -** dump Lua function as precompiled chunk -*/ -int luaU_dump (lua_State* L, const Proto* f, lua_Writer w, void* data, int strip) -{ - DumpState D; - D.L=L; - D.writer=w; - D.data=data; - D.strip=strip; - D.status=0; - DumpHeader(&D); - DumpFunction(f,&D); - return D.status; -} diff --git a/source/libs/lua52/lua52-src/src/lfunc.c b/source/libs/lua52/lua52-src/src/lfunc.c deleted file mode 100644 index e90e1520ce9578565fefd8bb4164336ed98469b9..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lfunc.c +++ /dev/null @@ -1,161 +0,0 @@ -/* -** $Id: lfunc.c,v 2.30.1.1 2013/04/12 18:48:47 roberto Exp $ -** Auxiliary functions to manipulate prototypes and closures -** See Copyright Notice in lua.h -*/ - - -#include <stddef.h> - -#define lfunc_c -#define LUA_CORE - -#include "lua.h" - -#include "lfunc.h" -#include "lgc.h" -#include "lmem.h" -#include "lobject.h" -#include "lstate.h" - - - -Closure *luaF_newCclosure (lua_State *L, int n) { - Closure *c = &luaC_newobj(L, LUA_TCCL, sizeCclosure(n), NULL, 0)->cl; - c->c.nupvalues = cast_byte(n); - return c; -} - - -Closure *luaF_newLclosure (lua_State *L, int n) { - Closure *c = &luaC_newobj(L, LUA_TLCL, sizeLclosure(n), NULL, 0)->cl; - c->l.p = NULL; - c->l.nupvalues = cast_byte(n); - while (n--) c->l.upvals[n] = NULL; - return c; -} - - -UpVal *luaF_newupval (lua_State *L) { - UpVal *uv = &luaC_newobj(L, LUA_TUPVAL, sizeof(UpVal), NULL, 0)->uv; - uv->v = &uv->u.value; - setnilvalue(uv->v); - return uv; -} - - -UpVal *luaF_findupval (lua_State *L, StkId level) { - global_State *g = G(L); - GCObject **pp = &L->openupval; - UpVal *p; - UpVal *uv; - while (*pp != NULL && (p = gco2uv(*pp))->v >= level) { - GCObject *o = obj2gco(p); - lua_assert(p->v != &p->u.value); - lua_assert(!isold(o) || isold(obj2gco(L))); - if (p->v == level) { /* found a corresponding upvalue? */ - if (isdead(g, o)) /* is it dead? */ - changewhite(o); /* resurrect it */ - return p; - } - pp = &p->next; - } - /* not found: create a new one */ - uv = &luaC_newobj(L, LUA_TUPVAL, sizeof(UpVal), pp, 0)->uv; - uv->v = level; /* current value lives in the stack */ - uv->u.l.prev = &g->uvhead; /* double link it in `uvhead' list */ - uv->u.l.next = g->uvhead.u.l.next; - uv->u.l.next->u.l.prev = uv; - g->uvhead.u.l.next = uv; - lua_assert(uv->u.l.next->u.l.prev == uv && uv->u.l.prev->u.l.next == uv); - return uv; -} - - -static void unlinkupval (UpVal *uv) { - lua_assert(uv->u.l.next->u.l.prev == uv && uv->u.l.prev->u.l.next == uv); - uv->u.l.next->u.l.prev = uv->u.l.prev; /* remove from `uvhead' list */ - uv->u.l.prev->u.l.next = uv->u.l.next; -} - - -void luaF_freeupval (lua_State *L, UpVal *uv) { - if (uv->v != &uv->u.value) /* is it open? */ - unlinkupval(uv); /* remove from open list */ - luaM_free(L, uv); /* free upvalue */ -} - - -void luaF_close (lua_State *L, StkId level) { - UpVal *uv; - global_State *g = G(L); - while (L->openupval != NULL && (uv = gco2uv(L->openupval))->v >= level) { - GCObject *o = obj2gco(uv); - lua_assert(!isblack(o) && uv->v != &uv->u.value); - L->openupval = uv->next; /* remove from `open' list */ - if (isdead(g, o)) - luaF_freeupval(L, uv); /* free upvalue */ - else { - unlinkupval(uv); /* remove upvalue from 'uvhead' list */ - setobj(L, &uv->u.value, uv->v); /* move value to upvalue slot */ - uv->v = &uv->u.value; /* now current value lives here */ - gch(o)->next = g->allgc; /* link upvalue into 'allgc' list */ - g->allgc = o; - luaC_checkupvalcolor(g, uv); - } - } -} - - -Proto *luaF_newproto (lua_State *L) { - Proto *f = &luaC_newobj(L, LUA_TPROTO, sizeof(Proto), NULL, 0)->p; - f->k = NULL; - f->sizek = 0; - f->p = NULL; - f->sizep = 0; - f->code = NULL; - f->cache = NULL; - f->sizecode = 0; - f->lineinfo = NULL; - f->sizelineinfo = 0; - f->upvalues = NULL; - f->sizeupvalues = 0; - f->numparams = 0; - f->is_vararg = 0; - f->maxstacksize = 0; - f->locvars = NULL; - f->sizelocvars = 0; - f->linedefined = 0; - f->lastlinedefined = 0; - f->source = NULL; - return f; -} - - -void luaF_freeproto (lua_State *L, Proto *f) { - luaM_freearray(L, f->code, f->sizecode); - luaM_freearray(L, f->p, f->sizep); - luaM_freearray(L, f->k, f->sizek); - luaM_freearray(L, f->lineinfo, f->sizelineinfo); - luaM_freearray(L, f->locvars, f->sizelocvars); - luaM_freearray(L, f->upvalues, f->sizeupvalues); - luaM_free(L, f); -} - - -/* -** Look for n-th local variable at line `line' in function `func'. -** Returns NULL if not found. -*/ -const char *luaF_getlocalname (const Proto *f, int local_number, int pc) { - int i; - for (i = 0; i<f->sizelocvars && f->locvars[i].startpc <= pc; i++) { - if (pc < f->locvars[i].endpc) { /* is variable active? */ - local_number--; - if (local_number == 0) - return getstr(f->locvars[i].varname); - } - } - return NULL; /* not found */ -} - diff --git a/source/libs/lua52/lua52-src/src/lfunc.h b/source/libs/lua52/lua52-src/src/lfunc.h deleted file mode 100644 index ca0d3a3e0b035943743b19ce29798d8a78ef2b5e..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lfunc.h +++ /dev/null @@ -1,33 +0,0 @@ -/* -** $Id: lfunc.h,v 2.8.1.1 2013/04/12 18:48:47 roberto Exp $ -** Auxiliary functions to manipulate prototypes and closures -** See Copyright Notice in lua.h -*/ - -#ifndef lfunc_h -#define lfunc_h - - -#include "lobject.h" - - -#define sizeCclosure(n) (cast(int, sizeof(CClosure)) + \ - cast(int, sizeof(TValue)*((n)-1))) - -#define sizeLclosure(n) (cast(int, sizeof(LClosure)) + \ - cast(int, sizeof(TValue *)*((n)-1))) - - -LUAI_FUNC Proto *luaF_newproto (lua_State *L); -LUAI_FUNC Closure *luaF_newCclosure (lua_State *L, int nelems); -LUAI_FUNC Closure *luaF_newLclosure (lua_State *L, int nelems); -LUAI_FUNC UpVal *luaF_newupval (lua_State *L); -LUAI_FUNC UpVal *luaF_findupval (lua_State *L, StkId level); -LUAI_FUNC void luaF_close (lua_State *L, StkId level); -LUAI_FUNC void luaF_freeproto (lua_State *L, Proto *f); -LUAI_FUNC void luaF_freeupval (lua_State *L, UpVal *uv); -LUAI_FUNC const char *luaF_getlocalname (const Proto *func, int local_number, - int pc); - - -#endif diff --git a/source/libs/lua52/lua52-src/src/lgc.c b/source/libs/lua52/lua52-src/src/lgc.c deleted file mode 100644 index 553fd1774ed79ca6477a5c605b79e473f732372d..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lgc.c +++ /dev/null @@ -1,1220 +0,0 @@ -/* -** $Id: lgc.c,v 2.140.1.3 2014/09/01 16:55:08 roberto Exp $ -** Garbage Collector -** See Copyright Notice in lua.h -*/ - -#include <string.h> - -#define lgc_c -#define LUA_CORE - -#include "lua.h" - -#include "ldebug.h" -#include "ldo.h" -#include "lfunc.h" -#include "lgc.h" -#include "lmem.h" -#include "lobject.h" -#include "lstate.h" -#include "lstring.h" -#include "ltable.h" -#include "ltm.h" - - - -/* -** cost of sweeping one element (the size of a small object divided -** by some adjust for the sweep speed) -*/ -#define GCSWEEPCOST ((sizeof(TString) + 4) / 4) - -/* maximum number of elements to sweep in each single step */ -#define GCSWEEPMAX (cast_int((GCSTEPSIZE / GCSWEEPCOST) / 4)) - -/* maximum number of finalizers to call in each GC step */ -#define GCFINALIZENUM 4 - - -/* -** macro to adjust 'stepmul': 'stepmul' is actually used like -** 'stepmul / STEPMULADJ' (value chosen by tests) -*/ -#define STEPMULADJ 200 - - -/* -** macro to adjust 'pause': 'pause' is actually used like -** 'pause / PAUSEADJ' (value chosen by tests) -*/ -#define PAUSEADJ 100 - - -/* -** 'makewhite' erases all color bits plus the old bit and then -** sets only the current white bit -*/ -#define maskcolors (~(bit2mask(BLACKBIT, OLDBIT) | WHITEBITS)) -#define makewhite(g,x) \ - (gch(x)->marked = cast_byte((gch(x)->marked & maskcolors) | luaC_white(g))) - -#define white2gray(x) resetbits(gch(x)->marked, WHITEBITS) -#define black2gray(x) resetbit(gch(x)->marked, BLACKBIT) - - -#define isfinalized(x) testbit(gch(x)->marked, FINALIZEDBIT) - -#define checkdeadkey(n) lua_assert(!ttisdeadkey(gkey(n)) || ttisnil(gval(n))) - - -#define checkconsistency(obj) \ - lua_longassert(!iscollectable(obj) || righttt(obj)) - - -#define markvalue(g,o) { checkconsistency(o); \ - if (valiswhite(o)) reallymarkobject(g,gcvalue(o)); } - -#define markobject(g,t) { if ((t) && iswhite(obj2gco(t))) \ - reallymarkobject(g, obj2gco(t)); } - -static void reallymarkobject (global_State *g, GCObject *o); - - -/* -** {====================================================== -** Generic functions -** ======================================================= -*/ - - -/* -** one after last element in a hash array -*/ -#define gnodelast(h) gnode(h, cast(size_t, sizenode(h))) - - -/* -** link table 'h' into list pointed by 'p' -*/ -#define linktable(h,p) ((h)->gclist = *(p), *(p) = obj2gco(h)) - - -/* -** if key is not marked, mark its entry as dead (therefore removing it -** from the table) -*/ -static void removeentry (Node *n) { - lua_assert(ttisnil(gval(n))); - if (valiswhite(gkey(n))) - setdeadvalue(gkey(n)); /* unused and unmarked key; remove it */ -} - - -/* -** tells whether a key or value can be cleared from a weak -** table. Non-collectable objects are never removed from weak -** tables. Strings behave as `values', so are never removed too. for -** other objects: if really collected, cannot keep them; for objects -** being finalized, keep them in keys, but not in values -*/ -static int iscleared (global_State *g, const TValue *o) { - if (!iscollectable(o)) return 0; - else if (ttisstring(o)) { - markobject(g, rawtsvalue(o)); /* strings are `values', so are never weak */ - return 0; - } - else return iswhite(gcvalue(o)); -} - - -/* -** barrier that moves collector forward, that is, mark the white object -** being pointed by a black object. -*/ -void luaC_barrier_ (lua_State *L, GCObject *o, GCObject *v) { - global_State *g = G(L); - lua_assert(isblack(o) && iswhite(v) && !isdead(g, v) && !isdead(g, o)); - lua_assert(g->gcstate != GCSpause); - lua_assert(gch(o)->tt != LUA_TTABLE); - if (keepinvariantout(g)) /* must keep invariant? */ - reallymarkobject(g, v); /* restore invariant */ - else { /* sweep phase */ - lua_assert(issweepphase(g)); - makewhite(g, o); /* mark main obj. as white to avoid other barriers */ - } -} - - -/* -** barrier that moves collector backward, that is, mark the black object -** pointing to a white object as gray again. (Current implementation -** only works for tables; access to 'gclist' is not uniform across -** different types.) -*/ -void luaC_barrierback_ (lua_State *L, GCObject *o) { - global_State *g = G(L); - lua_assert(isblack(o) && !isdead(g, o) && gch(o)->tt == LUA_TTABLE); - black2gray(o); /* make object gray (again) */ - gco2t(o)->gclist = g->grayagain; - g->grayagain = o; -} - - -/* -** barrier for prototypes. When creating first closure (cache is -** NULL), use a forward barrier; this may be the only closure of the -** prototype (if it is a "regular" function, with a single instance) -** and the prototype may be big, so it is better to avoid traversing -** it again. Otherwise, use a backward barrier, to avoid marking all -** possible instances. -*/ -LUAI_FUNC void luaC_barrierproto_ (lua_State *L, Proto *p, Closure *c) { - global_State *g = G(L); - lua_assert(isblack(obj2gco(p))); - if (p->cache == NULL) { /* first time? */ - luaC_objbarrier(L, p, c); - } - else { /* use a backward barrier */ - black2gray(obj2gco(p)); /* make prototype gray (again) */ - p->gclist = g->grayagain; - g->grayagain = obj2gco(p); - } -} - - -/* -** check color (and invariants) for an upvalue that was closed, -** i.e., moved into the 'allgc' list -*/ -void luaC_checkupvalcolor (global_State *g, UpVal *uv) { - GCObject *o = obj2gco(uv); - lua_assert(!isblack(o)); /* open upvalues are never black */ - if (isgray(o)) { - if (keepinvariant(g)) { - resetoldbit(o); /* see MOVE OLD rule */ - gray2black(o); /* it is being visited now */ - markvalue(g, uv->v); - } - else { - lua_assert(issweepphase(g)); - makewhite(g, o); - } - } -} - - -/* -** create a new collectable object (with given type and size) and link -** it to '*list'. 'offset' tells how many bytes to allocate before the -** object itself (used only by states). -*/ -GCObject *luaC_newobj (lua_State *L, int tt, size_t sz, GCObject **list, - int offset) { - global_State *g = G(L); - char *raw = cast(char *, luaM_newobject(L, novariant(tt), sz)); - GCObject *o = obj2gco(raw + offset); - if (list == NULL) - list = &g->allgc; /* standard list for collectable objects */ - gch(o)->marked = luaC_white(g); - gch(o)->tt = tt; - gch(o)->next = *list; - *list = o; - return o; -} - -/* }====================================================== */ - - - -/* -** {====================================================== -** Mark functions -** ======================================================= -*/ - - -/* -** mark an object. Userdata, strings, and closed upvalues are visited -** and turned black here. Other objects are marked gray and added -** to appropriate list to be visited (and turned black) later. (Open -** upvalues are already linked in 'headuv' list.) -*/ -static void reallymarkobject (global_State *g, GCObject *o) { - lu_mem size; - white2gray(o); - switch (gch(o)->tt) { - case LUA_TSHRSTR: - case LUA_TLNGSTR: { - size = sizestring(gco2ts(o)); - break; /* nothing else to mark; make it black */ - } - case LUA_TUSERDATA: { - Table *mt = gco2u(o)->metatable; - markobject(g, mt); - markobject(g, gco2u(o)->env); - size = sizeudata(gco2u(o)); - break; - } - case LUA_TUPVAL: { - UpVal *uv = gco2uv(o); - markvalue(g, uv->v); - if (uv->v != &uv->u.value) /* open? */ - return; /* open upvalues remain gray */ - size = sizeof(UpVal); - break; - } - case LUA_TLCL: { - gco2lcl(o)->gclist = g->gray; - g->gray = o; - return; - } - case LUA_TCCL: { - gco2ccl(o)->gclist = g->gray; - g->gray = o; - return; - } - case LUA_TTABLE: { - linktable(gco2t(o), &g->gray); - return; - } - case LUA_TTHREAD: { - gco2th(o)->gclist = g->gray; - g->gray = o; - return; - } - case LUA_TPROTO: { - gco2p(o)->gclist = g->gray; - g->gray = o; - return; - } - default: lua_assert(0); return; - } - gray2black(o); - g->GCmemtrav += size; -} - - -/* -** mark metamethods for basic types -*/ -static void markmt (global_State *g) { - int i; - for (i=0; i < LUA_NUMTAGS; i++) - markobject(g, g->mt[i]); -} - - -/* -** mark all objects in list of being-finalized -*/ -static void markbeingfnz (global_State *g) { - GCObject *o; - for (o = g->tobefnz; o != NULL; o = gch(o)->next) { - makewhite(g, o); - reallymarkobject(g, o); - } -} - - -/* -** mark all values stored in marked open upvalues. (See comment in -** 'lstate.h'.) -*/ -static void remarkupvals (global_State *g) { - UpVal *uv; - for (uv = g->uvhead.u.l.next; uv != &g->uvhead; uv = uv->u.l.next) { - if (isgray(obj2gco(uv))) - markvalue(g, uv->v); - } -} - - -/* -** mark root set and reset all gray lists, to start a new -** incremental (or full) collection -*/ -static void restartcollection (global_State *g) { - g->gray = g->grayagain = NULL; - g->weak = g->allweak = g->ephemeron = NULL; - markobject(g, g->mainthread); - markvalue(g, &g->l_registry); - markmt(g); - markbeingfnz(g); /* mark any finalizing object left from previous cycle */ -} - -/* }====================================================== */ - - -/* -** {====================================================== -** Traverse functions -** ======================================================= -*/ - -static void traverseweakvalue (global_State *g, Table *h) { - Node *n, *limit = gnodelast(h); - /* if there is array part, assume it may have white values (do not - traverse it just to check) */ - int hasclears = (h->sizearray > 0); - for (n = gnode(h, 0); n < limit; n++) { - checkdeadkey(n); - if (ttisnil(gval(n))) /* entry is empty? */ - removeentry(n); /* remove it */ - else { - lua_assert(!ttisnil(gkey(n))); - markvalue(g, gkey(n)); /* mark key */ - if (!hasclears && iscleared(g, gval(n))) /* is there a white value? */ - hasclears = 1; /* table will have to be cleared */ - } - } - if (hasclears) - linktable(h, &g->weak); /* has to be cleared later */ - else /* no white values */ - linktable(h, &g->grayagain); /* no need to clean */ -} - - -static int traverseephemeron (global_State *g, Table *h) { - int marked = 0; /* true if an object is marked in this traversal */ - int hasclears = 0; /* true if table has white keys */ - int prop = 0; /* true if table has entry "white-key -> white-value" */ - Node *n, *limit = gnodelast(h); - int i; - /* traverse array part (numeric keys are 'strong') */ - for (i = 0; i < h->sizearray; i++) { - if (valiswhite(&h->array[i])) { - marked = 1; - reallymarkobject(g, gcvalue(&h->array[i])); - } - } - /* traverse hash part */ - for (n = gnode(h, 0); n < limit; n++) { - checkdeadkey(n); - if (ttisnil(gval(n))) /* entry is empty? */ - removeentry(n); /* remove it */ - else if (iscleared(g, gkey(n))) { /* key is not marked (yet)? */ - hasclears = 1; /* table must be cleared */ - if (valiswhite(gval(n))) /* value not marked yet? */ - prop = 1; /* must propagate again */ - } - else if (valiswhite(gval(n))) { /* value not marked yet? */ - marked = 1; - reallymarkobject(g, gcvalue(gval(n))); /* mark it now */ - } - } - if (g->gcstate != GCSatomic || prop) - linktable(h, &g->ephemeron); /* have to propagate again */ - else if (hasclears) /* does table have white keys? */ - linktable(h, &g->allweak); /* may have to clean white keys */ - else /* no white keys */ - linktable(h, &g->grayagain); /* no need to clean */ - return marked; -} - - -static void traversestrongtable (global_State *g, Table *h) { - Node *n, *limit = gnodelast(h); - int i; - for (i = 0; i < h->sizearray; i++) /* traverse array part */ - markvalue(g, &h->array[i]); - for (n = gnode(h, 0); n < limit; n++) { /* traverse hash part */ - checkdeadkey(n); - if (ttisnil(gval(n))) /* entry is empty? */ - removeentry(n); /* remove it */ - else { - lua_assert(!ttisnil(gkey(n))); - markvalue(g, gkey(n)); /* mark key */ - markvalue(g, gval(n)); /* mark value */ - } - } -} - - -static lu_mem traversetable (global_State *g, Table *h) { - const char *weakkey, *weakvalue; - const TValue *mode = gfasttm(g, h->metatable, TM_MODE); - markobject(g, h->metatable); - if (mode && ttisstring(mode) && /* is there a weak mode? */ - ((weakkey = strchr(svalue(mode), 'k')), - (weakvalue = strchr(svalue(mode), 'v')), - (weakkey || weakvalue))) { /* is really weak? */ - black2gray(obj2gco(h)); /* keep table gray */ - if (!weakkey) /* strong keys? */ - traverseweakvalue(g, h); - else if (!weakvalue) /* strong values? */ - traverseephemeron(g, h); - else /* all weak */ - linktable(h, &g->allweak); /* nothing to traverse now */ - } - else /* not weak */ - traversestrongtable(g, h); - return sizeof(Table) + sizeof(TValue) * h->sizearray + - sizeof(Node) * cast(size_t, sizenode(h)); -} - - -static int traverseproto (global_State *g, Proto *f) { - int i; - if (f->cache && iswhite(obj2gco(f->cache))) - f->cache = NULL; /* allow cache to be collected */ - markobject(g, f->source); - for (i = 0; i < f->sizek; i++) /* mark literals */ - markvalue(g, &f->k[i]); - for (i = 0; i < f->sizeupvalues; i++) /* mark upvalue names */ - markobject(g, f->upvalues[i].name); - for (i = 0; i < f->sizep; i++) /* mark nested protos */ - markobject(g, f->p[i]); - for (i = 0; i < f->sizelocvars; i++) /* mark local-variable names */ - markobject(g, f->locvars[i].varname); - return sizeof(Proto) + sizeof(Instruction) * f->sizecode + - sizeof(Proto *) * f->sizep + - sizeof(TValue) * f->sizek + - sizeof(int) * f->sizelineinfo + - sizeof(LocVar) * f->sizelocvars + - sizeof(Upvaldesc) * f->sizeupvalues; -} - - -static lu_mem traverseCclosure (global_State *g, CClosure *cl) { - int i; - for (i = 0; i < cl->nupvalues; i++) /* mark its upvalues */ - markvalue(g, &cl->upvalue[i]); - return sizeCclosure(cl->nupvalues); -} - -static lu_mem traverseLclosure (global_State *g, LClosure *cl) { - int i; - markobject(g, cl->p); /* mark its prototype */ - for (i = 0; i < cl->nupvalues; i++) /* mark its upvalues */ - markobject(g, cl->upvals[i]); - return sizeLclosure(cl->nupvalues); -} - - -static lu_mem traversestack (global_State *g, lua_State *th) { - int n = 0; - StkId o = th->stack; - if (o == NULL) - return 1; /* stack not completely built yet */ - for (; o < th->top; o++) /* mark live elements in the stack */ - markvalue(g, o); - if (g->gcstate == GCSatomic) { /* final traversal? */ - StkId lim = th->stack + th->stacksize; /* real end of stack */ - for (; o < lim; o++) /* clear not-marked stack slice */ - setnilvalue(o); - } - else { /* count call infos to compute size */ - CallInfo *ci; - for (ci = &th->base_ci; ci != th->ci; ci = ci->next) - n++; - } - return sizeof(lua_State) + sizeof(TValue) * th->stacksize + - sizeof(CallInfo) * n; -} - - -/* -** traverse one gray object, turning it to black (except for threads, -** which are always gray). -*/ -static void propagatemark (global_State *g) { - lu_mem size; - GCObject *o = g->gray; - lua_assert(isgray(o)); - gray2black(o); - switch (gch(o)->tt) { - case LUA_TTABLE: { - Table *h = gco2t(o); - g->gray = h->gclist; /* remove from 'gray' list */ - size = traversetable(g, h); - break; - } - case LUA_TLCL: { - LClosure *cl = gco2lcl(o); - g->gray = cl->gclist; /* remove from 'gray' list */ - size = traverseLclosure(g, cl); - break; - } - case LUA_TCCL: { - CClosure *cl = gco2ccl(o); - g->gray = cl->gclist; /* remove from 'gray' list */ - size = traverseCclosure(g, cl); - break; - } - case LUA_TTHREAD: { - lua_State *th = gco2th(o); - g->gray = th->gclist; /* remove from 'gray' list */ - th->gclist = g->grayagain; - g->grayagain = o; /* insert into 'grayagain' list */ - black2gray(o); - size = traversestack(g, th); - break; - } - case LUA_TPROTO: { - Proto *p = gco2p(o); - g->gray = p->gclist; /* remove from 'gray' list */ - size = traverseproto(g, p); - break; - } - default: lua_assert(0); return; - } - g->GCmemtrav += size; -} - - -static void propagateall (global_State *g) { - while (g->gray) propagatemark(g); -} - - -static void propagatelist (global_State *g, GCObject *l) { - lua_assert(g->gray == NULL); /* no grays left */ - g->gray = l; - propagateall(g); /* traverse all elements from 'l' */ -} - -/* -** retraverse all gray lists. Because tables may be reinserted in other -** lists when traversed, traverse the original lists to avoid traversing -** twice the same table (which is not wrong, but inefficient) -*/ -static void retraversegrays (global_State *g) { - GCObject *weak = g->weak; /* save original lists */ - GCObject *grayagain = g->grayagain; - GCObject *ephemeron = g->ephemeron; - g->weak = g->grayagain = g->ephemeron = NULL; - propagateall(g); /* traverse main gray list */ - propagatelist(g, grayagain); - propagatelist(g, weak); - propagatelist(g, ephemeron); -} - - -static void convergeephemerons (global_State *g) { - int changed; - do { - GCObject *w; - GCObject *next = g->ephemeron; /* get ephemeron list */ - g->ephemeron = NULL; /* tables will return to this list when traversed */ - changed = 0; - while ((w = next) != NULL) { - next = gco2t(w)->gclist; - if (traverseephemeron(g, gco2t(w))) { /* traverse marked some value? */ - propagateall(g); /* propagate changes */ - changed = 1; /* will have to revisit all ephemeron tables */ - } - } - } while (changed); -} - -/* }====================================================== */ - - -/* -** {====================================================== -** Sweep Functions -** ======================================================= -*/ - - -/* -** clear entries with unmarked keys from all weaktables in list 'l' up -** to element 'f' -*/ -static void clearkeys (global_State *g, GCObject *l, GCObject *f) { - for (; l != f; l = gco2t(l)->gclist) { - Table *h = gco2t(l); - Node *n, *limit = gnodelast(h); - for (n = gnode(h, 0); n < limit; n++) { - if (!ttisnil(gval(n)) && (iscleared(g, gkey(n)))) { - setnilvalue(gval(n)); /* remove value ... */ - removeentry(n); /* and remove entry from table */ - } - } - } -} - - -/* -** clear entries with unmarked values from all weaktables in list 'l' up -** to element 'f' -*/ -static void clearvalues (global_State *g, GCObject *l, GCObject *f) { - for (; l != f; l = gco2t(l)->gclist) { - Table *h = gco2t(l); - Node *n, *limit = gnodelast(h); - int i; - for (i = 0; i < h->sizearray; i++) { - TValue *o = &h->array[i]; - if (iscleared(g, o)) /* value was collected? */ - setnilvalue(o); /* remove value */ - } - for (n = gnode(h, 0); n < limit; n++) { - if (!ttisnil(gval(n)) && iscleared(g, gval(n))) { - setnilvalue(gval(n)); /* remove value ... */ - removeentry(n); /* and remove entry from table */ - } - } - } -} - - -static void freeobj (lua_State *L, GCObject *o) { - switch (gch(o)->tt) { - case LUA_TPROTO: luaF_freeproto(L, gco2p(o)); break; - case LUA_TLCL: { - luaM_freemem(L, o, sizeLclosure(gco2lcl(o)->nupvalues)); - break; - } - case LUA_TCCL: { - luaM_freemem(L, o, sizeCclosure(gco2ccl(o)->nupvalues)); - break; - } - case LUA_TUPVAL: luaF_freeupval(L, gco2uv(o)); break; - case LUA_TTABLE: luaH_free(L, gco2t(o)); break; - case LUA_TTHREAD: luaE_freethread(L, gco2th(o)); break; - case LUA_TUSERDATA: luaM_freemem(L, o, sizeudata(gco2u(o))); break; - case LUA_TSHRSTR: - G(L)->strt.nuse--; - /* go through */ - case LUA_TLNGSTR: { - luaM_freemem(L, o, sizestring(gco2ts(o))); - break; - } - default: lua_assert(0); - } -} - - -#define sweepwholelist(L,p) sweeplist(L,p,MAX_LUMEM) -static GCObject **sweeplist (lua_State *L, GCObject **p, lu_mem count); - - -/* -** sweep the (open) upvalues of a thread and resize its stack and -** list of call-info structures. -*/ -static void sweepthread (lua_State *L, lua_State *L1) { - if (L1->stack == NULL) return; /* stack not completely built yet */ - sweepwholelist(L, &L1->openupval); /* sweep open upvalues */ - luaE_freeCI(L1); /* free extra CallInfo slots */ - /* should not change the stack during an emergency gc cycle */ - if (G(L)->gckind != KGC_EMERGENCY) - luaD_shrinkstack(L1); -} - - -/* -** sweep at most 'count' elements from a list of GCObjects erasing dead -** objects, where a dead (not alive) object is one marked with the "old" -** (non current) white and not fixed. -** In non-generational mode, change all non-dead objects back to white, -** preparing for next collection cycle. -** In generational mode, keep black objects black, and also mark them as -** old; stop when hitting an old object, as all objects after that -** one will be old too. -** When object is a thread, sweep its list of open upvalues too. -*/ -static GCObject **sweeplist (lua_State *L, GCObject **p, lu_mem count) { - global_State *g = G(L); - int ow = otherwhite(g); - int toclear, toset; /* bits to clear and to set in all live objects */ - int tostop; /* stop sweep when this is true */ - if (isgenerational(g)) { /* generational mode? */ - toclear = ~0; /* clear nothing */ - toset = bitmask(OLDBIT); /* set the old bit of all surviving objects */ - tostop = bitmask(OLDBIT); /* do not sweep old generation */ - } - else { /* normal mode */ - toclear = maskcolors; /* clear all color bits + old bit */ - toset = luaC_white(g); /* make object white */ - tostop = 0; /* do not stop */ - } - while (*p != NULL && count-- > 0) { - GCObject *curr = *p; - int marked = gch(curr)->marked; - if (isdeadm(ow, marked)) { /* is 'curr' dead? */ - *p = gch(curr)->next; /* remove 'curr' from list */ - freeobj(L, curr); /* erase 'curr' */ - } - else { - if (testbits(marked, tostop)) - return NULL; /* stop sweeping this list */ - if (gch(curr)->tt == LUA_TTHREAD) - sweepthread(L, gco2th(curr)); /* sweep thread's upvalues */ - /* update marks */ - gch(curr)->marked = cast_byte((marked & toclear) | toset); - p = &gch(curr)->next; /* go to next element */ - } - } - return (*p == NULL) ? NULL : p; -} - - -/* -** sweep a list until a live object (or end of list) -*/ -static GCObject **sweeptolive (lua_State *L, GCObject **p, int *n) { - GCObject ** old = p; - int i = 0; - do { - i++; - p = sweeplist(L, p, 1); - } while (p == old); - if (n) *n += i; - return p; -} - -/* }====================================================== */ - - -/* -** {====================================================== -** Finalization -** ======================================================= -*/ - -static void checkSizes (lua_State *L) { - global_State *g = G(L); - if (g->gckind != KGC_EMERGENCY) { /* do not change sizes in emergency */ - int hs = g->strt.size / 2; /* half the size of the string table */ - if (g->strt.nuse < cast(lu_int32, hs)) /* using less than that half? */ - luaS_resize(L, hs); /* halve its size */ - luaZ_freebuffer(L, &g->buff); /* free concatenation buffer */ - } -} - - -static GCObject *udata2finalize (global_State *g) { - GCObject *o = g->tobefnz; /* get first element */ - lua_assert(isfinalized(o)); - g->tobefnz = gch(o)->next; /* remove it from 'tobefnz' list */ - gch(o)->next = g->allgc; /* return it to 'allgc' list */ - g->allgc = o; - resetbit(gch(o)->marked, SEPARATED); /* mark that it is not in 'tobefnz' */ - lua_assert(!isold(o)); /* see MOVE OLD rule */ - if (!keepinvariantout(g)) /* not keeping invariant? */ - makewhite(g, o); /* "sweep" object */ - return o; -} - - -static void dothecall (lua_State *L, void *ud) { - UNUSED(ud); - luaD_call(L, L->top - 2, 0, 0); -} - - -static void GCTM (lua_State *L, int propagateerrors) { - global_State *g = G(L); - const TValue *tm; - TValue v; - setgcovalue(L, &v, udata2finalize(g)); - tm = luaT_gettmbyobj(L, &v, TM_GC); - if (tm != NULL && ttisfunction(tm)) { /* is there a finalizer? */ - int status; - lu_byte oldah = L->allowhook; - int running = g->gcrunning; - L->allowhook = 0; /* stop debug hooks during GC metamethod */ - g->gcrunning = 0; /* avoid GC steps */ - setobj2s(L, L->top, tm); /* push finalizer... */ - setobj2s(L, L->top + 1, &v); /* ... and its argument */ - L->top += 2; /* and (next line) call the finalizer */ - status = luaD_pcall(L, dothecall, NULL, savestack(L, L->top - 2), 0); - L->allowhook = oldah; /* restore hooks */ - g->gcrunning = running; /* restore state */ - if (status != LUA_OK && propagateerrors) { /* error while running __gc? */ - if (status == LUA_ERRRUN) { /* is there an error object? */ - const char *msg = (ttisstring(L->top - 1)) - ? svalue(L->top - 1) - : "no message"; - luaO_pushfstring(L, "error in __gc metamethod (%s)", msg); - status = LUA_ERRGCMM; /* error in __gc metamethod */ - } - luaD_throw(L, status); /* re-throw error */ - } - } -} - - -/* -** move all unreachable objects (or 'all' objects) that need -** finalization from list 'finobj' to list 'tobefnz' (to be finalized) -*/ -static void separatetobefnz (lua_State *L, int all) { - global_State *g = G(L); - GCObject **p = &g->finobj; - GCObject *curr; - GCObject **lastnext = &g->tobefnz; - /* find last 'next' field in 'tobefnz' list (to add elements in its end) */ - while (*lastnext != NULL) - lastnext = &gch(*lastnext)->next; - while ((curr = *p) != NULL) { /* traverse all finalizable objects */ - lua_assert(!isfinalized(curr)); - lua_assert(testbit(gch(curr)->marked, SEPARATED)); - if (!(iswhite(curr) || all)) /* not being collected? */ - p = &gch(curr)->next; /* don't bother with it */ - else { - l_setbit(gch(curr)->marked, FINALIZEDBIT); /* won't be finalized again */ - *p = gch(curr)->next; /* remove 'curr' from 'finobj' list */ - gch(curr)->next = *lastnext; /* link at the end of 'tobefnz' list */ - *lastnext = curr; - lastnext = &gch(curr)->next; - } - } -} - - -/* -** if object 'o' has a finalizer, remove it from 'allgc' list (must -** search the list to find it) and link it in 'finobj' list. -*/ -void luaC_checkfinalizer (lua_State *L, GCObject *o, Table *mt) { - global_State *g = G(L); - if (testbit(gch(o)->marked, SEPARATED) || /* obj. is already separated... */ - isfinalized(o) || /* ... or is finalized... */ - gfasttm(g, mt, TM_GC) == NULL) /* or has no finalizer? */ - return; /* nothing to be done */ - else { /* move 'o' to 'finobj' list */ - GCObject **p; - GCheader *ho = gch(o); - if (g->sweepgc == &ho->next) { /* avoid removing current sweep object */ - lua_assert(issweepphase(g)); - g->sweepgc = sweeptolive(L, g->sweepgc, NULL); - } - /* search for pointer pointing to 'o' */ - for (p = &g->allgc; *p != o; p = &gch(*p)->next) { /* empty */ } - *p = ho->next; /* remove 'o' from root list */ - ho->next = g->finobj; /* link it in list 'finobj' */ - g->finobj = o; - l_setbit(ho->marked, SEPARATED); /* mark it as such */ - if (!keepinvariantout(g)) /* not keeping invariant? */ - makewhite(g, o); /* "sweep" object */ - else - resetoldbit(o); /* see MOVE OLD rule */ - } -} - -/* }====================================================== */ - - -/* -** {====================================================== -** GC control -** ======================================================= -*/ - - -/* -** set a reasonable "time" to wait before starting a new GC cycle; -** cycle will start when memory use hits threshold -*/ -static void setpause (global_State *g, l_mem estimate) { - l_mem debt, threshold; - estimate = estimate / PAUSEADJ; /* adjust 'estimate' */ - threshold = (g->gcpause < MAX_LMEM / estimate) /* overflow? */ - ? estimate * g->gcpause /* no overflow */ - : MAX_LMEM; /* overflow; truncate to maximum */ - debt = -cast(l_mem, threshold - gettotalbytes(g)); - luaE_setdebt(g, debt); -} - - -#define sweepphases \ - (bitmask(GCSsweepstring) | bitmask(GCSsweepudata) | bitmask(GCSsweep)) - - -/* -** enter first sweep phase (strings) and prepare pointers for other -** sweep phases. The calls to 'sweeptolive' make pointers point to an -** object inside the list (instead of to the header), so that the real -** sweep do not need to skip objects created between "now" and the start -** of the real sweep. -** Returns how many objects it swept. -*/ -static int entersweep (lua_State *L) { - global_State *g = G(L); - int n = 0; - g->gcstate = GCSsweepstring; - lua_assert(g->sweepgc == NULL && g->sweepfin == NULL); - /* prepare to sweep strings, finalizable objects, and regular objects */ - g->sweepstrgc = 0; - g->sweepfin = sweeptolive(L, &g->finobj, &n); - g->sweepgc = sweeptolive(L, &g->allgc, &n); - return n; -} - - -/* -** change GC mode -*/ -void luaC_changemode (lua_State *L, int mode) { - global_State *g = G(L); - if (mode == g->gckind) return; /* nothing to change */ - if (mode == KGC_GEN) { /* change to generational mode */ - /* make sure gray lists are consistent */ - luaC_runtilstate(L, bitmask(GCSpropagate)); - g->GCestimate = gettotalbytes(g); - g->gckind = KGC_GEN; - } - else { /* change to incremental mode */ - /* sweep all objects to turn them back to white - (as white has not changed, nothing extra will be collected) */ - g->gckind = KGC_NORMAL; - entersweep(L); - luaC_runtilstate(L, ~sweepphases); - } -} - - -/* -** call all pending finalizers -*/ -static void callallpendingfinalizers (lua_State *L, int propagateerrors) { - global_State *g = G(L); - while (g->tobefnz) { - resetoldbit(g->tobefnz); - GCTM(L, propagateerrors); - } -} - - -void luaC_freeallobjects (lua_State *L) { - global_State *g = G(L); - int i; - separatetobefnz(L, 1); /* separate all objects with finalizers */ - lua_assert(g->finobj == NULL); - callallpendingfinalizers(L, 0); - g->currentwhite = WHITEBITS; /* this "white" makes all objects look dead */ - g->gckind = KGC_NORMAL; - sweepwholelist(L, &g->finobj); /* finalizers can create objs. in 'finobj' */ - sweepwholelist(L, &g->allgc); - for (i = 0; i < g->strt.size; i++) /* free all string lists */ - sweepwholelist(L, &g->strt.hash[i]); - lua_assert(g->strt.nuse == 0); -} - - -static l_mem atomic (lua_State *L) { - global_State *g = G(L); - l_mem work = -cast(l_mem, g->GCmemtrav); /* start counting work */ - GCObject *origweak, *origall; - lua_assert(!iswhite(obj2gco(g->mainthread))); - markobject(g, L); /* mark running thread */ - /* registry and global metatables may be changed by API */ - markvalue(g, &g->l_registry); - markmt(g); /* mark basic metatables */ - /* remark occasional upvalues of (maybe) dead threads */ - remarkupvals(g); - propagateall(g); /* propagate changes */ - work += g->GCmemtrav; /* stop counting (do not (re)count grays) */ - /* traverse objects caught by write barrier and by 'remarkupvals' */ - retraversegrays(g); - work -= g->GCmemtrav; /* restart counting */ - convergeephemerons(g); - /* at this point, all strongly accessible objects are marked. */ - /* clear values from weak tables, before checking finalizers */ - clearvalues(g, g->weak, NULL); - clearvalues(g, g->allweak, NULL); - origweak = g->weak; origall = g->allweak; - work += g->GCmemtrav; /* stop counting (objects being finalized) */ - separatetobefnz(L, 0); /* separate objects to be finalized */ - markbeingfnz(g); /* mark objects that will be finalized */ - propagateall(g); /* remark, to propagate `preserveness' */ - work -= g->GCmemtrav; /* restart counting */ - convergeephemerons(g); - /* at this point, all resurrected objects are marked. */ - /* remove dead objects from weak tables */ - clearkeys(g, g->ephemeron, NULL); /* clear keys from all ephemeron tables */ - clearkeys(g, g->allweak, NULL); /* clear keys from all allweak tables */ - /* clear values from resurrected weak tables */ - clearvalues(g, g->weak, origweak); - clearvalues(g, g->allweak, origall); - g->currentwhite = cast_byte(otherwhite(g)); /* flip current white */ - work += g->GCmemtrav; /* complete counting */ - return work; /* estimate of memory marked by 'atomic' */ -} - - -static lu_mem singlestep (lua_State *L) { - global_State *g = G(L); - switch (g->gcstate) { - case GCSpause: { - /* start to count memory traversed */ - g->GCmemtrav = g->strt.size * sizeof(GCObject*); - lua_assert(!isgenerational(g)); - restartcollection(g); - g->gcstate = GCSpropagate; - return g->GCmemtrav; - } - case GCSpropagate: { - if (g->gray) { - lu_mem oldtrav = g->GCmemtrav; - propagatemark(g); - return g->GCmemtrav - oldtrav; /* memory traversed in this step */ - } - else { /* no more `gray' objects */ - lu_mem work; - int sw; - g->gcstate = GCSatomic; /* finish mark phase */ - g->GCestimate = g->GCmemtrav; /* save what was counted */; - work = atomic(L); /* add what was traversed by 'atomic' */ - g->GCestimate += work; /* estimate of total memory traversed */ - sw = entersweep(L); - return work + sw * GCSWEEPCOST; - } - } - case GCSsweepstring: { - int i; - for (i = 0; i < GCSWEEPMAX && g->sweepstrgc + i < g->strt.size; i++) - sweepwholelist(L, &g->strt.hash[g->sweepstrgc + i]); - g->sweepstrgc += i; - if (g->sweepstrgc >= g->strt.size) /* no more strings to sweep? */ - g->gcstate = GCSsweepudata; - return i * GCSWEEPCOST; - } - case GCSsweepudata: { - if (g->sweepfin) { - g->sweepfin = sweeplist(L, g->sweepfin, GCSWEEPMAX); - return GCSWEEPMAX*GCSWEEPCOST; - } - else { - g->gcstate = GCSsweep; - return 0; - } - } - case GCSsweep: { - if (g->sweepgc) { - g->sweepgc = sweeplist(L, g->sweepgc, GCSWEEPMAX); - return GCSWEEPMAX*GCSWEEPCOST; - } - else { - /* sweep main thread */ - GCObject *mt = obj2gco(g->mainthread); - sweeplist(L, &mt, 1); - checkSizes(L); - g->gcstate = GCSpause; /* finish collection */ - return GCSWEEPCOST; - } - } - default: lua_assert(0); return 0; - } -} - - -/* -** advances the garbage collector until it reaches a state allowed -** by 'statemask' -*/ -void luaC_runtilstate (lua_State *L, int statesmask) { - global_State *g = G(L); - while (!testbit(statesmask, g->gcstate)) - singlestep(L); -} - - -static void generationalcollection (lua_State *L) { - global_State *g = G(L); - lua_assert(g->gcstate == GCSpropagate); - if (g->GCestimate == 0) { /* signal for another major collection? */ - luaC_fullgc(L, 0); /* perform a full regular collection */ - g->GCestimate = gettotalbytes(g); /* update control */ - } - else { - lu_mem estimate = g->GCestimate; - luaC_runtilstate(L, bitmask(GCSpause)); /* run complete (minor) cycle */ - g->gcstate = GCSpropagate; /* skip restart */ - if (gettotalbytes(g) > (estimate / 100) * g->gcmajorinc) - g->GCestimate = 0; /* signal for a major collection */ - else - g->GCestimate = estimate; /* keep estimate from last major coll. */ - - } - setpause(g, gettotalbytes(g)); - lua_assert(g->gcstate == GCSpropagate); -} - - -static void incstep (lua_State *L) { - global_State *g = G(L); - l_mem debt = g->GCdebt; - int stepmul = g->gcstepmul; - if (stepmul < 40) stepmul = 40; /* avoid ridiculous low values (and 0) */ - /* convert debt from Kb to 'work units' (avoid zero debt and overflows) */ - debt = (debt / STEPMULADJ) + 1; - debt = (debt < MAX_LMEM / stepmul) ? debt * stepmul : MAX_LMEM; - do { /* always perform at least one single step */ - lu_mem work = singlestep(L); /* do some work */ - debt -= work; - } while (debt > -GCSTEPSIZE && g->gcstate != GCSpause); - if (g->gcstate == GCSpause) - setpause(g, g->GCestimate); /* pause until next cycle */ - else { - debt = (debt / stepmul) * STEPMULADJ; /* convert 'work units' to Kb */ - luaE_setdebt(g, debt); - } -} - - -/* -** performs a basic GC step -*/ -void luaC_forcestep (lua_State *L) { - global_State *g = G(L); - int i; - if (isgenerational(g)) generationalcollection(L); - else incstep(L); - /* run a few finalizers (or all of them at the end of a collect cycle) */ - for (i = 0; g->tobefnz && (i < GCFINALIZENUM || g->gcstate == GCSpause); i++) - GCTM(L, 1); /* call one finalizer */ -} - - -/* -** performs a basic GC step only if collector is running -*/ -void luaC_step (lua_State *L) { - global_State *g = G(L); - if (g->gcrunning) luaC_forcestep(L); - else luaE_setdebt(g, -GCSTEPSIZE); /* avoid being called too often */ -} - - - -/* -** performs a full GC cycle; if "isemergency", does not call -** finalizers (which could change stack positions) -*/ -void luaC_fullgc (lua_State *L, int isemergency) { - global_State *g = G(L); - int origkind = g->gckind; - lua_assert(origkind != KGC_EMERGENCY); - if (isemergency) /* do not run finalizers during emergency GC */ - g->gckind = KGC_EMERGENCY; - else { - g->gckind = KGC_NORMAL; - callallpendingfinalizers(L, 1); - } - if (keepinvariant(g)) { /* may there be some black objects? */ - /* must sweep all objects to turn them back to white - (as white has not changed, nothing will be collected) */ - entersweep(L); - } - /* finish any pending sweep phase to start a new cycle */ - luaC_runtilstate(L, bitmask(GCSpause)); - luaC_runtilstate(L, ~bitmask(GCSpause)); /* start new collection */ - luaC_runtilstate(L, bitmask(GCSpause)); /* run entire collection */ - if (origkind == KGC_GEN) { /* generational mode? */ - /* generational mode must be kept in propagate phase */ - luaC_runtilstate(L, bitmask(GCSpropagate)); - } - g->gckind = origkind; - setpause(g, gettotalbytes(g)); - if (!isemergency) /* do not run finalizers during emergency GC */ - callallpendingfinalizers(L, 1); -} - -/* }====================================================== */ - - diff --git a/source/libs/lua52/lua52-src/src/lgc.h b/source/libs/lua52/lua52-src/src/lgc.h deleted file mode 100644 index 84bb1cdf99fac4ac5a951c7a5353a1febb3126e5..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lgc.h +++ /dev/null @@ -1,157 +0,0 @@ -/* -** $Id: lgc.h,v 2.58.1.1 2013/04/12 18:48:47 roberto Exp $ -** Garbage Collector -** See Copyright Notice in lua.h -*/ - -#ifndef lgc_h -#define lgc_h - - -#include "lobject.h" -#include "lstate.h" - -/* -** Collectable objects may have one of three colors: white, which -** means the object is not marked; gray, which means the -** object is marked, but its references may be not marked; and -** black, which means that the object and all its references are marked. -** The main invariant of the garbage collector, while marking objects, -** is that a black object can never point to a white one. Moreover, -** any gray object must be in a "gray list" (gray, grayagain, weak, -** allweak, ephemeron) so that it can be visited again before finishing -** the collection cycle. These lists have no meaning when the invariant -** is not being enforced (e.g., sweep phase). -*/ - - - -/* how much to allocate before next GC step */ -#if !defined(GCSTEPSIZE) -/* ~100 small strings */ -#define GCSTEPSIZE (cast_int(100 * sizeof(TString))) -#endif - - -/* -** Possible states of the Garbage Collector -*/ -#define GCSpropagate 0 -#define GCSatomic 1 -#define GCSsweepstring 2 -#define GCSsweepudata 3 -#define GCSsweep 4 -#define GCSpause 5 - - -#define issweepphase(g) \ - (GCSsweepstring <= (g)->gcstate && (g)->gcstate <= GCSsweep) - -#define isgenerational(g) ((g)->gckind == KGC_GEN) - -/* -** macros to tell when main invariant (white objects cannot point to black -** ones) must be kept. During a non-generational collection, the sweep -** phase may break the invariant, as objects turned white may point to -** still-black objects. The invariant is restored when sweep ends and -** all objects are white again. During a generational collection, the -** invariant must be kept all times. -*/ - -#define keepinvariant(g) (isgenerational(g) || g->gcstate <= GCSatomic) - - -/* -** Outside the collector, the state in generational mode is kept in -** 'propagate', so 'keepinvariant' is always true. -*/ -#define keepinvariantout(g) \ - check_exp(g->gcstate == GCSpropagate || !isgenerational(g), \ - g->gcstate <= GCSatomic) - - -/* -** some useful bit tricks -*/ -#define resetbits(x,m) ((x) &= cast(lu_byte, ~(m))) -#define setbits(x,m) ((x) |= (m)) -#define testbits(x,m) ((x) & (m)) -#define bitmask(b) (1<<(b)) -#define bit2mask(b1,b2) (bitmask(b1) | bitmask(b2)) -#define l_setbit(x,b) setbits(x, bitmask(b)) -#define resetbit(x,b) resetbits(x, bitmask(b)) -#define testbit(x,b) testbits(x, bitmask(b)) - - -/* Layout for bit use in `marked' field: */ -#define WHITE0BIT 0 /* object is white (type 0) */ -#define WHITE1BIT 1 /* object is white (type 1) */ -#define BLACKBIT 2 /* object is black */ -#define FINALIZEDBIT 3 /* object has been separated for finalization */ -#define SEPARATED 4 /* object is in 'finobj' list or in 'tobefnz' */ -#define FIXEDBIT 5 /* object is fixed (should not be collected) */ -#define OLDBIT 6 /* object is old (only in generational mode) */ -/* bit 7 is currently used by tests (luaL_checkmemory) */ - -#define WHITEBITS bit2mask(WHITE0BIT, WHITE1BIT) - - -#define iswhite(x) testbits((x)->gch.marked, WHITEBITS) -#define isblack(x) testbit((x)->gch.marked, BLACKBIT) -#define isgray(x) /* neither white nor black */ \ - (!testbits((x)->gch.marked, WHITEBITS | bitmask(BLACKBIT))) - -#define isold(x) testbit((x)->gch.marked, OLDBIT) - -/* MOVE OLD rule: whenever an object is moved to the beginning of - a GC list, its old bit must be cleared */ -#define resetoldbit(o) resetbit((o)->gch.marked, OLDBIT) - -#define otherwhite(g) (g->currentwhite ^ WHITEBITS) -#define isdeadm(ow,m) (!(((m) ^ WHITEBITS) & (ow))) -#define isdead(g,v) isdeadm(otherwhite(g), (v)->gch.marked) - -#define changewhite(x) ((x)->gch.marked ^= WHITEBITS) -#define gray2black(x) l_setbit((x)->gch.marked, BLACKBIT) - -#define valiswhite(x) (iscollectable(x) && iswhite(gcvalue(x))) - -#define luaC_white(g) cast(lu_byte, (g)->currentwhite & WHITEBITS) - - -#define luaC_condGC(L,c) \ - {if (G(L)->GCdebt > 0) {c;}; condchangemem(L);} -#define luaC_checkGC(L) luaC_condGC(L, luaC_step(L);) - - -#define luaC_barrier(L,p,v) { if (valiswhite(v) && isblack(obj2gco(p))) \ - luaC_barrier_(L,obj2gco(p),gcvalue(v)); } - -#define luaC_barrierback(L,p,v) { if (valiswhite(v) && isblack(obj2gco(p))) \ - luaC_barrierback_(L,p); } - -#define luaC_objbarrier(L,p,o) \ - { if (iswhite(obj2gco(o)) && isblack(obj2gco(p))) \ - luaC_barrier_(L,obj2gco(p),obj2gco(o)); } - -#define luaC_objbarrierback(L,p,o) \ - { if (iswhite(obj2gco(o)) && isblack(obj2gco(p))) luaC_barrierback_(L,p); } - -#define luaC_barrierproto(L,p,c) \ - { if (isblack(obj2gco(p))) luaC_barrierproto_(L,p,c); } - -LUAI_FUNC void luaC_freeallobjects (lua_State *L); -LUAI_FUNC void luaC_step (lua_State *L); -LUAI_FUNC void luaC_forcestep (lua_State *L); -LUAI_FUNC void luaC_runtilstate (lua_State *L, int statesmask); -LUAI_FUNC void luaC_fullgc (lua_State *L, int isemergency); -LUAI_FUNC GCObject *luaC_newobj (lua_State *L, int tt, size_t sz, - GCObject **list, int offset); -LUAI_FUNC void luaC_barrier_ (lua_State *L, GCObject *o, GCObject *v); -LUAI_FUNC void luaC_barrierback_ (lua_State *L, GCObject *o); -LUAI_FUNC void luaC_barrierproto_ (lua_State *L, Proto *p, Closure *c); -LUAI_FUNC void luaC_checkfinalizer (lua_State *L, GCObject *o, Table *mt); -LUAI_FUNC void luaC_checkupvalcolor (global_State *g, UpVal *uv); -LUAI_FUNC void luaC_changemode (lua_State *L, int mode); - -#endif diff --git a/source/libs/lua52/lua52-src/src/linit.c b/source/libs/lua52/lua52-src/src/linit.c deleted file mode 100644 index c1a383047115df26c06eb5767b24deeac354a8b3..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/linit.c +++ /dev/null @@ -1,67 +0,0 @@ -/* -** $Id: linit.c,v 1.32.1.1 2013/04/12 18:48:47 roberto Exp $ -** Initialization of libraries for lua.c and other clients -** See Copyright Notice in lua.h -*/ - - -/* -** If you embed Lua in your program and need to open the standard -** libraries, call luaL_openlibs in your program. If you need a -** different set of libraries, copy this file to your project and edit -** it to suit your needs. -*/ - - -#define linit_c -#define LUA_LIB - -#include "lua.h" - -#include "lualib.h" -#include "lauxlib.h" - - -/* -** these libs are loaded by lua.c and are readily available to any Lua -** program -*/ -static const luaL_Reg loadedlibs[] = { - {"_G", luaopen_base}, - {LUA_LOADLIBNAME, luaopen_package}, - {LUA_COLIBNAME, luaopen_coroutine}, - {LUA_TABLIBNAME, luaopen_table}, - {LUA_IOLIBNAME, luaopen_io}, - {LUA_OSLIBNAME, luaopen_os}, - {LUA_STRLIBNAME, luaopen_string}, - {LUA_BITLIBNAME, luaopen_bit32}, - {LUA_MATHLIBNAME, luaopen_math}, - {LUA_DBLIBNAME, luaopen_debug}, - {NULL, NULL} -}; - - -/* -** these libs are preloaded and must be required before used -*/ -static const luaL_Reg preloadedlibs[] = { - {NULL, NULL} -}; - - -LUALIB_API void luaL_openlibs (lua_State *L) { - const luaL_Reg *lib; - /* call open functions from 'loadedlibs' and set results to global table */ - for (lib = loadedlibs; lib->func; lib++) { - luaL_requiref(L, lib->name, lib->func, 1); - lua_pop(L, 1); /* remove lib */ - } - /* add open functions from 'preloadedlibs' into 'package.preload' table */ - luaL_getsubtable(L, LUA_REGISTRYINDEX, "_PRELOAD"); - for (lib = preloadedlibs; lib->func; lib++) { - lua_pushcfunction(L, lib->func); - lua_setfield(L, -2, lib->name); - } - lua_pop(L, 1); /* remove _PRELOAD table */ -} - diff --git a/source/libs/lua52/lua52-src/src/liolib.c b/source/libs/lua52/lua52-src/src/liolib.c deleted file mode 100644 index 481630101c014da172abf3ba413f754d2ffb7ba7..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/liolib.c +++ /dev/null @@ -1,669 +0,0 @@ -/* -** $Id: liolib.c,v 2.112.1.1 2013/04/12 18:48:47 roberto Exp $ -** Standard I/O (and system) library -** See Copyright Notice in lua.h -*/ - - -/* -** This definition must come before the inclusion of 'stdio.h'; it -** should not affect non-POSIX systems -*/ -#if !defined(_FILE_OFFSET_BITS) -#define _LARGEFILE_SOURCE 1 -#define _FILE_OFFSET_BITS 64 -#endif - - -#include <errno.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#if defined(HAVE_UNISTD_H) -#include <unistd.h> -#endif - -#define liolib_c -#define LUA_LIB - -#include "lua.h" - -#include "lauxlib.h" -#include "lualib.h" - - -#if !defined(lua_checkmode) - -/* -** Check whether 'mode' matches '[rwa]%+?b?'. -** Change this macro to accept other modes for 'fopen' besides -** the standard ones. -*/ -#define lua_checkmode(mode) \ - (*mode != '\0' && strchr("rwa", *(mode++)) != NULL && \ - (*mode != '+' || ++mode) && /* skip if char is '+' */ \ - (*mode != 'b' || ++mode) && /* skip if char is 'b' */ \ - (*mode == '\0')) - -#endif - -/* -** {====================================================== -** lua_popen spawns a new process connected to the current -** one through the file streams. -** ======================================================= -*/ - -#if !defined(lua_popen) /* { */ - -#if defined(LUA_USE_POPEN) /* { */ - -#define lua_popen(L,c,m) ((void)L, fflush(NULL), popen(c,m)) -#define lua_pclose(L,file) ((void)L, pclose(file)) - -#elif defined(LUA_WIN) /* }{ */ - -#define lua_popen(L,c,m) ((void)L, _popen(c,m)) -#define lua_pclose(L,file) ((void)L, _pclose(file)) - - -#else /* }{ */ - -#define lua_popen(L,c,m) ((void)((void)c, m), \ - luaL_error(L, LUA_QL("popen") " not supported"), (FILE*)0) -#define lua_pclose(L,file) ((void)((void)L, file), -1) - - -#endif /* } */ - -#endif /* } */ - -/* }====================================================== */ - - -/* -** {====================================================== -** lua_fseek: configuration for longer offsets -** ======================================================= -*/ - -#if !defined(lua_fseek) && !defined(LUA_ANSI) /* { */ - -#if defined(LUA_USE_POSIX) /* { */ - -#define l_fseek(f,o,w) fseeko(f,o,w) -#define l_ftell(f) ftello(f) -#define l_seeknum off_t - -#elif defined(LUA_WIN) && !defined(_CRTIMP_TYPEINFO) \ - && defined(_MSC_VER) && (_MSC_VER >= 1400) /* }{ */ -/* Windows (but not DDK) and Visual C++ 2005 or higher */ - -#define l_fseek(f,o,w) _fseeki64(f,o,w) -#define l_ftell(f) _ftelli64(f) -#define l_seeknum __int64 - -#endif /* } */ - -#endif /* } */ - - -#if !defined(l_fseek) /* default definitions */ -#define l_fseek(f,o,w) fseek(f,o,w) -#define l_ftell(f) ftell(f) -#define l_seeknum long -#endif - -/* }====================================================== */ - - -#define IO_PREFIX "_IO_" -#define IO_INPUT (IO_PREFIX "input") -#define IO_OUTPUT (IO_PREFIX "output") - - -typedef luaL_Stream LStream; - - -#define tolstream(L) ((LStream *)luaL_checkudata(L, 1, LUA_FILEHANDLE)) - -#define isclosed(p) ((p)->closef == NULL) - - -static int io_type (lua_State *L) { - LStream *p; - luaL_checkany(L, 1); - p = (LStream *)luaL_testudata(L, 1, LUA_FILEHANDLE); - if (p == NULL) - lua_pushnil(L); /* not a file */ - else if (isclosed(p)) - lua_pushliteral(L, "closed file"); - else - lua_pushliteral(L, "file"); - return 1; -} - - -static int f_tostring (lua_State *L) { - LStream *p = tolstream(L); - if (isclosed(p)) - lua_pushliteral(L, "file (closed)"); - else - lua_pushfstring(L, "file (%p)", p->f); - return 1; -} - - -static FILE *tofile (lua_State *L) { - LStream *p = tolstream(L); - if (isclosed(p)) - luaL_error(L, "attempt to use a closed file"); - lua_assert(p->f); - return p->f; -} - - -/* -** When creating file handles, always creates a `closed' file handle -** before opening the actual file; so, if there is a memory error, the -** file is not left opened. -*/ -static LStream *newprefile (lua_State *L) { - LStream *p = (LStream *)lua_newuserdata(L, sizeof(LStream)); - p->closef = NULL; /* mark file handle as 'closed' */ - luaL_setmetatable(L, LUA_FILEHANDLE); - return p; -} - - -static int aux_close (lua_State *L) { - LStream *p = tolstream(L); - lua_CFunction cf = p->closef; - p->closef = NULL; /* mark stream as closed */ - return (*cf)(L); /* close it */ -} - - -static int io_close (lua_State *L) { - if (lua_isnone(L, 1)) /* no argument? */ - lua_getfield(L, LUA_REGISTRYINDEX, IO_OUTPUT); /* use standard output */ - tofile(L); /* make sure argument is an open stream */ - return aux_close(L); -} - - -static int f_gc (lua_State *L) { - LStream *p = tolstream(L); - if (!isclosed(p) && p->f != NULL) - aux_close(L); /* ignore closed and incompletely open files */ - return 0; -} - - -/* -** function to close regular files -*/ -static int io_fclose (lua_State *L) { - LStream *p = tolstream(L); - int res = fclose(p->f); - return luaL_fileresult(L, (res == 0), NULL); -} - - -static LStream *newfile (lua_State *L) { - LStream *p = newprefile(L); - p->f = NULL; - p->closef = &io_fclose; - return p; -} - - -static void opencheck (lua_State *L, const char *fname, const char *mode) { - LStream *p = newfile(L); - p->f = fopen(fname, mode); - if (p->f == NULL) - luaL_error(L, "cannot open file " LUA_QS " (%s)", fname, strerror(errno)); -} - - -static int io_open (lua_State *L) { - const char *filename = luaL_checkstring(L, 1); - const char *mode = luaL_optstring(L, 2, "r"); - LStream *p = newfile(L); - const char *md = mode; /* to traverse/check mode */ - luaL_argcheck(L, lua_checkmode(md), 2, "invalid mode"); - p->f = fopen(filename, mode); - return (p->f == NULL) ? luaL_fileresult(L, 0, filename) : 1; -} - - -/* -** function to close 'popen' files -*/ -static int io_pclose (lua_State *L) { - LStream *p = tolstream(L); - return luaL_execresult(L, lua_pclose(L, p->f)); -} - - -static int io_popen (lua_State *L) { - const char *filename = luaL_checkstring(L, 1); - const char *mode = luaL_optstring(L, 2, "r"); - LStream *p = newprefile(L); - p->f = lua_popen(L, filename, mode); - p->closef = &io_pclose; - return (p->f == NULL) ? luaL_fileresult(L, 0, filename) : 1; -} - - -static int io_tmpfile (lua_State *L) { - LStream *p = newfile(L); - p->f = tmpfile(); - return (p->f == NULL) ? luaL_fileresult(L, 0, NULL) : 1; -} - - -static FILE *getiofile (lua_State *L, const char *findex) { - LStream *p; - lua_getfield(L, LUA_REGISTRYINDEX, findex); - p = (LStream *)lua_touserdata(L, -1); - if (isclosed(p)) - luaL_error(L, "standard %s file is closed", findex + strlen(IO_PREFIX)); - return p->f; -} - - -static int g_iofile (lua_State *L, const char *f, const char *mode) { - if (!lua_isnoneornil(L, 1)) { - const char *filename = lua_tostring(L, 1); - if (filename) - opencheck(L, filename, mode); - else { - tofile(L); /* check that it's a valid file handle */ - lua_pushvalue(L, 1); - } - lua_setfield(L, LUA_REGISTRYINDEX, f); - } - /* return current value */ - lua_getfield(L, LUA_REGISTRYINDEX, f); - return 1; -} - - -static int io_input (lua_State *L) { - return g_iofile(L, IO_INPUT, "r"); -} - - -static int io_output (lua_State *L) { - return g_iofile(L, IO_OUTPUT, "w"); -} - - -static int io_readline (lua_State *L); - - -static void aux_lines (lua_State *L, int toclose) { - int i; - int n = lua_gettop(L) - 1; /* number of arguments to read */ - /* ensure that arguments will fit here and into 'io_readline' stack */ - luaL_argcheck(L, n <= LUA_MINSTACK - 3, LUA_MINSTACK - 3, "too many options"); - lua_pushvalue(L, 1); /* file handle */ - lua_pushinteger(L, n); /* number of arguments to read */ - lua_pushboolean(L, toclose); /* close/not close file when finished */ - for (i = 1; i <= n; i++) lua_pushvalue(L, i + 1); /* copy arguments */ - lua_pushcclosure(L, io_readline, 3 + n); -} - - -static int f_lines (lua_State *L) { - tofile(L); /* check that it's a valid file handle */ - aux_lines(L, 0); - return 1; -} - - -static int io_lines (lua_State *L) { - int toclose; - if (lua_isnone(L, 1)) lua_pushnil(L); /* at least one argument */ - if (lua_isnil(L, 1)) { /* no file name? */ - lua_getfield(L, LUA_REGISTRYINDEX, IO_INPUT); /* get default input */ - lua_replace(L, 1); /* put it at index 1 */ - tofile(L); /* check that it's a valid file handle */ - toclose = 0; /* do not close it after iteration */ - } - else { /* open a new file */ - const char *filename = luaL_checkstring(L, 1); - opencheck(L, filename, "r"); - lua_replace(L, 1); /* put file at index 1 */ - toclose = 1; /* close it after iteration */ - } - aux_lines(L, toclose); - return 1; -} - - -/* -** {====================================================== -** READ -** ======================================================= -*/ - - -static int read_number (lua_State *L, FILE *f) { - lua_Number d; - if (fscanf(f, LUA_NUMBER_SCAN, &d) == 1) { - lua_pushnumber(L, d); - return 1; - } - else { - lua_pushnil(L); /* "result" to be removed */ - return 0; /* read fails */ - } -} - - -static int test_eof (lua_State *L, FILE *f) { - int c = getc(f); - ungetc(c, f); - lua_pushlstring(L, NULL, 0); - return (c != EOF); -} - - -static int read_line (lua_State *L, FILE *f, int chop) { - luaL_Buffer b; - luaL_buffinit(L, &b); - for (;;) { - size_t l; - char *p = luaL_prepbuffer(&b); - if (fgets(p, LUAL_BUFFERSIZE, f) == NULL) { /* eof? */ - luaL_pushresult(&b); /* close buffer */ - return (lua_rawlen(L, -1) > 0); /* check whether read something */ - } - l = strlen(p); - if (l == 0 || p[l-1] != '\n') - luaL_addsize(&b, l); - else { - luaL_addsize(&b, l - chop); /* chop 'eol' if needed */ - luaL_pushresult(&b); /* close buffer */ - return 1; /* read at least an `eol' */ - } - } -} - - -#define MAX_SIZE_T (~(size_t)0) - -static void read_all (lua_State *L, FILE *f) { - size_t rlen = LUAL_BUFFERSIZE; /* how much to read in each cycle */ - luaL_Buffer b; - luaL_buffinit(L, &b); - for (;;) { - char *p = luaL_prepbuffsize(&b, rlen); - size_t nr = fread(p, sizeof(char), rlen, f); - luaL_addsize(&b, nr); - if (nr < rlen) break; /* eof? */ - else if (rlen <= (MAX_SIZE_T / 4)) /* avoid buffers too large */ - rlen *= 2; /* double buffer size at each iteration */ - } - luaL_pushresult(&b); /* close buffer */ -} - - -static int read_chars (lua_State *L, FILE *f, size_t n) { - size_t nr; /* number of chars actually read */ - char *p; - luaL_Buffer b; - luaL_buffinit(L, &b); - p = luaL_prepbuffsize(&b, n); /* prepare buffer to read whole block */ - nr = fread(p, sizeof(char), n, f); /* try to read 'n' chars */ - luaL_addsize(&b, nr); - luaL_pushresult(&b); /* close buffer */ - return (nr > 0); /* true iff read something */ -} - - -static int g_read (lua_State *L, FILE *f, int first) { - int nargs = lua_gettop(L) - 1; - int success; - int n; - clearerr(f); - if (nargs == 0) { /* no arguments? */ - success = read_line(L, f, 1); - n = first+1; /* to return 1 result */ - } - else { /* ensure stack space for all results and for auxlib's buffer */ - luaL_checkstack(L, nargs+LUA_MINSTACK, "too many arguments"); - success = 1; - for (n = first; nargs-- && success; n++) { - if (lua_type(L, n) == LUA_TNUMBER) { - size_t l = (size_t)lua_tointeger(L, n); - success = (l == 0) ? test_eof(L, f) : read_chars(L, f, l); - } - else { - const char *p = lua_tostring(L, n); - luaL_argcheck(L, p && p[0] == '*', n, "invalid option"); - switch (p[1]) { - case 'n': /* number */ - success = read_number(L, f); - break; - case 'l': /* line */ - success = read_line(L, f, 1); - break; - case 'L': /* line with end-of-line */ - success = read_line(L, f, 0); - break; - case 'a': /* file */ - read_all(L, f); /* read entire file */ - success = 1; /* always success */ - break; - default: - return luaL_argerror(L, n, "invalid format"); - } - } - } - } - if (ferror(f)) - return luaL_fileresult(L, 0, NULL); - if (!success) { - lua_pop(L, 1); /* remove last result */ - lua_pushnil(L); /* push nil instead */ - } - return n - first; -} - - -static int io_read (lua_State *L) { - return g_read(L, getiofile(L, IO_INPUT), 1); -} - - -static int f_read (lua_State *L) { - return g_read(L, tofile(L), 2); -} - - -static int io_readline (lua_State *L) { - LStream *p = (LStream *)lua_touserdata(L, lua_upvalueindex(1)); - int i; - int n = (int)lua_tointeger(L, lua_upvalueindex(2)); - if (isclosed(p)) /* file is already closed? */ - return luaL_error(L, "file is already closed"); - lua_settop(L , 1); - for (i = 1; i <= n; i++) /* push arguments to 'g_read' */ - lua_pushvalue(L, lua_upvalueindex(3 + i)); - n = g_read(L, p->f, 2); /* 'n' is number of results */ - lua_assert(n > 0); /* should return at least a nil */ - if (!lua_isnil(L, -n)) /* read at least one value? */ - return n; /* return them */ - else { /* first result is nil: EOF or error */ - if (n > 1) { /* is there error information? */ - /* 2nd result is error message */ - return luaL_error(L, "%s", lua_tostring(L, -n + 1)); - } - if (lua_toboolean(L, lua_upvalueindex(3))) { /* generator created file? */ - lua_settop(L, 0); - lua_pushvalue(L, lua_upvalueindex(1)); - aux_close(L); /* close it */ - } - return 0; - } -} - -/* }====================================================== */ - - -static int g_write (lua_State *L, FILE *f, int arg) { - int nargs = lua_gettop(L) - arg; - int status = 1; - for (; nargs--; arg++) { - if (lua_type(L, arg) == LUA_TNUMBER) { - /* optimization: could be done exactly as for strings */ - status = status && - fprintf(f, LUA_NUMBER_FMT, lua_tonumber(L, arg)) > 0; - } - else { - size_t l; - const char *s = luaL_checklstring(L, arg, &l); - status = status && (fwrite(s, sizeof(char), l, f) == l); - } - } - if (status) return 1; /* file handle already on stack top */ - else return luaL_fileresult(L, status, NULL); -} - - -static int io_write (lua_State *L) { - return g_write(L, getiofile(L, IO_OUTPUT), 1); -} - - -static int f_write (lua_State *L) { - FILE *f = tofile(L); - lua_pushvalue(L, 1); /* push file at the stack top (to be returned) */ - return g_write(L, f, 2); -} - - -static int f_seek (lua_State *L) { - static const int mode[] = {SEEK_SET, SEEK_CUR, SEEK_END}; - static const char *const modenames[] = {"set", "cur", "end", NULL}; - FILE *f = tofile(L); - int op = luaL_checkoption(L, 2, "cur", modenames); - lua_Number p3 = luaL_optnumber(L, 3, 0); - l_seeknum offset = (l_seeknum)p3; - luaL_argcheck(L, (lua_Number)offset == p3, 3, - "not an integer in proper range"); - op = l_fseek(f, offset, mode[op]); - if (op) - return luaL_fileresult(L, 0, NULL); /* error */ - else { - lua_pushnumber(L, (lua_Number)l_ftell(f)); - return 1; - } -} - - -static int f_setvbuf (lua_State *L) { - static const int mode[] = {_IONBF, _IOFBF, _IOLBF}; - static const char *const modenames[] = {"no", "full", "line", NULL}; - FILE *f = tofile(L); - int op = luaL_checkoption(L, 2, NULL, modenames); - lua_Integer sz = luaL_optinteger(L, 3, LUAL_BUFFERSIZE); - int res = setvbuf(f, NULL, mode[op], sz); - return luaL_fileresult(L, res == 0, NULL); -} - - - -static int io_flush (lua_State *L) { - return luaL_fileresult(L, fflush(getiofile(L, IO_OUTPUT)) == 0, NULL); -} - - -static int f_flush (lua_State *L) { - return luaL_fileresult(L, fflush(tofile(L)) == 0, NULL); -} - - -/* -** functions for 'io' library -*/ -static const luaL_Reg iolib[] = { - {"close", io_close}, - {"flush", io_flush}, - {"input", io_input}, - {"lines", io_lines}, - {"open", io_open}, - {"output", io_output}, - {"popen", io_popen}, - {"read", io_read}, - {"tmpfile", io_tmpfile}, - {"type", io_type}, - {"write", io_write}, - {NULL, NULL} -}; - - -/* -** methods for file handles -*/ -static const luaL_Reg flib[] = { - {"close", io_close}, - {"flush", f_flush}, - {"lines", f_lines}, - {"read", f_read}, - {"seek", f_seek}, - {"setvbuf", f_setvbuf}, - {"write", f_write}, - {"__gc", f_gc}, - {"__tostring", f_tostring}, - {NULL, NULL} -}; - - -static void createmeta (lua_State *L) { - luaL_newmetatable(L, LUA_FILEHANDLE); /* create metatable for file handles */ - lua_pushvalue(L, -1); /* push metatable */ - lua_setfield(L, -2, "__index"); /* metatable.__index = metatable */ - luaL_setfuncs(L, flib, 0); /* add file methods to new metatable */ - lua_pop(L, 1); /* pop new metatable */ -} - - -/* -** function to (not) close the standard files stdin, stdout, and stderr -*/ -static int io_noclose (lua_State *L) { - LStream *p = tolstream(L); - p->closef = &io_noclose; /* keep file opened */ - lua_pushnil(L); - lua_pushliteral(L, "cannot close standard file"); - return 2; -} - - -static void createstdfile (lua_State *L, FILE *f, const char *k, - const char *fname) { - LStream *p = newprefile(L); - p->f = f; - p->closef = &io_noclose; - if (k != NULL) { - lua_pushvalue(L, -1); - lua_setfield(L, LUA_REGISTRYINDEX, k); /* add file to registry */ - } - lua_setfield(L, -2, fname); /* add file to module */ -} - - -LUAMOD_API int luaopen_io (lua_State *L) { - luaL_newlib(L, iolib); /* new module */ - createmeta(L); - /* create (and set) default files */ - createstdfile(L, stdin, IO_INPUT, "stdin"); - createstdfile(L, stdout, IO_OUTPUT, "stdout"); - createstdfile(L, stderr, NULL, "stderr"); - return 1; -} - diff --git a/source/libs/lua52/lua52-src/src/llex.c b/source/libs/lua52/lua52-src/src/llex.c deleted file mode 100644 index 32cdcf1cfac78def482e7aa1b9dd435bb7de21b3..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/llex.c +++ /dev/null @@ -1,530 +0,0 @@ -/* -** $Id: llex.c,v 2.63.1.3 2015/02/09 17:56:34 roberto Exp $ -** Lexical Analyzer -** See Copyright Notice in lua.h -*/ - - -#include <locale.h> -#include <string.h> - -#define llex_c -#define LUA_CORE - -#include "lua.h" - -#include "lctype.h" -#include "ldo.h" -#include "llex.h" -#include "lobject.h" -#include "lparser.h" -#include "lstate.h" -#include "lstring.h" -#include "ltable.h" -#include "lzio.h" - - - -#define next(ls) (ls->current = zgetc(ls->z)) - - - -#define currIsNewline(ls) (ls->current == '\n' || ls->current == '\r') - - -/* ORDER RESERVED */ -static const char *const luaX_tokens [] = { - "and", "break", "do", "else", "elseif", - "end", "false", "for", "function", "goto", "if", - "in", "local", "nil", "not", "or", "repeat", - "return", "then", "true", "until", "while", - "..", "...", "==", ">=", "<=", "~=", "::", "<eof>", - "<number>", "<name>", "<string>" -}; - - -#define save_and_next(ls) (save(ls, ls->current), next(ls)) - - -static l_noret lexerror (LexState *ls, const char *msg, int token); - - -static void save (LexState *ls, int c) { - Mbuffer *b = ls->buff; - if (luaZ_bufflen(b) + 1 > luaZ_sizebuffer(b)) { - size_t newsize; - if (luaZ_sizebuffer(b) >= MAX_SIZET/2) - lexerror(ls, "lexical element too long", 0); - newsize = luaZ_sizebuffer(b) * 2; - luaZ_resizebuffer(ls->L, b, newsize); - } - b->buffer[luaZ_bufflen(b)++] = cast(char, c); -} - - -void luaX_init (lua_State *L) { - int i; - for (i=0; i<NUM_RESERVED; i++) { - TString *ts = luaS_new(L, luaX_tokens[i]); - luaS_fix(ts); /* reserved words are never collected */ - ts->tsv.extra = cast_byte(i+1); /* reserved word */ - } -} - - -const char *luaX_token2str (LexState *ls, int token) { - if (token < FIRST_RESERVED) { /* single-byte symbols? */ - lua_assert(token == cast(unsigned char, token)); - return (lisprint(token)) ? luaO_pushfstring(ls->L, LUA_QL("%c"), token) : - luaO_pushfstring(ls->L, "char(%d)", token); - } - else { - const char *s = luaX_tokens[token - FIRST_RESERVED]; - if (token < TK_EOS) /* fixed format (symbols and reserved words)? */ - return luaO_pushfstring(ls->L, LUA_QS, s); - else /* names, strings, and numerals */ - return s; - } -} - - -static const char *txtToken (LexState *ls, int token) { - switch (token) { - case TK_NAME: - case TK_STRING: - case TK_NUMBER: - save(ls, '\0'); - return luaO_pushfstring(ls->L, LUA_QS, luaZ_buffer(ls->buff)); - default: - return luaX_token2str(ls, token); - } -} - - -static l_noret lexerror (LexState *ls, const char *msg, int token) { - char buff[LUA_IDSIZE]; - luaO_chunkid(buff, getstr(ls->source), LUA_IDSIZE); - msg = luaO_pushfstring(ls->L, "%s:%d: %s", buff, ls->linenumber, msg); - if (token) - luaO_pushfstring(ls->L, "%s near %s", msg, txtToken(ls, token)); - luaD_throw(ls->L, LUA_ERRSYNTAX); -} - - -l_noret luaX_syntaxerror (LexState *ls, const char *msg) { - lexerror(ls, msg, ls->t.token); -} - - -/* -** creates a new string and anchors it in function's table so that -** it will not be collected until the end of the function's compilation -** (by that time it should be anchored in function's prototype) -*/ -TString *luaX_newstring (LexState *ls, const char *str, size_t l) { - lua_State *L = ls->L; - TValue *o; /* entry for `str' */ - TString *ts = luaS_newlstr(L, str, l); /* create new string */ - setsvalue2s(L, L->top++, ts); /* temporarily anchor it in stack */ - o = luaH_set(L, ls->fs->h, L->top - 1); - if (ttisnil(o)) { /* not in use yet? (see 'addK') */ - /* boolean value does not need GC barrier; - table has no metatable, so it does not need to invalidate cache */ - setbvalue(o, 1); /* t[string] = true */ - luaC_checkGC(L); - } - else { /* string already present */ - ts = rawtsvalue(keyfromval(o)); /* re-use value previously stored */ - } - L->top--; /* remove string from stack */ - return ts; -} - - -/* -** increment line number and skips newline sequence (any of -** \n, \r, \n\r, or \r\n) -*/ -static void inclinenumber (LexState *ls) { - int old = ls->current; - lua_assert(currIsNewline(ls)); - next(ls); /* skip `\n' or `\r' */ - if (currIsNewline(ls) && ls->current != old) - next(ls); /* skip `\n\r' or `\r\n' */ - if (++ls->linenumber >= MAX_INT) - lexerror(ls, "chunk has too many lines", 0); -} - - -void luaX_setinput (lua_State *L, LexState *ls, ZIO *z, TString *source, - int firstchar) { - ls->decpoint = '.'; - ls->L = L; - ls->current = firstchar; - ls->lookahead.token = TK_EOS; /* no look-ahead token */ - ls->z = z; - ls->fs = NULL; - ls->linenumber = 1; - ls->lastline = 1; - ls->source = source; - ls->envn = luaS_new(L, LUA_ENV); /* create env name */ - luaS_fix(ls->envn); /* never collect this name */ - luaZ_resizebuffer(ls->L, ls->buff, LUA_MINBUFFER); /* initialize buffer */ -} - - - -/* -** ======================================================= -** LEXICAL ANALYZER -** ======================================================= -*/ - - - -static int check_next (LexState *ls, const char *set) { - if (ls->current == '\0' || !strchr(set, ls->current)) - return 0; - save_and_next(ls); - return 1; -} - - -/* -** change all characters 'from' in buffer to 'to' -*/ -static void buffreplace (LexState *ls, char from, char to) { - size_t n = luaZ_bufflen(ls->buff); - char *p = luaZ_buffer(ls->buff); - while (n--) - if (p[n] == from) p[n] = to; -} - - -#if !defined(getlocaledecpoint) -#define getlocaledecpoint() (localeconv()->decimal_point[0]) -#endif - - -#define buff2d(b,e) luaO_str2d(luaZ_buffer(b), luaZ_bufflen(b) - 1, e) - -/* -** in case of format error, try to change decimal point separator to -** the one defined in the current locale and check again -*/ -static void trydecpoint (LexState *ls, SemInfo *seminfo) { - char old = ls->decpoint; - ls->decpoint = getlocaledecpoint(); - buffreplace(ls, old, ls->decpoint); /* try new decimal separator */ - if (!buff2d(ls->buff, &seminfo->r)) { - /* format error with correct decimal point: no more options */ - buffreplace(ls, ls->decpoint, '.'); /* undo change (for error message) */ - lexerror(ls, "malformed number", TK_NUMBER); - } -} - - -/* LUA_NUMBER */ -/* -** this function is quite liberal in what it accepts, as 'luaO_str2d' -** will reject ill-formed numerals. -*/ -static void read_numeral (LexState *ls, SemInfo *seminfo) { - const char *expo = "Ee"; - int first = ls->current; - lua_assert(lisdigit(ls->current)); - save_and_next(ls); - if (first == '0' && check_next(ls, "Xx")) /* hexadecimal? */ - expo = "Pp"; - for (;;) { - if (check_next(ls, expo)) /* exponent part? */ - check_next(ls, "+-"); /* optional exponent sign */ - if (lisxdigit(ls->current) || ls->current == '.') - save_and_next(ls); - else break; - } - save(ls, '\0'); - buffreplace(ls, '.', ls->decpoint); /* follow locale for decimal point */ - if (!buff2d(ls->buff, &seminfo->r)) /* format error? */ - trydecpoint(ls, seminfo); /* try to update decimal point separator */ -} - - -/* -** skip a sequence '[=*[' or ']=*]' and return its number of '='s or -** -1 if sequence is malformed -*/ -static int skip_sep (LexState *ls) { - int count = 0; - int s = ls->current; - lua_assert(s == '[' || s == ']'); - save_and_next(ls); - while (ls->current == '=') { - save_and_next(ls); - count++; - } - return (ls->current == s) ? count : (-count) - 1; -} - - -static void read_long_string (LexState *ls, SemInfo *seminfo, int sep) { - save_and_next(ls); /* skip 2nd `[' */ - if (currIsNewline(ls)) /* string starts with a newline? */ - inclinenumber(ls); /* skip it */ - for (;;) { - switch (ls->current) { - case EOZ: - lexerror(ls, (seminfo) ? "unfinished long string" : - "unfinished long comment", TK_EOS); - break; /* to avoid warnings */ - case ']': { - if (skip_sep(ls) == sep) { - save_and_next(ls); /* skip 2nd `]' */ - goto endloop; - } - break; - } - case '\n': case '\r': { - save(ls, '\n'); - inclinenumber(ls); - if (!seminfo) luaZ_resetbuffer(ls->buff); /* avoid wasting space */ - break; - } - default: { - if (seminfo) save_and_next(ls); - else next(ls); - } - } - } endloop: - if (seminfo) - seminfo->ts = luaX_newstring(ls, luaZ_buffer(ls->buff) + (2 + sep), - luaZ_bufflen(ls->buff) - 2*(2 + sep)); -} - - -static void escerror (LexState *ls, int *c, int n, const char *msg) { - int i; - luaZ_resetbuffer(ls->buff); /* prepare error message */ - save(ls, '\\'); - for (i = 0; i < n && c[i] != EOZ; i++) - save(ls, c[i]); - lexerror(ls, msg, TK_STRING); -} - - -static int readhexaesc (LexState *ls) { - int c[3], i; /* keep input for error message */ - int r = 0; /* result accumulator */ - c[0] = 'x'; /* for error message */ - for (i = 1; i < 3; i++) { /* read two hexadecimal digits */ - c[i] = next(ls); - if (!lisxdigit(c[i])) - escerror(ls, c, i + 1, "hexadecimal digit expected"); - r = (r << 4) + luaO_hexavalue(c[i]); - } - return r; -} - - -static int readdecesc (LexState *ls) { - int c[3], i; - int r = 0; /* result accumulator */ - for (i = 0; i < 3 && lisdigit(ls->current); i++) { /* read up to 3 digits */ - c[i] = ls->current; - r = 10*r + c[i] - '0'; - next(ls); - } - if (r > UCHAR_MAX) - escerror(ls, c, i, "decimal escape too large"); - return r; -} - - -static void read_string (LexState *ls, int del, SemInfo *seminfo) { - save_and_next(ls); /* keep delimiter (for error messages) */ - while (ls->current != del) { - switch (ls->current) { - case EOZ: - lexerror(ls, "unfinished string", TK_EOS); - break; /* to avoid warnings */ - case '\n': - case '\r': - lexerror(ls, "unfinished string", TK_STRING); - break; /* to avoid warnings */ - case '\\': { /* escape sequences */ - int c; /* final character to be saved */ - next(ls); /* do not save the `\' */ - switch (ls->current) { - case 'a': c = '\a'; goto read_save; - case 'b': c = '\b'; goto read_save; - case 'f': c = '\f'; goto read_save; - case 'n': c = '\n'; goto read_save; - case 'r': c = '\r'; goto read_save; - case 't': c = '\t'; goto read_save; - case 'v': c = '\v'; goto read_save; - case 'x': c = readhexaesc(ls); goto read_save; - case '\n': case '\r': - inclinenumber(ls); c = '\n'; goto only_save; - case '\\': case '\"': case '\'': - c = ls->current; goto read_save; - case EOZ: goto no_save; /* will raise an error next loop */ - case 'z': { /* zap following span of spaces */ - next(ls); /* skip the 'z' */ - while (lisspace(ls->current)) { - if (currIsNewline(ls)) inclinenumber(ls); - else next(ls); - } - goto no_save; - } - default: { - if (!lisdigit(ls->current)) - escerror(ls, &ls->current, 1, "invalid escape sequence"); - /* digital escape \ddd */ - c = readdecesc(ls); - goto only_save; - } - } - read_save: next(ls); /* read next character */ - only_save: save(ls, c); /* save 'c' */ - no_save: break; - } - default: - save_and_next(ls); - } - } - save_and_next(ls); /* skip delimiter */ - seminfo->ts = luaX_newstring(ls, luaZ_buffer(ls->buff) + 1, - luaZ_bufflen(ls->buff) - 2); -} - - -static int llex (LexState *ls, SemInfo *seminfo) { - luaZ_resetbuffer(ls->buff); - for (;;) { - switch (ls->current) { - case '\n': case '\r': { /* line breaks */ - inclinenumber(ls); - break; - } - case ' ': case '\f': case '\t': case '\v': { /* spaces */ - next(ls); - break; - } - case '-': { /* '-' or '--' (comment) */ - next(ls); - if (ls->current != '-') return '-'; - /* else is a comment */ - next(ls); - if (ls->current == '[') { /* long comment? */ - int sep = skip_sep(ls); - luaZ_resetbuffer(ls->buff); /* `skip_sep' may dirty the buffer */ - if (sep >= 0) { - read_long_string(ls, NULL, sep); /* skip long comment */ - luaZ_resetbuffer(ls->buff); /* previous call may dirty the buff. */ - break; - } - } - /* else short comment */ - while (!currIsNewline(ls) && ls->current != EOZ) - next(ls); /* skip until end of line (or end of file) */ - break; - } - case '[': { /* long string or simply '[' */ - int sep = skip_sep(ls); - if (sep >= 0) { - read_long_string(ls, seminfo, sep); - return TK_STRING; - } - else if (sep == -1) return '['; - else lexerror(ls, "invalid long string delimiter", TK_STRING); - } - case '=': { - next(ls); - if (ls->current != '=') return '='; - else { next(ls); return TK_EQ; } - } - case '<': { - next(ls); - if (ls->current != '=') return '<'; - else { next(ls); return TK_LE; } - } - case '>': { - next(ls); - if (ls->current != '=') return '>'; - else { next(ls); return TK_GE; } - } - case '~': { - next(ls); - if (ls->current != '=') return '~'; - else { next(ls); return TK_NE; } - } - case ':': { - next(ls); - if (ls->current != ':') return ':'; - else { next(ls); return TK_DBCOLON; } - } - case '"': case '\'': { /* short literal strings */ - read_string(ls, ls->current, seminfo); - return TK_STRING; - } - case '.': { /* '.', '..', '...', or number */ - save_and_next(ls); - if (check_next(ls, ".")) { - if (check_next(ls, ".")) - return TK_DOTS; /* '...' */ - else return TK_CONCAT; /* '..' */ - } - else if (!lisdigit(ls->current)) return '.'; - /* else go through */ - } - case '0': case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': case '9': { - read_numeral(ls, seminfo); - return TK_NUMBER; - } - case EOZ: { - return TK_EOS; - } - default: { - if (lislalpha(ls->current)) { /* identifier or reserved word? */ - TString *ts; - do { - save_and_next(ls); - } while (lislalnum(ls->current)); - ts = luaX_newstring(ls, luaZ_buffer(ls->buff), - luaZ_bufflen(ls->buff)); - seminfo->ts = ts; - if (isreserved(ts)) /* reserved word? */ - return ts->tsv.extra - 1 + FIRST_RESERVED; - else { - return TK_NAME; - } - } - else { /* single-char tokens (+ - / ...) */ - int c = ls->current; - next(ls); - return c; - } - } - } - } -} - - -void luaX_next (LexState *ls) { - ls->lastline = ls->linenumber; - if (ls->lookahead.token != TK_EOS) { /* is there a look-ahead token? */ - ls->t = ls->lookahead; /* use this one */ - ls->lookahead.token = TK_EOS; /* and discharge it */ - } - else - ls->t.token = llex(ls, &ls->t.seminfo); /* read next token */ -} - - -int luaX_lookahead (LexState *ls) { - lua_assert(ls->lookahead.token == TK_EOS); - ls->lookahead.token = llex(ls, &ls->lookahead.seminfo); - return ls->lookahead.token; -} - diff --git a/source/libs/lua52/lua52-src/src/llex.h b/source/libs/lua52/lua52-src/src/llex.h deleted file mode 100644 index a4acdd30218a91e0acabe1093b3a367bf185cc7c..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/llex.h +++ /dev/null @@ -1,78 +0,0 @@ -/* -** $Id: llex.h,v 1.72.1.1 2013/04/12 18:48:47 roberto Exp $ -** Lexical Analyzer -** See Copyright Notice in lua.h -*/ - -#ifndef llex_h -#define llex_h - -#include "lobject.h" -#include "lzio.h" - - -#define FIRST_RESERVED 257 - - - -/* -* WARNING: if you change the order of this enumeration, -* grep "ORDER RESERVED" -*/ -enum RESERVED { - /* terminal symbols denoted by reserved words */ - TK_AND = FIRST_RESERVED, TK_BREAK, - TK_DO, TK_ELSE, TK_ELSEIF, TK_END, TK_FALSE, TK_FOR, TK_FUNCTION, - TK_GOTO, TK_IF, TK_IN, TK_LOCAL, TK_NIL, TK_NOT, TK_OR, TK_REPEAT, - TK_RETURN, TK_THEN, TK_TRUE, TK_UNTIL, TK_WHILE, - /* other terminal symbols */ - TK_CONCAT, TK_DOTS, TK_EQ, TK_GE, TK_LE, TK_NE, TK_DBCOLON, TK_EOS, - TK_NUMBER, TK_NAME, TK_STRING -}; - -/* number of reserved words */ -#define NUM_RESERVED (cast(int, TK_WHILE-FIRST_RESERVED+1)) - - -typedef union { - lua_Number r; - TString *ts; -} SemInfo; /* semantics information */ - - -typedef struct Token { - int token; - SemInfo seminfo; -} Token; - - -/* state of the lexer plus state of the parser when shared by all - functions */ -typedef struct LexState { - int current; /* current character (charint) */ - int linenumber; /* input line counter */ - int lastline; /* line of last token `consumed' */ - Token t; /* current token */ - Token lookahead; /* look ahead token */ - struct FuncState *fs; /* current function (parser) */ - struct lua_State *L; - ZIO *z; /* input stream */ - Mbuffer *buff; /* buffer for tokens */ - struct Dyndata *dyd; /* dynamic structures used by the parser */ - TString *source; /* current source name */ - TString *envn; /* environment variable name */ - char decpoint; /* locale decimal point */ -} LexState; - - -LUAI_FUNC void luaX_init (lua_State *L); -LUAI_FUNC void luaX_setinput (lua_State *L, LexState *ls, ZIO *z, - TString *source, int firstchar); -LUAI_FUNC TString *luaX_newstring (LexState *ls, const char *str, size_t l); -LUAI_FUNC void luaX_next (LexState *ls); -LUAI_FUNC int luaX_lookahead (LexState *ls); -LUAI_FUNC l_noret luaX_syntaxerror (LexState *ls, const char *s); -LUAI_FUNC const char *luaX_token2str (LexState *ls, int token); - - -#endif diff --git a/source/libs/lua52/lua52-src/src/llimits.h b/source/libs/lua52/lua52-src/src/llimits.h deleted file mode 100644 index 152dd0551542bdd19605e91e28f6ca2564d3a71d..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/llimits.h +++ /dev/null @@ -1,309 +0,0 @@ -/* -** $Id: llimits.h,v 1.103.1.1 2013/04/12 18:48:47 roberto Exp $ -** Limits, basic types, and some other `installation-dependent' definitions -** See Copyright Notice in lua.h -*/ - -#ifndef llimits_h -#define llimits_h - - -#include <limits.h> -#include <stddef.h> - - -#include "lua.h" - - -typedef unsigned LUA_INT32 lu_int32; - -typedef LUAI_UMEM lu_mem; - -typedef LUAI_MEM l_mem; - - - -/* chars used as small naturals (so that `char' is reserved for characters) */ -typedef unsigned char lu_byte; - - -#define MAX_SIZET ((size_t)(~(size_t)0)-2) - -#define MAX_LUMEM ((lu_mem)(~(lu_mem)0)-2) - -#define MAX_LMEM ((l_mem) ((MAX_LUMEM >> 1) - 2)) - - -#define MAX_INT (INT_MAX-2) /* maximum value of an int (-2 for safety) */ - -/* -** conversion of pointer to integer -** this is for hashing only; there is no problem if the integer -** cannot hold the whole pointer value -*/ -#define IntPoint(p) ((unsigned int)(lu_mem)(p)) - - - -/* type to ensure maximum alignment */ -#if !defined(LUAI_USER_ALIGNMENT_T) -#define LUAI_USER_ALIGNMENT_T union { double u; void *s; long l; } -#endif - -typedef LUAI_USER_ALIGNMENT_T L_Umaxalign; - - -/* result of a `usual argument conversion' over lua_Number */ -typedef LUAI_UACNUMBER l_uacNumber; - - -/* internal assertions for in-house debugging */ -#if defined(lua_assert) -#define check_exp(c,e) (lua_assert(c), (e)) -/* to avoid problems with conditions too long */ -#define lua_longassert(c) { if (!(c)) lua_assert(0); } -#else -#define lua_assert(c) ((void)0) -#define check_exp(c,e) (e) -#define lua_longassert(c) ((void)0) -#endif - -/* -** assertion for checking API calls -*/ -#if !defined(luai_apicheck) - -#if defined(LUA_USE_APICHECK) -#include <assert.h> -#define luai_apicheck(L,e) assert(e) -#else -#define luai_apicheck(L,e) lua_assert(e) -#endif - -#endif - -#define api_check(l,e,msg) luai_apicheck(l,(e) && msg) - - -#if !defined(UNUSED) -#define UNUSED(x) ((void)(x)) /* to avoid warnings */ -#endif - - -#define cast(t, exp) ((t)(exp)) - -#define cast_byte(i) cast(lu_byte, (i)) -#define cast_num(i) cast(lua_Number, (i)) -#define cast_int(i) cast(int, (i)) -#define cast_uchar(i) cast(unsigned char, (i)) - - -/* -** non-return type -*/ -#if defined(__GNUC__) -#define l_noret void __attribute__((noreturn)) -#elif defined(_MSC_VER) -#define l_noret void __declspec(noreturn) -#else -#define l_noret void -#endif - - - -/* -** maximum depth for nested C calls and syntactical nested non-terminals -** in a program. (Value must fit in an unsigned short int.) -*/ -#if !defined(LUAI_MAXCCALLS) -#define LUAI_MAXCCALLS 200 -#endif - -/* -** maximum number of upvalues in a closure (both C and Lua). (Value -** must fit in an unsigned char.) -*/ -#define MAXUPVAL UCHAR_MAX - - -/* -** type for virtual-machine instructions -** must be an unsigned with (at least) 4 bytes (see details in lopcodes.h) -*/ -typedef lu_int32 Instruction; - - - -/* maximum stack for a Lua function */ -#define MAXSTACK 250 - - - -/* minimum size for the string table (must be power of 2) */ -#if !defined(MINSTRTABSIZE) -#define MINSTRTABSIZE 32 -#endif - - -/* minimum size for string buffer */ -#if !defined(LUA_MINBUFFER) -#define LUA_MINBUFFER 32 -#endif - - -#if !defined(lua_lock) -#define lua_lock(L) ((void) 0) -#define lua_unlock(L) ((void) 0) -#endif - -#if !defined(luai_threadyield) -#define luai_threadyield(L) {lua_unlock(L); lua_lock(L);} -#endif - - -/* -** these macros allow user-specific actions on threads when you defined -** LUAI_EXTRASPACE and need to do something extra when a thread is -** created/deleted/resumed/yielded. -*/ -#if !defined(luai_userstateopen) -#define luai_userstateopen(L) ((void)L) -#endif - -#if !defined(luai_userstateclose) -#define luai_userstateclose(L) ((void)L) -#endif - -#if !defined(luai_userstatethread) -#define luai_userstatethread(L,L1) ((void)L) -#endif - -#if !defined(luai_userstatefree) -#define luai_userstatefree(L,L1) ((void)L) -#endif - -#if !defined(luai_userstateresume) -#define luai_userstateresume(L,n) ((void)L) -#endif - -#if !defined(luai_userstateyield) -#define luai_userstateyield(L,n) ((void)L) -#endif - -/* -** lua_number2int is a macro to convert lua_Number to int. -** lua_number2integer is a macro to convert lua_Number to lua_Integer. -** lua_number2unsigned is a macro to convert a lua_Number to a lua_Unsigned. -** lua_unsigned2number is a macro to convert a lua_Unsigned to a lua_Number. -** luai_hashnum is a macro to hash a lua_Number value into an integer. -** The hash must be deterministic and give reasonable values for -** both small and large values (outside the range of integers). -*/ - -#if defined(MS_ASMTRICK) || defined(LUA_MSASMTRICK) /* { */ -/* trick with Microsoft assembler for X86 */ - -#define lua_number2int(i,n) __asm {__asm fld n __asm fistp i} -#define lua_number2integer(i,n) lua_number2int(i, n) -#define lua_number2unsigned(i,n) \ - {__int64 l; __asm {__asm fld n __asm fistp l} i = (unsigned int)l;} - - -#elif defined(LUA_IEEE754TRICK) /* }{ */ -/* the next trick should work on any machine using IEEE754 with - a 32-bit int type */ - -union luai_Cast { double l_d; LUA_INT32 l_p[2]; }; - -#if !defined(LUA_IEEEENDIAN) /* { */ -#define LUAI_EXTRAIEEE \ - static const union luai_Cast ieeeendian = {-(33.0 + 6755399441055744.0)}; -#define LUA_IEEEENDIANLOC (ieeeendian.l_p[1] == 33) -#else -#define LUA_IEEEENDIANLOC LUA_IEEEENDIAN -#define LUAI_EXTRAIEEE /* empty */ -#endif /* } */ - -#define lua_number2int32(i,n,t) \ - { LUAI_EXTRAIEEE \ - volatile union luai_Cast u; u.l_d = (n) + 6755399441055744.0; \ - (i) = (t)u.l_p[LUA_IEEEENDIANLOC]; } - -#define luai_hashnum(i,n) \ - { volatile union luai_Cast u; u.l_d = (n) + 1.0; /* avoid -0 */ \ - (i) = u.l_p[0]; (i) += u.l_p[1]; } /* add double bits for his hash */ - -#define lua_number2int(i,n) lua_number2int32(i, n, int) -#define lua_number2unsigned(i,n) lua_number2int32(i, n, lua_Unsigned) - -/* the trick can be expanded to lua_Integer when it is a 32-bit value */ -#if defined(LUA_IEEELL) -#define lua_number2integer(i,n) lua_number2int32(i, n, lua_Integer) -#endif - -#endif /* } */ - - -/* the following definitions always work, but may be slow */ - -#if !defined(lua_number2int) -#define lua_number2int(i,n) ((i)=(int)(n)) -#endif - -#if !defined(lua_number2integer) -#define lua_number2integer(i,n) ((i)=(lua_Integer)(n)) -#endif - -#if !defined(lua_number2unsigned) /* { */ -/* the following definition assures proper modulo behavior */ -#if defined(LUA_NUMBER_DOUBLE) || defined(LUA_NUMBER_FLOAT) -#include <math.h> -#define SUPUNSIGNED ((lua_Number)(~(lua_Unsigned)0) + 1) -#define lua_number2unsigned(i,n) \ - ((i)=(lua_Unsigned)((n) - floor((n)/SUPUNSIGNED)*SUPUNSIGNED)) -#else -#define lua_number2unsigned(i,n) ((i)=(lua_Unsigned)(n)) -#endif -#endif /* } */ - - -#if !defined(lua_unsigned2number) -/* on several machines, coercion from unsigned to double is slow, - so it may be worth to avoid */ -#define lua_unsigned2number(u) \ - (((u) <= (lua_Unsigned)INT_MAX) ? (lua_Number)(int)(u) : (lua_Number)(u)) -#endif - - - -#if defined(ltable_c) && !defined(luai_hashnum) - -#include <float.h> -#include <math.h> - -#define luai_hashnum(i,n) { int e; \ - n = l_mathop(frexp)(n, &e) * (lua_Number)(INT_MAX - DBL_MAX_EXP); \ - lua_number2int(i, n); i += e; } - -#endif - - - -/* -** macro to control inclusion of some hard tests on stack reallocation -*/ -#if !defined(HARDSTACKTESTS) -#define condmovestack(L) ((void)0) -#else -/* realloc stack keeping its size */ -#define condmovestack(L) luaD_reallocstack((L), (L)->stacksize) -#endif - -#if !defined(HARDMEMTESTS) -#define condchangemem(L) condmovestack(L) -#else -#define condchangemem(L) \ - ((void)(!(G(L)->gcrunning) || (luaC_fullgc(L, 0), 1))) -#endif - -#endif diff --git a/source/libs/lua52/lua52-src/src/lmathlib.c b/source/libs/lua52/lua52-src/src/lmathlib.c deleted file mode 100644 index fe9fc5423d1eb8e34dd5a4cfd925c8bf285b93bd..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lmathlib.c +++ /dev/null @@ -1,279 +0,0 @@ -/* -** $Id: lmathlib.c,v 1.83.1.1 2013/04/12 18:48:47 roberto Exp $ -** Standard mathematical library -** See Copyright Notice in lua.h -*/ - - -#include <stdlib.h> -#include <math.h> - -#define lmathlib_c -#define LUA_LIB - -#include "lua.h" - -#include "lauxlib.h" -#include "lualib.h" - - -#undef PI -#define PI ((lua_Number)(3.1415926535897932384626433832795)) -#define RADIANS_PER_DEGREE ((lua_Number)(PI/180.0)) - - - -static int math_abs (lua_State *L) { - lua_pushnumber(L, l_mathop(fabs)(luaL_checknumber(L, 1))); - return 1; -} - -static int math_sin (lua_State *L) { - lua_pushnumber(L, l_mathop(sin)(luaL_checknumber(L, 1))); - return 1; -} - -static int math_sinh (lua_State *L) { - lua_pushnumber(L, l_mathop(sinh)(luaL_checknumber(L, 1))); - return 1; -} - -static int math_cos (lua_State *L) { - lua_pushnumber(L, l_mathop(cos)(luaL_checknumber(L, 1))); - return 1; -} - -static int math_cosh (lua_State *L) { - lua_pushnumber(L, l_mathop(cosh)(luaL_checknumber(L, 1))); - return 1; -} - -static int math_tan (lua_State *L) { - lua_pushnumber(L, l_mathop(tan)(luaL_checknumber(L, 1))); - return 1; -} - -static int math_tanh (lua_State *L) { - lua_pushnumber(L, l_mathop(tanh)(luaL_checknumber(L, 1))); - return 1; -} - -static int math_asin (lua_State *L) { - lua_pushnumber(L, l_mathop(asin)(luaL_checknumber(L, 1))); - return 1; -} - -static int math_acos (lua_State *L) { - lua_pushnumber(L, l_mathop(acos)(luaL_checknumber(L, 1))); - return 1; -} - -static int math_atan (lua_State *L) { - lua_pushnumber(L, l_mathop(atan)(luaL_checknumber(L, 1))); - return 1; -} - -static int math_atan2 (lua_State *L) { - lua_pushnumber(L, l_mathop(atan2)(luaL_checknumber(L, 1), - luaL_checknumber(L, 2))); - return 1; -} - -static int math_ceil (lua_State *L) { - lua_pushnumber(L, l_mathop(ceil)(luaL_checknumber(L, 1))); - return 1; -} - -static int math_floor (lua_State *L) { - lua_pushnumber(L, l_mathop(floor)(luaL_checknumber(L, 1))); - return 1; -} - -static int math_fmod (lua_State *L) { - lua_pushnumber(L, l_mathop(fmod)(luaL_checknumber(L, 1), - luaL_checknumber(L, 2))); - return 1; -} - -static int math_modf (lua_State *L) { - lua_Number ip; - lua_Number fp = l_mathop(modf)(luaL_checknumber(L, 1), &ip); - lua_pushnumber(L, ip); - lua_pushnumber(L, fp); - return 2; -} - -static int math_sqrt (lua_State *L) { - lua_pushnumber(L, l_mathop(sqrt)(luaL_checknumber(L, 1))); - return 1; -} - -static int math_pow (lua_State *L) { - lua_Number x = luaL_checknumber(L, 1); - lua_Number y = luaL_checknumber(L, 2); - lua_pushnumber(L, l_mathop(pow)(x, y)); - return 1; -} - -static int math_log (lua_State *L) { - lua_Number x = luaL_checknumber(L, 1); - lua_Number res; - if (lua_isnoneornil(L, 2)) - res = l_mathop(log)(x); - else { - lua_Number base = luaL_checknumber(L, 2); - if (base == (lua_Number)10.0) res = l_mathop(log10)(x); - else res = l_mathop(log)(x)/l_mathop(log)(base); - } - lua_pushnumber(L, res); - return 1; -} - -#if defined(LUA_COMPAT_LOG10) -static int math_log10 (lua_State *L) { - lua_pushnumber(L, l_mathop(log10)(luaL_checknumber(L, 1))); - return 1; -} -#endif - -static int math_exp (lua_State *L) { - lua_pushnumber(L, l_mathop(exp)(luaL_checknumber(L, 1))); - return 1; -} - -static int math_deg (lua_State *L) { - lua_pushnumber(L, luaL_checknumber(L, 1)/RADIANS_PER_DEGREE); - return 1; -} - -static int math_rad (lua_State *L) { - lua_pushnumber(L, luaL_checknumber(L, 1)*RADIANS_PER_DEGREE); - return 1; -} - -static int math_frexp (lua_State *L) { - int e; - lua_pushnumber(L, l_mathop(frexp)(luaL_checknumber(L, 1), &e)); - lua_pushinteger(L, e); - return 2; -} - -static int math_ldexp (lua_State *L) { - lua_Number x = luaL_checknumber(L, 1); - int ep = luaL_checkint(L, 2); - lua_pushnumber(L, l_mathop(ldexp)(x, ep)); - return 1; -} - - - -static int math_min (lua_State *L) { - int n = lua_gettop(L); /* number of arguments */ - lua_Number dmin = luaL_checknumber(L, 1); - int i; - for (i=2; i<=n; i++) { - lua_Number d = luaL_checknumber(L, i); - if (d < dmin) - dmin = d; - } - lua_pushnumber(L, dmin); - return 1; -} - - -static int math_max (lua_State *L) { - int n = lua_gettop(L); /* number of arguments */ - lua_Number dmax = luaL_checknumber(L, 1); - int i; - for (i=2; i<=n; i++) { - lua_Number d = luaL_checknumber(L, i); - if (d > dmax) - dmax = d; - } - lua_pushnumber(L, dmax); - return 1; -} - - -static int math_random (lua_State *L) { - /* the `%' avoids the (rare) case of r==1, and is needed also because on - some systems (SunOS!) `rand()' may return a value larger than RAND_MAX */ - lua_Number r = (lua_Number)(rand()%RAND_MAX) / (lua_Number)RAND_MAX; - switch (lua_gettop(L)) { /* check number of arguments */ - case 0: { /* no arguments */ - lua_pushnumber(L, r); /* Number between 0 and 1 */ - break; - } - case 1: { /* only upper limit */ - lua_Number u = luaL_checknumber(L, 1); - luaL_argcheck(L, (lua_Number)1.0 <= u, 1, "interval is empty"); - lua_pushnumber(L, l_mathop(floor)(r*u) + (lua_Number)(1.0)); /* [1, u] */ - break; - } - case 2: { /* lower and upper limits */ - lua_Number l = luaL_checknumber(L, 1); - lua_Number u = luaL_checknumber(L, 2); - luaL_argcheck(L, l <= u, 2, "interval is empty"); - lua_pushnumber(L, l_mathop(floor)(r*(u-l+1)) + l); /* [l, u] */ - break; - } - default: return luaL_error(L, "wrong number of arguments"); - } - return 1; -} - - -static int math_randomseed (lua_State *L) { - srand(luaL_checkunsigned(L, 1)); - (void)rand(); /* discard first value to avoid undesirable correlations */ - return 0; -} - - -static const luaL_Reg mathlib[] = { - {"abs", math_abs}, - {"acos", math_acos}, - {"asin", math_asin}, - {"atan2", math_atan2}, - {"atan", math_atan}, - {"ceil", math_ceil}, - {"cosh", math_cosh}, - {"cos", math_cos}, - {"deg", math_deg}, - {"exp", math_exp}, - {"floor", math_floor}, - {"fmod", math_fmod}, - {"frexp", math_frexp}, - {"ldexp", math_ldexp}, -#if defined(LUA_COMPAT_LOG10) - {"log10", math_log10}, -#endif - {"log", math_log}, - {"max", math_max}, - {"min", math_min}, - {"modf", math_modf}, - {"pow", math_pow}, - {"rad", math_rad}, - {"random", math_random}, - {"randomseed", math_randomseed}, - {"sinh", math_sinh}, - {"sin", math_sin}, - {"sqrt", math_sqrt}, - {"tanh", math_tanh}, - {"tan", math_tan}, - {NULL, NULL} -}; - - -/* -** Open math library -*/ -LUAMOD_API int luaopen_math (lua_State *L) { - luaL_newlib(L, mathlib); - lua_pushnumber(L, PI); - lua_setfield(L, -2, "pi"); - lua_pushnumber(L, HUGE_VAL); - lua_setfield(L, -2, "huge"); - return 1; -} - diff --git a/source/libs/lua52/lua52-src/src/lmem.c b/source/libs/lua52/lua52-src/src/lmem.c deleted file mode 100644 index ee343e3e0371d713c509387262f43fe042965e93..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lmem.c +++ /dev/null @@ -1,99 +0,0 @@ -/* -** $Id: lmem.c,v 1.84.1.1 2013/04/12 18:48:47 roberto Exp $ -** Interface to Memory Manager -** See Copyright Notice in lua.h -*/ - - -#include <stddef.h> - -#define lmem_c -#define LUA_CORE - -#include "lua.h" - -#include "ldebug.h" -#include "ldo.h" -#include "lgc.h" -#include "lmem.h" -#include "lobject.h" -#include "lstate.h" - - - -/* -** About the realloc function: -** void * frealloc (void *ud, void *ptr, size_t osize, size_t nsize); -** (`osize' is the old size, `nsize' is the new size) -** -** * frealloc(ud, NULL, x, s) creates a new block of size `s' (no -** matter 'x'). -** -** * frealloc(ud, p, x, 0) frees the block `p' -** (in this specific case, frealloc must return NULL); -** particularly, frealloc(ud, NULL, 0, 0) does nothing -** (which is equivalent to free(NULL) in ANSI C) -** -** frealloc returns NULL if it cannot create or reallocate the area -** (any reallocation to an equal or smaller size cannot fail!) -*/ - - - -#define MINSIZEARRAY 4 - - -void *luaM_growaux_ (lua_State *L, void *block, int *size, size_t size_elems, - int limit, const char *what) { - void *newblock; - int newsize; - if (*size >= limit/2) { /* cannot double it? */ - if (*size >= limit) /* cannot grow even a little? */ - luaG_runerror(L, "too many %s (limit is %d)", what, limit); - newsize = limit; /* still have at least one free place */ - } - else { - newsize = (*size)*2; - if (newsize < MINSIZEARRAY) - newsize = MINSIZEARRAY; /* minimum size */ - } - newblock = luaM_reallocv(L, block, *size, newsize, size_elems); - *size = newsize; /* update only when everything else is OK */ - return newblock; -} - - -l_noret luaM_toobig (lua_State *L) { - luaG_runerror(L, "memory allocation error: block too big"); -} - - - -/* -** generic allocation routine. -*/ -void *luaM_realloc_ (lua_State *L, void *block, size_t osize, size_t nsize) { - void *newblock; - global_State *g = G(L); - size_t realosize = (block) ? osize : 0; - lua_assert((realosize == 0) == (block == NULL)); -#if defined(HARDMEMTESTS) - if (nsize > realosize && g->gcrunning) - luaC_fullgc(L, 1); /* force a GC whenever possible */ -#endif - newblock = (*g->frealloc)(g->ud, block, osize, nsize); - if (newblock == NULL && nsize > 0) { - api_check(L, nsize > realosize, - "realloc cannot fail when shrinking a block"); - if (g->gcrunning) { - luaC_fullgc(L, 1); /* try to free some memory... */ - newblock = (*g->frealloc)(g->ud, block, osize, nsize); /* try again */ - } - if (newblock == NULL) - luaD_throw(L, LUA_ERRMEM); - } - lua_assert((nsize == 0) == (newblock == NULL)); - g->GCdebt = (g->GCdebt + nsize) - realosize; - return newblock; -} - diff --git a/source/libs/lua52/lua52-src/src/lmem.h b/source/libs/lua52/lua52-src/src/lmem.h deleted file mode 100644 index bd4f4e0726f33bb9b8d63095bbbee8a753f2693b..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lmem.h +++ /dev/null @@ -1,57 +0,0 @@ -/* -** $Id: lmem.h,v 1.40.1.1 2013/04/12 18:48:47 roberto Exp $ -** Interface to Memory Manager -** See Copyright Notice in lua.h -*/ - -#ifndef lmem_h -#define lmem_h - - -#include <stddef.h> - -#include "llimits.h" -#include "lua.h" - - -/* -** This macro avoids the runtime division MAX_SIZET/(e), as 'e' is -** always constant. -** The macro is somewhat complex to avoid warnings: -** +1 avoids warnings of "comparison has constant result"; -** cast to 'void' avoids warnings of "value unused". -*/ -#define luaM_reallocv(L,b,on,n,e) \ - (cast(void, \ - (cast(size_t, (n)+1) > MAX_SIZET/(e)) ? (luaM_toobig(L), 0) : 0), \ - luaM_realloc_(L, (b), (on)*(e), (n)*(e))) - -#define luaM_freemem(L, b, s) luaM_realloc_(L, (b), (s), 0) -#define luaM_free(L, b) luaM_realloc_(L, (b), sizeof(*(b)), 0) -#define luaM_freearray(L, b, n) luaM_reallocv(L, (b), n, 0, sizeof((b)[0])) - -#define luaM_malloc(L,s) luaM_realloc_(L, NULL, 0, (s)) -#define luaM_new(L,t) cast(t *, luaM_malloc(L, sizeof(t))) -#define luaM_newvector(L,n,t) \ - cast(t *, luaM_reallocv(L, NULL, 0, n, sizeof(t))) - -#define luaM_newobject(L,tag,s) luaM_realloc_(L, NULL, tag, (s)) - -#define luaM_growvector(L,v,nelems,size,t,limit,e) \ - if ((nelems)+1 > (size)) \ - ((v)=cast(t *, luaM_growaux_(L,v,&(size),sizeof(t),limit,e))) - -#define luaM_reallocvector(L, v,oldn,n,t) \ - ((v)=cast(t *, luaM_reallocv(L, v, oldn, n, sizeof(t)))) - -LUAI_FUNC l_noret luaM_toobig (lua_State *L); - -/* not to be called directly */ -LUAI_FUNC void *luaM_realloc_ (lua_State *L, void *block, size_t oldsize, - size_t size); -LUAI_FUNC void *luaM_growaux_ (lua_State *L, void *block, int *size, - size_t size_elem, int limit, - const char *what); - -#endif - diff --git a/source/libs/lua52/lua52-src/src/loadlib.c b/source/libs/lua52/lua52-src/src/loadlib.c deleted file mode 100644 index bedbea3e9a711f1ad0a35be26b75c5296dda37b0..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/loadlib.c +++ /dev/null @@ -1,725 +0,0 @@ -/* -** $Id: loadlib.c,v 1.111.1.1 2013/04/12 18:48:47 roberto Exp $ -** Dynamic library loader for Lua -** See Copyright Notice in lua.h -** -** This module contains an implementation of loadlib for Unix systems -** that have dlfcn, an implementation for Windows, and a stub for other -** systems. -*/ - - -/* -** if needed, includes windows header before everything else -*/ -#if defined(_WIN32) -#include <windows.h> -#endif - - -#include <stdlib.h> -#include <string.h> - - -#define loadlib_c -#define LUA_LIB - -#include "lua.h" - -#include "lauxlib.h" -#include "lualib.h" - - -/* -** LUA_PATH and LUA_CPATH are the names of the environment -** variables that Lua check to set its paths. -*/ -#if !defined(LUA_PATH) -#define LUA_PATH "LUA_PATH" -#endif - -#if !defined(LUA_CPATH) -#define LUA_CPATH "LUA_CPATH" -#endif - -#define LUA_PATHSUFFIX "_" LUA_VERSION_MAJOR "_" LUA_VERSION_MINOR - -#define LUA_PATHVERSION LUA_PATH LUA_PATHSUFFIX -#define LUA_CPATHVERSION LUA_CPATH LUA_PATHSUFFIX - -/* -** LUA_PATH_SEP is the character that separates templates in a path. -** LUA_PATH_MARK is the string that marks the substitution points in a -** template. -** LUA_EXEC_DIR in a Windows path is replaced by the executable's -** directory. -** LUA_IGMARK is a mark to ignore all before it when building the -** luaopen_ function name. -*/ -#if !defined (LUA_PATH_SEP) -#define LUA_PATH_SEP ";" -#endif -#if !defined (LUA_PATH_MARK) -#define LUA_PATH_MARK "?" -#endif -#if !defined (LUA_EXEC_DIR) -#define LUA_EXEC_DIR "!" -#endif -#if !defined (LUA_IGMARK) -#define LUA_IGMARK "-" -#endif - - -/* -** LUA_CSUBSEP is the character that replaces dots in submodule names -** when searching for a C loader. -** LUA_LSUBSEP is the character that replaces dots in submodule names -** when searching for a Lua loader. -*/ -#if !defined(LUA_CSUBSEP) -#define LUA_CSUBSEP LUA_DIRSEP -#endif - -#if !defined(LUA_LSUBSEP) -#define LUA_LSUBSEP LUA_DIRSEP -#endif - - -/* prefix for open functions in C libraries */ -#define LUA_POF "luaopen_" - -/* separator for open functions in C libraries */ -#define LUA_OFSEP "_" - - -/* table (in the registry) that keeps handles for all loaded C libraries */ -#define CLIBS "_CLIBS" - -#define LIB_FAIL "open" - - -/* error codes for ll_loadfunc */ -#define ERRLIB 1 -#define ERRFUNC 2 - -#define setprogdir(L) ((void)0) - - -/* -** system-dependent functions -*/ -static void ll_unloadlib (void *lib); -static void *ll_load (lua_State *L, const char *path, int seeglb); -static lua_CFunction ll_sym (lua_State *L, void *lib, const char *sym); - - - -#if defined(LUA_USE_DLOPEN) -/* -** {======================================================================== -** This is an implementation of loadlib based on the dlfcn interface. -** The dlfcn interface is available in Linux, SunOS, Solaris, IRIX, FreeBSD, -** NetBSD, AIX 4.2, HPUX 11, and probably most other Unix flavors, at least -** as an emulation layer on top of native functions. -** ========================================================================= -*/ - -#include <dlfcn.h> - -static void ll_unloadlib (void *lib) { - dlclose(lib); -} - - -static void *ll_load (lua_State *L, const char *path, int seeglb) { - void *lib = dlopen(path, RTLD_NOW | (seeglb ? RTLD_GLOBAL : RTLD_LOCAL)); - if (lib == NULL) lua_pushstring(L, dlerror()); - return lib; -} - - -static lua_CFunction ll_sym (lua_State *L, void *lib, const char *sym) { - lua_CFunction f = (lua_CFunction)dlsym(lib, sym); - if (f == NULL) lua_pushstring(L, dlerror()); - return f; -} - -/* }====================================================== */ - - - -#elif defined(LUA_DL_DLL) -/* -** {====================================================================== -** This is an implementation of loadlib for Windows using native functions. -** ======================================================================= -*/ - -#undef setprogdir - -/* -** optional flags for LoadLibraryEx -*/ -#if !defined(LUA_LLE_FLAGS) -#define LUA_LLE_FLAGS 0 -#endif - - -static void setprogdir (lua_State *L) { - char buff[MAX_PATH + 1]; - char *lb; - DWORD nsize = sizeof(buff)/sizeof(char); - DWORD n = GetModuleFileNameA(NULL, buff, nsize); - if (n == 0 || n == nsize || (lb = strrchr(buff, '\\')) == NULL) - luaL_error(L, "unable to get ModuleFileName"); - else { - *lb = '\0'; - luaL_gsub(L, lua_tostring(L, -1), LUA_EXEC_DIR, buff); - lua_remove(L, -2); /* remove original string */ - } -} - - -static void pusherror (lua_State *L) { - int error = GetLastError(); - char buffer[128]; - if (FormatMessageA(FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_FROM_SYSTEM, - NULL, error, 0, buffer, sizeof(buffer)/sizeof(char), NULL)) - lua_pushstring(L, buffer); - else - lua_pushfstring(L, "system error %d\n", error); -} - -static void ll_unloadlib (void *lib) { - FreeLibrary((HMODULE)lib); -} - - -static void *ll_load (lua_State *L, const char *path, int seeglb) { - HMODULE lib = LoadLibraryExA(path, NULL, LUA_LLE_FLAGS); - (void)(seeglb); /* not used: symbols are 'global' by default */ - if (lib == NULL) pusherror(L); - return lib; -} - - -static lua_CFunction ll_sym (lua_State *L, void *lib, const char *sym) { - lua_CFunction f = (lua_CFunction)GetProcAddress((HMODULE)lib, sym); - if (f == NULL) pusherror(L); - return f; -} - -/* }====================================================== */ - - -#else -/* -** {====================================================== -** Fallback for other systems -** ======================================================= -*/ - -#undef LIB_FAIL -#define LIB_FAIL "absent" - - -#define DLMSG "dynamic libraries not enabled; check your Lua installation" - - -static void ll_unloadlib (void *lib) { - (void)(lib); /* not used */ -} - - -static void *ll_load (lua_State *L, const char *path, int seeglb) { - (void)(path); (void)(seeglb); /* not used */ - lua_pushliteral(L, DLMSG); - return NULL; -} - - -static lua_CFunction ll_sym (lua_State *L, void *lib, const char *sym) { - (void)(lib); (void)(sym); /* not used */ - lua_pushliteral(L, DLMSG); - return NULL; -} - -/* }====================================================== */ -#endif - - -static void *ll_checkclib (lua_State *L, const char *path) { - void *plib; - lua_getfield(L, LUA_REGISTRYINDEX, CLIBS); - lua_getfield(L, -1, path); - plib = lua_touserdata(L, -1); /* plib = CLIBS[path] */ - lua_pop(L, 2); /* pop CLIBS table and 'plib' */ - return plib; -} - - -static void ll_addtoclib (lua_State *L, const char *path, void *plib) { - lua_getfield(L, LUA_REGISTRYINDEX, CLIBS); - lua_pushlightuserdata(L, plib); - lua_pushvalue(L, -1); - lua_setfield(L, -3, path); /* CLIBS[path] = plib */ - lua_rawseti(L, -2, luaL_len(L, -2) + 1); /* CLIBS[#CLIBS + 1] = plib */ - lua_pop(L, 1); /* pop CLIBS table */ -} - - -/* -** __gc tag method for CLIBS table: calls 'll_unloadlib' for all lib -** handles in list CLIBS -*/ -static int gctm (lua_State *L) { - int n = luaL_len(L, 1); - for (; n >= 1; n--) { /* for each handle, in reverse order */ - lua_rawgeti(L, 1, n); /* get handle CLIBS[n] */ - ll_unloadlib(lua_touserdata(L, -1)); - lua_pop(L, 1); /* pop handle */ - } - return 0; -} - - -static int ll_loadfunc (lua_State *L, const char *path, const char *sym) { - void *reg = ll_checkclib(L, path); /* check loaded C libraries */ - if (reg == NULL) { /* must load library? */ - reg = ll_load(L, path, *sym == '*'); - if (reg == NULL) return ERRLIB; /* unable to load library */ - ll_addtoclib(L, path, reg); - } - if (*sym == '*') { /* loading only library (no function)? */ - lua_pushboolean(L, 1); /* return 'true' */ - return 0; /* no errors */ - } - else { - lua_CFunction f = ll_sym(L, reg, sym); - if (f == NULL) - return ERRFUNC; /* unable to find function */ - lua_pushcfunction(L, f); /* else create new function */ - return 0; /* no errors */ - } -} - - -static int ll_loadlib (lua_State *L) { - const char *path = luaL_checkstring(L, 1); - const char *init = luaL_checkstring(L, 2); - int stat = ll_loadfunc(L, path, init); - if (stat == 0) /* no errors? */ - return 1; /* return the loaded function */ - else { /* error; error message is on stack top */ - lua_pushnil(L); - lua_insert(L, -2); - lua_pushstring(L, (stat == ERRLIB) ? LIB_FAIL : "init"); - return 3; /* return nil, error message, and where */ - } -} - - - -/* -** {====================================================== -** 'require' function -** ======================================================= -*/ - - -static int readable (const char *filename) { - FILE *f = fopen(filename, "r"); /* try to open file */ - if (f == NULL) return 0; /* open failed */ - fclose(f); - return 1; -} - - -static const char *pushnexttemplate (lua_State *L, const char *path) { - const char *l; - while (*path == *LUA_PATH_SEP) path++; /* skip separators */ - if (*path == '\0') return NULL; /* no more templates */ - l = strchr(path, *LUA_PATH_SEP); /* find next separator */ - if (l == NULL) l = path + strlen(path); - lua_pushlstring(L, path, l - path); /* template */ - return l; -} - - -static const char *searchpath (lua_State *L, const char *name, - const char *path, - const char *sep, - const char *dirsep) { - luaL_Buffer msg; /* to build error message */ - luaL_buffinit(L, &msg); - if (*sep != '\0') /* non-empty separator? */ - name = luaL_gsub(L, name, sep, dirsep); /* replace it by 'dirsep' */ - while ((path = pushnexttemplate(L, path)) != NULL) { - const char *filename = luaL_gsub(L, lua_tostring(L, -1), - LUA_PATH_MARK, name); - lua_remove(L, -2); /* remove path template */ - if (readable(filename)) /* does file exist and is readable? */ - return filename; /* return that file name */ - lua_pushfstring(L, "\n\tno file " LUA_QS, filename); - lua_remove(L, -2); /* remove file name */ - luaL_addvalue(&msg); /* concatenate error msg. entry */ - } - luaL_pushresult(&msg); /* create error message */ - return NULL; /* not found */ -} - - -static int ll_searchpath (lua_State *L) { - const char *f = searchpath(L, luaL_checkstring(L, 1), - luaL_checkstring(L, 2), - luaL_optstring(L, 3, "."), - luaL_optstring(L, 4, LUA_DIRSEP)); - if (f != NULL) return 1; - else { /* error message is on top of the stack */ - lua_pushnil(L); - lua_insert(L, -2); - return 2; /* return nil + error message */ - } -} - - -static const char *findfile (lua_State *L, const char *name, - const char *pname, - const char *dirsep) { - const char *path; - lua_getfield(L, lua_upvalueindex(1), pname); - path = lua_tostring(L, -1); - if (path == NULL) - luaL_error(L, LUA_QL("package.%s") " must be a string", pname); - return searchpath(L, name, path, ".", dirsep); -} - - -static int checkload (lua_State *L, int stat, const char *filename) { - if (stat) { /* module loaded successfully? */ - lua_pushstring(L, filename); /* will be 2nd argument to module */ - return 2; /* return open function and file name */ - } - else - return luaL_error(L, "error loading module " LUA_QS - " from file " LUA_QS ":\n\t%s", - lua_tostring(L, 1), filename, lua_tostring(L, -1)); -} - - -static int searcher_Lua (lua_State *L) { - const char *filename; - const char *name = luaL_checkstring(L, 1); - filename = findfile(L, name, "path", LUA_LSUBSEP); - if (filename == NULL) return 1; /* module not found in this path */ - return checkload(L, (luaL_loadfile(L, filename) == LUA_OK), filename); -} - - -static int loadfunc (lua_State *L, const char *filename, const char *modname) { - const char *funcname; - const char *mark; - modname = luaL_gsub(L, modname, ".", LUA_OFSEP); - mark = strchr(modname, *LUA_IGMARK); - if (mark) { - int stat; - funcname = lua_pushlstring(L, modname, mark - modname); - funcname = lua_pushfstring(L, LUA_POF"%s", funcname); - stat = ll_loadfunc(L, filename, funcname); - if (stat != ERRFUNC) return stat; - modname = mark + 1; /* else go ahead and try old-style name */ - } - funcname = lua_pushfstring(L, LUA_POF"%s", modname); - return ll_loadfunc(L, filename, funcname); -} - - -static int searcher_C (lua_State *L) { - const char *name = luaL_checkstring(L, 1); - const char *filename = findfile(L, name, "cpath", LUA_CSUBSEP); - if (filename == NULL) return 1; /* module not found in this path */ - return checkload(L, (loadfunc(L, filename, name) == 0), filename); -} - - -static int searcher_Croot (lua_State *L) { - const char *filename; - const char *name = luaL_checkstring(L, 1); - const char *p = strchr(name, '.'); - int stat; - if (p == NULL) return 0; /* is root */ - lua_pushlstring(L, name, p - name); - filename = findfile(L, lua_tostring(L, -1), "cpath", LUA_CSUBSEP); - if (filename == NULL) return 1; /* root not found */ - if ((stat = loadfunc(L, filename, name)) != 0) { - if (stat != ERRFUNC) - return checkload(L, 0, filename); /* real error */ - else { /* open function not found */ - lua_pushfstring(L, "\n\tno module " LUA_QS " in file " LUA_QS, - name, filename); - return 1; - } - } - lua_pushstring(L, filename); /* will be 2nd argument to module */ - return 2; -} - - -static int searcher_preload (lua_State *L) { - const char *name = luaL_checkstring(L, 1); - lua_getfield(L, LUA_REGISTRYINDEX, "_PRELOAD"); - lua_getfield(L, -1, name); - if (lua_isnil(L, -1)) /* not found? */ - lua_pushfstring(L, "\n\tno field package.preload['%s']", name); - return 1; -} - - -static void findloader (lua_State *L, const char *name) { - int i; - luaL_Buffer msg; /* to build error message */ - luaL_buffinit(L, &msg); - lua_getfield(L, lua_upvalueindex(1), "searchers"); /* will be at index 3 */ - if (!lua_istable(L, 3)) - luaL_error(L, LUA_QL("package.searchers") " must be a table"); - /* iterate over available searchers to find a loader */ - for (i = 1; ; i++) { - lua_rawgeti(L, 3, i); /* get a searcher */ - if (lua_isnil(L, -1)) { /* no more searchers? */ - lua_pop(L, 1); /* remove nil */ - luaL_pushresult(&msg); /* create error message */ - luaL_error(L, "module " LUA_QS " not found:%s", - name, lua_tostring(L, -1)); - } - lua_pushstring(L, name); - lua_call(L, 1, 2); /* call it */ - if (lua_isfunction(L, -2)) /* did it find a loader? */ - return; /* module loader found */ - else if (lua_isstring(L, -2)) { /* searcher returned error message? */ - lua_pop(L, 1); /* remove extra return */ - luaL_addvalue(&msg); /* concatenate error message */ - } - else - lua_pop(L, 2); /* remove both returns */ - } -} - - -static int ll_require (lua_State *L) { - const char *name = luaL_checkstring(L, 1); - lua_settop(L, 1); /* _LOADED table will be at index 2 */ - lua_getfield(L, LUA_REGISTRYINDEX, "_LOADED"); - lua_getfield(L, 2, name); /* _LOADED[name] */ - if (lua_toboolean(L, -1)) /* is it there? */ - return 1; /* package is already loaded */ - /* else must load package */ - lua_pop(L, 1); /* remove 'getfield' result */ - findloader(L, name); - lua_pushstring(L, name); /* pass name as argument to module loader */ - lua_insert(L, -2); /* name is 1st argument (before search data) */ - lua_call(L, 2, 1); /* run loader to load module */ - if (!lua_isnil(L, -1)) /* non-nil return? */ - lua_setfield(L, 2, name); /* _LOADED[name] = returned value */ - lua_getfield(L, 2, name); - if (lua_isnil(L, -1)) { /* module did not set a value? */ - lua_pushboolean(L, 1); /* use true as result */ - lua_pushvalue(L, -1); /* extra copy to be returned */ - lua_setfield(L, 2, name); /* _LOADED[name] = true */ - } - return 1; -} - -/* }====================================================== */ - - - -/* -** {====================================================== -** 'module' function -** ======================================================= -*/ -#if defined(LUA_COMPAT_MODULE) - -/* -** changes the environment variable of calling function -*/ -static void set_env (lua_State *L) { - lua_Debug ar; - if (lua_getstack(L, 1, &ar) == 0 || - lua_getinfo(L, "f", &ar) == 0 || /* get calling function */ - lua_iscfunction(L, -1)) - luaL_error(L, LUA_QL("module") " not called from a Lua function"); - lua_pushvalue(L, -2); /* copy new environment table to top */ - lua_setupvalue(L, -2, 1); - lua_pop(L, 1); /* remove function */ -} - - -static void dooptions (lua_State *L, int n) { - int i; - for (i = 2; i <= n; i++) { - if (lua_isfunction(L, i)) { /* avoid 'calling' extra info. */ - lua_pushvalue(L, i); /* get option (a function) */ - lua_pushvalue(L, -2); /* module */ - lua_call(L, 1, 0); - } - } -} - - -static void modinit (lua_State *L, const char *modname) { - const char *dot; - lua_pushvalue(L, -1); - lua_setfield(L, -2, "_M"); /* module._M = module */ - lua_pushstring(L, modname); - lua_setfield(L, -2, "_NAME"); - dot = strrchr(modname, '.'); /* look for last dot in module name */ - if (dot == NULL) dot = modname; - else dot++; - /* set _PACKAGE as package name (full module name minus last part) */ - lua_pushlstring(L, modname, dot - modname); - lua_setfield(L, -2, "_PACKAGE"); -} - - -static int ll_module (lua_State *L) { - const char *modname = luaL_checkstring(L, 1); - int lastarg = lua_gettop(L); /* last parameter */ - luaL_pushmodule(L, modname, 1); /* get/create module table */ - /* check whether table already has a _NAME field */ - lua_getfield(L, -1, "_NAME"); - if (!lua_isnil(L, -1)) /* is table an initialized module? */ - lua_pop(L, 1); - else { /* no; initialize it */ - lua_pop(L, 1); - modinit(L, modname); - } - lua_pushvalue(L, -1); - set_env(L); - dooptions(L, lastarg); - return 1; -} - - -static int ll_seeall (lua_State *L) { - luaL_checktype(L, 1, LUA_TTABLE); - if (!lua_getmetatable(L, 1)) { - lua_createtable(L, 0, 1); /* create new metatable */ - lua_pushvalue(L, -1); - lua_setmetatable(L, 1); - } - lua_pushglobaltable(L); - lua_setfield(L, -2, "__index"); /* mt.__index = _G */ - return 0; -} - -#endif -/* }====================================================== */ - - - -/* auxiliary mark (for internal use) */ -#define AUXMARK "\1" - - -/* -** return registry.LUA_NOENV as a boolean -*/ -static int noenv (lua_State *L) { - int b; - lua_getfield(L, LUA_REGISTRYINDEX, "LUA_NOENV"); - b = lua_toboolean(L, -1); - lua_pop(L, 1); /* remove value */ - return b; -} - - -static void setpath (lua_State *L, const char *fieldname, const char *envname1, - const char *envname2, const char *def) { - const char *path = getenv(envname1); - if (path == NULL) /* no environment variable? */ - path = getenv(envname2); /* try alternative name */ - if (path == NULL || noenv(L)) /* no environment variable? */ - lua_pushstring(L, def); /* use default */ - else { - /* replace ";;" by ";AUXMARK;" and then AUXMARK by default path */ - path = luaL_gsub(L, path, LUA_PATH_SEP LUA_PATH_SEP, - LUA_PATH_SEP AUXMARK LUA_PATH_SEP); - luaL_gsub(L, path, AUXMARK, def); - lua_remove(L, -2); - } - setprogdir(L); - lua_setfield(L, -2, fieldname); -} - - -static const luaL_Reg pk_funcs[] = { - {"loadlib", ll_loadlib}, - {"searchpath", ll_searchpath}, -#if defined(LUA_COMPAT_MODULE) - {"seeall", ll_seeall}, -#endif - {NULL, NULL} -}; - - -static const luaL_Reg ll_funcs[] = { -#if defined(LUA_COMPAT_MODULE) - {"module", ll_module}, -#endif - {"require", ll_require}, - {NULL, NULL} -}; - - -static void createsearcherstable (lua_State *L) { - static const lua_CFunction searchers[] = - {searcher_preload, searcher_Lua, searcher_C, searcher_Croot, NULL}; - int i; - /* create 'searchers' table */ - lua_createtable(L, sizeof(searchers)/sizeof(searchers[0]) - 1, 0); - /* fill it with pre-defined searchers */ - for (i=0; searchers[i] != NULL; i++) { - lua_pushvalue(L, -2); /* set 'package' as upvalue for all searchers */ - lua_pushcclosure(L, searchers[i], 1); - lua_rawseti(L, -2, i+1); - } -} - - -LUAMOD_API int luaopen_package (lua_State *L) { - /* create table CLIBS to keep track of loaded C libraries */ - luaL_getsubtable(L, LUA_REGISTRYINDEX, CLIBS); - lua_createtable(L, 0, 1); /* metatable for CLIBS */ - lua_pushcfunction(L, gctm); - lua_setfield(L, -2, "__gc"); /* set finalizer for CLIBS table */ - lua_setmetatable(L, -2); - /* create `package' table */ - luaL_newlib(L, pk_funcs); - createsearcherstable(L); -#if defined(LUA_COMPAT_LOADERS) - lua_pushvalue(L, -1); /* make a copy of 'searchers' table */ - lua_setfield(L, -3, "loaders"); /* put it in field `loaders' */ -#endif - lua_setfield(L, -2, "searchers"); /* put it in field 'searchers' */ - /* set field 'path' */ - setpath(L, "path", LUA_PATHVERSION, LUA_PATH, LUA_PATH_DEFAULT); - /* set field 'cpath' */ - setpath(L, "cpath", LUA_CPATHVERSION, LUA_CPATH, LUA_CPATH_DEFAULT); - /* store config information */ - lua_pushliteral(L, LUA_DIRSEP "\n" LUA_PATH_SEP "\n" LUA_PATH_MARK "\n" - LUA_EXEC_DIR "\n" LUA_IGMARK "\n"); - lua_setfield(L, -2, "config"); - /* set field `loaded' */ - luaL_getsubtable(L, LUA_REGISTRYINDEX, "_LOADED"); - lua_setfield(L, -2, "loaded"); - /* set field `preload' */ - luaL_getsubtable(L, LUA_REGISTRYINDEX, "_PRELOAD"); - lua_setfield(L, -2, "preload"); - lua_pushglobaltable(L); - lua_pushvalue(L, -2); /* set 'package' as upvalue for next lib */ - luaL_setfuncs(L, ll_funcs, 1); /* open lib into global table */ - lua_pop(L, 1); /* pop global table */ - return 1; /* return 'package' table */ -} - diff --git a/source/libs/lua52/lua52-src/src/lobject.c b/source/libs/lua52/lua52-src/src/lobject.c deleted file mode 100644 index 882d994d41360646f6c0d3565971a7cd61139a05..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lobject.c +++ /dev/null @@ -1,287 +0,0 @@ -/* -** $Id: lobject.c,v 2.58.1.1 2013/04/12 18:48:47 roberto Exp $ -** Some generic functions over Lua objects -** See Copyright Notice in lua.h -*/ - -#include <stdarg.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#define lobject_c -#define LUA_CORE - -#include "lua.h" - -#include "lctype.h" -#include "ldebug.h" -#include "ldo.h" -#include "lmem.h" -#include "lobject.h" -#include "lstate.h" -#include "lstring.h" -#include "lvm.h" - - - -LUAI_DDEF const TValue luaO_nilobject_ = {NILCONSTANT}; - - -/* -** converts an integer to a "floating point byte", represented as -** (eeeeexxx), where the real value is (1xxx) * 2^(eeeee - 1) if -** eeeee != 0 and (xxx) otherwise. -*/ -int luaO_int2fb (unsigned int x) { - int e = 0; /* exponent */ - if (x < 8) return x; - while (x >= 0x10) { - x = (x+1) >> 1; - e++; - } - return ((e+1) << 3) | (cast_int(x) - 8); -} - - -/* converts back */ -int luaO_fb2int (int x) { - int e = (x >> 3) & 0x1f; - if (e == 0) return x; - else return ((x & 7) + 8) << (e - 1); -} - - -int luaO_ceillog2 (unsigned int x) { - static const lu_byte log_2[256] = { - 0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 - }; - int l = 0; - x--; - while (x >= 256) { l += 8; x >>= 8; } - return l + log_2[x]; -} - - -lua_Number luaO_arith (int op, lua_Number v1, lua_Number v2) { - switch (op) { - case LUA_OPADD: return luai_numadd(NULL, v1, v2); - case LUA_OPSUB: return luai_numsub(NULL, v1, v2); - case LUA_OPMUL: return luai_nummul(NULL, v1, v2); - case LUA_OPDIV: return luai_numdiv(NULL, v1, v2); - case LUA_OPMOD: return luai_nummod(NULL, v1, v2); - case LUA_OPPOW: return luai_numpow(NULL, v1, v2); - case LUA_OPUNM: return luai_numunm(NULL, v1); - default: lua_assert(0); return 0; - } -} - - -int luaO_hexavalue (int c) { - if (lisdigit(c)) return c - '0'; - else return ltolower(c) - 'a' + 10; -} - - -#if !defined(lua_strx2number) - -#include <math.h> - - -static int isneg (const char **s) { - if (**s == '-') { (*s)++; return 1; } - else if (**s == '+') (*s)++; - return 0; -} - - -static lua_Number readhexa (const char **s, lua_Number r, int *count) { - for (; lisxdigit(cast_uchar(**s)); (*s)++) { /* read integer part */ - r = (r * cast_num(16.0)) + cast_num(luaO_hexavalue(cast_uchar(**s))); - (*count)++; - } - return r; -} - - -/* -** convert an hexadecimal numeric string to a number, following -** C99 specification for 'strtod' -*/ -static lua_Number lua_strx2number (const char *s, char **endptr) { - lua_Number r = 0.0; - int e = 0, i = 0; - int neg = 0; /* 1 if number is negative */ - *endptr = cast(char *, s); /* nothing is valid yet */ - while (lisspace(cast_uchar(*s))) s++; /* skip initial spaces */ - neg = isneg(&s); /* check signal */ - if (!(*s == '0' && (*(s + 1) == 'x' || *(s + 1) == 'X'))) /* check '0x' */ - return 0.0; /* invalid format (no '0x') */ - s += 2; /* skip '0x' */ - r = readhexa(&s, r, &i); /* read integer part */ - if (*s == '.') { - s++; /* skip dot */ - r = readhexa(&s, r, &e); /* read fractional part */ - } - if (i == 0 && e == 0) - return 0.0; /* invalid format (no digit) */ - e *= -4; /* each fractional digit divides value by 2^-4 */ - *endptr = cast(char *, s); /* valid up to here */ - if (*s == 'p' || *s == 'P') { /* exponent part? */ - int exp1 = 0; - int neg1; - s++; /* skip 'p' */ - neg1 = isneg(&s); /* signal */ - if (!lisdigit(cast_uchar(*s))) - goto ret; /* must have at least one digit */ - while (lisdigit(cast_uchar(*s))) /* read exponent */ - exp1 = exp1 * 10 + *(s++) - '0'; - if (neg1) exp1 = -exp1; - e += exp1; - } - *endptr = cast(char *, s); /* valid up to here */ - ret: - if (neg) r = -r; - return l_mathop(ldexp)(r, e); -} - -#endif - - -int luaO_str2d (const char *s, size_t len, lua_Number *result) { - char *endptr; - if (strpbrk(s, "nN")) /* reject 'inf' and 'nan' */ - return 0; - else if (strpbrk(s, "xX")) /* hexa? */ - *result = lua_strx2number(s, &endptr); - else - *result = lua_str2number(s, &endptr); - if (endptr == s) return 0; /* nothing recognized */ - while (lisspace(cast_uchar(*endptr))) endptr++; - return (endptr == s + len); /* OK if no trailing characters */ -} - - - -static void pushstr (lua_State *L, const char *str, size_t l) { - setsvalue2s(L, L->top++, luaS_newlstr(L, str, l)); -} - - -/* this function handles only `%d', `%c', %f, %p, and `%s' formats */ -const char *luaO_pushvfstring (lua_State *L, const char *fmt, va_list argp) { - int n = 0; - for (;;) { - const char *e = strchr(fmt, '%'); - if (e == NULL) break; - luaD_checkstack(L, 2); /* fmt + item */ - pushstr(L, fmt, e - fmt); - switch (*(e+1)) { - case 's': { - const char *s = va_arg(argp, char *); - if (s == NULL) s = "(null)"; - pushstr(L, s, strlen(s)); - break; - } - case 'c': { - char buff; - buff = cast(char, va_arg(argp, int)); - pushstr(L, &buff, 1); - break; - } - case 'd': { - setnvalue(L->top++, cast_num(va_arg(argp, int))); - break; - } - case 'f': { - setnvalue(L->top++, cast_num(va_arg(argp, l_uacNumber))); - break; - } - case 'p': { - char buff[4*sizeof(void *) + 8]; /* should be enough space for a `%p' */ - int l = sprintf(buff, "%p", va_arg(argp, void *)); - pushstr(L, buff, l); - break; - } - case '%': { - pushstr(L, "%", 1); - break; - } - default: { - luaG_runerror(L, - "invalid option " LUA_QL("%%%c") " to " LUA_QL("lua_pushfstring"), - *(e + 1)); - } - } - n += 2; - fmt = e+2; - } - luaD_checkstack(L, 1); - pushstr(L, fmt, strlen(fmt)); - if (n > 0) luaV_concat(L, n + 1); - return svalue(L->top - 1); -} - - -const char *luaO_pushfstring (lua_State *L, const char *fmt, ...) { - const char *msg; - va_list argp; - va_start(argp, fmt); - msg = luaO_pushvfstring(L, fmt, argp); - va_end(argp); - return msg; -} - - -/* number of chars of a literal string without the ending \0 */ -#define LL(x) (sizeof(x)/sizeof(char) - 1) - -#define RETS "..." -#define PRE "[string \"" -#define POS "\"]" - -#define addstr(a,b,l) ( memcpy(a,b,(l) * sizeof(char)), a += (l) ) - -void luaO_chunkid (char *out, const char *source, size_t bufflen) { - size_t l = strlen(source); - if (*source == '=') { /* 'literal' source */ - if (l <= bufflen) /* small enough? */ - memcpy(out, source + 1, l * sizeof(char)); - else { /* truncate it */ - addstr(out, source + 1, bufflen - 1); - *out = '\0'; - } - } - else if (*source == '@') { /* file name */ - if (l <= bufflen) /* small enough? */ - memcpy(out, source + 1, l * sizeof(char)); - else { /* add '...' before rest of name */ - addstr(out, RETS, LL(RETS)); - bufflen -= LL(RETS); - memcpy(out, source + 1 + l - bufflen, bufflen * sizeof(char)); - } - } - else { /* string; format as [string "source"] */ - const char *nl = strchr(source, '\n'); /* find first new line (if any) */ - addstr(out, PRE, LL(PRE)); /* add prefix */ - bufflen -= LL(PRE RETS POS) + 1; /* save space for prefix+suffix+'\0' */ - if (l < bufflen && nl == NULL) { /* small one-line source? */ - addstr(out, source, l); /* keep it */ - } - else { - if (nl != NULL) l = nl - source; /* stop at first newline */ - if (l > bufflen) l = bufflen; - addstr(out, source, l); - addstr(out, RETS, LL(RETS)); - } - memcpy(out, POS, (LL(POS) + 1) * sizeof(char)); - } -} - diff --git a/source/libs/lua52/lua52-src/src/lobject.h b/source/libs/lua52/lua52-src/src/lobject.h deleted file mode 100644 index bc0bb69f1f42583e5fe6b1d51ad2f16e4cbcdfe7..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lobject.h +++ /dev/null @@ -1,607 +0,0 @@ -/* -** $Id: lobject.h,v 2.71.1.2 2014/05/07 14:14:58 roberto Exp $ -** Type definitions for Lua objects -** See Copyright Notice in lua.h -*/ - - -#ifndef lobject_h -#define lobject_h - - -#include <stdarg.h> - - -#include "llimits.h" -#include "lua.h" - - -/* -** Extra tags for non-values -*/ -#define LUA_TPROTO LUA_NUMTAGS -#define LUA_TUPVAL (LUA_NUMTAGS+1) -#define LUA_TDEADKEY (LUA_NUMTAGS+2) - -/* -** number of all possible tags (including LUA_TNONE but excluding DEADKEY) -*/ -#define LUA_TOTALTAGS (LUA_TUPVAL+2) - - -/* -** tags for Tagged Values have the following use of bits: -** bits 0-3: actual tag (a LUA_T* value) -** bits 4-5: variant bits -** bit 6: whether value is collectable -*/ - -#define VARBITS (3 << 4) - - -/* -** LUA_TFUNCTION variants: -** 0 - Lua function -** 1 - light C function -** 2 - regular C function (closure) -*/ - -/* Variant tags for functions */ -#define LUA_TLCL (LUA_TFUNCTION | (0 << 4)) /* Lua closure */ -#define LUA_TLCF (LUA_TFUNCTION | (1 << 4)) /* light C function */ -#define LUA_TCCL (LUA_TFUNCTION | (2 << 4)) /* C closure */ - - -/* Variant tags for strings */ -#define LUA_TSHRSTR (LUA_TSTRING | (0 << 4)) /* short strings */ -#define LUA_TLNGSTR (LUA_TSTRING | (1 << 4)) /* long strings */ - - -/* Bit mark for collectable types */ -#define BIT_ISCOLLECTABLE (1 << 6) - -/* mark a tag as collectable */ -#define ctb(t) ((t) | BIT_ISCOLLECTABLE) - - -/* -** Union of all collectable objects -*/ -typedef union GCObject GCObject; - - -/* -** Common Header for all collectable objects (in macro form, to be -** included in other objects) -*/ -#define CommonHeader GCObject *next; lu_byte tt; lu_byte marked - - -/* -** Common header in struct form -*/ -typedef struct GCheader { - CommonHeader; -} GCheader; - - - -/* -** Union of all Lua values -*/ -typedef union Value Value; - - -#define numfield lua_Number n; /* numbers */ - - - -/* -** Tagged Values. This is the basic representation of values in Lua, -** an actual value plus a tag with its type. -*/ - -#define TValuefields Value value_; int tt_ - -typedef struct lua_TValue TValue; - - -/* macro defining a nil value */ -#define NILCONSTANT {NULL}, LUA_TNIL - - -#define val_(o) ((o)->value_) -#define num_(o) (val_(o).n) - - -/* raw type tag of a TValue */ -#define rttype(o) ((o)->tt_) - -/* tag with no variants (bits 0-3) */ -#define novariant(x) ((x) & 0x0F) - -/* type tag of a TValue (bits 0-3 for tags + variant bits 4-5) */ -#define ttype(o) (rttype(o) & 0x3F) - -/* type tag of a TValue with no variants (bits 0-3) */ -#define ttypenv(o) (novariant(rttype(o))) - - -/* Macros to test type */ -#define checktag(o,t) (rttype(o) == (t)) -#define checktype(o,t) (ttypenv(o) == (t)) -#define ttisnumber(o) checktag((o), LUA_TNUMBER) -#define ttisnil(o) checktag((o), LUA_TNIL) -#define ttisboolean(o) checktag((o), LUA_TBOOLEAN) -#define ttislightuserdata(o) checktag((o), LUA_TLIGHTUSERDATA) -#define ttisstring(o) checktype((o), LUA_TSTRING) -#define ttisshrstring(o) checktag((o), ctb(LUA_TSHRSTR)) -#define ttislngstring(o) checktag((o), ctb(LUA_TLNGSTR)) -#define ttistable(o) checktag((o), ctb(LUA_TTABLE)) -#define ttisfunction(o) checktype(o, LUA_TFUNCTION) -#define ttisclosure(o) ((rttype(o) & 0x1F) == LUA_TFUNCTION) -#define ttisCclosure(o) checktag((o), ctb(LUA_TCCL)) -#define ttisLclosure(o) checktag((o), ctb(LUA_TLCL)) -#define ttislcf(o) checktag((o), LUA_TLCF) -#define ttisuserdata(o) checktag((o), ctb(LUA_TUSERDATA)) -#define ttisthread(o) checktag((o), ctb(LUA_TTHREAD)) -#define ttisdeadkey(o) checktag((o), LUA_TDEADKEY) - -#define ttisequal(o1,o2) (rttype(o1) == rttype(o2)) - -/* Macros to access values */ -#define nvalue(o) check_exp(ttisnumber(o), num_(o)) -#define gcvalue(o) check_exp(iscollectable(o), val_(o).gc) -#define pvalue(o) check_exp(ttislightuserdata(o), val_(o).p) -#define rawtsvalue(o) check_exp(ttisstring(o), &val_(o).gc->ts) -#define tsvalue(o) (&rawtsvalue(o)->tsv) -#define rawuvalue(o) check_exp(ttisuserdata(o), &val_(o).gc->u) -#define uvalue(o) (&rawuvalue(o)->uv) -#define clvalue(o) check_exp(ttisclosure(o), &val_(o).gc->cl) -#define clLvalue(o) check_exp(ttisLclosure(o), &val_(o).gc->cl.l) -#define clCvalue(o) check_exp(ttisCclosure(o), &val_(o).gc->cl.c) -#define fvalue(o) check_exp(ttislcf(o), val_(o).f) -#define hvalue(o) check_exp(ttistable(o), &val_(o).gc->h) -#define bvalue(o) check_exp(ttisboolean(o), val_(o).b) -#define thvalue(o) check_exp(ttisthread(o), &val_(o).gc->th) -/* a dead value may get the 'gc' field, but cannot access its contents */ -#define deadvalue(o) check_exp(ttisdeadkey(o), cast(void *, val_(o).gc)) - -#define l_isfalse(o) (ttisnil(o) || (ttisboolean(o) && bvalue(o) == 0)) - - -#define iscollectable(o) (rttype(o) & BIT_ISCOLLECTABLE) - - -/* Macros for internal tests */ -#define righttt(obj) (ttype(obj) == gcvalue(obj)->gch.tt) - -#define checkliveness(g,obj) \ - lua_longassert(!iscollectable(obj) || \ - (righttt(obj) && !isdead(g,gcvalue(obj)))) - - -/* Macros to set values */ -#define settt_(o,t) ((o)->tt_=(t)) - -#define setnvalue(obj,x) \ - { TValue *io=(obj); num_(io)=(x); settt_(io, LUA_TNUMBER); } - -#define setnilvalue(obj) settt_(obj, LUA_TNIL) - -#define setfvalue(obj,x) \ - { TValue *io=(obj); val_(io).f=(x); settt_(io, LUA_TLCF); } - -#define setpvalue(obj,x) \ - { TValue *io=(obj); val_(io).p=(x); settt_(io, LUA_TLIGHTUSERDATA); } - -#define setbvalue(obj,x) \ - { TValue *io=(obj); val_(io).b=(x); settt_(io, LUA_TBOOLEAN); } - -#define setgcovalue(L,obj,x) \ - { TValue *io=(obj); GCObject *i_g=(x); \ - val_(io).gc=i_g; settt_(io, ctb(gch(i_g)->tt)); } - -#define setsvalue(L,obj,x) \ - { TValue *io=(obj); \ - TString *x_ = (x); \ - val_(io).gc=cast(GCObject *, x_); settt_(io, ctb(x_->tsv.tt)); \ - checkliveness(G(L),io); } - -#define setuvalue(L,obj,x) \ - { TValue *io=(obj); \ - val_(io).gc=cast(GCObject *, (x)); settt_(io, ctb(LUA_TUSERDATA)); \ - checkliveness(G(L),io); } - -#define setthvalue(L,obj,x) \ - { TValue *io=(obj); \ - val_(io).gc=cast(GCObject *, (x)); settt_(io, ctb(LUA_TTHREAD)); \ - checkliveness(G(L),io); } - -#define setclLvalue(L,obj,x) \ - { TValue *io=(obj); \ - val_(io).gc=cast(GCObject *, (x)); settt_(io, ctb(LUA_TLCL)); \ - checkliveness(G(L),io); } - -#define setclCvalue(L,obj,x) \ - { TValue *io=(obj); \ - val_(io).gc=cast(GCObject *, (x)); settt_(io, ctb(LUA_TCCL)); \ - checkliveness(G(L),io); } - -#define sethvalue(L,obj,x) \ - { TValue *io=(obj); \ - val_(io).gc=cast(GCObject *, (x)); settt_(io, ctb(LUA_TTABLE)); \ - checkliveness(G(L),io); } - -#define setdeadvalue(obj) settt_(obj, LUA_TDEADKEY) - - - -#define setobj(L,obj1,obj2) \ - { const TValue *io2=(obj2); TValue *io1=(obj1); \ - io1->value_ = io2->value_; io1->tt_ = io2->tt_; \ - checkliveness(G(L),io1); } - - -/* -** different types of assignments, according to destination -*/ - -/* from stack to (same) stack */ -#define setobjs2s setobj -/* to stack (not from same stack) */ -#define setobj2s setobj -#define setsvalue2s setsvalue -#define sethvalue2s sethvalue -#define setptvalue2s setptvalue -/* from table to same table */ -#define setobjt2t setobj -/* to table */ -#define setobj2t setobj -/* to new object */ -#define setobj2n setobj -#define setsvalue2n setsvalue - - -/* check whether a number is valid (useful only for NaN trick) */ -#define luai_checknum(L,o,c) { /* empty */ } - - -/* -** {====================================================== -** NaN Trick -** ======================================================= -*/ -#if defined(LUA_NANTRICK) - -/* -** numbers are represented in the 'd_' field. All other values have the -** value (NNMARK | tag) in 'tt__'. A number with such pattern would be -** a "signaled NaN", which is never generated by regular operations by -** the CPU (nor by 'strtod') -*/ - -/* allows for external implementation for part of the trick */ -#if !defined(NNMARK) /* { */ - - -#if !defined(LUA_IEEEENDIAN) -#error option 'LUA_NANTRICK' needs 'LUA_IEEEENDIAN' -#endif - - -#define NNMARK 0x7FF7A500 -#define NNMASK 0x7FFFFF00 - -#undef TValuefields -#undef NILCONSTANT - -#if (LUA_IEEEENDIAN == 0) /* { */ - -/* little endian */ -#define TValuefields \ - union { struct { Value v__; int tt__; } i; double d__; } u -#define NILCONSTANT {{{NULL}, tag2tt(LUA_TNIL)}} -/* field-access macros */ -#define v_(o) ((o)->u.i.v__) -#define d_(o) ((o)->u.d__) -#define tt_(o) ((o)->u.i.tt__) - -#else /* }{ */ - -/* big endian */ -#define TValuefields \ - union { struct { int tt__; Value v__; } i; double d__; } u -#define NILCONSTANT {{tag2tt(LUA_TNIL), {NULL}}} -/* field-access macros */ -#define v_(o) ((o)->u.i.v__) -#define d_(o) ((o)->u.d__) -#define tt_(o) ((o)->u.i.tt__) - -#endif /* } */ - -#endif /* } */ - - -/* correspondence with standard representation */ -#undef val_ -#define val_(o) v_(o) -#undef num_ -#define num_(o) d_(o) - - -#undef numfield -#define numfield /* no such field; numbers are the entire struct */ - -/* basic check to distinguish numbers from non-numbers */ -#undef ttisnumber -#define ttisnumber(o) ((tt_(o) & NNMASK) != NNMARK) - -#define tag2tt(t) (NNMARK | (t)) - -#undef rttype -#define rttype(o) (ttisnumber(o) ? LUA_TNUMBER : tt_(o) & 0xff) - -#undef settt_ -#define settt_(o,t) (tt_(o) = tag2tt(t)) - -#undef setnvalue -#define setnvalue(obj,x) \ - { TValue *io_=(obj); num_(io_)=(x); lua_assert(ttisnumber(io_)); } - -#undef setobj -#define setobj(L,obj1,obj2) \ - { const TValue *o2_=(obj2); TValue *o1_=(obj1); \ - o1_->u = o2_->u; \ - checkliveness(G(L),o1_); } - - -/* -** these redefinitions are not mandatory, but these forms are more efficient -*/ - -#undef checktag -#undef checktype -#define checktag(o,t) (tt_(o) == tag2tt(t)) -#define checktype(o,t) (ctb(tt_(o) | VARBITS) == ctb(tag2tt(t) | VARBITS)) - -#undef ttisequal -#define ttisequal(o1,o2) \ - (ttisnumber(o1) ? ttisnumber(o2) : (tt_(o1) == tt_(o2))) - - -#undef luai_checknum -#define luai_checknum(L,o,c) { if (!ttisnumber(o)) c; } - -#endif -/* }====================================================== */ - - - -/* -** {====================================================== -** types and prototypes -** ======================================================= -*/ - - -union Value { - GCObject *gc; /* collectable objects */ - void *p; /* light userdata */ - int b; /* booleans */ - lua_CFunction f; /* light C functions */ - numfield /* numbers */ -}; - - -struct lua_TValue { - TValuefields; -}; - - -typedef TValue *StkId; /* index to stack elements */ - - - - -/* -** Header for string value; string bytes follow the end of this structure -*/ -typedef union TString { - L_Umaxalign dummy; /* ensures maximum alignment for strings */ - struct { - CommonHeader; - lu_byte extra; /* reserved words for short strings; "has hash" for longs */ - unsigned int hash; - size_t len; /* number of characters in string */ - } tsv; -} TString; - - -/* get the actual string (array of bytes) from a TString */ -#define getstr(ts) cast(const char *, (ts) + 1) - -/* get the actual string (array of bytes) from a Lua value */ -#define svalue(o) getstr(rawtsvalue(o)) - - -/* -** Header for userdata; memory area follows the end of this structure -*/ -typedef union Udata { - L_Umaxalign dummy; /* ensures maximum alignment for `local' udata */ - struct { - CommonHeader; - struct Table *metatable; - struct Table *env; - size_t len; /* number of bytes */ - } uv; -} Udata; - - - -/* -** Description of an upvalue for function prototypes -*/ -typedef struct Upvaldesc { - TString *name; /* upvalue name (for debug information) */ - lu_byte instack; /* whether it is in stack */ - lu_byte idx; /* index of upvalue (in stack or in outer function's list) */ -} Upvaldesc; - - -/* -** Description of a local variable for function prototypes -** (used for debug information) -*/ -typedef struct LocVar { - TString *varname; - int startpc; /* first point where variable is active */ - int endpc; /* first point where variable is dead */ -} LocVar; - - -/* -** Function Prototypes -*/ -typedef struct Proto { - CommonHeader; - TValue *k; /* constants used by the function */ - Instruction *code; - struct Proto **p; /* functions defined inside the function */ - int *lineinfo; /* map from opcodes to source lines (debug information) */ - LocVar *locvars; /* information about local variables (debug information) */ - Upvaldesc *upvalues; /* upvalue information */ - union Closure *cache; /* last created closure with this prototype */ - TString *source; /* used for debug information */ - int sizeupvalues; /* size of 'upvalues' */ - int sizek; /* size of `k' */ - int sizecode; - int sizelineinfo; - int sizep; /* size of `p' */ - int sizelocvars; - int linedefined; - int lastlinedefined; - GCObject *gclist; - lu_byte numparams; /* number of fixed parameters */ - lu_byte is_vararg; - lu_byte maxstacksize; /* maximum stack used by this function */ -} Proto; - - - -/* -** Lua Upvalues -*/ -typedef struct UpVal { - CommonHeader; - TValue *v; /* points to stack or to its own value */ - union { - TValue value; /* the value (when closed) */ - struct { /* double linked list (when open) */ - struct UpVal *prev; - struct UpVal *next; - } l; - } u; -} UpVal; - - -/* -** Closures -*/ - -#define ClosureHeader \ - CommonHeader; lu_byte nupvalues; GCObject *gclist - -typedef struct CClosure { - ClosureHeader; - lua_CFunction f; - TValue upvalue[1]; /* list of upvalues */ -} CClosure; - - -typedef struct LClosure { - ClosureHeader; - struct Proto *p; - UpVal *upvals[1]; /* list of upvalues */ -} LClosure; - - -typedef union Closure { - CClosure c; - LClosure l; -} Closure; - - -#define isLfunction(o) ttisLclosure(o) - -#define getproto(o) (clLvalue(o)->p) - - -/* -** Tables -*/ - -typedef union TKey { - struct { - TValuefields; - struct Node *next; /* for chaining */ - } nk; - TValue tvk; -} TKey; - - -typedef struct Node { - TValue i_val; - TKey i_key; -} Node; - - -typedef struct Table { - CommonHeader; - lu_byte flags; /* 1<<p means tagmethod(p) is not present */ - lu_byte lsizenode; /* log2 of size of `node' array */ - int sizearray; /* size of `array' array */ - TValue *array; /* array part */ - Node *node; - Node *lastfree; /* any free position is before this position */ - struct Table *metatable; - GCObject *gclist; -} Table; - - - -/* -** `module' operation for hashing (size is always a power of 2) -*/ -#define lmod(s,size) \ - (check_exp((size&(size-1))==0, (cast(int, (s) & ((size)-1))))) - - -#define twoto(x) (1<<(x)) -#define sizenode(t) (twoto((t)->lsizenode)) - - -/* -** (address of) a fixed nil value -*/ -#define luaO_nilobject (&luaO_nilobject_) - - -LUAI_DDEC const TValue luaO_nilobject_; - - -LUAI_FUNC int luaO_int2fb (unsigned int x); -LUAI_FUNC int luaO_fb2int (int x); -LUAI_FUNC int luaO_ceillog2 (unsigned int x); -LUAI_FUNC lua_Number luaO_arith (int op, lua_Number v1, lua_Number v2); -LUAI_FUNC int luaO_str2d (const char *s, size_t len, lua_Number *result); -LUAI_FUNC int luaO_hexavalue (int c); -LUAI_FUNC const char *luaO_pushvfstring (lua_State *L, const char *fmt, - va_list argp); -LUAI_FUNC const char *luaO_pushfstring (lua_State *L, const char *fmt, ...); -LUAI_FUNC void luaO_chunkid (char *out, const char *source, size_t len); - - -#endif - diff --git a/source/libs/lua52/lua52-src/src/lopcodes.c b/source/libs/lua52/lua52-src/src/lopcodes.c deleted file mode 100644 index 4190dc7624282742a609bc81072de9699d8c87a1..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lopcodes.c +++ /dev/null @@ -1,107 +0,0 @@ -/* -** $Id: lopcodes.c,v 1.49.1.1 2013/04/12 18:48:47 roberto Exp $ -** Opcodes for Lua virtual machine -** See Copyright Notice in lua.h -*/ - - -#define lopcodes_c -#define LUA_CORE - - -#include "lopcodes.h" - - -/* ORDER OP */ - -LUAI_DDEF const char *const luaP_opnames[NUM_OPCODES+1] = { - "MOVE", - "LOADK", - "LOADKX", - "LOADBOOL", - "LOADNIL", - "GETUPVAL", - "GETTABUP", - "GETTABLE", - "SETTABUP", - "SETUPVAL", - "SETTABLE", - "NEWTABLE", - "SELF", - "ADD", - "SUB", - "MUL", - "DIV", - "MOD", - "POW", - "UNM", - "NOT", - "LEN", - "CONCAT", - "JMP", - "EQ", - "LT", - "LE", - "TEST", - "TESTSET", - "CALL", - "TAILCALL", - "RETURN", - "FORLOOP", - "FORPREP", - "TFORCALL", - "TFORLOOP", - "SETLIST", - "CLOSURE", - "VARARG", - "EXTRAARG", - NULL -}; - - -#define opmode(t,a,b,c,m) (((t)<<7) | ((a)<<6) | ((b)<<4) | ((c)<<2) | (m)) - -LUAI_DDEF const lu_byte luaP_opmodes[NUM_OPCODES] = { -/* T A B C mode opcode */ - opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_MOVE */ - ,opmode(0, 1, OpArgK, OpArgN, iABx) /* OP_LOADK */ - ,opmode(0, 1, OpArgN, OpArgN, iABx) /* OP_LOADKX */ - ,opmode(0, 1, OpArgU, OpArgU, iABC) /* OP_LOADBOOL */ - ,opmode(0, 1, OpArgU, OpArgN, iABC) /* OP_LOADNIL */ - ,opmode(0, 1, OpArgU, OpArgN, iABC) /* OP_GETUPVAL */ - ,opmode(0, 1, OpArgU, OpArgK, iABC) /* OP_GETTABUP */ - ,opmode(0, 1, OpArgR, OpArgK, iABC) /* OP_GETTABLE */ - ,opmode(0, 0, OpArgK, OpArgK, iABC) /* OP_SETTABUP */ - ,opmode(0, 0, OpArgU, OpArgN, iABC) /* OP_SETUPVAL */ - ,opmode(0, 0, OpArgK, OpArgK, iABC) /* OP_SETTABLE */ - ,opmode(0, 1, OpArgU, OpArgU, iABC) /* OP_NEWTABLE */ - ,opmode(0, 1, OpArgR, OpArgK, iABC) /* OP_SELF */ - ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_ADD */ - ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_SUB */ - ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_MUL */ - ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_DIV */ - ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_MOD */ - ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_POW */ - ,opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_UNM */ - ,opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_NOT */ - ,opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_LEN */ - ,opmode(0, 1, OpArgR, OpArgR, iABC) /* OP_CONCAT */ - ,opmode(0, 0, OpArgR, OpArgN, iAsBx) /* OP_JMP */ - ,opmode(1, 0, OpArgK, OpArgK, iABC) /* OP_EQ */ - ,opmode(1, 0, OpArgK, OpArgK, iABC) /* OP_LT */ - ,opmode(1, 0, OpArgK, OpArgK, iABC) /* OP_LE */ - ,opmode(1, 0, OpArgN, OpArgU, iABC) /* OP_TEST */ - ,opmode(1, 1, OpArgR, OpArgU, iABC) /* OP_TESTSET */ - ,opmode(0, 1, OpArgU, OpArgU, iABC) /* OP_CALL */ - ,opmode(0, 1, OpArgU, OpArgU, iABC) /* OP_TAILCALL */ - ,opmode(0, 0, OpArgU, OpArgN, iABC) /* OP_RETURN */ - ,opmode(0, 1, OpArgR, OpArgN, iAsBx) /* OP_FORLOOP */ - ,opmode(0, 1, OpArgR, OpArgN, iAsBx) /* OP_FORPREP */ - ,opmode(0, 0, OpArgN, OpArgU, iABC) /* OP_TFORCALL */ - ,opmode(0, 1, OpArgR, OpArgN, iAsBx) /* OP_TFORLOOP */ - ,opmode(0, 0, OpArgU, OpArgU, iABC) /* OP_SETLIST */ - ,opmode(0, 1, OpArgU, OpArgN, iABx) /* OP_CLOSURE */ - ,opmode(0, 1, OpArgU, OpArgN, iABC) /* OP_VARARG */ - ,opmode(0, 0, OpArgU, OpArgU, iAx) /* OP_EXTRAARG */ -}; - diff --git a/source/libs/lua52/lua52-src/src/lopcodes.h b/source/libs/lua52/lua52-src/src/lopcodes.h deleted file mode 100644 index c801757668ba6c46bdda493023d0a700632cad14..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lopcodes.h +++ /dev/null @@ -1,288 +0,0 @@ -/* -** $Id: lopcodes.h,v 1.142.1.2 2014/10/20 18:32:09 roberto Exp $ -** Opcodes for Lua virtual machine -** See Copyright Notice in lua.h -*/ - -#ifndef lopcodes_h -#define lopcodes_h - -#include "llimits.h" - - -/*=========================================================================== - We assume that instructions are unsigned numbers. - All instructions have an opcode in the first 6 bits. - Instructions can have the following fields: - `A' : 8 bits - `B' : 9 bits - `C' : 9 bits - 'Ax' : 26 bits ('A', 'B', and 'C' together) - `Bx' : 18 bits (`B' and `C' together) - `sBx' : signed Bx - - A signed argument is represented in excess K; that is, the number - value is the unsigned value minus K. K is exactly the maximum value - for that argument (so that -max is represented by 0, and +max is - represented by 2*max), which is half the maximum for the corresponding - unsigned argument. -===========================================================================*/ - - -enum OpMode {iABC, iABx, iAsBx, iAx}; /* basic instruction format */ - - -/* -** size and position of opcode arguments. -*/ -#define SIZE_C 9 -#define SIZE_B 9 -#define SIZE_Bx (SIZE_C + SIZE_B) -#define SIZE_A 8 -#define SIZE_Ax (SIZE_C + SIZE_B + SIZE_A) - -#define SIZE_OP 6 - -#define POS_OP 0 -#define POS_A (POS_OP + SIZE_OP) -#define POS_C (POS_A + SIZE_A) -#define POS_B (POS_C + SIZE_C) -#define POS_Bx POS_C -#define POS_Ax POS_A - - -/* -** limits for opcode arguments. -** we use (signed) int to manipulate most arguments, -** so they must fit in LUAI_BITSINT-1 bits (-1 for sign) -*/ -#if SIZE_Bx < LUAI_BITSINT-1 -#define MAXARG_Bx ((1<<SIZE_Bx)-1) -#define MAXARG_sBx (MAXARG_Bx>>1) /* `sBx' is signed */ -#else -#define MAXARG_Bx MAX_INT -#define MAXARG_sBx MAX_INT -#endif - -#if SIZE_Ax < LUAI_BITSINT-1 -#define MAXARG_Ax ((1<<SIZE_Ax)-1) -#else -#define MAXARG_Ax MAX_INT -#endif - - -#define MAXARG_A ((1<<SIZE_A)-1) -#define MAXARG_B ((1<<SIZE_B)-1) -#define MAXARG_C ((1<<SIZE_C)-1) - - -/* creates a mask with `n' 1 bits at position `p' */ -#define MASK1(n,p) ((~((~(Instruction)0)<<(n)))<<(p)) - -/* creates a mask with `n' 0 bits at position `p' */ -#define MASK0(n,p) (~MASK1(n,p)) - -/* -** the following macros help to manipulate instructions -*/ - -#define GET_OPCODE(i) (cast(OpCode, ((i)>>POS_OP) & MASK1(SIZE_OP,0))) -#define SET_OPCODE(i,o) ((i) = (((i)&MASK0(SIZE_OP,POS_OP)) | \ - ((cast(Instruction, o)<<POS_OP)&MASK1(SIZE_OP,POS_OP)))) - -#define getarg(i,pos,size) (cast(int, ((i)>>pos) & MASK1(size,0))) -#define setarg(i,v,pos,size) ((i) = (((i)&MASK0(size,pos)) | \ - ((cast(Instruction, v)<<pos)&MASK1(size,pos)))) - -#define GETARG_A(i) getarg(i, POS_A, SIZE_A) -#define SETARG_A(i,v) setarg(i, v, POS_A, SIZE_A) - -#define GETARG_B(i) getarg(i, POS_B, SIZE_B) -#define SETARG_B(i,v) setarg(i, v, POS_B, SIZE_B) - -#define GETARG_C(i) getarg(i, POS_C, SIZE_C) -#define SETARG_C(i,v) setarg(i, v, POS_C, SIZE_C) - -#define GETARG_Bx(i) getarg(i, POS_Bx, SIZE_Bx) -#define SETARG_Bx(i,v) setarg(i, v, POS_Bx, SIZE_Bx) - -#define GETARG_Ax(i) getarg(i, POS_Ax, SIZE_Ax) -#define SETARG_Ax(i,v) setarg(i, v, POS_Ax, SIZE_Ax) - -#define GETARG_sBx(i) (GETARG_Bx(i)-MAXARG_sBx) -#define SETARG_sBx(i,b) SETARG_Bx((i),cast(unsigned int, (b)+MAXARG_sBx)) - - -#define CREATE_ABC(o,a,b,c) ((cast(Instruction, o)<<POS_OP) \ - | (cast(Instruction, a)<<POS_A) \ - | (cast(Instruction, b)<<POS_B) \ - | (cast(Instruction, c)<<POS_C)) - -#define CREATE_ABx(o,a,bc) ((cast(Instruction, o)<<POS_OP) \ - | (cast(Instruction, a)<<POS_A) \ - | (cast(Instruction, bc)<<POS_Bx)) - -#define CREATE_Ax(o,a) ((cast(Instruction, o)<<POS_OP) \ - | (cast(Instruction, a)<<POS_Ax)) - - -/* -** Macros to operate RK indices -*/ - -/* this bit 1 means constant (0 means register) */ -#define BITRK (1 << (SIZE_B - 1)) - -/* test whether value is a constant */ -#define ISK(x) ((x) & BITRK) - -/* gets the index of the constant */ -#define INDEXK(r) ((int)(r) & ~BITRK) - -#define MAXINDEXRK (BITRK - 1) - -/* code a constant index as a RK value */ -#define RKASK(x) ((x) | BITRK) - - -/* -** invalid register that fits in 8 bits -*/ -#define NO_REG MAXARG_A - - -/* -** R(x) - register -** Kst(x) - constant (in constant table) -** RK(x) == if ISK(x) then Kst(INDEXK(x)) else R(x) -*/ - - -/* -** grep "ORDER OP" if you change these enums -*/ - -typedef enum { -/*---------------------------------------------------------------------- -name args description -------------------------------------------------------------------------*/ -OP_MOVE,/* A B R(A) := R(B) */ -OP_LOADK,/* A Bx R(A) := Kst(Bx) */ -OP_LOADKX,/* A R(A) := Kst(extra arg) */ -OP_LOADBOOL,/* A B C R(A) := (Bool)B; if (C) pc++ */ -OP_LOADNIL,/* A B R(A), R(A+1), ..., R(A+B) := nil */ -OP_GETUPVAL,/* A B R(A) := UpValue[B] */ - -OP_GETTABUP,/* A B C R(A) := UpValue[B][RK(C)] */ -OP_GETTABLE,/* A B C R(A) := R(B)[RK(C)] */ - -OP_SETTABUP,/* A B C UpValue[A][RK(B)] := RK(C) */ -OP_SETUPVAL,/* A B UpValue[B] := R(A) */ -OP_SETTABLE,/* A B C R(A)[RK(B)] := RK(C) */ - -OP_NEWTABLE,/* A B C R(A) := {} (size = B,C) */ - -OP_SELF,/* A B C R(A+1) := R(B); R(A) := R(B)[RK(C)] */ - -OP_ADD,/* A B C R(A) := RK(B) + RK(C) */ -OP_SUB,/* A B C R(A) := RK(B) - RK(C) */ -OP_MUL,/* A B C R(A) := RK(B) * RK(C) */ -OP_DIV,/* A B C R(A) := RK(B) / RK(C) */ -OP_MOD,/* A B C R(A) := RK(B) % RK(C) */ -OP_POW,/* A B C R(A) := RK(B) ^ RK(C) */ -OP_UNM,/* A B R(A) := -R(B) */ -OP_NOT,/* A B R(A) := not R(B) */ -OP_LEN,/* A B R(A) := length of R(B) */ - -OP_CONCAT,/* A B C R(A) := R(B).. ... ..R(C) */ - -OP_JMP,/* A sBx pc+=sBx; if (A) close all upvalues >= R(A - 1) */ -OP_EQ,/* A B C if ((RK(B) == RK(C)) ~= A) then pc++ */ -OP_LT,/* A B C if ((RK(B) < RK(C)) ~= A) then pc++ */ -OP_LE,/* A B C if ((RK(B) <= RK(C)) ~= A) then pc++ */ - -OP_TEST,/* A C if not (R(A) <=> C) then pc++ */ -OP_TESTSET,/* A B C if (R(B) <=> C) then R(A) := R(B) else pc++ */ - -OP_CALL,/* A B C R(A), ... ,R(A+C-2) := R(A)(R(A+1), ... ,R(A+B-1)) */ -OP_TAILCALL,/* A B C return R(A)(R(A+1), ... ,R(A+B-1)) */ -OP_RETURN,/* A B return R(A), ... ,R(A+B-2) (see note) */ - -OP_FORLOOP,/* A sBx R(A)+=R(A+2); - if R(A) <?= R(A+1) then { pc+=sBx; R(A+3)=R(A) }*/ -OP_FORPREP,/* A sBx R(A)-=R(A+2); pc+=sBx */ - -OP_TFORCALL,/* A C R(A+3), ... ,R(A+2+C) := R(A)(R(A+1), R(A+2)); */ -OP_TFORLOOP,/* A sBx if R(A+1) ~= nil then { R(A)=R(A+1); pc += sBx }*/ - -OP_SETLIST,/* A B C R(A)[(C-1)*FPF+i] := R(A+i), 1 <= i <= B */ - -OP_CLOSURE,/* A Bx R(A) := closure(KPROTO[Bx]) */ - -OP_VARARG,/* A B R(A), R(A+1), ..., R(A+B-2) = vararg */ - -OP_EXTRAARG/* Ax extra (larger) argument for previous opcode */ -} OpCode; - - -#define NUM_OPCODES (cast(int, OP_EXTRAARG) + 1) - - - -/*=========================================================================== - Notes: - (*) In OP_CALL, if (B == 0) then B = top. If (C == 0), then `top' is - set to last_result+1, so next open instruction (OP_CALL, OP_RETURN, - OP_SETLIST) may use `top'. - - (*) In OP_VARARG, if (B == 0) then use actual number of varargs and - set top (like in OP_CALL with C == 0). - - (*) In OP_RETURN, if (B == 0) then return up to `top'. - - (*) In OP_SETLIST, if (B == 0) then B = `top'; if (C == 0) then next - 'instruction' is EXTRAARG(real C). - - (*) In OP_LOADKX, the next 'instruction' is always EXTRAARG. - - (*) For comparisons, A specifies what condition the test should accept - (true or false). - - (*) All `skips' (pc++) assume that next instruction is a jump. - -===========================================================================*/ - - -/* -** masks for instruction properties. The format is: -** bits 0-1: op mode -** bits 2-3: C arg mode -** bits 4-5: B arg mode -** bit 6: instruction set register A -** bit 7: operator is a test (next instruction must be a jump) -*/ - -enum OpArgMask { - OpArgN, /* argument is not used */ - OpArgU, /* argument is used */ - OpArgR, /* argument is a register or a jump offset */ - OpArgK /* argument is a constant or register/constant */ -}; - -LUA_API const lu_byte luaP_opmodes[NUM_OPCODES]; - -#define getOpMode(m) (cast(enum OpMode, luaP_opmodes[m] & 3)) -#define getBMode(m) (cast(enum OpArgMask, (luaP_opmodes[m] >> 4) & 3)) -#define getCMode(m) (cast(enum OpArgMask, (luaP_opmodes[m] >> 2) & 3)) -#define testAMode(m) (luaP_opmodes[m] & (1 << 6)) -#define testTMode(m) (luaP_opmodes[m] & (1 << 7)) - - -LUA_API const char *const luaP_opnames[NUM_OPCODES+1]; /* opcode names */ - - -/* number of list items to accumulate before a SETLIST instruction */ -#define LFIELDS_PER_FLUSH 50 - - -#endif diff --git a/source/libs/lua52/lua52-src/src/loslib.c b/source/libs/lua52/lua52-src/src/loslib.c deleted file mode 100644 index 052ba174413b8395cbea612acacc4ab25c88f5a7..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/loslib.c +++ /dev/null @@ -1,323 +0,0 @@ -/* -** $Id: loslib.c,v 1.40.1.1 2013/04/12 18:48:47 roberto Exp $ -** Standard Operating System library -** See Copyright Notice in lua.h -*/ - - -#include <errno.h> -#include <locale.h> -#include <stdlib.h> -#include <string.h> -#include <time.h> - -#define loslib_c -#define LUA_LIB - -#include "lua.h" - -#include "lauxlib.h" -#include "lualib.h" - - -/* -** list of valid conversion specifiers for the 'strftime' function -*/ -#if !defined(LUA_STRFTIMEOPTIONS) - -#if !defined(LUA_USE_POSIX) -#define LUA_STRFTIMEOPTIONS { "aAbBcdHIjmMpSUwWxXyYz%", "" } -#else -#define LUA_STRFTIMEOPTIONS \ - { "aAbBcCdDeFgGhHIjmMnprRStTuUVwWxXyYzZ%", "" \ - "", "E", "cCxXyY", \ - "O", "deHImMSuUVwWy" } -#endif - -#endif - - - -/* -** By default, Lua uses tmpnam except when POSIX is available, where it -** uses mkstemp. -*/ -#if defined(LUA_USE_MKSTEMP) -#include <unistd.h> -#define LUA_TMPNAMBUFSIZE 32 -#define lua_tmpnam(b,e) { \ - strcpy(b, "/tmp/lua_XXXXXX"); \ - e = mkstemp(b); \ - if (e != -1) close(e); \ - e = (e == -1); } - -#elif !defined(lua_tmpnam) - -#define LUA_TMPNAMBUFSIZE L_tmpnam -#define lua_tmpnam(b,e) { e = (tmpnam(b) == NULL); } - -#endif - - -/* -** By default, Lua uses gmtime/localtime, except when POSIX is available, -** where it uses gmtime_r/localtime_r -*/ -#if defined(LUA_USE_GMTIME_R) - -#define l_gmtime(t,r) gmtime_r(t,r) -#define l_localtime(t,r) localtime_r(t,r) - -#elif !defined(l_gmtime) - -#define l_gmtime(t,r) ((void)r, gmtime(t)) -#define l_localtime(t,r) ((void)r, localtime(t)) - -#endif - - - -static int os_execute (lua_State *L) { - const char *cmd = luaL_optstring(L, 1, NULL); - int stat = system(cmd); - if (cmd != NULL) - return luaL_execresult(L, stat); - else { - lua_pushboolean(L, stat); /* true if there is a shell */ - return 1; - } -} - - -static int os_remove (lua_State *L) { - const char *filename = luaL_checkstring(L, 1); - return luaL_fileresult(L, remove(filename) == 0, filename); -} - - -static int os_rename (lua_State *L) { - const char *fromname = luaL_checkstring(L, 1); - const char *toname = luaL_checkstring(L, 2); - return luaL_fileresult(L, rename(fromname, toname) == 0, NULL); -} - - -static int os_tmpname (lua_State *L) { - char buff[LUA_TMPNAMBUFSIZE]; - int err; - lua_tmpnam(buff, err); - if (err) - return luaL_error(L, "unable to generate a unique filename"); - lua_pushstring(L, buff); - return 1; -} - - -static int os_getenv (lua_State *L) { - lua_pushstring(L, getenv(luaL_checkstring(L, 1))); /* if NULL push nil */ - return 1; -} - - -static int os_clock (lua_State *L) { - lua_pushnumber(L, ((lua_Number)clock())/(lua_Number)CLOCKS_PER_SEC); - return 1; -} - - -/* -** {====================================================== -** Time/Date operations -** { year=%Y, month=%m, day=%d, hour=%H, min=%M, sec=%S, -** wday=%w+1, yday=%j, isdst=? } -** ======================================================= -*/ - -static void setfield (lua_State *L, const char *key, int value) { - lua_pushinteger(L, value); - lua_setfield(L, -2, key); -} - -static void setboolfield (lua_State *L, const char *key, int value) { - if (value < 0) /* undefined? */ - return; /* does not set field */ - lua_pushboolean(L, value); - lua_setfield(L, -2, key); -} - -static int getboolfield (lua_State *L, const char *key) { - int res; - lua_getfield(L, -1, key); - res = lua_isnil(L, -1) ? -1 : lua_toboolean(L, -1); - lua_pop(L, 1); - return res; -} - - -static int getfield (lua_State *L, const char *key, int d) { - int res, isnum; - lua_getfield(L, -1, key); - res = (int)lua_tointegerx(L, -1, &isnum); - if (!isnum) { - if (d < 0) - return luaL_error(L, "field " LUA_QS " missing in date table", key); - res = d; - } - lua_pop(L, 1); - return res; -} - - -static const char *checkoption (lua_State *L, const char *conv, char *buff) { - static const char *const options[] = LUA_STRFTIMEOPTIONS; - unsigned int i; - for (i = 0; i < sizeof(options)/sizeof(options[0]); i += 2) { - if (*conv != '\0' && strchr(options[i], *conv) != NULL) { - buff[1] = *conv; - if (*options[i + 1] == '\0') { /* one-char conversion specifier? */ - buff[2] = '\0'; /* end buffer */ - return conv + 1; - } - else if (*(conv + 1) != '\0' && - strchr(options[i + 1], *(conv + 1)) != NULL) { - buff[2] = *(conv + 1); /* valid two-char conversion specifier */ - buff[3] = '\0'; /* end buffer */ - return conv + 2; - } - } - } - luaL_argerror(L, 1, - lua_pushfstring(L, "invalid conversion specifier '%%%s'", conv)); - return conv; /* to avoid warnings */ -} - - -static int os_date (lua_State *L) { - const char *s = luaL_optstring(L, 1, "%c"); - time_t t = luaL_opt(L, (time_t)luaL_checknumber, 2, time(NULL)); - struct tm tmr, *stm; - if (*s == '!') { /* UTC? */ - stm = l_gmtime(&t, &tmr); - s++; /* skip `!' */ - } - else - stm = l_localtime(&t, &tmr); - if (stm == NULL) /* invalid date? */ - lua_pushnil(L); - else if (strcmp(s, "*t") == 0) { - lua_createtable(L, 0, 9); /* 9 = number of fields */ - setfield(L, "sec", stm->tm_sec); - setfield(L, "min", stm->tm_min); - setfield(L, "hour", stm->tm_hour); - setfield(L, "day", stm->tm_mday); - setfield(L, "month", stm->tm_mon+1); - setfield(L, "year", stm->tm_year+1900); - setfield(L, "wday", stm->tm_wday+1); - setfield(L, "yday", stm->tm_yday+1); - setboolfield(L, "isdst", stm->tm_isdst); - } - else { - char cc[4]; - luaL_Buffer b; - cc[0] = '%'; - luaL_buffinit(L, &b); - while (*s) { - if (*s != '%') /* no conversion specifier? */ - luaL_addchar(&b, *s++); - else { - size_t reslen; - char buff[200]; /* should be big enough for any conversion result */ - s = checkoption(L, s + 1, cc); - reslen = strftime(buff, sizeof(buff), cc, stm); - luaL_addlstring(&b, buff, reslen); - } - } - luaL_pushresult(&b); - } - return 1; -} - - -static int os_time (lua_State *L) { - time_t t; - if (lua_isnoneornil(L, 1)) /* called without args? */ - t = time(NULL); /* get current time */ - else { - struct tm ts; - luaL_checktype(L, 1, LUA_TTABLE); - lua_settop(L, 1); /* make sure table is at the top */ - ts.tm_sec = getfield(L, "sec", 0); - ts.tm_min = getfield(L, "min", 0); - ts.tm_hour = getfield(L, "hour", 12); - ts.tm_mday = getfield(L, "day", -1); - ts.tm_mon = getfield(L, "month", -1) - 1; - ts.tm_year = getfield(L, "year", -1) - 1900; - ts.tm_isdst = getboolfield(L, "isdst"); - t = mktime(&ts); - } - if (t == (time_t)(-1)) - lua_pushnil(L); - else - lua_pushnumber(L, (lua_Number)t); - return 1; -} - - -static int os_difftime (lua_State *L) { - lua_pushnumber(L, difftime((time_t)(luaL_checknumber(L, 1)), - (time_t)(luaL_optnumber(L, 2, 0)))); - return 1; -} - -/* }====================================================== */ - - -static int os_setlocale (lua_State *L) { - static const int cat[] = {LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, - LC_NUMERIC, LC_TIME}; - static const char *const catnames[] = {"all", "collate", "ctype", "monetary", - "numeric", "time", NULL}; - const char *l = luaL_optstring(L, 1, NULL); - int op = luaL_checkoption(L, 2, "all", catnames); - lua_pushstring(L, setlocale(cat[op], l)); - return 1; -} - - -static int os_exit (lua_State *L) { - int status; - if (lua_isboolean(L, 1)) - status = (lua_toboolean(L, 1) ? EXIT_SUCCESS : EXIT_FAILURE); - else - status = luaL_optint(L, 1, EXIT_SUCCESS); - if (lua_toboolean(L, 2)) - lua_close(L); - if (L) exit(status); /* 'if' to avoid warnings for unreachable 'return' */ - return 0; -} - - -static const luaL_Reg syslib[] = { - {"clock", os_clock}, - {"date", os_date}, - {"difftime", os_difftime}, - {"execute", os_execute}, - {"exit", os_exit}, - {"getenv", os_getenv}, - {"remove", os_remove}, - {"rename", os_rename}, - {"setlocale", os_setlocale}, - {"time", os_time}, - {"tmpname", os_tmpname}, - {NULL, NULL} -}; - -/* }====================================================== */ - - - -LUAMOD_API int luaopen_os (lua_State *L) { - luaL_newlib(L, syslib); - return 1; -} - diff --git a/source/libs/lua52/lua52-src/src/lparser.c b/source/libs/lua52/lua52-src/src/lparser.c deleted file mode 100644 index 9e1a9ca2cfe411d6219d4dec4f46283093993956..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lparser.c +++ /dev/null @@ -1,1638 +0,0 @@ -/* -** $Id: lparser.c,v 2.130.1.1 2013/04/12 18:48:47 roberto Exp $ -** Lua Parser -** See Copyright Notice in lua.h -*/ - - -#include <string.h> - -#define lparser_c -#define LUA_CORE - -#include "lua.h" - -#include "lcode.h" -#include "ldebug.h" -#include "ldo.h" -#include "lfunc.h" -#include "llex.h" -#include "lmem.h" -#include "lobject.h" -#include "lopcodes.h" -#include "lparser.h" -#include "lstate.h" -#include "lstring.h" -#include "ltable.h" - - - -/* maximum number of local variables per function (must be smaller - than 250, due to the bytecode format) */ -#define MAXVARS 200 - - -#define hasmultret(k) ((k) == VCALL || (k) == VVARARG) - - - -/* -** nodes for block list (list of active blocks) -*/ -typedef struct BlockCnt { - struct BlockCnt *previous; /* chain */ - short firstlabel; /* index of first label in this block */ - short firstgoto; /* index of first pending goto in this block */ - lu_byte nactvar; /* # active locals outside the block */ - lu_byte upval; /* true if some variable in the block is an upvalue */ - lu_byte isloop; /* true if `block' is a loop */ -} BlockCnt; - - - -/* -** prototypes for recursive non-terminal functions -*/ -static void statement (LexState *ls); -static void expr (LexState *ls, expdesc *v); - - -static void anchor_token (LexState *ls) { - /* last token from outer function must be EOS */ - lua_assert(ls->fs != NULL || ls->t.token == TK_EOS); - if (ls->t.token == TK_NAME || ls->t.token == TK_STRING) { - TString *ts = ls->t.seminfo.ts; - luaX_newstring(ls, getstr(ts), ts->tsv.len); - } -} - - -/* semantic error */ -static l_noret semerror (LexState *ls, const char *msg) { - ls->t.token = 0; /* remove 'near to' from final message */ - luaX_syntaxerror(ls, msg); -} - - -static l_noret error_expected (LexState *ls, int token) { - luaX_syntaxerror(ls, - luaO_pushfstring(ls->L, "%s expected", luaX_token2str(ls, token))); -} - - -static l_noret errorlimit (FuncState *fs, int limit, const char *what) { - lua_State *L = fs->ls->L; - const char *msg; - int line = fs->f->linedefined; - const char *where = (line == 0) - ? "main function" - : luaO_pushfstring(L, "function at line %d", line); - msg = luaO_pushfstring(L, "too many %s (limit is %d) in %s", - what, limit, where); - luaX_syntaxerror(fs->ls, msg); -} - - -static void checklimit (FuncState *fs, int v, int l, const char *what) { - if (v > l) errorlimit(fs, l, what); -} - - -static int testnext (LexState *ls, int c) { - if (ls->t.token == c) { - luaX_next(ls); - return 1; - } - else return 0; -} - - -static void check (LexState *ls, int c) { - if (ls->t.token != c) - error_expected(ls, c); -} - - -static void checknext (LexState *ls, int c) { - check(ls, c); - luaX_next(ls); -} - - -#define check_condition(ls,c,msg) { if (!(c)) luaX_syntaxerror(ls, msg); } - - - -static void check_match (LexState *ls, int what, int who, int where) { - if (!testnext(ls, what)) { - if (where == ls->linenumber) - error_expected(ls, what); - else { - luaX_syntaxerror(ls, luaO_pushfstring(ls->L, - "%s expected (to close %s at line %d)", - luaX_token2str(ls, what), luaX_token2str(ls, who), where)); - } - } -} - - -static TString *str_checkname (LexState *ls) { - TString *ts; - check(ls, TK_NAME); - ts = ls->t.seminfo.ts; - luaX_next(ls); - return ts; -} - - -static void init_exp (expdesc *e, expkind k, int i) { - e->f = e->t = NO_JUMP; - e->k = k; - e->u.info = i; -} - - -static void codestring (LexState *ls, expdesc *e, TString *s) { - init_exp(e, VK, luaK_stringK(ls->fs, s)); -} - - -static void checkname (LexState *ls, expdesc *e) { - codestring(ls, e, str_checkname(ls)); -} - - -static int registerlocalvar (LexState *ls, TString *varname) { - FuncState *fs = ls->fs; - Proto *f = fs->f; - int oldsize = f->sizelocvars; - luaM_growvector(ls->L, f->locvars, fs->nlocvars, f->sizelocvars, - LocVar, SHRT_MAX, "local variables"); - while (oldsize < f->sizelocvars) f->locvars[oldsize++].varname = NULL; - f->locvars[fs->nlocvars].varname = varname; - luaC_objbarrier(ls->L, f, varname); - return fs->nlocvars++; -} - - -static void new_localvar (LexState *ls, TString *name) { - FuncState *fs = ls->fs; - Dyndata *dyd = ls->dyd; - int reg = registerlocalvar(ls, name); - checklimit(fs, dyd->actvar.n + 1 - fs->firstlocal, - MAXVARS, "local variables"); - luaM_growvector(ls->L, dyd->actvar.arr, dyd->actvar.n + 1, - dyd->actvar.size, Vardesc, MAX_INT, "local variables"); - dyd->actvar.arr[dyd->actvar.n++].idx = cast(short, reg); -} - - -static void new_localvarliteral_ (LexState *ls, const char *name, size_t sz) { - new_localvar(ls, luaX_newstring(ls, name, sz)); -} - -#define new_localvarliteral(ls,v) \ - new_localvarliteral_(ls, "" v, (sizeof(v)/sizeof(char))-1) - - -static LocVar *getlocvar (FuncState *fs, int i) { - int idx = fs->ls->dyd->actvar.arr[fs->firstlocal + i].idx; - lua_assert(idx < fs->nlocvars); - return &fs->f->locvars[idx]; -} - - -static void adjustlocalvars (LexState *ls, int nvars) { - FuncState *fs = ls->fs; - fs->nactvar = cast_byte(fs->nactvar + nvars); - for (; nvars; nvars--) { - getlocvar(fs, fs->nactvar - nvars)->startpc = fs->pc; - } -} - - -static void removevars (FuncState *fs, int tolevel) { - fs->ls->dyd->actvar.n -= (fs->nactvar - tolevel); - while (fs->nactvar > tolevel) - getlocvar(fs, --fs->nactvar)->endpc = fs->pc; -} - - -static int searchupvalue (FuncState *fs, TString *name) { - int i; - Upvaldesc *up = fs->f->upvalues; - for (i = 0; i < fs->nups; i++) { - if (luaS_eqstr(up[i].name, name)) return i; - } - return -1; /* not found */ -} - - -static int newupvalue (FuncState *fs, TString *name, expdesc *v) { - Proto *f = fs->f; - int oldsize = f->sizeupvalues; - checklimit(fs, fs->nups + 1, MAXUPVAL, "upvalues"); - luaM_growvector(fs->ls->L, f->upvalues, fs->nups, f->sizeupvalues, - Upvaldesc, MAXUPVAL, "upvalues"); - while (oldsize < f->sizeupvalues) f->upvalues[oldsize++].name = NULL; - f->upvalues[fs->nups].instack = (v->k == VLOCAL); - f->upvalues[fs->nups].idx = cast_byte(v->u.info); - f->upvalues[fs->nups].name = name; - luaC_objbarrier(fs->ls->L, f, name); - return fs->nups++; -} - - -static int searchvar (FuncState *fs, TString *n) { - int i; - for (i = cast_int(fs->nactvar) - 1; i >= 0; i--) { - if (luaS_eqstr(n, getlocvar(fs, i)->varname)) - return i; - } - return -1; /* not found */ -} - - -/* - Mark block where variable at given level was defined - (to emit close instructions later). -*/ -static void markupval (FuncState *fs, int level) { - BlockCnt *bl = fs->bl; - while (bl->nactvar > level) bl = bl->previous; - bl->upval = 1; -} - - -/* - Find variable with given name 'n'. If it is an upvalue, add this - upvalue into all intermediate functions. -*/ -static int singlevaraux (FuncState *fs, TString *n, expdesc *var, int base) { - if (fs == NULL) /* no more levels? */ - return VVOID; /* default is global */ - else { - int v = searchvar(fs, n); /* look up locals at current level */ - if (v >= 0) { /* found? */ - init_exp(var, VLOCAL, v); /* variable is local */ - if (!base) - markupval(fs, v); /* local will be used as an upval */ - return VLOCAL; - } - else { /* not found as local at current level; try upvalues */ - int idx = searchupvalue(fs, n); /* try existing upvalues */ - if (idx < 0) { /* not found? */ - if (singlevaraux(fs->prev, n, var, 0) == VVOID) /* try upper levels */ - return VVOID; /* not found; is a global */ - /* else was LOCAL or UPVAL */ - idx = newupvalue(fs, n, var); /* will be a new upvalue */ - } - init_exp(var, VUPVAL, idx); - return VUPVAL; - } - } -} - - -static void singlevar (LexState *ls, expdesc *var) { - TString *varname = str_checkname(ls); - FuncState *fs = ls->fs; - if (singlevaraux(fs, varname, var, 1) == VVOID) { /* global name? */ - expdesc key; - singlevaraux(fs, ls->envn, var, 1); /* get environment variable */ - lua_assert(var->k == VLOCAL || var->k == VUPVAL); - codestring(ls, &key, varname); /* key is variable name */ - luaK_indexed(fs, var, &key); /* env[varname] */ - } -} - - -static void adjust_assign (LexState *ls, int nvars, int nexps, expdesc *e) { - FuncState *fs = ls->fs; - int extra = nvars - nexps; - if (hasmultret(e->k)) { - extra++; /* includes call itself */ - if (extra < 0) extra = 0; - luaK_setreturns(fs, e, extra); /* last exp. provides the difference */ - if (extra > 1) luaK_reserveregs(fs, extra-1); - } - else { - if (e->k != VVOID) luaK_exp2nextreg(fs, e); /* close last expression */ - if (extra > 0) { - int reg = fs->freereg; - luaK_reserveregs(fs, extra); - luaK_nil(fs, reg, extra); - } - } -} - - -static void enterlevel (LexState *ls) { - lua_State *L = ls->L; - ++L->nCcalls; - checklimit(ls->fs, L->nCcalls, LUAI_MAXCCALLS, "C levels"); -} - - -#define leavelevel(ls) ((ls)->L->nCcalls--) - - -static void closegoto (LexState *ls, int g, Labeldesc *label) { - int i; - FuncState *fs = ls->fs; - Labellist *gl = &ls->dyd->gt; - Labeldesc *gt = &gl->arr[g]; - lua_assert(luaS_eqstr(gt->name, label->name)); - if (gt->nactvar < label->nactvar) { - TString *vname = getlocvar(fs, gt->nactvar)->varname; - const char *msg = luaO_pushfstring(ls->L, - "<goto %s> at line %d jumps into the scope of local " LUA_QS, - getstr(gt->name), gt->line, getstr(vname)); - semerror(ls, msg); - } - luaK_patchlist(fs, gt->pc, label->pc); - /* remove goto from pending list */ - for (i = g; i < gl->n - 1; i++) - gl->arr[i] = gl->arr[i + 1]; - gl->n--; -} - - -/* -** try to close a goto with existing labels; this solves backward jumps -*/ -static int findlabel (LexState *ls, int g) { - int i; - BlockCnt *bl = ls->fs->bl; - Dyndata *dyd = ls->dyd; - Labeldesc *gt = &dyd->gt.arr[g]; - /* check labels in current block for a match */ - for (i = bl->firstlabel; i < dyd->label.n; i++) { - Labeldesc *lb = &dyd->label.arr[i]; - if (luaS_eqstr(lb->name, gt->name)) { /* correct label? */ - if (gt->nactvar > lb->nactvar && - (bl->upval || dyd->label.n > bl->firstlabel)) - luaK_patchclose(ls->fs, gt->pc, lb->nactvar); - closegoto(ls, g, lb); /* close it */ - return 1; - } - } - return 0; /* label not found; cannot close goto */ -} - - -static int newlabelentry (LexState *ls, Labellist *l, TString *name, - int line, int pc) { - int n = l->n; - luaM_growvector(ls->L, l->arr, n, l->size, - Labeldesc, SHRT_MAX, "labels/gotos"); - l->arr[n].name = name; - l->arr[n].line = line; - l->arr[n].nactvar = ls->fs->nactvar; - l->arr[n].pc = pc; - l->n++; - return n; -} - - -/* -** check whether new label 'lb' matches any pending gotos in current -** block; solves forward jumps -*/ -static void findgotos (LexState *ls, Labeldesc *lb) { - Labellist *gl = &ls->dyd->gt; - int i = ls->fs->bl->firstgoto; - while (i < gl->n) { - if (luaS_eqstr(gl->arr[i].name, lb->name)) - closegoto(ls, i, lb); - else - i++; - } -} - - -/* -** "export" pending gotos to outer level, to check them against -** outer labels; if the block being exited has upvalues, and -** the goto exits the scope of any variable (which can be the -** upvalue), close those variables being exited. -*/ -static void movegotosout (FuncState *fs, BlockCnt *bl) { - int i = bl->firstgoto; - Labellist *gl = &fs->ls->dyd->gt; - /* correct pending gotos to current block and try to close it - with visible labels */ - while (i < gl->n) { - Labeldesc *gt = &gl->arr[i]; - if (gt->nactvar > bl->nactvar) { - if (bl->upval) - luaK_patchclose(fs, gt->pc, bl->nactvar); - gt->nactvar = bl->nactvar; - } - if (!findlabel(fs->ls, i)) - i++; /* move to next one */ - } -} - - -static void enterblock (FuncState *fs, BlockCnt *bl, lu_byte isloop) { - bl->isloop = isloop; - bl->nactvar = fs->nactvar; - bl->firstlabel = fs->ls->dyd->label.n; - bl->firstgoto = fs->ls->dyd->gt.n; - bl->upval = 0; - bl->previous = fs->bl; - fs->bl = bl; - lua_assert(fs->freereg == fs->nactvar); -} - - -/* -** create a label named "break" to resolve break statements -*/ -static void breaklabel (LexState *ls) { - TString *n = luaS_new(ls->L, "break"); - int l = newlabelentry(ls, &ls->dyd->label, n, 0, ls->fs->pc); - findgotos(ls, &ls->dyd->label.arr[l]); -} - -/* -** generates an error for an undefined 'goto'; choose appropriate -** message when label name is a reserved word (which can only be 'break') -*/ -static l_noret undefgoto (LexState *ls, Labeldesc *gt) { - const char *msg = isreserved(gt->name) - ? "<%s> at line %d not inside a loop" - : "no visible label " LUA_QS " for <goto> at line %d"; - msg = luaO_pushfstring(ls->L, msg, getstr(gt->name), gt->line); - semerror(ls, msg); -} - - -static void leaveblock (FuncState *fs) { - BlockCnt *bl = fs->bl; - LexState *ls = fs->ls; - if (bl->previous && bl->upval) { - /* create a 'jump to here' to close upvalues */ - int j = luaK_jump(fs); - luaK_patchclose(fs, j, bl->nactvar); - luaK_patchtohere(fs, j); - } - if (bl->isloop) - breaklabel(ls); /* close pending breaks */ - fs->bl = bl->previous; - removevars(fs, bl->nactvar); - lua_assert(bl->nactvar == fs->nactvar); - fs->freereg = fs->nactvar; /* free registers */ - ls->dyd->label.n = bl->firstlabel; /* remove local labels */ - if (bl->previous) /* inner block? */ - movegotosout(fs, bl); /* update pending gotos to outer block */ - else if (bl->firstgoto < ls->dyd->gt.n) /* pending gotos in outer block? */ - undefgoto(ls, &ls->dyd->gt.arr[bl->firstgoto]); /* error */ -} - - -/* -** adds a new prototype into list of prototypes -*/ -static Proto *addprototype (LexState *ls) { - Proto *clp; - lua_State *L = ls->L; - FuncState *fs = ls->fs; - Proto *f = fs->f; /* prototype of current function */ - if (fs->np >= f->sizep) { - int oldsize = f->sizep; - luaM_growvector(L, f->p, fs->np, f->sizep, Proto *, MAXARG_Bx, "functions"); - while (oldsize < f->sizep) f->p[oldsize++] = NULL; - } - f->p[fs->np++] = clp = luaF_newproto(L); - luaC_objbarrier(L, f, clp); - return clp; -} - - -/* -** codes instruction to create new closure in parent function. -** The OP_CLOSURE instruction must use the last available register, -** so that, if it invokes the GC, the GC knows which registers -** are in use at that time. -*/ -static void codeclosure (LexState *ls, expdesc *v) { - FuncState *fs = ls->fs->prev; - init_exp(v, VRELOCABLE, luaK_codeABx(fs, OP_CLOSURE, 0, fs->np - 1)); - luaK_exp2nextreg(fs, v); /* fix it at the last register */ -} - - -static void open_func (LexState *ls, FuncState *fs, BlockCnt *bl) { - lua_State *L = ls->L; - Proto *f; - fs->prev = ls->fs; /* linked list of funcstates */ - fs->ls = ls; - ls->fs = fs; - fs->pc = 0; - fs->lasttarget = 0; - fs->jpc = NO_JUMP; - fs->freereg = 0; - fs->nk = 0; - fs->np = 0; - fs->nups = 0; - fs->nlocvars = 0; - fs->nactvar = 0; - fs->firstlocal = ls->dyd->actvar.n; - fs->bl = NULL; - f = fs->f; - f->source = ls->source; - f->maxstacksize = 2; /* registers 0/1 are always valid */ - fs->h = luaH_new(L); - /* anchor table of constants (to avoid being collected) */ - sethvalue2s(L, L->top, fs->h); - incr_top(L); - enterblock(fs, bl, 0); -} - - -static void close_func (LexState *ls) { - lua_State *L = ls->L; - FuncState *fs = ls->fs; - Proto *f = fs->f; - luaK_ret(fs, 0, 0); /* final return */ - leaveblock(fs); - luaM_reallocvector(L, f->code, f->sizecode, fs->pc, Instruction); - f->sizecode = fs->pc; - luaM_reallocvector(L, f->lineinfo, f->sizelineinfo, fs->pc, int); - f->sizelineinfo = fs->pc; - luaM_reallocvector(L, f->k, f->sizek, fs->nk, TValue); - f->sizek = fs->nk; - luaM_reallocvector(L, f->p, f->sizep, fs->np, Proto *); - f->sizep = fs->np; - luaM_reallocvector(L, f->locvars, f->sizelocvars, fs->nlocvars, LocVar); - f->sizelocvars = fs->nlocvars; - luaM_reallocvector(L, f->upvalues, f->sizeupvalues, fs->nups, Upvaldesc); - f->sizeupvalues = fs->nups; - lua_assert(fs->bl == NULL); - ls->fs = fs->prev; - /* last token read was anchored in defunct function; must re-anchor it */ - anchor_token(ls); - L->top--; /* pop table of constants */ - luaC_checkGC(L); -} - - - -/*============================================================*/ -/* GRAMMAR RULES */ -/*============================================================*/ - - -/* -** check whether current token is in the follow set of a block. -** 'until' closes syntactical blocks, but do not close scope, -** so it handled in separate. -*/ -static int block_follow (LexState *ls, int withuntil) { - switch (ls->t.token) { - case TK_ELSE: case TK_ELSEIF: - case TK_END: case TK_EOS: - return 1; - case TK_UNTIL: return withuntil; - default: return 0; - } -} - - -static void statlist (LexState *ls) { - /* statlist -> { stat [`;'] } */ - while (!block_follow(ls, 1)) { - if (ls->t.token == TK_RETURN) { - statement(ls); - return; /* 'return' must be last statement */ - } - statement(ls); - } -} - - -static void fieldsel (LexState *ls, expdesc *v) { - /* fieldsel -> ['.' | ':'] NAME */ - FuncState *fs = ls->fs; - expdesc key; - luaK_exp2anyregup(fs, v); - luaX_next(ls); /* skip the dot or colon */ - checkname(ls, &key); - luaK_indexed(fs, v, &key); -} - - -static void yindex (LexState *ls, expdesc *v) { - /* index -> '[' expr ']' */ - luaX_next(ls); /* skip the '[' */ - expr(ls, v); - luaK_exp2val(ls->fs, v); - checknext(ls, ']'); -} - - -/* -** {====================================================================== -** Rules for Constructors -** ======================================================================= -*/ - - -struct ConsControl { - expdesc v; /* last list item read */ - expdesc *t; /* table descriptor */ - int nh; /* total number of `record' elements */ - int na; /* total number of array elements */ - int tostore; /* number of array elements pending to be stored */ -}; - - -static void recfield (LexState *ls, struct ConsControl *cc) { - /* recfield -> (NAME | `['exp1`]') = exp1 */ - FuncState *fs = ls->fs; - int reg = ls->fs->freereg; - expdesc key, val; - int rkkey; - if (ls->t.token == TK_NAME) { - checklimit(fs, cc->nh, MAX_INT, "items in a constructor"); - checkname(ls, &key); - } - else /* ls->t.token == '[' */ - yindex(ls, &key); - cc->nh++; - checknext(ls, '='); - rkkey = luaK_exp2RK(fs, &key); - expr(ls, &val); - luaK_codeABC(fs, OP_SETTABLE, cc->t->u.info, rkkey, luaK_exp2RK(fs, &val)); - fs->freereg = reg; /* free registers */ -} - - -static void closelistfield (FuncState *fs, struct ConsControl *cc) { - if (cc->v.k == VVOID) return; /* there is no list item */ - luaK_exp2nextreg(fs, &cc->v); - cc->v.k = VVOID; - if (cc->tostore == LFIELDS_PER_FLUSH) { - luaK_setlist(fs, cc->t->u.info, cc->na, cc->tostore); /* flush */ - cc->tostore = 0; /* no more items pending */ - } -} - - -static void lastlistfield (FuncState *fs, struct ConsControl *cc) { - if (cc->tostore == 0) return; - if (hasmultret(cc->v.k)) { - luaK_setmultret(fs, &cc->v); - luaK_setlist(fs, cc->t->u.info, cc->na, LUA_MULTRET); - cc->na--; /* do not count last expression (unknown number of elements) */ - } - else { - if (cc->v.k != VVOID) - luaK_exp2nextreg(fs, &cc->v); - luaK_setlist(fs, cc->t->u.info, cc->na, cc->tostore); - } -} - - -static void listfield (LexState *ls, struct ConsControl *cc) { - /* listfield -> exp */ - expr(ls, &cc->v); - checklimit(ls->fs, cc->na, MAX_INT, "items in a constructor"); - cc->na++; - cc->tostore++; -} - - -static void field (LexState *ls, struct ConsControl *cc) { - /* field -> listfield | recfield */ - switch(ls->t.token) { - case TK_NAME: { /* may be 'listfield' or 'recfield' */ - if (luaX_lookahead(ls) != '=') /* expression? */ - listfield(ls, cc); - else - recfield(ls, cc); - break; - } - case '[': { - recfield(ls, cc); - break; - } - default: { - listfield(ls, cc); - break; - } - } -} - - -static void constructor (LexState *ls, expdesc *t) { - /* constructor -> '{' [ field { sep field } [sep] ] '}' - sep -> ',' | ';' */ - FuncState *fs = ls->fs; - int line = ls->linenumber; - int pc = luaK_codeABC(fs, OP_NEWTABLE, 0, 0, 0); - struct ConsControl cc; - cc.na = cc.nh = cc.tostore = 0; - cc.t = t; - init_exp(t, VRELOCABLE, pc); - init_exp(&cc.v, VVOID, 0); /* no value (yet) */ - luaK_exp2nextreg(ls->fs, t); /* fix it at stack top */ - checknext(ls, '{'); - do { - lua_assert(cc.v.k == VVOID || cc.tostore > 0); - if (ls->t.token == '}') break; - closelistfield(fs, &cc); - field(ls, &cc); - } while (testnext(ls, ',') || testnext(ls, ';')); - check_match(ls, '}', '{', line); - lastlistfield(fs, &cc); - SETARG_B(fs->f->code[pc], luaO_int2fb(cc.na)); /* set initial array size */ - SETARG_C(fs->f->code[pc], luaO_int2fb(cc.nh)); /* set initial table size */ -} - -/* }====================================================================== */ - - - -static void parlist (LexState *ls) { - /* parlist -> [ param { `,' param } ] */ - FuncState *fs = ls->fs; - Proto *f = fs->f; - int nparams = 0; - f->is_vararg = 0; - if (ls->t.token != ')') { /* is `parlist' not empty? */ - do { - switch (ls->t.token) { - case TK_NAME: { /* param -> NAME */ - new_localvar(ls, str_checkname(ls)); - nparams++; - break; - } - case TK_DOTS: { /* param -> `...' */ - luaX_next(ls); - f->is_vararg = 1; - break; - } - default: luaX_syntaxerror(ls, "<name> or " LUA_QL("...") " expected"); - } - } while (!f->is_vararg && testnext(ls, ',')); - } - adjustlocalvars(ls, nparams); - f->numparams = cast_byte(fs->nactvar); - luaK_reserveregs(fs, fs->nactvar); /* reserve register for parameters */ -} - - -static void body (LexState *ls, expdesc *e, int ismethod, int line) { - /* body -> `(' parlist `)' block END */ - FuncState new_fs; - BlockCnt bl; - new_fs.f = addprototype(ls); - new_fs.f->linedefined = line; - open_func(ls, &new_fs, &bl); - checknext(ls, '('); - if (ismethod) { - new_localvarliteral(ls, "self"); /* create 'self' parameter */ - adjustlocalvars(ls, 1); - } - parlist(ls); - checknext(ls, ')'); - statlist(ls); - new_fs.f->lastlinedefined = ls->linenumber; - check_match(ls, TK_END, TK_FUNCTION, line); - codeclosure(ls, e); - close_func(ls); -} - - -static int explist (LexState *ls, expdesc *v) { - /* explist -> expr { `,' expr } */ - int n = 1; /* at least one expression */ - expr(ls, v); - while (testnext(ls, ',')) { - luaK_exp2nextreg(ls->fs, v); - expr(ls, v); - n++; - } - return n; -} - - -static void funcargs (LexState *ls, expdesc *f, int line) { - FuncState *fs = ls->fs; - expdesc args; - int base, nparams; - switch (ls->t.token) { - case '(': { /* funcargs -> `(' [ explist ] `)' */ - luaX_next(ls); - if (ls->t.token == ')') /* arg list is empty? */ - args.k = VVOID; - else { - explist(ls, &args); - luaK_setmultret(fs, &args); - } - check_match(ls, ')', '(', line); - break; - } - case '{': { /* funcargs -> constructor */ - constructor(ls, &args); - break; - } - case TK_STRING: { /* funcargs -> STRING */ - codestring(ls, &args, ls->t.seminfo.ts); - luaX_next(ls); /* must use `seminfo' before `next' */ - break; - } - default: { - luaX_syntaxerror(ls, "function arguments expected"); - } - } - lua_assert(f->k == VNONRELOC); - base = f->u.info; /* base register for call */ - if (hasmultret(args.k)) - nparams = LUA_MULTRET; /* open call */ - else { - if (args.k != VVOID) - luaK_exp2nextreg(fs, &args); /* close last argument */ - nparams = fs->freereg - (base+1); - } - init_exp(f, VCALL, luaK_codeABC(fs, OP_CALL, base, nparams+1, 2)); - luaK_fixline(fs, line); - fs->freereg = base+1; /* call remove function and arguments and leaves - (unless changed) one result */ -} - - - - -/* -** {====================================================================== -** Expression parsing -** ======================================================================= -*/ - - -static void primaryexp (LexState *ls, expdesc *v) { - /* primaryexp -> NAME | '(' expr ')' */ - switch (ls->t.token) { - case '(': { - int line = ls->linenumber; - luaX_next(ls); - expr(ls, v); - check_match(ls, ')', '(', line); - luaK_dischargevars(ls->fs, v); - return; - } - case TK_NAME: { - singlevar(ls, v); - return; - } - default: { - luaX_syntaxerror(ls, "unexpected symbol"); - } - } -} - - -static void suffixedexp (LexState *ls, expdesc *v) { - /* suffixedexp -> - primaryexp { '.' NAME | '[' exp ']' | ':' NAME funcargs | funcargs } */ - FuncState *fs = ls->fs; - int line = ls->linenumber; - primaryexp(ls, v); - for (;;) { - switch (ls->t.token) { - case '.': { /* fieldsel */ - fieldsel(ls, v); - break; - } - case '[': { /* `[' exp1 `]' */ - expdesc key; - luaK_exp2anyregup(fs, v); - yindex(ls, &key); - luaK_indexed(fs, v, &key); - break; - } - case ':': { /* `:' NAME funcargs */ - expdesc key; - luaX_next(ls); - checkname(ls, &key); - luaK_self(fs, v, &key); - funcargs(ls, v, line); - break; - } - case '(': case TK_STRING: case '{': { /* funcargs */ - luaK_exp2nextreg(fs, v); - funcargs(ls, v, line); - break; - } - default: return; - } - } -} - - -static void simpleexp (LexState *ls, expdesc *v) { - /* simpleexp -> NUMBER | STRING | NIL | TRUE | FALSE | ... | - constructor | FUNCTION body | suffixedexp */ - switch (ls->t.token) { - case TK_NUMBER: { - init_exp(v, VKNUM, 0); - v->u.nval = ls->t.seminfo.r; - break; - } - case TK_STRING: { - codestring(ls, v, ls->t.seminfo.ts); - break; - } - case TK_NIL: { - init_exp(v, VNIL, 0); - break; - } - case TK_TRUE: { - init_exp(v, VTRUE, 0); - break; - } - case TK_FALSE: { - init_exp(v, VFALSE, 0); - break; - } - case TK_DOTS: { /* vararg */ - FuncState *fs = ls->fs; - check_condition(ls, fs->f->is_vararg, - "cannot use " LUA_QL("...") " outside a vararg function"); - init_exp(v, VVARARG, luaK_codeABC(fs, OP_VARARG, 0, 1, 0)); - break; - } - case '{': { /* constructor */ - constructor(ls, v); - return; - } - case TK_FUNCTION: { - luaX_next(ls); - body(ls, v, 0, ls->linenumber); - return; - } - default: { - suffixedexp(ls, v); - return; - } - } - luaX_next(ls); -} - - -static UnOpr getunopr (int op) { - switch (op) { - case TK_NOT: return OPR_NOT; - case '-': return OPR_MINUS; - case '#': return OPR_LEN; - default: return OPR_NOUNOPR; - } -} - - -static BinOpr getbinopr (int op) { - switch (op) { - case '+': return OPR_ADD; - case '-': return OPR_SUB; - case '*': return OPR_MUL; - case '/': return OPR_DIV; - case '%': return OPR_MOD; - case '^': return OPR_POW; - case TK_CONCAT: return OPR_CONCAT; - case TK_NE: return OPR_NE; - case TK_EQ: return OPR_EQ; - case '<': return OPR_LT; - case TK_LE: return OPR_LE; - case '>': return OPR_GT; - case TK_GE: return OPR_GE; - case TK_AND: return OPR_AND; - case TK_OR: return OPR_OR; - default: return OPR_NOBINOPR; - } -} - - -static const struct { - lu_byte left; /* left priority for each binary operator */ - lu_byte right; /* right priority */ -} priority[] = { /* ORDER OPR */ - {6, 6}, {6, 6}, {7, 7}, {7, 7}, {7, 7}, /* `+' `-' `*' `/' `%' */ - {10, 9}, {5, 4}, /* ^, .. (right associative) */ - {3, 3}, {3, 3}, {3, 3}, /* ==, <, <= */ - {3, 3}, {3, 3}, {3, 3}, /* ~=, >, >= */ - {2, 2}, {1, 1} /* and, or */ -}; - -#define UNARY_PRIORITY 8 /* priority for unary operators */ - - -/* -** subexpr -> (simpleexp | unop subexpr) { binop subexpr } -** where `binop' is any binary operator with a priority higher than `limit' -*/ -static BinOpr subexpr (LexState *ls, expdesc *v, int limit) { - BinOpr op; - UnOpr uop; - enterlevel(ls); - uop = getunopr(ls->t.token); - if (uop != OPR_NOUNOPR) { - int line = ls->linenumber; - luaX_next(ls); - subexpr(ls, v, UNARY_PRIORITY); - luaK_prefix(ls->fs, uop, v, line); - } - else simpleexp(ls, v); - /* expand while operators have priorities higher than `limit' */ - op = getbinopr(ls->t.token); - while (op != OPR_NOBINOPR && priority[op].left > limit) { - expdesc v2; - BinOpr nextop; - int line = ls->linenumber; - luaX_next(ls); - luaK_infix(ls->fs, op, v); - /* read sub-expression with higher priority */ - nextop = subexpr(ls, &v2, priority[op].right); - luaK_posfix(ls->fs, op, v, &v2, line); - op = nextop; - } - leavelevel(ls); - return op; /* return first untreated operator */ -} - - -static void expr (LexState *ls, expdesc *v) { - subexpr(ls, v, 0); -} - -/* }==================================================================== */ - - - -/* -** {====================================================================== -** Rules for Statements -** ======================================================================= -*/ - - -static void block (LexState *ls) { - /* block -> statlist */ - FuncState *fs = ls->fs; - BlockCnt bl; - enterblock(fs, &bl, 0); - statlist(ls); - leaveblock(fs); -} - - -/* -** structure to chain all variables in the left-hand side of an -** assignment -*/ -struct LHS_assign { - struct LHS_assign *prev; - expdesc v; /* variable (global, local, upvalue, or indexed) */ -}; - - -/* -** check whether, in an assignment to an upvalue/local variable, the -** upvalue/local variable is begin used in a previous assignment to a -** table. If so, save original upvalue/local value in a safe place and -** use this safe copy in the previous assignment. -*/ -static void check_conflict (LexState *ls, struct LHS_assign *lh, expdesc *v) { - FuncState *fs = ls->fs; - int extra = fs->freereg; /* eventual position to save local variable */ - int conflict = 0; - for (; lh; lh = lh->prev) { /* check all previous assignments */ - if (lh->v.k == VINDEXED) { /* assigning to a table? */ - /* table is the upvalue/local being assigned now? */ - if (lh->v.u.ind.vt == v->k && lh->v.u.ind.t == v->u.info) { - conflict = 1; - lh->v.u.ind.vt = VLOCAL; - lh->v.u.ind.t = extra; /* previous assignment will use safe copy */ - } - /* index is the local being assigned? (index cannot be upvalue) */ - if (v->k == VLOCAL && lh->v.u.ind.idx == v->u.info) { - conflict = 1; - lh->v.u.ind.idx = extra; /* previous assignment will use safe copy */ - } - } - } - if (conflict) { - /* copy upvalue/local value to a temporary (in position 'extra') */ - OpCode op = (v->k == VLOCAL) ? OP_MOVE : OP_GETUPVAL; - luaK_codeABC(fs, op, extra, v->u.info, 0); - luaK_reserveregs(fs, 1); - } -} - - -static void assignment (LexState *ls, struct LHS_assign *lh, int nvars) { - expdesc e; - check_condition(ls, vkisvar(lh->v.k), "syntax error"); - if (testnext(ls, ',')) { /* assignment -> ',' suffixedexp assignment */ - struct LHS_assign nv; - nv.prev = lh; - suffixedexp(ls, &nv.v); - if (nv.v.k != VINDEXED) - check_conflict(ls, lh, &nv.v); - checklimit(ls->fs, nvars + ls->L->nCcalls, LUAI_MAXCCALLS, - "C levels"); - assignment(ls, &nv, nvars+1); - } - else { /* assignment -> `=' explist */ - int nexps; - checknext(ls, '='); - nexps = explist(ls, &e); - if (nexps != nvars) { - adjust_assign(ls, nvars, nexps, &e); - if (nexps > nvars) - ls->fs->freereg -= nexps - nvars; /* remove extra values */ - } - else { - luaK_setoneret(ls->fs, &e); /* close last expression */ - luaK_storevar(ls->fs, &lh->v, &e); - return; /* avoid default */ - } - } - init_exp(&e, VNONRELOC, ls->fs->freereg-1); /* default assignment */ - luaK_storevar(ls->fs, &lh->v, &e); -} - - -static int cond (LexState *ls) { - /* cond -> exp */ - expdesc v; - expr(ls, &v); /* read condition */ - if (v.k == VNIL) v.k = VFALSE; /* `falses' are all equal here */ - luaK_goiftrue(ls->fs, &v); - return v.f; -} - - -static void gotostat (LexState *ls, int pc) { - int line = ls->linenumber; - TString *label; - int g; - if (testnext(ls, TK_GOTO)) - label = str_checkname(ls); - else { - luaX_next(ls); /* skip break */ - label = luaS_new(ls->L, "break"); - } - g = newlabelentry(ls, &ls->dyd->gt, label, line, pc); - findlabel(ls, g); /* close it if label already defined */ -} - - -/* check for repeated labels on the same block */ -static void checkrepeated (FuncState *fs, Labellist *ll, TString *label) { - int i; - for (i = fs->bl->firstlabel; i < ll->n; i++) { - if (luaS_eqstr(label, ll->arr[i].name)) { - const char *msg = luaO_pushfstring(fs->ls->L, - "label " LUA_QS " already defined on line %d", - getstr(label), ll->arr[i].line); - semerror(fs->ls, msg); - } - } -} - - -/* skip no-op statements */ -static void skipnoopstat (LexState *ls) { - while (ls->t.token == ';' || ls->t.token == TK_DBCOLON) - statement(ls); -} - - -static void labelstat (LexState *ls, TString *label, int line) { - /* label -> '::' NAME '::' */ - FuncState *fs = ls->fs; - Labellist *ll = &ls->dyd->label; - int l; /* index of new label being created */ - checkrepeated(fs, ll, label); /* check for repeated labels */ - checknext(ls, TK_DBCOLON); /* skip double colon */ - /* create new entry for this label */ - l = newlabelentry(ls, ll, label, line, fs->pc); - skipnoopstat(ls); /* skip other no-op statements */ - if (block_follow(ls, 0)) { /* label is last no-op statement in the block? */ - /* assume that locals are already out of scope */ - ll->arr[l].nactvar = fs->bl->nactvar; - } - findgotos(ls, &ll->arr[l]); -} - - -static void whilestat (LexState *ls, int line) { - /* whilestat -> WHILE cond DO block END */ - FuncState *fs = ls->fs; - int whileinit; - int condexit; - BlockCnt bl; - luaX_next(ls); /* skip WHILE */ - whileinit = luaK_getlabel(fs); - condexit = cond(ls); - enterblock(fs, &bl, 1); - checknext(ls, TK_DO); - block(ls); - luaK_jumpto(fs, whileinit); - check_match(ls, TK_END, TK_WHILE, line); - leaveblock(fs); - luaK_patchtohere(fs, condexit); /* false conditions finish the loop */ -} - - -static void repeatstat (LexState *ls, int line) { - /* repeatstat -> REPEAT block UNTIL cond */ - int condexit; - FuncState *fs = ls->fs; - int repeat_init = luaK_getlabel(fs); - BlockCnt bl1, bl2; - enterblock(fs, &bl1, 1); /* loop block */ - enterblock(fs, &bl2, 0); /* scope block */ - luaX_next(ls); /* skip REPEAT */ - statlist(ls); - check_match(ls, TK_UNTIL, TK_REPEAT, line); - condexit = cond(ls); /* read condition (inside scope block) */ - if (bl2.upval) /* upvalues? */ - luaK_patchclose(fs, condexit, bl2.nactvar); - leaveblock(fs); /* finish scope */ - luaK_patchlist(fs, condexit, repeat_init); /* close the loop */ - leaveblock(fs); /* finish loop */ -} - - -static int exp1 (LexState *ls) { - expdesc e; - int reg; - expr(ls, &e); - luaK_exp2nextreg(ls->fs, &e); - lua_assert(e.k == VNONRELOC); - reg = e.u.info; - return reg; -} - - -static void forbody (LexState *ls, int base, int line, int nvars, int isnum) { - /* forbody -> DO block */ - BlockCnt bl; - FuncState *fs = ls->fs; - int prep, endfor; - adjustlocalvars(ls, 3); /* control variables */ - checknext(ls, TK_DO); - prep = isnum ? luaK_codeAsBx(fs, OP_FORPREP, base, NO_JUMP) : luaK_jump(fs); - enterblock(fs, &bl, 0); /* scope for declared variables */ - adjustlocalvars(ls, nvars); - luaK_reserveregs(fs, nvars); - block(ls); - leaveblock(fs); /* end of scope for declared variables */ - luaK_patchtohere(fs, prep); - if (isnum) /* numeric for? */ - endfor = luaK_codeAsBx(fs, OP_FORLOOP, base, NO_JUMP); - else { /* generic for */ - luaK_codeABC(fs, OP_TFORCALL, base, 0, nvars); - luaK_fixline(fs, line); - endfor = luaK_codeAsBx(fs, OP_TFORLOOP, base + 2, NO_JUMP); - } - luaK_patchlist(fs, endfor, prep + 1); - luaK_fixline(fs, line); -} - - -static void fornum (LexState *ls, TString *varname, int line) { - /* fornum -> NAME = exp1,exp1[,exp1] forbody */ - FuncState *fs = ls->fs; - int base = fs->freereg; - new_localvarliteral(ls, "(for index)"); - new_localvarliteral(ls, "(for limit)"); - new_localvarliteral(ls, "(for step)"); - new_localvar(ls, varname); - checknext(ls, '='); - exp1(ls); /* initial value */ - checknext(ls, ','); - exp1(ls); /* limit */ - if (testnext(ls, ',')) - exp1(ls); /* optional step */ - else { /* default step = 1 */ - luaK_codek(fs, fs->freereg, luaK_numberK(fs, 1)); - luaK_reserveregs(fs, 1); - } - forbody(ls, base, line, 1, 1); -} - - -static void forlist (LexState *ls, TString *indexname) { - /* forlist -> NAME {,NAME} IN explist forbody */ - FuncState *fs = ls->fs; - expdesc e; - int nvars = 4; /* gen, state, control, plus at least one declared var */ - int line; - int base = fs->freereg; - /* create control variables */ - new_localvarliteral(ls, "(for generator)"); - new_localvarliteral(ls, "(for state)"); - new_localvarliteral(ls, "(for control)"); - /* create declared variables */ - new_localvar(ls, indexname); - while (testnext(ls, ',')) { - new_localvar(ls, str_checkname(ls)); - nvars++; - } - checknext(ls, TK_IN); - line = ls->linenumber; - adjust_assign(ls, 3, explist(ls, &e), &e); - luaK_checkstack(fs, 3); /* extra space to call generator */ - forbody(ls, base, line, nvars - 3, 0); -} - - -static void forstat (LexState *ls, int line) { - /* forstat -> FOR (fornum | forlist) END */ - FuncState *fs = ls->fs; - TString *varname; - BlockCnt bl; - enterblock(fs, &bl, 1); /* scope for loop and control variables */ - luaX_next(ls); /* skip `for' */ - varname = str_checkname(ls); /* first variable name */ - switch (ls->t.token) { - case '=': fornum(ls, varname, line); break; - case ',': case TK_IN: forlist(ls, varname); break; - default: luaX_syntaxerror(ls, LUA_QL("=") " or " LUA_QL("in") " expected"); - } - check_match(ls, TK_END, TK_FOR, line); - leaveblock(fs); /* loop scope (`break' jumps to this point) */ -} - - -static void test_then_block (LexState *ls, int *escapelist) { - /* test_then_block -> [IF | ELSEIF] cond THEN block */ - BlockCnt bl; - FuncState *fs = ls->fs; - expdesc v; - int jf; /* instruction to skip 'then' code (if condition is false) */ - luaX_next(ls); /* skip IF or ELSEIF */ - expr(ls, &v); /* read condition */ - checknext(ls, TK_THEN); - if (ls->t.token == TK_GOTO || ls->t.token == TK_BREAK) { - luaK_goiffalse(ls->fs, &v); /* will jump to label if condition is true */ - enterblock(fs, &bl, 0); /* must enter block before 'goto' */ - gotostat(ls, v.t); /* handle goto/break */ - skipnoopstat(ls); /* skip other no-op statements */ - if (block_follow(ls, 0)) { /* 'goto' is the entire block? */ - leaveblock(fs); - return; /* and that is it */ - } - else /* must skip over 'then' part if condition is false */ - jf = luaK_jump(fs); - } - else { /* regular case (not goto/break) */ - luaK_goiftrue(ls->fs, &v); /* skip over block if condition is false */ - enterblock(fs, &bl, 0); - jf = v.f; - } - statlist(ls); /* `then' part */ - leaveblock(fs); - if (ls->t.token == TK_ELSE || - ls->t.token == TK_ELSEIF) /* followed by 'else'/'elseif'? */ - luaK_concat(fs, escapelist, luaK_jump(fs)); /* must jump over it */ - luaK_patchtohere(fs, jf); -} - - -static void ifstat (LexState *ls, int line) { - /* ifstat -> IF cond THEN block {ELSEIF cond THEN block} [ELSE block] END */ - FuncState *fs = ls->fs; - int escapelist = NO_JUMP; /* exit list for finished parts */ - test_then_block(ls, &escapelist); /* IF cond THEN block */ - while (ls->t.token == TK_ELSEIF) - test_then_block(ls, &escapelist); /* ELSEIF cond THEN block */ - if (testnext(ls, TK_ELSE)) - block(ls); /* `else' part */ - check_match(ls, TK_END, TK_IF, line); - luaK_patchtohere(fs, escapelist); /* patch escape list to 'if' end */ -} - - -static void localfunc (LexState *ls) { - expdesc b; - FuncState *fs = ls->fs; - new_localvar(ls, str_checkname(ls)); /* new local variable */ - adjustlocalvars(ls, 1); /* enter its scope */ - body(ls, &b, 0, ls->linenumber); /* function created in next register */ - /* debug information will only see the variable after this point! */ - getlocvar(fs, b.u.info)->startpc = fs->pc; -} - - -static void localstat (LexState *ls) { - /* stat -> LOCAL NAME {`,' NAME} [`=' explist] */ - int nvars = 0; - int nexps; - expdesc e; - do { - new_localvar(ls, str_checkname(ls)); - nvars++; - } while (testnext(ls, ',')); - if (testnext(ls, '=')) - nexps = explist(ls, &e); - else { - e.k = VVOID; - nexps = 0; - } - adjust_assign(ls, nvars, nexps, &e); - adjustlocalvars(ls, nvars); -} - - -static int funcname (LexState *ls, expdesc *v) { - /* funcname -> NAME {fieldsel} [`:' NAME] */ - int ismethod = 0; - singlevar(ls, v); - while (ls->t.token == '.') - fieldsel(ls, v); - if (ls->t.token == ':') { - ismethod = 1; - fieldsel(ls, v); - } - return ismethod; -} - - -static void funcstat (LexState *ls, int line) { - /* funcstat -> FUNCTION funcname body */ - int ismethod; - expdesc v, b; - luaX_next(ls); /* skip FUNCTION */ - ismethod = funcname(ls, &v); - body(ls, &b, ismethod, line); - luaK_storevar(ls->fs, &v, &b); - luaK_fixline(ls->fs, line); /* definition `happens' in the first line */ -} - - -static void exprstat (LexState *ls) { - /* stat -> func | assignment */ - FuncState *fs = ls->fs; - struct LHS_assign v; - suffixedexp(ls, &v.v); - if (ls->t.token == '=' || ls->t.token == ',') { /* stat -> assignment ? */ - v.prev = NULL; - assignment(ls, &v, 1); - } - else { /* stat -> func */ - check_condition(ls, v.v.k == VCALL, "syntax error"); - SETARG_C(getcode(fs, &v.v), 1); /* call statement uses no results */ - } -} - - -static void retstat (LexState *ls) { - /* stat -> RETURN [explist] [';'] */ - FuncState *fs = ls->fs; - expdesc e; - int first, nret; /* registers with returned values */ - if (block_follow(ls, 1) || ls->t.token == ';') - first = nret = 0; /* return no values */ - else { - nret = explist(ls, &e); /* optional return values */ - if (hasmultret(e.k)) { - luaK_setmultret(fs, &e); - if (e.k == VCALL && nret == 1) { /* tail call? */ - SET_OPCODE(getcode(fs,&e), OP_TAILCALL); - lua_assert(GETARG_A(getcode(fs,&e)) == fs->nactvar); - } - first = fs->nactvar; - nret = LUA_MULTRET; /* return all values */ - } - else { - if (nret == 1) /* only one single value? */ - first = luaK_exp2anyreg(fs, &e); - else { - luaK_exp2nextreg(fs, &e); /* values must go to the `stack' */ - first = fs->nactvar; /* return all `active' values */ - lua_assert(nret == fs->freereg - first); - } - } - } - luaK_ret(fs, first, nret); - testnext(ls, ';'); /* skip optional semicolon */ -} - - -static void statement (LexState *ls) { - int line = ls->linenumber; /* may be needed for error messages */ - enterlevel(ls); - switch (ls->t.token) { - case ';': { /* stat -> ';' (empty statement) */ - luaX_next(ls); /* skip ';' */ - break; - } - case TK_IF: { /* stat -> ifstat */ - ifstat(ls, line); - break; - } - case TK_WHILE: { /* stat -> whilestat */ - whilestat(ls, line); - break; - } - case TK_DO: { /* stat -> DO block END */ - luaX_next(ls); /* skip DO */ - block(ls); - check_match(ls, TK_END, TK_DO, line); - break; - } - case TK_FOR: { /* stat -> forstat */ - forstat(ls, line); - break; - } - case TK_REPEAT: { /* stat -> repeatstat */ - repeatstat(ls, line); - break; - } - case TK_FUNCTION: { /* stat -> funcstat */ - funcstat(ls, line); - break; - } - case TK_LOCAL: { /* stat -> localstat */ - luaX_next(ls); /* skip LOCAL */ - if (testnext(ls, TK_FUNCTION)) /* local function? */ - localfunc(ls); - else - localstat(ls); - break; - } - case TK_DBCOLON: { /* stat -> label */ - luaX_next(ls); /* skip double colon */ - labelstat(ls, str_checkname(ls), line); - break; - } - case TK_RETURN: { /* stat -> retstat */ - luaX_next(ls); /* skip RETURN */ - retstat(ls); - break; - } - case TK_BREAK: /* stat -> breakstat */ - case TK_GOTO: { /* stat -> 'goto' NAME */ - gotostat(ls, luaK_jump(ls->fs)); - break; - } - default: { /* stat -> func | assignment */ - exprstat(ls); - break; - } - } - lua_assert(ls->fs->f->maxstacksize >= ls->fs->freereg && - ls->fs->freereg >= ls->fs->nactvar); - ls->fs->freereg = ls->fs->nactvar; /* free registers */ - leavelevel(ls); -} - -/* }====================================================================== */ - - -/* -** compiles the main function, which is a regular vararg function with an -** upvalue named LUA_ENV -*/ -static void mainfunc (LexState *ls, FuncState *fs) { - BlockCnt bl; - expdesc v; - open_func(ls, fs, &bl); - fs->f->is_vararg = 1; /* main function is always vararg */ - init_exp(&v, VLOCAL, 0); /* create and... */ - newupvalue(fs, ls->envn, &v); /* ...set environment upvalue */ - luaX_next(ls); /* read first token */ - statlist(ls); /* parse main body */ - check(ls, TK_EOS); - close_func(ls); -} - - -Closure *luaY_parser (lua_State *L, ZIO *z, Mbuffer *buff, - Dyndata *dyd, const char *name, int firstchar) { - LexState lexstate; - FuncState funcstate; - Closure *cl = luaF_newLclosure(L, 1); /* create main closure */ - /* anchor closure (to avoid being collected) */ - setclLvalue(L, L->top, cl); - incr_top(L); - funcstate.f = cl->l.p = luaF_newproto(L); - funcstate.f->source = luaS_new(L, name); /* create and anchor TString */ - lexstate.buff = buff; - lexstate.dyd = dyd; - dyd->actvar.n = dyd->gt.n = dyd->label.n = 0; - luaX_setinput(L, &lexstate, z, funcstate.f->source, firstchar); - mainfunc(&lexstate, &funcstate); - lua_assert(!funcstate.prev && funcstate.nups == 1 && !lexstate.fs); - /* all scopes should be correctly finished */ - lua_assert(dyd->actvar.n == 0 && dyd->gt.n == 0 && dyd->label.n == 0); - return cl; /* it's on the stack too */ -} - diff --git a/source/libs/lua52/lua52-src/src/lparser.h b/source/libs/lua52/lua52-src/src/lparser.h deleted file mode 100644 index 0346e3c41a803f682edac673b0474ca651e2a774..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lparser.h +++ /dev/null @@ -1,119 +0,0 @@ -/* -** $Id: lparser.h,v 1.70.1.1 2013/04/12 18:48:47 roberto Exp $ -** Lua Parser -** See Copyright Notice in lua.h -*/ - -#ifndef lparser_h -#define lparser_h - -#include "llimits.h" -#include "lobject.h" -#include "lzio.h" - - -/* -** Expression descriptor -*/ - -typedef enum { - VVOID, /* no value */ - VNIL, - VTRUE, - VFALSE, - VK, /* info = index of constant in `k' */ - VKNUM, /* nval = numerical value */ - VNONRELOC, /* info = result register */ - VLOCAL, /* info = local register */ - VUPVAL, /* info = index of upvalue in 'upvalues' */ - VINDEXED, /* t = table register/upvalue; idx = index R/K */ - VJMP, /* info = instruction pc */ - VRELOCABLE, /* info = instruction pc */ - VCALL, /* info = instruction pc */ - VVARARG /* info = instruction pc */ -} expkind; - - -#define vkisvar(k) (VLOCAL <= (k) && (k) <= VINDEXED) -#define vkisinreg(k) ((k) == VNONRELOC || (k) == VLOCAL) - -typedef struct expdesc { - expkind k; - union { - struct { /* for indexed variables (VINDEXED) */ - short idx; /* index (R/K) */ - lu_byte t; /* table (register or upvalue) */ - lu_byte vt; /* whether 't' is register (VLOCAL) or upvalue (VUPVAL) */ - } ind; - int info; /* for generic use */ - lua_Number nval; /* for VKNUM */ - } u; - int t; /* patch list of `exit when true' */ - int f; /* patch list of `exit when false' */ -} expdesc; - - -/* description of active local variable */ -typedef struct Vardesc { - short idx; /* variable index in stack */ -} Vardesc; - - -/* description of pending goto statements and label statements */ -typedef struct Labeldesc { - TString *name; /* label identifier */ - int pc; /* position in code */ - int line; /* line where it appeared */ - lu_byte nactvar; /* local level where it appears in current block */ -} Labeldesc; - - -/* list of labels or gotos */ -typedef struct Labellist { - Labeldesc *arr; /* array */ - int n; /* number of entries in use */ - int size; /* array size */ -} Labellist; - - -/* dynamic structures used by the parser */ -typedef struct Dyndata { - struct { /* list of active local variables */ - Vardesc *arr; - int n; - int size; - } actvar; - Labellist gt; /* list of pending gotos */ - Labellist label; /* list of active labels */ -} Dyndata; - - -/* control of blocks */ -struct BlockCnt; /* defined in lparser.c */ - - -/* state needed to generate code for a given function */ -typedef struct FuncState { - Proto *f; /* current function header */ - Table *h; /* table to find (and reuse) elements in `k' */ - struct FuncState *prev; /* enclosing function */ - struct LexState *ls; /* lexical state */ - struct BlockCnt *bl; /* chain of current blocks */ - int pc; /* next position to code (equivalent to `ncode') */ - int lasttarget; /* 'label' of last 'jump label' */ - int jpc; /* list of pending jumps to `pc' */ - int nk; /* number of elements in `k' */ - int np; /* number of elements in `p' */ - int firstlocal; /* index of first local var (in Dyndata array) */ - short nlocvars; /* number of elements in 'f->locvars' */ - lu_byte nactvar; /* number of active local variables */ - lu_byte nups; /* number of upvalues */ - lu_byte freereg; /* first free register */ -} FuncState; - - -LUAI_FUNC Closure *luaY_parser (lua_State *L, ZIO *z, Mbuffer *buff, - Dyndata *dyd, const char *name, int firstchar); - - -#endif diff --git a/source/libs/lua52/lua52-src/src/lstate.c b/source/libs/lua52/lua52-src/src/lstate.c deleted file mode 100644 index c7f2672be7b9ca3685a44cbb026bab89607552c0..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lstate.c +++ /dev/null @@ -1,323 +0,0 @@ -/* -** $Id: lstate.c,v 2.99.1.2 2013/11/08 17:45:31 roberto Exp $ -** Global State -** See Copyright Notice in lua.h -*/ - - -#include <stddef.h> -#include <string.h> - -#define lstate_c -#define LUA_CORE - -#include "lua.h" - -#include "lapi.h" -#include "ldebug.h" -#include "ldo.h" -#include "lfunc.h" -#include "lgc.h" -#include "llex.h" -#include "lmem.h" -#include "lstate.h" -#include "lstring.h" -#include "ltable.h" -#include "ltm.h" - - -#if !defined(LUAI_GCPAUSE) -#define LUAI_GCPAUSE 200 /* 200% */ -#endif - -#if !defined(LUAI_GCMAJOR) -#define LUAI_GCMAJOR 200 /* 200% */ -#endif - -#if !defined(LUAI_GCMUL) -#define LUAI_GCMUL 200 /* GC runs 'twice the speed' of memory allocation */ -#endif - - -#define MEMERRMSG "not enough memory" - - -/* -** a macro to help the creation of a unique random seed when a state is -** created; the seed is used to randomize hashes. -*/ -#if !defined(luai_makeseed) -#include <time.h> -#define luai_makeseed() cast(unsigned int, time(NULL)) -#endif - - - -/* -** thread state + extra space -*/ -typedef struct LX { -#if defined(LUAI_EXTRASPACE) - char buff[LUAI_EXTRASPACE]; -#endif - lua_State l; -} LX; - - -/* -** Main thread combines a thread state and the global state -*/ -typedef struct LG { - LX l; - global_State g; -} LG; - - - -#define fromstate(L) (cast(LX *, cast(lu_byte *, (L)) - offsetof(LX, l))) - - -/* -** Compute an initial seed as random as possible. In ANSI, rely on -** Address Space Layout Randomization (if present) to increase -** randomness.. -*/ -#define addbuff(b,p,e) \ - { size_t t = cast(size_t, e); \ - memcpy(buff + p, &t, sizeof(t)); p += sizeof(t); } - -static unsigned int makeseed (lua_State *L) { - char buff[4 * sizeof(size_t)]; - unsigned int h = luai_makeseed(); - int p = 0; - addbuff(buff, p, L); /* heap variable */ - addbuff(buff, p, &h); /* local variable */ - addbuff(buff, p, luaO_nilobject); /* global variable */ - addbuff(buff, p, &lua_newstate); /* public function */ - lua_assert(p == sizeof(buff)); - return luaS_hash(buff, p, h); -} - - -/* -** set GCdebt to a new value keeping the value (totalbytes + GCdebt) -** invariant -*/ -void luaE_setdebt (global_State *g, l_mem debt) { - g->totalbytes -= (debt - g->GCdebt); - g->GCdebt = debt; -} - - -CallInfo *luaE_extendCI (lua_State *L) { - CallInfo *ci = luaM_new(L, CallInfo); - lua_assert(L->ci->next == NULL); - L->ci->next = ci; - ci->previous = L->ci; - ci->next = NULL; - return ci; -} - - -void luaE_freeCI (lua_State *L) { - CallInfo *ci = L->ci; - CallInfo *next = ci->next; - ci->next = NULL; - while ((ci = next) != NULL) { - next = ci->next; - luaM_free(L, ci); - } -} - - -static void stack_init (lua_State *L1, lua_State *L) { - int i; CallInfo *ci; - /* initialize stack array */ - L1->stack = luaM_newvector(L, BASIC_STACK_SIZE, TValue); - L1->stacksize = BASIC_STACK_SIZE; - for (i = 0; i < BASIC_STACK_SIZE; i++) - setnilvalue(L1->stack + i); /* erase new stack */ - L1->top = L1->stack; - L1->stack_last = L1->stack + L1->stacksize - EXTRA_STACK; - /* initialize first ci */ - ci = &L1->base_ci; - ci->next = ci->previous = NULL; - ci->callstatus = 0; - ci->func = L1->top; - setnilvalue(L1->top++); /* 'function' entry for this 'ci' */ - ci->top = L1->top + LUA_MINSTACK; - L1->ci = ci; -} - - -static void freestack (lua_State *L) { - if (L->stack == NULL) - return; /* stack not completely built yet */ - L->ci = &L->base_ci; /* free the entire 'ci' list */ - luaE_freeCI(L); - luaM_freearray(L, L->stack, L->stacksize); /* free stack array */ -} - - -/* -** Create registry table and its predefined values -*/ -static void init_registry (lua_State *L, global_State *g) { - TValue mt; - /* create registry */ - Table *registry = luaH_new(L); - sethvalue(L, &g->l_registry, registry); - luaH_resize(L, registry, LUA_RIDX_LAST, 0); - /* registry[LUA_RIDX_MAINTHREAD] = L */ - setthvalue(L, &mt, L); - luaH_setint(L, registry, LUA_RIDX_MAINTHREAD, &mt); - /* registry[LUA_RIDX_GLOBALS] = table of globals */ - sethvalue(L, &mt, luaH_new(L)); - luaH_setint(L, registry, LUA_RIDX_GLOBALS, &mt); -} - - -/* -** open parts of the state that may cause memory-allocation errors -*/ -static void f_luaopen (lua_State *L, void *ud) { - global_State *g = G(L); - UNUSED(ud); - stack_init(L, L); /* init stack */ - init_registry(L, g); - luaS_resize(L, MINSTRTABSIZE); /* initial size of string table */ - luaT_init(L); - luaX_init(L); - /* pre-create memory-error message */ - g->memerrmsg = luaS_newliteral(L, MEMERRMSG); - luaS_fix(g->memerrmsg); /* it should never be collected */ - g->gcrunning = 1; /* allow gc */ - g->version = lua_version(NULL); - luai_userstateopen(L); -} - - -/* -** preinitialize a state with consistent values without allocating -** any memory (to avoid errors) -*/ -static void preinit_state (lua_State *L, global_State *g) { - G(L) = g; - L->stack = NULL; - L->ci = NULL; - L->stacksize = 0; - L->errorJmp = NULL; - L->nCcalls = 0; - L->hook = NULL; - L->hookmask = 0; - L->basehookcount = 0; - L->allowhook = 1; - resethookcount(L); - L->openupval = NULL; - L->nny = 1; - L->status = LUA_OK; - L->errfunc = 0; -} - - -static void close_state (lua_State *L) { - global_State *g = G(L); - luaF_close(L, L->stack); /* close all upvalues for this thread */ - luaC_freeallobjects(L); /* collect all objects */ - if (g->version) /* closing a fully built state? */ - luai_userstateclose(L); - luaM_freearray(L, G(L)->strt.hash, G(L)->strt.size); - luaZ_freebuffer(L, &g->buff); - freestack(L); - lua_assert(gettotalbytes(g) == sizeof(LG)); - (*g->frealloc)(g->ud, fromstate(L), sizeof(LG), 0); /* free main block */ -} - - -LUA_API lua_State *lua_newthread (lua_State *L) { - lua_State *L1; - lua_lock(L); - luaC_checkGC(L); - L1 = &luaC_newobj(L, LUA_TTHREAD, sizeof(LX), NULL, offsetof(LX, l))->th; - setthvalue(L, L->top, L1); - api_incr_top(L); - preinit_state(L1, G(L)); - L1->hookmask = L->hookmask; - L1->basehookcount = L->basehookcount; - L1->hook = L->hook; - resethookcount(L1); - luai_userstatethread(L, L1); - stack_init(L1, L); /* init stack */ - lua_unlock(L); - return L1; -} - - -void luaE_freethread (lua_State *L, lua_State *L1) { - LX *l = fromstate(L1); - luaF_close(L1, L1->stack); /* close all upvalues for this thread */ - lua_assert(L1->openupval == NULL); - luai_userstatefree(L, L1); - freestack(L1); - luaM_free(L, l); -} - - -LUA_API lua_State *lua_newstate (lua_Alloc f, void *ud) { - int i; - lua_State *L; - global_State *g; - LG *l = cast(LG *, (*f)(ud, NULL, LUA_TTHREAD, sizeof(LG))); - if (l == NULL) return NULL; - L = &l->l.l; - g = &l->g; - L->next = NULL; - L->tt = LUA_TTHREAD; - g->currentwhite = bit2mask(WHITE0BIT, FIXEDBIT); - L->marked = luaC_white(g); - g->gckind = KGC_NORMAL; - preinit_state(L, g); - g->frealloc = f; - g->ud = ud; - g->mainthread = L; - g->seed = makeseed(L); - g->uvhead.u.l.prev = &g->uvhead; - g->uvhead.u.l.next = &g->uvhead; - g->gcrunning = 0; /* no GC while building state */ - g->GCestimate = 0; - g->strt.size = 0; - g->strt.nuse = 0; - g->strt.hash = NULL; - setnilvalue(&g->l_registry); - luaZ_initbuffer(L, &g->buff); - g->panic = NULL; - g->version = NULL; - g->gcstate = GCSpause; - g->allgc = NULL; - g->finobj = NULL; - g->tobefnz = NULL; - g->sweepgc = g->sweepfin = NULL; - g->gray = g->grayagain = NULL; - g->weak = g->ephemeron = g->allweak = NULL; - g->totalbytes = sizeof(LG); - g->GCdebt = 0; - g->gcpause = LUAI_GCPAUSE; - g->gcmajorinc = LUAI_GCMAJOR; - g->gcstepmul = LUAI_GCMUL; - for (i=0; i < LUA_NUMTAGS; i++) g->mt[i] = NULL; - if (luaD_rawrunprotected(L, f_luaopen, NULL) != LUA_OK) { - /* memory allocation error: free partial state */ - close_state(L); - L = NULL; - } - return L; -} - - -LUA_API void lua_close (lua_State *L) { - L = G(L)->mainthread; /* only the main thread can be closed */ - lua_lock(L); - close_state(L); -} - - diff --git a/source/libs/lua52/lua52-src/src/lstate.h b/source/libs/lua52/lua52-src/src/lstate.h deleted file mode 100644 index daffd9aacfbb1f09ab858562bfb0abeaf6cfa99a..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lstate.h +++ /dev/null @@ -1,228 +0,0 @@ -/* -** $Id: lstate.h,v 2.82.1.1 2013/04/12 18:48:47 roberto Exp $ -** Global State -** See Copyright Notice in lua.h -*/ - -#ifndef lstate_h -#define lstate_h - -#include "lua.h" - -#include "lobject.h" -#include "ltm.h" -#include "lzio.h" - - -/* - -** Some notes about garbage-collected objects: All objects in Lua must -** be kept somehow accessible until being freed. -** -** Lua keeps most objects linked in list g->allgc. The link uses field -** 'next' of the CommonHeader. -** -** Strings are kept in several lists headed by the array g->strt.hash. -** -** Open upvalues are not subject to independent garbage collection. They -** are collected together with their respective threads. Lua keeps a -** double-linked list with all open upvalues (g->uvhead) so that it can -** mark objects referred by them. (They are always gray, so they must -** be remarked in the atomic step. Usually their contents would be marked -** when traversing the respective threads, but the thread may already be -** dead, while the upvalue is still accessible through closures.) -** -** Objects with finalizers are kept in the list g->finobj. -** -** The list g->tobefnz links all objects being finalized. - -*/ - - -struct lua_longjmp; /* defined in ldo.c */ - - - -/* extra stack space to handle TM calls and some other extras */ -#define EXTRA_STACK 5 - - -#define BASIC_STACK_SIZE (2*LUA_MINSTACK) - - -/* kinds of Garbage Collection */ -#define KGC_NORMAL 0 -#define KGC_EMERGENCY 1 /* gc was forced by an allocation failure */ -#define KGC_GEN 2 /* generational collection */ - - -typedef struct stringtable { - GCObject **hash; - lu_int32 nuse; /* number of elements */ - int size; -} stringtable; - - -/* -** information about a call -*/ -typedef struct CallInfo { - StkId func; /* function index in the stack */ - StkId top; /* top for this function */ - struct CallInfo *previous, *next; /* dynamic call link */ - short nresults; /* expected number of results from this function */ - lu_byte callstatus; - ptrdiff_t extra; - union { - struct { /* only for Lua functions */ - StkId base; /* base for this function */ - const Instruction *savedpc; - } l; - struct { /* only for C functions */ - int ctx; /* context info. in case of yields */ - lua_CFunction k; /* continuation in case of yields */ - ptrdiff_t old_errfunc; - lu_byte old_allowhook; - lu_byte status; - } c; - } u; -} CallInfo; - - -/* -** Bits in CallInfo status -*/ -#define CIST_LUA (1<<0) /* call is running a Lua function */ -#define CIST_HOOKED (1<<1) /* call is running a debug hook */ -#define CIST_REENTRY (1<<2) /* call is running on same invocation of - luaV_execute of previous call */ -#define CIST_YIELDED (1<<3) /* call reentered after suspension */ -#define CIST_YPCALL (1<<4) /* call is a yieldable protected call */ -#define CIST_STAT (1<<5) /* call has an error status (pcall) */ -#define CIST_TAIL (1<<6) /* call was tail called */ -#define CIST_HOOKYIELD (1<<7) /* last hook called yielded */ - - -#define isLua(ci) ((ci)->callstatus & CIST_LUA) - - -/* -** `global state', shared by all threads of this state -*/ -typedef struct global_State { - lua_Alloc frealloc; /* function to reallocate memory */ - void *ud; /* auxiliary data to `frealloc' */ - lu_mem totalbytes; /* number of bytes currently allocated - GCdebt */ - l_mem GCdebt; /* bytes allocated not yet compensated by the collector */ - lu_mem GCmemtrav; /* memory traversed by the GC */ - lu_mem GCestimate; /* an estimate of the non-garbage memory in use */ - stringtable strt; /* hash table for strings */ - TValue l_registry; - unsigned int seed; /* randomized seed for hashes */ - lu_byte currentwhite; - lu_byte gcstate; /* state of garbage collector */ - lu_byte gckind; /* kind of GC running */ - lu_byte gcrunning; /* true if GC is running */ - int sweepstrgc; /* position of sweep in `strt' */ - GCObject *allgc; /* list of all collectable objects */ - GCObject *finobj; /* list of collectable objects with finalizers */ - GCObject **sweepgc; /* current position of sweep in list 'allgc' */ - GCObject **sweepfin; /* current position of sweep in list 'finobj' */ - GCObject *gray; /* list of gray objects */ - GCObject *grayagain; /* list of objects to be traversed atomically */ - GCObject *weak; /* list of tables with weak values */ - GCObject *ephemeron; /* list of ephemeron tables (weak keys) */ - GCObject *allweak; /* list of all-weak tables */ - GCObject *tobefnz; /* list of userdata to be GC */ - UpVal uvhead; /* head of double-linked list of all open upvalues */ - Mbuffer buff; /* temporary buffer for string concatenation */ - int gcpause; /* size of pause between successive GCs */ - int gcmajorinc; /* pause between major collections (only in gen. mode) */ - int gcstepmul; /* GC `granularity' */ - lua_CFunction panic; /* to be called in unprotected errors */ - struct lua_State *mainthread; - const lua_Number *version; /* pointer to version number */ - TString *memerrmsg; /* memory-error message */ - TString *tmname[TM_N]; /* array with tag-method names */ - struct Table *mt[LUA_NUMTAGS]; /* metatables for basic types */ -} global_State; - - -/* -** `per thread' state -*/ -struct lua_State { - CommonHeader; - lu_byte status; - StkId top; /* first free slot in the stack */ - global_State *l_G; - CallInfo *ci; /* call info for current function */ - const Instruction *oldpc; /* last pc traced */ - StkId stack_last; /* last free slot in the stack */ - StkId stack; /* stack base */ - int stacksize; - unsigned short nny; /* number of non-yieldable calls in stack */ - unsigned short nCcalls; /* number of nested C calls */ - lu_byte hookmask; - lu_byte allowhook; - int basehookcount; - int hookcount; - lua_Hook hook; - GCObject *openupval; /* list of open upvalues in this stack */ - GCObject *gclist; - struct lua_longjmp *errorJmp; /* current error recover point */ - ptrdiff_t errfunc; /* current error handling function (stack index) */ - CallInfo base_ci; /* CallInfo for first level (C calling Lua) */ -}; - - -#define G(L) (L->l_G) - - -/* -** Union of all collectable objects -*/ -union GCObject { - GCheader gch; /* common header */ - union TString ts; - union Udata u; - union Closure cl; - struct Table h; - struct Proto p; - struct UpVal uv; - struct lua_State th; /* thread */ -}; - - -#define gch(o) (&(o)->gch) - -/* macros to convert a GCObject into a specific value */ -#define rawgco2ts(o) \ - check_exp(novariant((o)->gch.tt) == LUA_TSTRING, &((o)->ts)) -#define gco2ts(o) (&rawgco2ts(o)->tsv) -#define rawgco2u(o) check_exp((o)->gch.tt == LUA_TUSERDATA, &((o)->u)) -#define gco2u(o) (&rawgco2u(o)->uv) -#define gco2lcl(o) check_exp((o)->gch.tt == LUA_TLCL, &((o)->cl.l)) -#define gco2ccl(o) check_exp((o)->gch.tt == LUA_TCCL, &((o)->cl.c)) -#define gco2cl(o) \ - check_exp(novariant((o)->gch.tt) == LUA_TFUNCTION, &((o)->cl)) -#define gco2t(o) check_exp((o)->gch.tt == LUA_TTABLE, &((o)->h)) -#define gco2p(o) check_exp((o)->gch.tt == LUA_TPROTO, &((o)->p)) -#define gco2uv(o) check_exp((o)->gch.tt == LUA_TUPVAL, &((o)->uv)) -#define gco2th(o) check_exp((o)->gch.tt == LUA_TTHREAD, &((o)->th)) - -/* macro to convert any Lua object into a GCObject */ -#define obj2gco(v) (cast(GCObject *, (v))) - - -/* actual number of total bytes allocated */ -#define gettotalbytes(g) ((g)->totalbytes + (g)->GCdebt) - -LUAI_FUNC void luaE_setdebt (global_State *g, l_mem debt); -LUAI_FUNC void luaE_freethread (lua_State *L, lua_State *L1); -LUAI_FUNC CallInfo *luaE_extendCI (lua_State *L); -LUAI_FUNC void luaE_freeCI (lua_State *L); - - -#endif - diff --git a/source/libs/lua52/lua52-src/src/lstring.c b/source/libs/lua52/lua52-src/src/lstring.c deleted file mode 100644 index af96c89c1832071dee4b299979e83a4fddaca2fe..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lstring.c +++ /dev/null @@ -1,185 +0,0 @@ -/* -** $Id: lstring.c,v 2.26.1.1 2013/04/12 18:48:47 roberto Exp $ -** String table (keeps all strings handled by Lua) -** See Copyright Notice in lua.h -*/ - - -#include <string.h> - -#define lstring_c -#define LUA_CORE - -#include "lua.h" - -#include "lmem.h" -#include "lobject.h" -#include "lstate.h" -#include "lstring.h" - - -/* -** Lua will use at most ~(2^LUAI_HASHLIMIT) bytes from a string to -** compute its hash -*/ -#if !defined(LUAI_HASHLIMIT) -#define LUAI_HASHLIMIT 5 -#endif - - -/* -** equality for long strings -*/ -int luaS_eqlngstr (TString *a, TString *b) { - size_t len = a->tsv.len; - lua_assert(a->tsv.tt == LUA_TLNGSTR && b->tsv.tt == LUA_TLNGSTR); - return (a == b) || /* same instance or... */ - ((len == b->tsv.len) && /* equal length and ... */ - (memcmp(getstr(a), getstr(b), len) == 0)); /* equal contents */ -} - - -/* -** equality for strings -*/ -int luaS_eqstr (TString *a, TString *b) { - return (a->tsv.tt == b->tsv.tt) && - (a->tsv.tt == LUA_TSHRSTR ? eqshrstr(a, b) : luaS_eqlngstr(a, b)); -} - - -unsigned int luaS_hash (const char *str, size_t l, unsigned int seed) { - unsigned int h = seed ^ cast(unsigned int, l); - size_t l1; - size_t step = (l >> LUAI_HASHLIMIT) + 1; - for (l1 = l; l1 >= step; l1 -= step) - h = h ^ ((h<<5) + (h>>2) + cast_byte(str[l1 - 1])); - return h; -} - - -/* -** resizes the string table -*/ -void luaS_resize (lua_State *L, int newsize) { - int i; - stringtable *tb = &G(L)->strt; - /* cannot resize while GC is traversing strings */ - luaC_runtilstate(L, ~bitmask(GCSsweepstring)); - if (newsize > tb->size) { - luaM_reallocvector(L, tb->hash, tb->size, newsize, GCObject *); - for (i = tb->size; i < newsize; i++) tb->hash[i] = NULL; - } - /* rehash */ - for (i=0; i<tb->size; i++) { - GCObject *p = tb->hash[i]; - tb->hash[i] = NULL; - while (p) { /* for each node in the list */ - GCObject *next = gch(p)->next; /* save next */ - unsigned int h = lmod(gco2ts(p)->hash, newsize); /* new position */ - gch(p)->next = tb->hash[h]; /* chain it */ - tb->hash[h] = p; - resetoldbit(p); /* see MOVE OLD rule */ - p = next; - } - } - if (newsize < tb->size) { - /* shrinking slice must be empty */ - lua_assert(tb->hash[newsize] == NULL && tb->hash[tb->size - 1] == NULL); - luaM_reallocvector(L, tb->hash, tb->size, newsize, GCObject *); - } - tb->size = newsize; -} - - -/* -** creates a new string object -*/ -static TString *createstrobj (lua_State *L, const char *str, size_t l, - int tag, unsigned int h, GCObject **list) { - TString *ts; - size_t totalsize; /* total size of TString object */ - totalsize = sizeof(TString) + ((l + 1) * sizeof(char)); - ts = &luaC_newobj(L, tag, totalsize, list, 0)->ts; - ts->tsv.len = l; - ts->tsv.hash = h; - ts->tsv.extra = 0; - memcpy(ts+1, str, l*sizeof(char)); - ((char *)(ts+1))[l] = '\0'; /* ending 0 */ - return ts; -} - - -/* -** creates a new short string, inserting it into string table -*/ -static TString *newshrstr (lua_State *L, const char *str, size_t l, - unsigned int h) { - GCObject **list; /* (pointer to) list where it will be inserted */ - stringtable *tb = &G(L)->strt; - TString *s; - if (tb->nuse >= cast(lu_int32, tb->size) && tb->size <= MAX_INT/2) - luaS_resize(L, tb->size*2); /* too crowded */ - list = &tb->hash[lmod(h, tb->size)]; - s = createstrobj(L, str, l, LUA_TSHRSTR, h, list); - tb->nuse++; - return s; -} - - -/* -** checks whether short string exists and reuses it or creates a new one -*/ -static TString *internshrstr (lua_State *L, const char *str, size_t l) { - GCObject *o; - global_State *g = G(L); - unsigned int h = luaS_hash(str, l, g->seed); - for (o = g->strt.hash[lmod(h, g->strt.size)]; - o != NULL; - o = gch(o)->next) { - TString *ts = rawgco2ts(o); - if (h == ts->tsv.hash && - l == ts->tsv.len && - (memcmp(str, getstr(ts), l * sizeof(char)) == 0)) { - if (isdead(G(L), o)) /* string is dead (but was not collected yet)? */ - changewhite(o); /* resurrect it */ - return ts; - } - } - return newshrstr(L, str, l, h); /* not found; create a new string */ -} - - -/* -** new string (with explicit length) -*/ -TString *luaS_newlstr (lua_State *L, const char *str, size_t l) { - if (l <= LUAI_MAXSHORTLEN) /* short string? */ - return internshrstr(L, str, l); - else { - if (l + 1 > (MAX_SIZET - sizeof(TString))/sizeof(char)) - luaM_toobig(L); - return createstrobj(L, str, l, LUA_TLNGSTR, G(L)->seed, NULL); - } -} - - -/* -** new zero-terminated string -*/ -TString *luaS_new (lua_State *L, const char *str) { - return luaS_newlstr(L, str, strlen(str)); -} - - -Udata *luaS_newudata (lua_State *L, size_t s, Table *e) { - Udata *u; - if (s > MAX_SIZET - sizeof(Udata)) - luaM_toobig(L); - u = &luaC_newobj(L, LUA_TUSERDATA, sizeof(Udata) + s, NULL, 0)->u; - u->uv.len = s; - u->uv.metatable = NULL; - u->uv.env = e; - return u; -} - diff --git a/source/libs/lua52/lua52-src/src/lstring.h b/source/libs/lua52/lua52-src/src/lstring.h deleted file mode 100644 index 260e7f169bd05f37e675ba60ea434a18ba2dbcce..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lstring.h +++ /dev/null @@ -1,46 +0,0 @@ -/* -** $Id: lstring.h,v 1.49.1.1 2013/04/12 18:48:47 roberto Exp $ -** String table (keep all strings handled by Lua) -** See Copyright Notice in lua.h -*/ - -#ifndef lstring_h -#define lstring_h - -#include "lgc.h" -#include "lobject.h" -#include "lstate.h" - - -#define sizestring(s) (sizeof(union TString)+((s)->len+1)*sizeof(char)) - -#define sizeudata(u) (sizeof(union Udata)+(u)->len) - -#define luaS_newliteral(L, s) (luaS_newlstr(L, "" s, \ - (sizeof(s)/sizeof(char))-1)) - -#define luaS_fix(s) l_setbit((s)->tsv.marked, FIXEDBIT) - - -/* -** test whether a string is a reserved word -*/ -#define isreserved(s) ((s)->tsv.tt == LUA_TSHRSTR && (s)->tsv.extra > 0) - - -/* -** equality for short strings, which are always internalized -*/ -#define eqshrstr(a,b) check_exp((a)->tsv.tt == LUA_TSHRSTR, (a) == (b)) - - -LUAI_FUNC unsigned int luaS_hash (const char *str, size_t l, unsigned int seed); -LUAI_FUNC int luaS_eqlngstr (TString *a, TString *b); -LUAI_FUNC int luaS_eqstr (TString *a, TString *b); -LUAI_FUNC void luaS_resize (lua_State *L, int newsize); -LUAI_FUNC Udata *luaS_newudata (lua_State *L, size_t s, Table *e); -LUAI_FUNC TString *luaS_newlstr (lua_State *L, const char *str, size_t l); -LUAI_FUNC TString *luaS_new (lua_State *L, const char *str); - - -#endif diff --git a/source/libs/lua52/lua52-src/src/lstrlib.c b/source/libs/lua52/lua52-src/src/lstrlib.c deleted file mode 100644 index 9261fd220db00597a324204c119ce987b6d396fc..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lstrlib.c +++ /dev/null @@ -1,1019 +0,0 @@ -/* -** $Id: lstrlib.c,v 1.178.1.1 2013/04/12 18:48:47 roberto Exp $ -** Standard library for string operations and pattern-matching -** See Copyright Notice in lua.h -*/ - - -#include <ctype.h> -#include <stddef.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#define lstrlib_c -#define LUA_LIB - -#include "lua.h" - -#include "lauxlib.h" -#include "lualib.h" - - -/* -** maximum number of captures that a pattern can do during -** pattern-matching. This limit is arbitrary. -*/ -#if !defined(LUA_MAXCAPTURES) -#define LUA_MAXCAPTURES 32 -#endif - - -/* macro to `unsign' a character */ -#define uchar(c) ((unsigned char)(c)) - - - -static int str_len (lua_State *L) { - size_t l; - luaL_checklstring(L, 1, &l); - lua_pushinteger(L, (lua_Integer)l); - return 1; -} - - -/* translate a relative string position: negative means back from end */ -static size_t posrelat (ptrdiff_t pos, size_t len) { - if (pos >= 0) return (size_t)pos; - else if (0u - (size_t)pos > len) return 0; - else return len - ((size_t)-pos) + 1; -} - - -static int str_sub (lua_State *L) { - size_t l; - const char *s = luaL_checklstring(L, 1, &l); - size_t start = posrelat(luaL_checkinteger(L, 2), l); - size_t end = posrelat(luaL_optinteger(L, 3, -1), l); - if (start < 1) start = 1; - if (end > l) end = l; - if (start <= end) - lua_pushlstring(L, s + start - 1, end - start + 1); - else lua_pushliteral(L, ""); - return 1; -} - - -static int str_reverse (lua_State *L) { - size_t l, i; - luaL_Buffer b; - const char *s = luaL_checklstring(L, 1, &l); - char *p = luaL_buffinitsize(L, &b, l); - for (i = 0; i < l; i++) - p[i] = s[l - i - 1]; - luaL_pushresultsize(&b, l); - return 1; -} - - -static int str_lower (lua_State *L) { - size_t l; - size_t i; - luaL_Buffer b; - const char *s = luaL_checklstring(L, 1, &l); - char *p = luaL_buffinitsize(L, &b, l); - for (i=0; i<l; i++) - p[i] = tolower(uchar(s[i])); - luaL_pushresultsize(&b, l); - return 1; -} - - -static int str_upper (lua_State *L) { - size_t l; - size_t i; - luaL_Buffer b; - const char *s = luaL_checklstring(L, 1, &l); - char *p = luaL_buffinitsize(L, &b, l); - for (i=0; i<l; i++) - p[i] = toupper(uchar(s[i])); - luaL_pushresultsize(&b, l); - return 1; -} - - -/* reasonable limit to avoid arithmetic overflow */ -#define MAXSIZE ((~(size_t)0) >> 1) - -static int str_rep (lua_State *L) { - size_t l, lsep; - const char *s = luaL_checklstring(L, 1, &l); - int n = luaL_checkint(L, 2); - const char *sep = luaL_optlstring(L, 3, "", &lsep); - if (n <= 0) lua_pushliteral(L, ""); - else if (l + lsep < l || l + lsep >= MAXSIZE / n) /* may overflow? */ - return luaL_error(L, "resulting string too large"); - else { - size_t totallen = n * l + (n - 1) * lsep; - luaL_Buffer b; - char *p = luaL_buffinitsize(L, &b, totallen); - while (n-- > 1) { /* first n-1 copies (followed by separator) */ - memcpy(p, s, l * sizeof(char)); p += l; - if (lsep > 0) { /* avoid empty 'memcpy' (may be expensive) */ - memcpy(p, sep, lsep * sizeof(char)); p += lsep; - } - } - memcpy(p, s, l * sizeof(char)); /* last copy (not followed by separator) */ - luaL_pushresultsize(&b, totallen); - } - return 1; -} - - -static int str_byte (lua_State *L) { - size_t l; - const char *s = luaL_checklstring(L, 1, &l); - size_t posi = posrelat(luaL_optinteger(L, 2, 1), l); - size_t pose = posrelat(luaL_optinteger(L, 3, posi), l); - int n, i; - if (posi < 1) posi = 1; - if (pose > l) pose = l; - if (posi > pose) return 0; /* empty interval; return no values */ - n = (int)(pose - posi + 1); - if (posi + n <= pose) /* (size_t -> int) overflow? */ - return luaL_error(L, "string slice too long"); - luaL_checkstack(L, n, "string slice too long"); - for (i=0; i<n; i++) - lua_pushinteger(L, uchar(s[posi+i-1])); - return n; -} - - -static int str_char (lua_State *L) { - int n = lua_gettop(L); /* number of arguments */ - int i; - luaL_Buffer b; - char *p = luaL_buffinitsize(L, &b, n); - for (i=1; i<=n; i++) { - int c = luaL_checkint(L, i); - luaL_argcheck(L, uchar(c) == c, i, "value out of range"); - p[i - 1] = uchar(c); - } - luaL_pushresultsize(&b, n); - return 1; -} - - -static int writer (lua_State *L, const void* b, size_t size, void* B) { - (void)L; - luaL_addlstring((luaL_Buffer*) B, (const char *)b, size); - return 0; -} - - -static int str_dump (lua_State *L) { - luaL_Buffer b; - luaL_checktype(L, 1, LUA_TFUNCTION); - lua_settop(L, 1); - luaL_buffinit(L,&b); - if (lua_dump(L, writer, &b) != 0) - return luaL_error(L, "unable to dump given function"); - luaL_pushresult(&b); - return 1; -} - - - -/* -** {====================================================== -** PATTERN MATCHING -** ======================================================= -*/ - - -#define CAP_UNFINISHED (-1) -#define CAP_POSITION (-2) - - -typedef struct MatchState { - int matchdepth; /* control for recursive depth (to avoid C stack overflow) */ - const char *src_init; /* init of source string */ - const char *src_end; /* end ('\0') of source string */ - const char *p_end; /* end ('\0') of pattern */ - lua_State *L; - int level; /* total number of captures (finished or unfinished) */ - struct { - const char *init; - ptrdiff_t len; - } capture[LUA_MAXCAPTURES]; -} MatchState; - - -/* recursive function */ -static const char *match (MatchState *ms, const char *s, const char *p); - - -/* maximum recursion depth for 'match' */ -#if !defined(MAXCCALLS) -#define MAXCCALLS 200 -#endif - - -#define L_ESC '%' -#define SPECIALS "^$*+?.([%-" - - -static int check_capture (MatchState *ms, int l) { - l -= '1'; - if (l < 0 || l >= ms->level || ms->capture[l].len == CAP_UNFINISHED) - return luaL_error(ms->L, "invalid capture index %%%d", l + 1); - return l; -} - - -static int capture_to_close (MatchState *ms) { - int level = ms->level; - for (level--; level>=0; level--) - if (ms->capture[level].len == CAP_UNFINISHED) return level; - return luaL_error(ms->L, "invalid pattern capture"); -} - - -static const char *classend (MatchState *ms, const char *p) { - switch (*p++) { - case L_ESC: { - if (p == ms->p_end) - luaL_error(ms->L, "malformed pattern (ends with " LUA_QL("%%") ")"); - return p+1; - } - case '[': { - if (*p == '^') p++; - do { /* look for a `]' */ - if (p == ms->p_end) - luaL_error(ms->L, "malformed pattern (missing " LUA_QL("]") ")"); - if (*(p++) == L_ESC && p < ms->p_end) - p++; /* skip escapes (e.g. `%]') */ - } while (*p != ']'); - return p+1; - } - default: { - return p; - } - } -} - - -static int match_class (int c, int cl) { - int res; - switch (tolower(cl)) { - case 'a' : res = isalpha(c); break; - case 'c' : res = iscntrl(c); break; - case 'd' : res = isdigit(c); break; - case 'g' : res = isgraph(c); break; - case 'l' : res = islower(c); break; - case 'p' : res = ispunct(c); break; - case 's' : res = isspace(c); break; - case 'u' : res = isupper(c); break; - case 'w' : res = isalnum(c); break; - case 'x' : res = isxdigit(c); break; - case 'z' : res = (c == 0); break; /* deprecated option */ - default: return (cl == c); - } - return (islower(cl) ? res : !res); -} - - -static int matchbracketclass (int c, const char *p, const char *ec) { - int sig = 1; - if (*(p+1) == '^') { - sig = 0; - p++; /* skip the `^' */ - } - while (++p < ec) { - if (*p == L_ESC) { - p++; - if (match_class(c, uchar(*p))) - return sig; - } - else if ((*(p+1) == '-') && (p+2 < ec)) { - p+=2; - if (uchar(*(p-2)) <= c && c <= uchar(*p)) - return sig; - } - else if (uchar(*p) == c) return sig; - } - return !sig; -} - - -static int singlematch (MatchState *ms, const char *s, const char *p, - const char *ep) { - if (s >= ms->src_end) - return 0; - else { - int c = uchar(*s); - switch (*p) { - case '.': return 1; /* matches any char */ - case L_ESC: return match_class(c, uchar(*(p+1))); - case '[': return matchbracketclass(c, p, ep-1); - default: return (uchar(*p) == c); - } - } -} - - -static const char *matchbalance (MatchState *ms, const char *s, - const char *p) { - if (p >= ms->p_end - 1) - luaL_error(ms->L, "malformed pattern " - "(missing arguments to " LUA_QL("%%b") ")"); - if (*s != *p) return NULL; - else { - int b = *p; - int e = *(p+1); - int cont = 1; - while (++s < ms->src_end) { - if (*s == e) { - if (--cont == 0) return s+1; - } - else if (*s == b) cont++; - } - } - return NULL; /* string ends out of balance */ -} - - -static const char *max_expand (MatchState *ms, const char *s, - const char *p, const char *ep) { - ptrdiff_t i = 0; /* counts maximum expand for item */ - while (singlematch(ms, s + i, p, ep)) - i++; - /* keeps trying to match with the maximum repetitions */ - while (i>=0) { - const char *res = match(ms, (s+i), ep+1); - if (res) return res; - i--; /* else didn't match; reduce 1 repetition to try again */ - } - return NULL; -} - - -static const char *min_expand (MatchState *ms, const char *s, - const char *p, const char *ep) { - for (;;) { - const char *res = match(ms, s, ep+1); - if (res != NULL) - return res; - else if (singlematch(ms, s, p, ep)) - s++; /* try with one more repetition */ - else return NULL; - } -} - - -static const char *start_capture (MatchState *ms, const char *s, - const char *p, int what) { - const char *res; - int level = ms->level; - if (level >= LUA_MAXCAPTURES) luaL_error(ms->L, "too many captures"); - ms->capture[level].init = s; - ms->capture[level].len = what; - ms->level = level+1; - if ((res=match(ms, s, p)) == NULL) /* match failed? */ - ms->level--; /* undo capture */ - return res; -} - - -static const char *end_capture (MatchState *ms, const char *s, - const char *p) { - int l = capture_to_close(ms); - const char *res; - ms->capture[l].len = s - ms->capture[l].init; /* close capture */ - if ((res = match(ms, s, p)) == NULL) /* match failed? */ - ms->capture[l].len = CAP_UNFINISHED; /* undo capture */ - return res; -} - - -static const char *match_capture (MatchState *ms, const char *s, int l) { - size_t len; - l = check_capture(ms, l); - len = ms->capture[l].len; - if ((size_t)(ms->src_end-s) >= len && - memcmp(ms->capture[l].init, s, len) == 0) - return s+len; - else return NULL; -} - - -static const char *match (MatchState *ms, const char *s, const char *p) { - if (ms->matchdepth-- == 0) - luaL_error(ms->L, "pattern too complex"); - init: /* using goto's to optimize tail recursion */ - if (p != ms->p_end) { /* end of pattern? */ - switch (*p) { - case '(': { /* start capture */ - if (*(p + 1) == ')') /* position capture? */ - s = start_capture(ms, s, p + 2, CAP_POSITION); - else - s = start_capture(ms, s, p + 1, CAP_UNFINISHED); - break; - } - case ')': { /* end capture */ - s = end_capture(ms, s, p + 1); - break; - } - case '$': { - if ((p + 1) != ms->p_end) /* is the `$' the last char in pattern? */ - goto dflt; /* no; go to default */ - s = (s == ms->src_end) ? s : NULL; /* check end of string */ - break; - } - case L_ESC: { /* escaped sequences not in the format class[*+?-]? */ - switch (*(p + 1)) { - case 'b': { /* balanced string? */ - s = matchbalance(ms, s, p + 2); - if (s != NULL) { - p += 4; goto init; /* return match(ms, s, p + 4); */ - } /* else fail (s == NULL) */ - break; - } - case 'f': { /* frontier? */ - const char *ep; char previous; - p += 2; - if (*p != '[') - luaL_error(ms->L, "missing " LUA_QL("[") " after " - LUA_QL("%%f") " in pattern"); - ep = classend(ms, p); /* points to what is next */ - previous = (s == ms->src_init) ? '\0' : *(s - 1); - if (!matchbracketclass(uchar(previous), p, ep - 1) && - matchbracketclass(uchar(*s), p, ep - 1)) { - p = ep; goto init; /* return match(ms, s, ep); */ - } - s = NULL; /* match failed */ - break; - } - case '0': case '1': case '2': case '3': - case '4': case '5': case '6': case '7': - case '8': case '9': { /* capture results (%0-%9)? */ - s = match_capture(ms, s, uchar(*(p + 1))); - if (s != NULL) { - p += 2; goto init; /* return match(ms, s, p + 2) */ - } - break; - } - default: goto dflt; - } - break; - } - default: dflt: { /* pattern class plus optional suffix */ - const char *ep = classend(ms, p); /* points to optional suffix */ - /* does not match at least once? */ - if (!singlematch(ms, s, p, ep)) { - if (*ep == '*' || *ep == '?' || *ep == '-') { /* accept empty? */ - p = ep + 1; goto init; /* return match(ms, s, ep + 1); */ - } - else /* '+' or no suffix */ - s = NULL; /* fail */ - } - else { /* matched once */ - switch (*ep) { /* handle optional suffix */ - case '?': { /* optional */ - const char *res; - if ((res = match(ms, s + 1, ep + 1)) != NULL) - s = res; - else { - p = ep + 1; goto init; /* else return match(ms, s, ep + 1); */ - } - break; - } - case '+': /* 1 or more repetitions */ - s++; /* 1 match already done */ - /* go through */ - case '*': /* 0 or more repetitions */ - s = max_expand(ms, s, p, ep); - break; - case '-': /* 0 or more repetitions (minimum) */ - s = min_expand(ms, s, p, ep); - break; - default: /* no suffix */ - s++; p = ep; goto init; /* return match(ms, s + 1, ep); */ - } - } - break; - } - } - } - ms->matchdepth++; - return s; -} - - - -static const char *lmemfind (const char *s1, size_t l1, - const char *s2, size_t l2) { - if (l2 == 0) return s1; /* empty strings are everywhere */ - else if (l2 > l1) return NULL; /* avoids a negative `l1' */ - else { - const char *init; /* to search for a `*s2' inside `s1' */ - l2--; /* 1st char will be checked by `memchr' */ - l1 = l1-l2; /* `s2' cannot be found after that */ - while (l1 > 0 && (init = (const char *)memchr(s1, *s2, l1)) != NULL) { - init++; /* 1st char is already checked */ - if (memcmp(init, s2+1, l2) == 0) - return init-1; - else { /* correct `l1' and `s1' to try again */ - l1 -= init-s1; - s1 = init; - } - } - return NULL; /* not found */ - } -} - - -static void push_onecapture (MatchState *ms, int i, const char *s, - const char *e) { - if (i >= ms->level) { - if (i == 0) /* ms->level == 0, too */ - lua_pushlstring(ms->L, s, e - s); /* add whole match */ - else - luaL_error(ms->L, "invalid capture index"); - } - else { - ptrdiff_t l = ms->capture[i].len; - if (l == CAP_UNFINISHED) luaL_error(ms->L, "unfinished capture"); - if (l == CAP_POSITION) - lua_pushinteger(ms->L, ms->capture[i].init - ms->src_init + 1); - else - lua_pushlstring(ms->L, ms->capture[i].init, l); - } -} - - -static int push_captures (MatchState *ms, const char *s, const char *e) { - int i; - int nlevels = (ms->level == 0 && s) ? 1 : ms->level; - luaL_checkstack(ms->L, nlevels, "too many captures"); - for (i = 0; i < nlevels; i++) - push_onecapture(ms, i, s, e); - return nlevels; /* number of strings pushed */ -} - - -/* check whether pattern has no special characters */ -static int nospecials (const char *p, size_t l) { - size_t upto = 0; - do { - if (strpbrk(p + upto, SPECIALS)) - return 0; /* pattern has a special character */ - upto += strlen(p + upto) + 1; /* may have more after \0 */ - } while (upto <= l); - return 1; /* no special chars found */ -} - - -static int str_find_aux (lua_State *L, int find) { - size_t ls, lp; - const char *s = luaL_checklstring(L, 1, &ls); - const char *p = luaL_checklstring(L, 2, &lp); - size_t init = posrelat(luaL_optinteger(L, 3, 1), ls); - if (init < 1) init = 1; - else if (init > ls + 1) { /* start after string's end? */ - lua_pushnil(L); /* cannot find anything */ - return 1; - } - /* explicit request or no special characters? */ - if (find && (lua_toboolean(L, 4) || nospecials(p, lp))) { - /* do a plain search */ - const char *s2 = lmemfind(s + init - 1, ls - init + 1, p, lp); - if (s2) { - lua_pushinteger(L, s2 - s + 1); - lua_pushinteger(L, s2 - s + lp); - return 2; - } - } - else { - MatchState ms; - const char *s1 = s + init - 1; - int anchor = (*p == '^'); - if (anchor) { - p++; lp--; /* skip anchor character */ - } - ms.L = L; - ms.matchdepth = MAXCCALLS; - ms.src_init = s; - ms.src_end = s + ls; - ms.p_end = p + lp; - do { - const char *res; - ms.level = 0; - lua_assert(ms.matchdepth == MAXCCALLS); - if ((res=match(&ms, s1, p)) != NULL) { - if (find) { - lua_pushinteger(L, s1 - s + 1); /* start */ - lua_pushinteger(L, res - s); /* end */ - return push_captures(&ms, NULL, 0) + 2; - } - else - return push_captures(&ms, s1, res); - } - } while (s1++ < ms.src_end && !anchor); - } - lua_pushnil(L); /* not found */ - return 1; -} - - -static int str_find (lua_State *L) { - return str_find_aux(L, 1); -} - - -static int str_match (lua_State *L) { - return str_find_aux(L, 0); -} - - -static int gmatch_aux (lua_State *L) { - MatchState ms; - size_t ls, lp; - const char *s = lua_tolstring(L, lua_upvalueindex(1), &ls); - const char *p = lua_tolstring(L, lua_upvalueindex(2), &lp); - const char *src; - ms.L = L; - ms.matchdepth = MAXCCALLS; - ms.src_init = s; - ms.src_end = s+ls; - ms.p_end = p + lp; - for (src = s + (size_t)lua_tointeger(L, lua_upvalueindex(3)); - src <= ms.src_end; - src++) { - const char *e; - ms.level = 0; - lua_assert(ms.matchdepth == MAXCCALLS); - if ((e = match(&ms, src, p)) != NULL) { - lua_Integer newstart = e-s; - if (e == src) newstart++; /* empty match? go at least one position */ - lua_pushinteger(L, newstart); - lua_replace(L, lua_upvalueindex(3)); - return push_captures(&ms, src, e); - } - } - return 0; /* not found */ -} - - -static int gmatch (lua_State *L) { - luaL_checkstring(L, 1); - luaL_checkstring(L, 2); - lua_settop(L, 2); - lua_pushinteger(L, 0); - lua_pushcclosure(L, gmatch_aux, 3); - return 1; -} - - -static void add_s (MatchState *ms, luaL_Buffer *b, const char *s, - const char *e) { - size_t l, i; - const char *news = lua_tolstring(ms->L, 3, &l); - for (i = 0; i < l; i++) { - if (news[i] != L_ESC) - luaL_addchar(b, news[i]); - else { - i++; /* skip ESC */ - if (!isdigit(uchar(news[i]))) { - if (news[i] != L_ESC) - luaL_error(ms->L, "invalid use of " LUA_QL("%c") - " in replacement string", L_ESC); - luaL_addchar(b, news[i]); - } - else if (news[i] == '0') - luaL_addlstring(b, s, e - s); - else { - push_onecapture(ms, news[i] - '1', s, e); - luaL_addvalue(b); /* add capture to accumulated result */ - } - } - } -} - - -static void add_value (MatchState *ms, luaL_Buffer *b, const char *s, - const char *e, int tr) { - lua_State *L = ms->L; - switch (tr) { - case LUA_TFUNCTION: { - int n; - lua_pushvalue(L, 3); - n = push_captures(ms, s, e); - lua_call(L, n, 1); - break; - } - case LUA_TTABLE: { - push_onecapture(ms, 0, s, e); - lua_gettable(L, 3); - break; - } - default: { /* LUA_TNUMBER or LUA_TSTRING */ - add_s(ms, b, s, e); - return; - } - } - if (!lua_toboolean(L, -1)) { /* nil or false? */ - lua_pop(L, 1); - lua_pushlstring(L, s, e - s); /* keep original text */ - } - else if (!lua_isstring(L, -1)) - luaL_error(L, "invalid replacement value (a %s)", luaL_typename(L, -1)); - luaL_addvalue(b); /* add result to accumulator */ -} - - -static int str_gsub (lua_State *L) { - size_t srcl, lp; - const char *src = luaL_checklstring(L, 1, &srcl); - const char *p = luaL_checklstring(L, 2, &lp); - int tr = lua_type(L, 3); - size_t max_s = luaL_optinteger(L, 4, srcl+1); - int anchor = (*p == '^'); - size_t n = 0; - MatchState ms; - luaL_Buffer b; - luaL_argcheck(L, tr == LUA_TNUMBER || tr == LUA_TSTRING || - tr == LUA_TFUNCTION || tr == LUA_TTABLE, 3, - "string/function/table expected"); - luaL_buffinit(L, &b); - if (anchor) { - p++; lp--; /* skip anchor character */ - } - ms.L = L; - ms.matchdepth = MAXCCALLS; - ms.src_init = src; - ms.src_end = src+srcl; - ms.p_end = p + lp; - while (n < max_s) { - const char *e; - ms.level = 0; - lua_assert(ms.matchdepth == MAXCCALLS); - e = match(&ms, src, p); - if (e) { - n++; - add_value(&ms, &b, src, e, tr); - } - if (e && e>src) /* non empty match? */ - src = e; /* skip it */ - else if (src < ms.src_end) - luaL_addchar(&b, *src++); - else break; - if (anchor) break; - } - luaL_addlstring(&b, src, ms.src_end-src); - luaL_pushresult(&b); - lua_pushinteger(L, n); /* number of substitutions */ - return 2; -} - -/* }====================================================== */ - - - -/* -** {====================================================== -** STRING FORMAT -** ======================================================= -*/ - -/* -** LUA_INTFRMLEN is the length modifier for integer conversions in -** 'string.format'; LUA_INTFRM_T is the integer type corresponding to -** the previous length -*/ -#if !defined(LUA_INTFRMLEN) /* { */ -#if defined(LUA_USE_LONGLONG) - -#define LUA_INTFRMLEN "ll" -#define LUA_INTFRM_T long long - -#else - -#define LUA_INTFRMLEN "l" -#define LUA_INTFRM_T long - -#endif -#endif /* } */ - - -/* -** LUA_FLTFRMLEN is the length modifier for float conversions in -** 'string.format'; LUA_FLTFRM_T is the float type corresponding to -** the previous length -*/ -#if !defined(LUA_FLTFRMLEN) - -#define LUA_FLTFRMLEN "" -#define LUA_FLTFRM_T double - -#endif - - -/* maximum size of each formatted item (> len(format('%99.99f', -1e308))) */ -#define MAX_ITEM 512 -/* valid flags in a format specification */ -#define FLAGS "-+ #0" -/* -** maximum size of each format specification (such as '%-099.99d') -** (+10 accounts for %99.99x plus margin of error) -*/ -#define MAX_FORMAT (sizeof(FLAGS) + sizeof(LUA_INTFRMLEN) + 10) - - -static void addquoted (lua_State *L, luaL_Buffer *b, int arg) { - size_t l; - const char *s = luaL_checklstring(L, arg, &l); - luaL_addchar(b, '"'); - while (l--) { - if (*s == '"' || *s == '\\' || *s == '\n') { - luaL_addchar(b, '\\'); - luaL_addchar(b, *s); - } - else if (*s == '\0' || iscntrl(uchar(*s))) { - char buff[10]; - if (!isdigit(uchar(*(s+1)))) - sprintf(buff, "\\%d", (int)uchar(*s)); - else - sprintf(buff, "\\%03d", (int)uchar(*s)); - luaL_addstring(b, buff); - } - else - luaL_addchar(b, *s); - s++; - } - luaL_addchar(b, '"'); -} - -static const char *scanformat (lua_State *L, const char *strfrmt, char *form) { - const char *p = strfrmt; - while (*p != '\0' && strchr(FLAGS, *p) != NULL) p++; /* skip flags */ - if ((size_t)(p - strfrmt) >= sizeof(FLAGS)/sizeof(char)) - luaL_error(L, "invalid format (repeated flags)"); - if (isdigit(uchar(*p))) p++; /* skip width */ - if (isdigit(uchar(*p))) p++; /* (2 digits at most) */ - if (*p == '.') { - p++; - if (isdigit(uchar(*p))) p++; /* skip precision */ - if (isdigit(uchar(*p))) p++; /* (2 digits at most) */ - } - if (isdigit(uchar(*p))) - luaL_error(L, "invalid format (width or precision too long)"); - *(form++) = '%'; - memcpy(form, strfrmt, (p - strfrmt + 1) * sizeof(char)); - form += p - strfrmt + 1; - *form = '\0'; - return p; -} - - -/* -** add length modifier into formats -*/ -static void addlenmod (char *form, const char *lenmod) { - size_t l = strlen(form); - size_t lm = strlen(lenmod); - char spec = form[l - 1]; - strcpy(form + l - 1, lenmod); - form[l + lm - 1] = spec; - form[l + lm] = '\0'; -} - - -static int str_format (lua_State *L) { - int top = lua_gettop(L); - int arg = 1; - size_t sfl; - const char *strfrmt = luaL_checklstring(L, arg, &sfl); - const char *strfrmt_end = strfrmt+sfl; - luaL_Buffer b; - luaL_buffinit(L, &b); - while (strfrmt < strfrmt_end) { - if (*strfrmt != L_ESC) - luaL_addchar(&b, *strfrmt++); - else if (*++strfrmt == L_ESC) - luaL_addchar(&b, *strfrmt++); /* %% */ - else { /* format item */ - char form[MAX_FORMAT]; /* to store the format (`%...') */ - char *buff = luaL_prepbuffsize(&b, MAX_ITEM); /* to put formatted item */ - int nb = 0; /* number of bytes in added item */ - if (++arg > top) - luaL_argerror(L, arg, "no value"); - strfrmt = scanformat(L, strfrmt, form); - switch (*strfrmt++) { - case 'c': { - nb = sprintf(buff, form, luaL_checkint(L, arg)); - break; - } - case 'd': case 'i': { - lua_Number n = luaL_checknumber(L, arg); - LUA_INTFRM_T ni = (LUA_INTFRM_T)n; - lua_Number diff = n - (lua_Number)ni; - luaL_argcheck(L, -1 < diff && diff < 1, arg, - "not a number in proper range"); - addlenmod(form, LUA_INTFRMLEN); - nb = sprintf(buff, form, ni); - break; - } - case 'o': case 'u': case 'x': case 'X': { - lua_Number n = luaL_checknumber(L, arg); - unsigned LUA_INTFRM_T ni = (unsigned LUA_INTFRM_T)n; - lua_Number diff = n - (lua_Number)ni; - luaL_argcheck(L, -1 < diff && diff < 1, arg, - "not a non-negative number in proper range"); - addlenmod(form, LUA_INTFRMLEN); - nb = sprintf(buff, form, ni); - break; - } - case 'e': case 'E': case 'f': -#if defined(LUA_USE_AFORMAT) - case 'a': case 'A': -#endif - case 'g': case 'G': { - addlenmod(form, LUA_FLTFRMLEN); - nb = sprintf(buff, form, (LUA_FLTFRM_T)luaL_checknumber(L, arg)); - break; - } - case 'q': { - addquoted(L, &b, arg); - break; - } - case 's': { - size_t l; - const char *s = luaL_tolstring(L, arg, &l); - if (!strchr(form, '.') && l >= 100) { - /* no precision and string is too long to be formatted; - keep original string */ - luaL_addvalue(&b); - break; - } - else { - nb = sprintf(buff, form, s); - lua_pop(L, 1); /* remove result from 'luaL_tolstring' */ - break; - } - } - default: { /* also treat cases `pnLlh' */ - return luaL_error(L, "invalid option " LUA_QL("%%%c") " to " - LUA_QL("format"), *(strfrmt - 1)); - } - } - luaL_addsize(&b, nb); - } - } - luaL_pushresult(&b); - return 1; -} - -/* }====================================================== */ - - -static const luaL_Reg strlib[] = { - {"byte", str_byte}, - {"char", str_char}, - {"dump", str_dump}, - {"find", str_find}, - {"format", str_format}, - {"gmatch", gmatch}, - {"gsub", str_gsub}, - {"len", str_len}, - {"lower", str_lower}, - {"match", str_match}, - {"rep", str_rep}, - {"reverse", str_reverse}, - {"sub", str_sub}, - {"upper", str_upper}, - {NULL, NULL} -}; - - -static void createmetatable (lua_State *L) { - lua_createtable(L, 0, 1); /* table to be metatable for strings */ - lua_pushliteral(L, ""); /* dummy string */ - lua_pushvalue(L, -2); /* copy table */ - lua_setmetatable(L, -2); /* set table as metatable for strings */ - lua_pop(L, 1); /* pop dummy string */ - lua_pushvalue(L, -2); /* get string library */ - lua_setfield(L, -2, "__index"); /* metatable.__index = string */ - lua_pop(L, 1); /* pop metatable */ -} - - -/* -** Open string library -*/ -LUAMOD_API int luaopen_string (lua_State *L) { - luaL_newlib(L, strlib); - createmetatable(L); - return 1; -} - diff --git a/source/libs/lua52/lua52-src/src/ltable.c b/source/libs/lua52/lua52-src/src/ltable.c deleted file mode 100644 index 5d76f97ec3c4978d9fd959873664da6f141954e0..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/ltable.c +++ /dev/null @@ -1,588 +0,0 @@ -/* -** $Id: ltable.c,v 2.72.1.1 2013/04/12 18:48:47 roberto Exp $ -** Lua tables (hash) -** See Copyright Notice in lua.h -*/ - - -/* -** Implementation of tables (aka arrays, objects, or hash tables). -** Tables keep its elements in two parts: an array part and a hash part. -** Non-negative integer keys are all candidates to be kept in the array -** part. The actual size of the array is the largest `n' such that at -** least half the slots between 0 and n are in use. -** Hash uses a mix of chained scatter table with Brent's variation. -** A main invariant of these tables is that, if an element is not -** in its main position (i.e. the `original' position that its hash gives -** to it), then the colliding element is in its own main position. -** Hence even when the load factor reaches 100%, performance remains good. -*/ - -#include <string.h> - -#define ltable_c -#define LUA_CORE - -#include "lua.h" - -#include "ldebug.h" -#include "ldo.h" -#include "lgc.h" -#include "lmem.h" -#include "lobject.h" -#include "lstate.h" -#include "lstring.h" -#include "ltable.h" -#include "lvm.h" - - -/* -** max size of array part is 2^MAXBITS -*/ -#if LUAI_BITSINT >= 32 -#define MAXBITS 30 -#else -#define MAXBITS (LUAI_BITSINT-2) -#endif - -#define MAXASIZE (1 << MAXBITS) - - -#define hashpow2(t,n) (gnode(t, lmod((n), sizenode(t)))) - -#define hashstr(t,str) hashpow2(t, (str)->tsv.hash) -#define hashboolean(t,p) hashpow2(t, p) - - -/* -** for some types, it is better to avoid modulus by power of 2, as -** they tend to have many 2 factors. -*/ -#define hashmod(t,n) (gnode(t, ((n) % ((sizenode(t)-1)|1)))) - - -#define hashpointer(t,p) hashmod(t, IntPoint(p)) - - -#define dummynode (&dummynode_) - -#define isdummy(n) ((n) == dummynode) - -static const Node dummynode_ = { - {NILCONSTANT}, /* value */ - {{NILCONSTANT, NULL}} /* key */ -}; - - -/* -** hash for lua_Numbers -*/ -static Node *hashnum (const Table *t, lua_Number n) { - int i; - luai_hashnum(i, n); - if (i < 0) { - if (cast(unsigned int, i) == 0u - i) /* use unsigned to avoid overflows */ - i = 0; /* handle INT_MIN */ - i = -i; /* must be a positive value */ - } - return hashmod(t, i); -} - - - -/* -** returns the `main' position of an element in a table (that is, the index -** of its hash value) -*/ -static Node *mainposition (const Table *t, const TValue *key) { - switch (ttype(key)) { - case LUA_TNUMBER: - return hashnum(t, nvalue(key)); - case LUA_TLNGSTR: { - TString *s = rawtsvalue(key); - if (s->tsv.extra == 0) { /* no hash? */ - s->tsv.hash = luaS_hash(getstr(s), s->tsv.len, s->tsv.hash); - s->tsv.extra = 1; /* now it has its hash */ - } - return hashstr(t, rawtsvalue(key)); - } - case LUA_TSHRSTR: - return hashstr(t, rawtsvalue(key)); - case LUA_TBOOLEAN: - return hashboolean(t, bvalue(key)); - case LUA_TLIGHTUSERDATA: - return hashpointer(t, pvalue(key)); - case LUA_TLCF: - return hashpointer(t, fvalue(key)); - default: - return hashpointer(t, gcvalue(key)); - } -} - - -/* -** returns the index for `key' if `key' is an appropriate key to live in -** the array part of the table, -1 otherwise. -*/ -static int arrayindex (const TValue *key) { - if (ttisnumber(key)) { - lua_Number n = nvalue(key); - int k; - lua_number2int(k, n); - if (luai_numeq(cast_num(k), n)) - return k; - } - return -1; /* `key' did not match some condition */ -} - - -/* -** returns the index of a `key' for table traversals. First goes all -** elements in the array part, then elements in the hash part. The -** beginning of a traversal is signaled by -1. -*/ -static int findindex (lua_State *L, Table *t, StkId key) { - int i; - if (ttisnil(key)) return -1; /* first iteration */ - i = arrayindex(key); - if (0 < i && i <= t->sizearray) /* is `key' inside array part? */ - return i-1; /* yes; that's the index (corrected to C) */ - else { - Node *n = mainposition(t, key); - for (;;) { /* check whether `key' is somewhere in the chain */ - /* key may be dead already, but it is ok to use it in `next' */ - if (luaV_rawequalobj(gkey(n), key) || - (ttisdeadkey(gkey(n)) && iscollectable(key) && - deadvalue(gkey(n)) == gcvalue(key))) { - i = cast_int(n - gnode(t, 0)); /* key index in hash table */ - /* hash elements are numbered after array ones */ - return i + t->sizearray; - } - else n = gnext(n); - if (n == NULL) - luaG_runerror(L, "invalid key to " LUA_QL("next")); /* key not found */ - } - } -} - - -int luaH_next (lua_State *L, Table *t, StkId key) { - int i = findindex(L, t, key); /* find original element */ - for (i++; i < t->sizearray; i++) { /* try first array part */ - if (!ttisnil(&t->array[i])) { /* a non-nil value? */ - setnvalue(key, cast_num(i+1)); - setobj2s(L, key+1, &t->array[i]); - return 1; - } - } - for (i -= t->sizearray; i < sizenode(t); i++) { /* then hash part */ - if (!ttisnil(gval(gnode(t, i)))) { /* a non-nil value? */ - setobj2s(L, key, gkey(gnode(t, i))); - setobj2s(L, key+1, gval(gnode(t, i))); - return 1; - } - } - return 0; /* no more elements */ -} - - -/* -** {============================================================= -** Rehash -** ============================================================== -*/ - - -static int computesizes (int nums[], int *narray) { - int i; - int twotoi; /* 2^i */ - int a = 0; /* number of elements smaller than 2^i */ - int na = 0; /* number of elements to go to array part */ - int n = 0; /* optimal size for array part */ - for (i = 0, twotoi = 1; twotoi/2 < *narray; i++, twotoi *= 2) { - if (nums[i] > 0) { - a += nums[i]; - if (a > twotoi/2) { /* more than half elements present? */ - n = twotoi; /* optimal size (till now) */ - na = a; /* all elements smaller than n will go to array part */ - } - } - if (a == *narray) break; /* all elements already counted */ - } - *narray = n; - lua_assert(*narray/2 <= na && na <= *narray); - return na; -} - - -static int countint (const TValue *key, int *nums) { - int k = arrayindex(key); - if (0 < k && k <= MAXASIZE) { /* is `key' an appropriate array index? */ - nums[luaO_ceillog2(k)]++; /* count as such */ - return 1; - } - else - return 0; -} - - -static int numusearray (const Table *t, int *nums) { - int lg; - int ttlg; /* 2^lg */ - int ause = 0; /* summation of `nums' */ - int i = 1; /* count to traverse all array keys */ - for (lg=0, ttlg=1; lg<=MAXBITS; lg++, ttlg*=2) { /* for each slice */ - int lc = 0; /* counter */ - int lim = ttlg; - if (lim > t->sizearray) { - lim = t->sizearray; /* adjust upper limit */ - if (i > lim) - break; /* no more elements to count */ - } - /* count elements in range (2^(lg-1), 2^lg] */ - for (; i <= lim; i++) { - if (!ttisnil(&t->array[i-1])) - lc++; - } - nums[lg] += lc; - ause += lc; - } - return ause; -} - - -static int numusehash (const Table *t, int *nums, int *pnasize) { - int totaluse = 0; /* total number of elements */ - int ause = 0; /* summation of `nums' */ - int i = sizenode(t); - while (i--) { - Node *n = &t->node[i]; - if (!ttisnil(gval(n))) { - ause += countint(gkey(n), nums); - totaluse++; - } - } - *pnasize += ause; - return totaluse; -} - - -static void setarrayvector (lua_State *L, Table *t, int size) { - int i; - luaM_reallocvector(L, t->array, t->sizearray, size, TValue); - for (i=t->sizearray; i<size; i++) - setnilvalue(&t->array[i]); - t->sizearray = size; -} - - -static void setnodevector (lua_State *L, Table *t, int size) { - int lsize; - if (size == 0) { /* no elements to hash part? */ - t->node = cast(Node *, dummynode); /* use common `dummynode' */ - lsize = 0; - } - else { - int i; - lsize = luaO_ceillog2(size); - if (lsize > MAXBITS) - luaG_runerror(L, "table overflow"); - size = twoto(lsize); - t->node = luaM_newvector(L, size, Node); - for (i=0; i<size; i++) { - Node *n = gnode(t, i); - gnext(n) = NULL; - setnilvalue(gkey(n)); - setnilvalue(gval(n)); - } - } - t->lsizenode = cast_byte(lsize); - t->lastfree = gnode(t, size); /* all positions are free */ -} - - -void luaH_resize (lua_State *L, Table *t, int nasize, int nhsize) { - int i; - int oldasize = t->sizearray; - int oldhsize = t->lsizenode; - Node *nold = t->node; /* save old hash ... */ - if (nasize > oldasize) /* array part must grow? */ - setarrayvector(L, t, nasize); - /* create new hash part with appropriate size */ - setnodevector(L, t, nhsize); - if (nasize < oldasize) { /* array part must shrink? */ - t->sizearray = nasize; - /* re-insert elements from vanishing slice */ - for (i=nasize; i<oldasize; i++) { - if (!ttisnil(&t->array[i])) - luaH_setint(L, t, i + 1, &t->array[i]); - } - /* shrink array */ - luaM_reallocvector(L, t->array, oldasize, nasize, TValue); - } - /* re-insert elements from hash part */ - for (i = twoto(oldhsize) - 1; i >= 0; i--) { - Node *old = nold+i; - if (!ttisnil(gval(old))) { - /* doesn't need barrier/invalidate cache, as entry was - already present in the table */ - setobjt2t(L, luaH_set(L, t, gkey(old)), gval(old)); - } - } - if (!isdummy(nold)) - luaM_freearray(L, nold, cast(size_t, twoto(oldhsize))); /* free old array */ -} - - -void luaH_resizearray (lua_State *L, Table *t, int nasize) { - int nsize = isdummy(t->node) ? 0 : sizenode(t); - luaH_resize(L, t, nasize, nsize); -} - - -static void rehash (lua_State *L, Table *t, const TValue *ek) { - int nasize, na; - int nums[MAXBITS+1]; /* nums[i] = number of keys with 2^(i-1) < k <= 2^i */ - int i; - int totaluse; - for (i=0; i<=MAXBITS; i++) nums[i] = 0; /* reset counts */ - nasize = numusearray(t, nums); /* count keys in array part */ - totaluse = nasize; /* all those keys are integer keys */ - totaluse += numusehash(t, nums, &nasize); /* count keys in hash part */ - /* count extra key */ - nasize += countint(ek, nums); - totaluse++; - /* compute new size for array part */ - na = computesizes(nums, &nasize); - /* resize the table to new computed sizes */ - luaH_resize(L, t, nasize, totaluse - na); -} - - - -/* -** }============================================================= -*/ - - -Table *luaH_new (lua_State *L) { - Table *t = &luaC_newobj(L, LUA_TTABLE, sizeof(Table), NULL, 0)->h; - t->metatable = NULL; - t->flags = cast_byte(~0); - t->array = NULL; - t->sizearray = 0; - setnodevector(L, t, 0); - return t; -} - - -void luaH_free (lua_State *L, Table *t) { - if (!isdummy(t->node)) - luaM_freearray(L, t->node, cast(size_t, sizenode(t))); - luaM_freearray(L, t->array, t->sizearray); - luaM_free(L, t); -} - - -static Node *getfreepos (Table *t) { - while (t->lastfree > t->node) { - t->lastfree--; - if (ttisnil(gkey(t->lastfree))) - return t->lastfree; - } - return NULL; /* could not find a free place */ -} - - - -/* -** inserts a new key into a hash table; first, check whether key's main -** position is free. If not, check whether colliding node is in its main -** position or not: if it is not, move colliding node to an empty place and -** put new key in its main position; otherwise (colliding node is in its main -** position), new key goes to an empty position. -*/ -TValue *luaH_newkey (lua_State *L, Table *t, const TValue *key) { - Node *mp; - if (ttisnil(key)) luaG_runerror(L, "table index is nil"); - else if (ttisnumber(key) && luai_numisnan(L, nvalue(key))) - luaG_runerror(L, "table index is NaN"); - mp = mainposition(t, key); - if (!ttisnil(gval(mp)) || isdummy(mp)) { /* main position is taken? */ - Node *othern; - Node *n = getfreepos(t); /* get a free place */ - if (n == NULL) { /* cannot find a free place? */ - rehash(L, t, key); /* grow table */ - /* whatever called 'newkey' take care of TM cache and GC barrier */ - return luaH_set(L, t, key); /* insert key into grown table */ - } - lua_assert(!isdummy(n)); - othern = mainposition(t, gkey(mp)); - if (othern != mp) { /* is colliding node out of its main position? */ - /* yes; move colliding node into free position */ - while (gnext(othern) != mp) othern = gnext(othern); /* find previous */ - gnext(othern) = n; /* redo the chain with `n' in place of `mp' */ - *n = *mp; /* copy colliding node into free pos. (mp->next also goes) */ - gnext(mp) = NULL; /* now `mp' is free */ - setnilvalue(gval(mp)); - } - else { /* colliding node is in its own main position */ - /* new node will go into free position */ - gnext(n) = gnext(mp); /* chain new position */ - gnext(mp) = n; - mp = n; - } - } - setobj2t(L, gkey(mp), key); - luaC_barrierback(L, obj2gco(t), key); - lua_assert(ttisnil(gval(mp))); - return gval(mp); -} - - -/* -** search function for integers -*/ -const TValue *luaH_getint (Table *t, int key) { - /* (1 <= key && key <= t->sizearray) */ - if (cast(unsigned int, key-1) < cast(unsigned int, t->sizearray)) - return &t->array[key-1]; - else { - lua_Number nk = cast_num(key); - Node *n = hashnum(t, nk); - do { /* check whether `key' is somewhere in the chain */ - if (ttisnumber(gkey(n)) && luai_numeq(nvalue(gkey(n)), nk)) - return gval(n); /* that's it */ - else n = gnext(n); - } while (n); - return luaO_nilobject; - } -} - - -/* -** search function for short strings -*/ -const TValue *luaH_getstr (Table *t, TString *key) { - Node *n = hashstr(t, key); - lua_assert(key->tsv.tt == LUA_TSHRSTR); - do { /* check whether `key' is somewhere in the chain */ - if (ttisshrstring(gkey(n)) && eqshrstr(rawtsvalue(gkey(n)), key)) - return gval(n); /* that's it */ - else n = gnext(n); - } while (n); - return luaO_nilobject; -} - - -/* -** main search function -*/ -const TValue *luaH_get (Table *t, const TValue *key) { - switch (ttype(key)) { - case LUA_TSHRSTR: return luaH_getstr(t, rawtsvalue(key)); - case LUA_TNIL: return luaO_nilobject; - case LUA_TNUMBER: { - int k; - lua_Number n = nvalue(key); - lua_number2int(k, n); - if (luai_numeq(cast_num(k), n)) /* index is int? */ - return luaH_getint(t, k); /* use specialized version */ - /* else go through */ - } - default: { - Node *n = mainposition(t, key); - do { /* check whether `key' is somewhere in the chain */ - if (luaV_rawequalobj(gkey(n), key)) - return gval(n); /* that's it */ - else n = gnext(n); - } while (n); - return luaO_nilobject; - } - } -} - - -/* -** beware: when using this function you probably need to check a GC -** barrier and invalidate the TM cache. -*/ -TValue *luaH_set (lua_State *L, Table *t, const TValue *key) { - const TValue *p = luaH_get(t, key); - if (p != luaO_nilobject) - return cast(TValue *, p); - else return luaH_newkey(L, t, key); -} - - -void luaH_setint (lua_State *L, Table *t, int key, TValue *value) { - const TValue *p = luaH_getint(t, key); - TValue *cell; - if (p != luaO_nilobject) - cell = cast(TValue *, p); - else { - TValue k; - setnvalue(&k, cast_num(key)); - cell = luaH_newkey(L, t, &k); - } - setobj2t(L, cell, value); -} - - -static int unbound_search (Table *t, unsigned int j) { - unsigned int i = j; /* i is zero or a present index */ - j++; - /* find `i' and `j' such that i is present and j is not */ - while (!ttisnil(luaH_getint(t, j))) { - i = j; - j *= 2; - if (j > cast(unsigned int, MAX_INT)) { /* overflow? */ - /* table was built with bad purposes: resort to linear search */ - i = 1; - while (!ttisnil(luaH_getint(t, i))) i++; - return i - 1; - } - } - /* now do a binary search between them */ - while (j - i > 1) { - unsigned int m = (i+j)/2; - if (ttisnil(luaH_getint(t, m))) j = m; - else i = m; - } - return i; -} - - -/* -** Try to find a boundary in table `t'. A `boundary' is an integer index -** such that t[i] is non-nil and t[i+1] is nil (and 0 if t[1] is nil). -*/ -int luaH_getn (Table *t) { - unsigned int j = t->sizearray; - if (j > 0 && ttisnil(&t->array[j - 1])) { - /* there is a boundary in the array part: (binary) search for it */ - unsigned int i = 0; - while (j - i > 1) { - unsigned int m = (i+j)/2; - if (ttisnil(&t->array[m - 1])) j = m; - else i = m; - } - return i; - } - /* else must find a boundary in hash part */ - else if (isdummy(t->node)) /* hash part is empty? */ - return j; /* that is easy... */ - else return unbound_search(t, j); -} - - - -#if defined(LUA_DEBUG) - -Node *luaH_mainposition (const Table *t, const TValue *key) { - return mainposition(t, key); -} - -int luaH_isdummy (Node *n) { return isdummy(n); } - -#endif diff --git a/source/libs/lua52/lua52-src/src/ltable.h b/source/libs/lua52/lua52-src/src/ltable.h deleted file mode 100644 index d69449b2b863f7d34d4e71382696eb152a18e997..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/ltable.h +++ /dev/null @@ -1,45 +0,0 @@ -/* -** $Id: ltable.h,v 2.16.1.2 2013/08/30 15:49:41 roberto Exp $ -** Lua tables (hash) -** See Copyright Notice in lua.h -*/ - -#ifndef ltable_h -#define ltable_h - -#include "lobject.h" - - -#define gnode(t,i) (&(t)->node[i]) -#define gkey(n) (&(n)->i_key.tvk) -#define gval(n) (&(n)->i_val) -#define gnext(n) ((n)->i_key.nk.next) - -#define invalidateTMcache(t) ((t)->flags = 0) - -/* returns the key, given the value of a table entry */ -#define keyfromval(v) \ - (gkey(cast(Node *, cast(char *, (v)) - offsetof(Node, i_val)))) - - -LUAI_FUNC const TValue *luaH_getint (Table *t, int key); -LUAI_FUNC void luaH_setint (lua_State *L, Table *t, int key, TValue *value); -LUAI_FUNC const TValue *luaH_getstr (Table *t, TString *key); -LUAI_FUNC const TValue *luaH_get (Table *t, const TValue *key); -LUAI_FUNC TValue *luaH_newkey (lua_State *L, Table *t, const TValue *key); -LUAI_FUNC TValue *luaH_set (lua_State *L, Table *t, const TValue *key); -LUAI_FUNC Table *luaH_new (lua_State *L); -LUAI_FUNC void luaH_resize (lua_State *L, Table *t, int nasize, int nhsize); -LUAI_FUNC void luaH_resizearray (lua_State *L, Table *t, int nasize); -LUAI_FUNC void luaH_free (lua_State *L, Table *t); -LUAI_FUNC int luaH_next (lua_State *L, Table *t, StkId key); -LUAI_FUNC int luaH_getn (Table *t); - - -#if defined(LUA_DEBUG) -LUAI_FUNC Node *luaH_mainposition (const Table *t, const TValue *key); -LUAI_FUNC int luaH_isdummy (Node *n); -#endif - - -#endif diff --git a/source/libs/lua52/lua52-src/src/ltablib.c b/source/libs/lua52/lua52-src/src/ltablib.c deleted file mode 100644 index 99764d26d100dac97420f27a4edeaecead89c36f..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/ltablib.c +++ /dev/null @@ -1,285 +0,0 @@ -/* -** $Id: ltablib.c,v 1.65.1.2 2014/05/07 16:32:55 roberto Exp $ -** Library for Table Manipulation -** See Copyright Notice in lua.h -*/ - - -#include <limits.h> -#include <stddef.h> - -#define ltablib_c -#define LUA_LIB - -#include "lua.h" - -#include "lauxlib.h" -#include "lualib.h" - - -#define aux_getn(L,n) (luaL_checktype(L, n, LUA_TTABLE), luaL_len(L, n)) - - - -#if defined(LUA_COMPAT_MAXN) -static int maxn (lua_State *L) { - lua_Number max = 0; - luaL_checktype(L, 1, LUA_TTABLE); - lua_pushnil(L); /* first key */ - while (lua_next(L, 1)) { - lua_pop(L, 1); /* remove value */ - if (lua_type(L, -1) == LUA_TNUMBER) { - lua_Number v = lua_tonumber(L, -1); - if (v > max) max = v; - } - } - lua_pushnumber(L, max); - return 1; -} -#endif - - -static int tinsert (lua_State *L) { - int e = aux_getn(L, 1) + 1; /* first empty element */ - int pos; /* where to insert new element */ - switch (lua_gettop(L)) { - case 2: { /* called with only 2 arguments */ - pos = e; /* insert new element at the end */ - break; - } - case 3: { - int i; - pos = luaL_checkint(L, 2); /* 2nd argument is the position */ - luaL_argcheck(L, 1 <= pos && pos <= e, 2, "position out of bounds"); - for (i = e; i > pos; i--) { /* move up elements */ - lua_rawgeti(L, 1, i-1); - lua_rawseti(L, 1, i); /* t[i] = t[i-1] */ - } - break; - } - default: { - return luaL_error(L, "wrong number of arguments to " LUA_QL("insert")); - } - } - lua_rawseti(L, 1, pos); /* t[pos] = v */ - return 0; -} - - -static int tremove (lua_State *L) { - int size = aux_getn(L, 1); - int pos = luaL_optint(L, 2, size); - if (pos != size) /* validate 'pos' if given */ - luaL_argcheck(L, 1 <= pos && pos <= size + 1, 1, "position out of bounds"); - lua_rawgeti(L, 1, pos); /* result = t[pos] */ - for ( ; pos < size; pos++) { - lua_rawgeti(L, 1, pos+1); - lua_rawseti(L, 1, pos); /* t[pos] = t[pos+1] */ - } - lua_pushnil(L); - lua_rawseti(L, 1, pos); /* t[pos] = nil */ - return 1; -} - - -static void addfield (lua_State *L, luaL_Buffer *b, int i) { - lua_rawgeti(L, 1, i); - if (!lua_isstring(L, -1)) - luaL_error(L, "invalid value (%s) at index %d in table for " - LUA_QL("concat"), luaL_typename(L, -1), i); - luaL_addvalue(b); -} - - -static int tconcat (lua_State *L) { - luaL_Buffer b; - size_t lsep; - int i, last; - const char *sep = luaL_optlstring(L, 2, "", &lsep); - luaL_checktype(L, 1, LUA_TTABLE); - i = luaL_optint(L, 3, 1); - last = luaL_opt(L, luaL_checkint, 4, luaL_len(L, 1)); - luaL_buffinit(L, &b); - for (; i < last; i++) { - addfield(L, &b, i); - luaL_addlstring(&b, sep, lsep); - } - if (i == last) /* add last value (if interval was not empty) */ - addfield(L, &b, i); - luaL_pushresult(&b); - return 1; -} - - -/* -** {====================================================== -** Pack/unpack -** ======================================================= -*/ - -static int pack (lua_State *L) { - int n = lua_gettop(L); /* number of elements to pack */ - lua_createtable(L, n, 1); /* create result table */ - lua_pushinteger(L, n); - lua_setfield(L, -2, "n"); /* t.n = number of elements */ - if (n > 0) { /* at least one element? */ - int i; - lua_pushvalue(L, 1); - lua_rawseti(L, -2, 1); /* insert first element */ - lua_replace(L, 1); /* move table into index 1 */ - for (i = n; i >= 2; i--) /* assign other elements */ - lua_rawseti(L, 1, i); - } - return 1; /* return table */ -} - - -static int unpack (lua_State *L) { - int i, e; - unsigned int n; - luaL_checktype(L, 1, LUA_TTABLE); - i = luaL_optint(L, 2, 1); - e = luaL_opt(L, luaL_checkint, 3, luaL_len(L, 1)); - if (i > e) return 0; /* empty range */ - n = (unsigned int)e - (unsigned int)i; /* number of elements minus 1 */ - if (n > (INT_MAX - 10) || !lua_checkstack(L, ++n)) - return luaL_error(L, "too many results to unpack"); - lua_rawgeti(L, 1, i); /* push arg[i] (avoiding overflow problems) */ - while (i++ < e) /* push arg[i + 1...e] */ - lua_rawgeti(L, 1, i); - return n; -} - -/* }====================================================== */ - - - -/* -** {====================================================== -** Quicksort -** (based on `Algorithms in MODULA-3', Robert Sedgewick; -** Addison-Wesley, 1993.) -** ======================================================= -*/ - - -static void set2 (lua_State *L, int i, int j) { - lua_rawseti(L, 1, i); - lua_rawseti(L, 1, j); -} - -static int sort_comp (lua_State *L, int a, int b) { - if (!lua_isnil(L, 2)) { /* function? */ - int res; - lua_pushvalue(L, 2); - lua_pushvalue(L, a-1); /* -1 to compensate function */ - lua_pushvalue(L, b-2); /* -2 to compensate function and `a' */ - lua_call(L, 2, 1); - res = lua_toboolean(L, -1); - lua_pop(L, 1); - return res; - } - else /* a < b? */ - return lua_compare(L, a, b, LUA_OPLT); -} - -static void auxsort (lua_State *L, int l, int u) { - while (l < u) { /* for tail recursion */ - int i, j; - /* sort elements a[l], a[(l+u)/2] and a[u] */ - lua_rawgeti(L, 1, l); - lua_rawgeti(L, 1, u); - if (sort_comp(L, -1, -2)) /* a[u] < a[l]? */ - set2(L, l, u); /* swap a[l] - a[u] */ - else - lua_pop(L, 2); - if (u-l == 1) break; /* only 2 elements */ - i = (l+u)/2; - lua_rawgeti(L, 1, i); - lua_rawgeti(L, 1, l); - if (sort_comp(L, -2, -1)) /* a[i]<a[l]? */ - set2(L, i, l); - else { - lua_pop(L, 1); /* remove a[l] */ - lua_rawgeti(L, 1, u); - if (sort_comp(L, -1, -2)) /* a[u]<a[i]? */ - set2(L, i, u); - else - lua_pop(L, 2); - } - if (u-l == 2) break; /* only 3 elements */ - lua_rawgeti(L, 1, i); /* Pivot */ - lua_pushvalue(L, -1); - lua_rawgeti(L, 1, u-1); - set2(L, i, u-1); - /* a[l] <= P == a[u-1] <= a[u], only need to sort from l+1 to u-2 */ - i = l; j = u-1; - for (;;) { /* invariant: a[l..i] <= P <= a[j..u] */ - /* repeat ++i until a[i] >= P */ - while (lua_rawgeti(L, 1, ++i), sort_comp(L, -1, -2)) { - if (i>=u) luaL_error(L, "invalid order function for sorting"); - lua_pop(L, 1); /* remove a[i] */ - } - /* repeat --j until a[j] <= P */ - while (lua_rawgeti(L, 1, --j), sort_comp(L, -3, -1)) { - if (j<=l) luaL_error(L, "invalid order function for sorting"); - lua_pop(L, 1); /* remove a[j] */ - } - if (j<i) { - lua_pop(L, 3); /* pop pivot, a[i], a[j] */ - break; - } - set2(L, i, j); - } - lua_rawgeti(L, 1, u-1); - lua_rawgeti(L, 1, i); - set2(L, u-1, i); /* swap pivot (a[u-1]) with a[i] */ - /* a[l..i-1] <= a[i] == P <= a[i+1..u] */ - /* adjust so that smaller half is in [j..i] and larger one in [l..u] */ - if (i-l < u-i) { - j=l; i=i-1; l=i+2; - } - else { - j=i+1; i=u; u=j-2; - } - auxsort(L, j, i); /* call recursively the smaller one */ - } /* repeat the routine for the larger one */ -} - -static int sort (lua_State *L) { - int n = aux_getn(L, 1); - luaL_checkstack(L, 40, ""); /* assume array is smaller than 2^40 */ - if (!lua_isnoneornil(L, 2)) /* is there a 2nd argument? */ - luaL_checktype(L, 2, LUA_TFUNCTION); - lua_settop(L, 2); /* make sure there is two arguments */ - auxsort(L, 1, n); - return 0; -} - -/* }====================================================== */ - - -static const luaL_Reg tab_funcs[] = { - {"concat", tconcat}, -#if defined(LUA_COMPAT_MAXN) - {"maxn", maxn}, -#endif - {"insert", tinsert}, - {"pack", pack}, - {"unpack", unpack}, - {"remove", tremove}, - {"sort", sort}, - {NULL, NULL} -}; - - -LUAMOD_API int luaopen_table (lua_State *L) { - luaL_newlib(L, tab_funcs); -#if defined(LUA_COMPAT_UNPACK) - /* _G.unpack = table.unpack */ - lua_getfield(L, -1, "unpack"); - lua_setglobal(L, "unpack"); -#endif - return 1; -} - diff --git a/source/libs/lua52/lua52-src/src/ltm.c b/source/libs/lua52/lua52-src/src/ltm.c deleted file mode 100644 index 69b4ed77271e71bdc14e04d36a8c4b05ae618c55..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/ltm.c +++ /dev/null @@ -1,77 +0,0 @@ -/* -** $Id: ltm.c,v 2.14.1.1 2013/04/12 18:48:47 roberto Exp $ -** Tag methods -** See Copyright Notice in lua.h -*/ - - -#include <string.h> - -#define ltm_c -#define LUA_CORE - -#include "lua.h" - -#include "lobject.h" -#include "lstate.h" -#include "lstring.h" -#include "ltable.h" -#include "ltm.h" - - -static const char udatatypename[] = "userdata"; - -LUAI_DDEF const char *const luaT_typenames_[LUA_TOTALTAGS] = { - "no value", - "nil", "boolean", udatatypename, "number", - "string", "table", "function", udatatypename, "thread", - "proto", "upval" /* these last two cases are used for tests only */ -}; - - -void luaT_init (lua_State *L) { - static const char *const luaT_eventname[] = { /* ORDER TM */ - "__index", "__newindex", - "__gc", "__mode", "__len", "__eq", - "__add", "__sub", "__mul", "__div", "__mod", - "__pow", "__unm", "__lt", "__le", - "__concat", "__call" - }; - int i; - for (i=0; i<TM_N; i++) { - G(L)->tmname[i] = luaS_new(L, luaT_eventname[i]); - luaS_fix(G(L)->tmname[i]); /* never collect these names */ - } -} - - -/* -** function to be used with macro "fasttm": optimized for absence of -** tag methods -*/ -const TValue *luaT_gettm (Table *events, TMS event, TString *ename) { - const TValue *tm = luaH_getstr(events, ename); - lua_assert(event <= TM_EQ); - if (ttisnil(tm)) { /* no tag method? */ - events->flags |= cast_byte(1u<<event); /* cache this fact */ - return NULL; - } - else return tm; -} - - -const TValue *luaT_gettmbyobj (lua_State *L, const TValue *o, TMS event) { - Table *mt; - switch (ttypenv(o)) { - case LUA_TTABLE: - mt = hvalue(o)->metatable; - break; - case LUA_TUSERDATA: - mt = uvalue(o)->metatable; - break; - default: - mt = G(L)->mt[ttypenv(o)]; - } - return (mt ? luaH_getstr(mt, G(L)->tmname[event]) : luaO_nilobject); -} - diff --git a/source/libs/lua52/lua52-src/src/ltm.h b/source/libs/lua52/lua52-src/src/ltm.h deleted file mode 100644 index 7f89c841f9c07b7c4aed02f3c10de40e9490b7a9..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/ltm.h +++ /dev/null @@ -1,57 +0,0 @@ -/* -** $Id: ltm.h,v 2.11.1.1 2013/04/12 18:48:47 roberto Exp $ -** Tag methods -** See Copyright Notice in lua.h -*/ - -#ifndef ltm_h -#define ltm_h - - -#include "lobject.h" - - -/* -* WARNING: if you change the order of this enumeration, -* grep "ORDER TM" -*/ -typedef enum { - TM_INDEX, - TM_NEWINDEX, - TM_GC, - TM_MODE, - TM_LEN, - TM_EQ, /* last tag method with `fast' access */ - TM_ADD, - TM_SUB, - TM_MUL, - TM_DIV, - TM_MOD, - TM_POW, - TM_UNM, - TM_LT, - TM_LE, - TM_CONCAT, - TM_CALL, - TM_N /* number of elements in the enum */ -} TMS; - - - -#define gfasttm(g,et,e) ((et) == NULL ? NULL : \ - ((et)->flags & (1u<<(e))) ? NULL : luaT_gettm(et, e, (g)->tmname[e])) - -#define fasttm(l,et,e) gfasttm(G(l), et, e) - -#define ttypename(x) luaT_typenames_[(x) + 1] -#define objtypename(x) ttypename(ttypenv(x)) - -LUAI_DDEC const char *const luaT_typenames_[LUA_TOTALTAGS]; - - -LUAI_FUNC const TValue *luaT_gettm (Table *events, TMS event, TString *ename); -LUAI_FUNC const TValue *luaT_gettmbyobj (lua_State *L, const TValue *o, - TMS event); -LUAI_FUNC void luaT_init (lua_State *L); - -#endif diff --git a/source/libs/lua52/lua52-src/src/lua.c b/source/libs/lua52/lua52-src/src/lua.c deleted file mode 100644 index 4345e554e92e2d3b3b1c74f7555de627a8330a60..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lua.c +++ /dev/null @@ -1,497 +0,0 @@ -/* -** $Id: lua.c,v 1.206.1.1 2013/04/12 18:48:47 roberto Exp $ -** Lua stand-alone interpreter -** See Copyright Notice in lua.h -*/ - - -#include <signal.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#define lua_c - -#include "lua.h" - -#include "lauxlib.h" -#include "lualib.h" - - -#if !defined(LUA_PROMPT) -#define LUA_PROMPT "> " -#define LUA_PROMPT2 ">> " -#endif - -#if !defined(LUA_PROGNAME) -#define LUA_PROGNAME "lua" -#endif - -#if !defined(LUA_MAXINPUT) -#define LUA_MAXINPUT 512 -#endif - -#if !defined(LUA_INIT) -#define LUA_INIT "LUA_INIT" -#endif - -#define LUA_INITVERSION \ - LUA_INIT "_" LUA_VERSION_MAJOR "_" LUA_VERSION_MINOR - - -/* -** lua_stdin_is_tty detects whether the standard input is a 'tty' (that -** is, whether we're running lua interactively). -*/ -#if defined(LUA_USE_ISATTY) -#include <unistd.h> -#define lua_stdin_is_tty() isatty(0) -#elif defined(LUA_WIN) -#include <io.h> -#include <stdio.h> -#define lua_stdin_is_tty() _isatty(_fileno(stdin)) -#else -#define lua_stdin_is_tty() 1 /* assume stdin is a tty */ -#endif - - -/* -** lua_readline defines how to show a prompt and then read a line from -** the standard input. -** lua_saveline defines how to "save" a read line in a "history". -** lua_freeline defines how to free a line read by lua_readline. -*/ -#if defined(LUA_USE_READLINE) - -#include <stdio.h> -#include <readline/readline.h> -#include <readline/history.h> -#define lua_readline(L,b,p) ((void)L, ((b)=readline(p)) != NULL) -#define lua_saveline(L,idx) \ - if (lua_rawlen(L,idx) > 0) /* non-empty line? */ \ - add_history(lua_tostring(L, idx)); /* add it to history */ -#define lua_freeline(L,b) ((void)L, free(b)) - -#elif !defined(lua_readline) - -#define lua_readline(L,b,p) \ - ((void)L, fputs(p, stdout), fflush(stdout), /* show prompt */ \ - fgets(b, LUA_MAXINPUT, stdin) != NULL) /* get line */ -#define lua_saveline(L,idx) { (void)L; (void)idx; } -#define lua_freeline(L,b) { (void)L; (void)b; } - -#endif - - - - -static lua_State *globalL = NULL; - -static const char *progname = LUA_PROGNAME; - - - -static void lstop (lua_State *L, lua_Debug *ar) { - (void)ar; /* unused arg. */ - lua_sethook(L, NULL, 0, 0); - luaL_error(L, "interrupted!"); -} - - -static void laction (int i) { - signal(i, SIG_DFL); /* if another SIGINT happens before lstop, - terminate process (default action) */ - lua_sethook(globalL, lstop, LUA_MASKCALL | LUA_MASKRET | LUA_MASKCOUNT, 1); -} - - -static void print_usage (const char *badoption) { - luai_writestringerror("%s: ", progname); - if (badoption[1] == 'e' || badoption[1] == 'l') - luai_writestringerror("'%s' needs argument\n", badoption); - else - luai_writestringerror("unrecognized option '%s'\n", badoption); - luai_writestringerror( - "usage: %s [options] [script [args]]\n" - "Available options are:\n" - " -e stat execute string " LUA_QL("stat") "\n" - " -i enter interactive mode after executing " LUA_QL("script") "\n" - " -l name require library " LUA_QL("name") "\n" - " -v show version information\n" - " -E ignore environment variables\n" - " -- stop handling options\n" - " - stop handling options and execute stdin\n" - , - progname); -} - - -static void l_message (const char *pname, const char *msg) { - if (pname) luai_writestringerror("%s: ", pname); - luai_writestringerror("%s\n", msg); -} - - -static int report (lua_State *L, int status) { - if (status != LUA_OK && !lua_isnil(L, -1)) { - const char *msg = lua_tostring(L, -1); - if (msg == NULL) msg = "(error object is not a string)"; - l_message(progname, msg); - lua_pop(L, 1); - /* force a complete garbage collection in case of errors */ - lua_gc(L, LUA_GCCOLLECT, 0); - } - return status; -} - - -/* the next function is called unprotected, so it must avoid errors */ -static void finalreport (lua_State *L, int status) { - if (status != LUA_OK) { - const char *msg = (lua_type(L, -1) == LUA_TSTRING) ? lua_tostring(L, -1) - : NULL; - if (msg == NULL) msg = "(error object is not a string)"; - l_message(progname, msg); - lua_pop(L, 1); - } -} - - -static int traceback (lua_State *L) { - const char *msg = lua_tostring(L, 1); - if (msg) - luaL_traceback(L, L, msg, 1); - else if (!lua_isnoneornil(L, 1)) { /* is there an error object? */ - if (!luaL_callmeta(L, 1, "__tostring")) /* try its 'tostring' metamethod */ - lua_pushliteral(L, "(no error message)"); - } - return 1; -} - - -static int docall (lua_State *L, int narg, int nres) { - int status; - int base = lua_gettop(L) - narg; /* function index */ - lua_pushcfunction(L, traceback); /* push traceback function */ - lua_insert(L, base); /* put it under chunk and args */ - globalL = L; /* to be available to 'laction' */ - signal(SIGINT, laction); - status = lua_pcall(L, narg, nres, base); - signal(SIGINT, SIG_DFL); - lua_remove(L, base); /* remove traceback function */ - return status; -} - - -static void print_version (void) { - luai_writestring(LUA_COPYRIGHT, strlen(LUA_COPYRIGHT)); - luai_writeline(); -} - - -static int getargs (lua_State *L, char **argv, int n) { - int narg; - int i; - int argc = 0; - while (argv[argc]) argc++; /* count total number of arguments */ - narg = argc - (n + 1); /* number of arguments to the script */ - luaL_checkstack(L, narg + 3, "too many arguments to script"); - for (i=n+1; i < argc; i++) - lua_pushstring(L, argv[i]); - lua_createtable(L, narg, n + 1); - for (i=0; i < argc; i++) { - lua_pushstring(L, argv[i]); - lua_rawseti(L, -2, i - n); - } - return narg; -} - - -static int dofile (lua_State *L, const char *name) { - int status = luaL_loadfile(L, name); - if (status == LUA_OK) status = docall(L, 0, 0); - return report(L, status); -} - - -static int dostring (lua_State *L, const char *s, const char *name) { - int status = luaL_loadbuffer(L, s, strlen(s), name); - if (status == LUA_OK) status = docall(L, 0, 0); - return report(L, status); -} - - -static int dolibrary (lua_State *L, const char *name) { - int status; - lua_getglobal(L, "require"); - lua_pushstring(L, name); - status = docall(L, 1, 1); /* call 'require(name)' */ - if (status == LUA_OK) - lua_setglobal(L, name); /* global[name] = require return */ - return report(L, status); -} - - -static const char *get_prompt (lua_State *L, int firstline) { - const char *p; - lua_getglobal(L, firstline ? "_PROMPT" : "_PROMPT2"); - p = lua_tostring(L, -1); - if (p == NULL) p = (firstline ? LUA_PROMPT : LUA_PROMPT2); - return p; -} - -/* mark in error messages for incomplete statements */ -#define EOFMARK "<eof>" -#define marklen (sizeof(EOFMARK)/sizeof(char) - 1) - -static int incomplete (lua_State *L, int status) { - if (status == LUA_ERRSYNTAX) { - size_t lmsg; - const char *msg = lua_tolstring(L, -1, &lmsg); - if (lmsg >= marklen && strcmp(msg + lmsg - marklen, EOFMARK) == 0) { - lua_pop(L, 1); - return 1; - } - } - return 0; /* else... */ -} - - -static int pushline (lua_State *L, int firstline) { - char buffer[LUA_MAXINPUT]; - char *b = buffer; - size_t l; - const char *prmt = get_prompt(L, firstline); - int readstatus = lua_readline(L, b, prmt); - lua_pop(L, 1); /* remove result from 'get_prompt' */ - if (readstatus == 0) - return 0; /* no input */ - l = strlen(b); - if (l > 0 && b[l-1] == '\n') /* line ends with newline? */ - b[l-1] = '\0'; /* remove it */ - if (firstline && b[0] == '=') /* first line starts with `=' ? */ - lua_pushfstring(L, "return %s", b+1); /* change it to `return' */ - else - lua_pushstring(L, b); - lua_freeline(L, b); - return 1; -} - - -static int loadline (lua_State *L) { - int status; - lua_settop(L, 0); - if (!pushline(L, 1)) - return -1; /* no input */ - for (;;) { /* repeat until gets a complete line */ - size_t l; - const char *line = lua_tolstring(L, 1, &l); - status = luaL_loadbuffer(L, line, l, "=stdin"); - if (!incomplete(L, status)) break; /* cannot try to add lines? */ - if (!pushline(L, 0)) /* no more input? */ - return -1; - lua_pushliteral(L, "\n"); /* add a new line... */ - lua_insert(L, -2); /* ...between the two lines */ - lua_concat(L, 3); /* join them */ - } - lua_saveline(L, 1); - lua_remove(L, 1); /* remove line */ - return status; -} - - -static void dotty (lua_State *L) { - int status; - const char *oldprogname = progname; - progname = NULL; - while ((status = loadline(L)) != -1) { - if (status == LUA_OK) status = docall(L, 0, LUA_MULTRET); - report(L, status); - if (status == LUA_OK && lua_gettop(L) > 0) { /* any result to print? */ - luaL_checkstack(L, LUA_MINSTACK, "too many results to print"); - lua_getglobal(L, "print"); - lua_insert(L, 1); - if (lua_pcall(L, lua_gettop(L)-1, 0, 0) != LUA_OK) - l_message(progname, lua_pushfstring(L, - "error calling " LUA_QL("print") " (%s)", - lua_tostring(L, -1))); - } - } - lua_settop(L, 0); /* clear stack */ - luai_writeline(); - progname = oldprogname; -} - - -static int handle_script (lua_State *L, char **argv, int n) { - int status; - const char *fname; - int narg = getargs(L, argv, n); /* collect arguments */ - lua_setglobal(L, "arg"); - fname = argv[n]; - if (strcmp(fname, "-") == 0 && strcmp(argv[n-1], "--") != 0) - fname = NULL; /* stdin */ - status = luaL_loadfile(L, fname); - lua_insert(L, -(narg+1)); - if (status == LUA_OK) - status = docall(L, narg, LUA_MULTRET); - else - lua_pop(L, narg); - return report(L, status); -} - - -/* check that argument has no extra characters at the end */ -#define noextrachars(x) {if ((x)[2] != '\0') return -1;} - - -/* indices of various argument indicators in array args */ -#define has_i 0 /* -i */ -#define has_v 1 /* -v */ -#define has_e 2 /* -e */ -#define has_E 3 /* -E */ - -#define num_has 4 /* number of 'has_*' */ - - -static int collectargs (char **argv, int *args) { - int i; - for (i = 1; argv[i] != NULL; i++) { - if (argv[i][0] != '-') /* not an option? */ - return i; - switch (argv[i][1]) { /* option */ - case '-': - noextrachars(argv[i]); - return (argv[i+1] != NULL ? i+1 : 0); - case '\0': - return i; - case 'E': - args[has_E] = 1; - break; - case 'i': - noextrachars(argv[i]); - args[has_i] = 1; /* go through */ - case 'v': - noextrachars(argv[i]); - args[has_v] = 1; - break; - case 'e': - args[has_e] = 1; /* go through */ - case 'l': /* both options need an argument */ - if (argv[i][2] == '\0') { /* no concatenated argument? */ - i++; /* try next 'argv' */ - if (argv[i] == NULL || argv[i][0] == '-') - return -(i - 1); /* no next argument or it is another option */ - } - break; - default: /* invalid option; return its index... */ - return -i; /* ...as a negative value */ - } - } - return 0; -} - - -static int runargs (lua_State *L, char **argv, int n) { - int i; - for (i = 1; i < n; i++) { - lua_assert(argv[i][0] == '-'); - switch (argv[i][1]) { /* option */ - case 'e': { - const char *chunk = argv[i] + 2; - if (*chunk == '\0') chunk = argv[++i]; - lua_assert(chunk != NULL); - if (dostring(L, chunk, "=(command line)") != LUA_OK) - return 0; - break; - } - case 'l': { - const char *filename = argv[i] + 2; - if (*filename == '\0') filename = argv[++i]; - lua_assert(filename != NULL); - if (dolibrary(L, filename) != LUA_OK) - return 0; /* stop if file fails */ - break; - } - default: break; - } - } - return 1; -} - - -static int handle_luainit (lua_State *L) { - const char *name = "=" LUA_INITVERSION; - const char *init = getenv(name + 1); - if (init == NULL) { - name = "=" LUA_INIT; - init = getenv(name + 1); /* try alternative name */ - } - if (init == NULL) return LUA_OK; - else if (init[0] == '@') - return dofile(L, init+1); - else - return dostring(L, init, name); -} - - -static int pmain (lua_State *L) { - int argc = (int)lua_tointeger(L, 1); - char **argv = (char **)lua_touserdata(L, 2); - int script; - int args[num_has]; - args[has_i] = args[has_v] = args[has_e] = args[has_E] = 0; - if (argv[0] && argv[0][0]) progname = argv[0]; - script = collectargs(argv, args); - if (script < 0) { /* invalid arg? */ - print_usage(argv[-script]); - return 0; - } - if (args[has_v]) print_version(); - if (args[has_E]) { /* option '-E'? */ - lua_pushboolean(L, 1); /* signal for libraries to ignore env. vars. */ - lua_setfield(L, LUA_REGISTRYINDEX, "LUA_NOENV"); - } - /* open standard libraries */ - luaL_checkversion(L); - lua_gc(L, LUA_GCSTOP, 0); /* stop collector during initialization */ - luaL_openlibs(L); /* open libraries */ - lua_gc(L, LUA_GCRESTART, 0); - if (!args[has_E] && handle_luainit(L) != LUA_OK) - return 0; /* error running LUA_INIT */ - /* execute arguments -e and -l */ - if (!runargs(L, argv, (script > 0) ? script : argc)) return 0; - /* execute main script (if there is one) */ - if (script && handle_script(L, argv, script) != LUA_OK) return 0; - if (args[has_i]) /* -i option? */ - dotty(L); - else if (script == 0 && !args[has_e] && !args[has_v]) { /* no arguments? */ - if (lua_stdin_is_tty()) { - print_version(); - dotty(L); - } - else dofile(L, NULL); /* executes stdin as a file */ - } - lua_pushboolean(L, 1); /* signal no errors */ - return 1; -} - - -int main (int argc, char **argv) { - int status, result; - lua_State *L = luaL_newstate(); /* create state */ - if (L == NULL) { - l_message(argv[0], "cannot create state: not enough memory"); - return EXIT_FAILURE; - } - /* call 'pmain' in protected mode */ - lua_pushcfunction(L, &pmain); - lua_pushinteger(L, argc); /* 1st argument */ - lua_pushlightuserdata(L, argv); /* 2nd argument */ - status = lua_pcall(L, 2, 1, 0); - result = lua_toboolean(L, -1); /* get result */ - finalreport(L, status); - lua_close(L); - return (result && status == LUA_OK) ? EXIT_SUCCESS : EXIT_FAILURE; -} - diff --git a/source/libs/lua52/lua52-src/src/lua.h b/source/libs/lua52/lua52-src/src/lua.h deleted file mode 100644 index ff4a10861b5fba16964e0fcbaa4e0a313fc4a6a1..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lua.h +++ /dev/null @@ -1,444 +0,0 @@ -/* -** $Id: lua.h,v 1.285.1.4 2015/02/21 14:04:50 roberto Exp $ -** Lua - A Scripting Language -** Lua.org, PUC-Rio, Brazil (http://www.lua.org) -** See Copyright Notice at the end of this file -*/ - - -#ifndef lua_h -#define lua_h - -#include <stdarg.h> -#include <stddef.h> - - -#include "luaconf.h" - - -#define LUA_VERSION_MAJOR "5" -#define LUA_VERSION_MINOR "2" -#define LUA_VERSION_NUM 502 -#define LUA_VERSION_RELEASE "4" - -#define LUA_VERSION "Lua " LUA_VERSION_MAJOR "." LUA_VERSION_MINOR -#define LUA_RELEASE LUA_VERSION "." LUA_VERSION_RELEASE -#define LUA_COPYRIGHT LUA_RELEASE " Copyright (C) 1994-2015 Lua.org, PUC-Rio" -#define LUA_AUTHORS "R. Ierusalimschy, L. H. de Figueiredo, W. Celes" - - -/* mark for precompiled code ('<esc>Lua') */ -#define LUA_SIGNATURE "\033Lua" - -/* option for multiple returns in 'lua_pcall' and 'lua_call' */ -#define LUA_MULTRET (-1) - - -/* -** pseudo-indices -*/ -#define LUA_REGISTRYINDEX LUAI_FIRSTPSEUDOIDX -#define lua_upvalueindex(i) (LUA_REGISTRYINDEX - (i)) - - -/* thread status */ -#define LUA_OK 0 -#define LUA_YIELD 1 -#define LUA_ERRRUN 2 -#define LUA_ERRSYNTAX 3 -#define LUA_ERRMEM 4 -#define LUA_ERRGCMM 5 -#define LUA_ERRERR 6 - - -typedef struct lua_State lua_State; - -typedef int (*lua_CFunction) (lua_State *L); - - -/* -** functions that read/write blocks when loading/dumping Lua chunks -*/ -typedef const char * (*lua_Reader) (lua_State *L, void *ud, size_t *sz); - -typedef int (*lua_Writer) (lua_State *L, const void* p, size_t sz, void* ud); - - -/* -** prototype for memory-allocation functions -*/ -typedef void * (*lua_Alloc) (void *ud, void *ptr, size_t osize, size_t nsize); - - -/* -** basic types -*/ -#define LUA_TNONE (-1) - -#define LUA_TNIL 0 -#define LUA_TBOOLEAN 1 -#define LUA_TLIGHTUSERDATA 2 -#define LUA_TNUMBER 3 -#define LUA_TSTRING 4 -#define LUA_TTABLE 5 -#define LUA_TFUNCTION 6 -#define LUA_TUSERDATA 7 -#define LUA_TTHREAD 8 - -#define LUA_NUMTAGS 9 - - - -/* minimum Lua stack available to a C function */ -#define LUA_MINSTACK 20 - - -/* predefined values in the registry */ -#define LUA_RIDX_MAINTHREAD 1 -#define LUA_RIDX_GLOBALS 2 -#define LUA_RIDX_LAST LUA_RIDX_GLOBALS - - -/* type of numbers in Lua */ -typedef LUA_NUMBER lua_Number; - - -/* type for integer functions */ -typedef LUA_INTEGER lua_Integer; - -/* unsigned integer type */ -typedef LUA_UNSIGNED lua_Unsigned; - - - -/* -** generic extra include file -*/ -#if defined(LUA_USER_H) -#include LUA_USER_H -#endif - - -/* -** RCS ident string -*/ -extern const char lua_ident[]; - - -/* -** state manipulation -*/ -LUA_API lua_State *(lua_newstate) (lua_Alloc f, void *ud); -LUA_API void (lua_close) (lua_State *L); -LUA_API lua_State *(lua_newthread) (lua_State *L); - -LUA_API lua_CFunction (lua_atpanic) (lua_State *L, lua_CFunction panicf); - - -LUA_API const lua_Number *(lua_version) (lua_State *L); - - -/* -** basic stack manipulation -*/ -LUA_API int (lua_absindex) (lua_State *L, int idx); -LUA_API int (lua_gettop) (lua_State *L); -LUA_API void (lua_settop) (lua_State *L, int idx); -LUA_API void (lua_pushvalue) (lua_State *L, int idx); -LUA_API void (lua_remove) (lua_State *L, int idx); -LUA_API void (lua_insert) (lua_State *L, int idx); -LUA_API void (lua_replace) (lua_State *L, int idx); -LUA_API void (lua_copy) (lua_State *L, int fromidx, int toidx); -LUA_API int (lua_checkstack) (lua_State *L, int sz); - -LUA_API void (lua_xmove) (lua_State *from, lua_State *to, int n); - - -/* -** access functions (stack -> C) -*/ - -LUA_API int (lua_isnumber) (lua_State *L, int idx); -LUA_API int (lua_isstring) (lua_State *L, int idx); -LUA_API int (lua_iscfunction) (lua_State *L, int idx); -LUA_API int (lua_isuserdata) (lua_State *L, int idx); -LUA_API int (lua_type) (lua_State *L, int idx); -LUA_API const char *(lua_typename) (lua_State *L, int tp); - -LUA_API lua_Number (lua_tonumberx) (lua_State *L, int idx, int *isnum); -LUA_API lua_Integer (lua_tointegerx) (lua_State *L, int idx, int *isnum); -LUA_API lua_Unsigned (lua_tounsignedx) (lua_State *L, int idx, int *isnum); -LUA_API int (lua_toboolean) (lua_State *L, int idx); -LUA_API const char *(lua_tolstring) (lua_State *L, int idx, size_t *len); -LUA_API size_t (lua_rawlen) (lua_State *L, int idx); -LUA_API lua_CFunction (lua_tocfunction) (lua_State *L, int idx); -LUA_API void *(lua_touserdata) (lua_State *L, int idx); -LUA_API lua_State *(lua_tothread) (lua_State *L, int idx); -LUA_API const void *(lua_topointer) (lua_State *L, int idx); - - -/* -** Comparison and arithmetic functions -*/ - -#define LUA_OPADD 0 /* ORDER TM */ -#define LUA_OPSUB 1 -#define LUA_OPMUL 2 -#define LUA_OPDIV 3 -#define LUA_OPMOD 4 -#define LUA_OPPOW 5 -#define LUA_OPUNM 6 - -LUA_API void (lua_arith) (lua_State *L, int op); - -#define LUA_OPEQ 0 -#define LUA_OPLT 1 -#define LUA_OPLE 2 - -LUA_API int (lua_rawequal) (lua_State *L, int idx1, int idx2); -LUA_API int (lua_compare) (lua_State *L, int idx1, int idx2, int op); - - -/* -** push functions (C -> stack) -*/ -LUA_API void (lua_pushnil) (lua_State *L); -LUA_API void (lua_pushnumber) (lua_State *L, lua_Number n); -LUA_API void (lua_pushinteger) (lua_State *L, lua_Integer n); -LUA_API void (lua_pushunsigned) (lua_State *L, lua_Unsigned n); -LUA_API const char *(lua_pushlstring) (lua_State *L, const char *s, size_t l); -LUA_API const char *(lua_pushstring) (lua_State *L, const char *s); -LUA_API const char *(lua_pushvfstring) (lua_State *L, const char *fmt, - va_list argp); -LUA_API const char *(lua_pushfstring) (lua_State *L, const char *fmt, ...); -LUA_API void (lua_pushcclosure) (lua_State *L, lua_CFunction fn, int n); -LUA_API void (lua_pushboolean) (lua_State *L, int b); -LUA_API void (lua_pushlightuserdata) (lua_State *L, void *p); -LUA_API int (lua_pushthread) (lua_State *L); - - -/* -** get functions (Lua -> stack) -*/ -LUA_API void (lua_getglobal) (lua_State *L, const char *var); -LUA_API void (lua_gettable) (lua_State *L, int idx); -LUA_API void (lua_getfield) (lua_State *L, int idx, const char *k); -LUA_API void (lua_rawget) (lua_State *L, int idx); -LUA_API void (lua_rawgeti) (lua_State *L, int idx, int n); -LUA_API void (lua_rawgetp) (lua_State *L, int idx, const void *p); -LUA_API void (lua_createtable) (lua_State *L, int narr, int nrec); -LUA_API void *(lua_newuserdata) (lua_State *L, size_t sz); -LUA_API int (lua_getmetatable) (lua_State *L, int objindex); -LUA_API void (lua_getuservalue) (lua_State *L, int idx); - - -/* -** set functions (stack -> Lua) -*/ -LUA_API void (lua_setglobal) (lua_State *L, const char *var); -LUA_API void (lua_settable) (lua_State *L, int idx); -LUA_API void (lua_setfield) (lua_State *L, int idx, const char *k); -LUA_API void (lua_rawset) (lua_State *L, int idx); -LUA_API void (lua_rawseti) (lua_State *L, int idx, int n); -LUA_API void (lua_rawsetp) (lua_State *L, int idx, const void *p); -LUA_API int (lua_setmetatable) (lua_State *L, int objindex); -LUA_API void (lua_setuservalue) (lua_State *L, int idx); - - -/* -** 'load' and 'call' functions (load and run Lua code) -*/ -LUA_API void (lua_callk) (lua_State *L, int nargs, int nresults, int ctx, - lua_CFunction k); -#define lua_call(L,n,r) lua_callk(L, (n), (r), 0, NULL) - -LUA_API int (lua_getctx) (lua_State *L, int *ctx); - -LUA_API int (lua_pcallk) (lua_State *L, int nargs, int nresults, int errfunc, - int ctx, lua_CFunction k); -#define lua_pcall(L,n,r,f) lua_pcallk(L, (n), (r), (f), 0, NULL) - -LUA_API int (lua_load) (lua_State *L, lua_Reader reader, void *dt, - const char *chunkname, - const char *mode); - -LUA_API int (lua_dump) (lua_State *L, lua_Writer writer, void *data); - - -/* -** coroutine functions -*/ -LUA_API int (lua_yieldk) (lua_State *L, int nresults, int ctx, - lua_CFunction k); -#define lua_yield(L,n) lua_yieldk(L, (n), 0, NULL) -LUA_API int (lua_resume) (lua_State *L, lua_State *from, int narg); -LUA_API int (lua_status) (lua_State *L); - -/* -** garbage-collection function and options -*/ - -#define LUA_GCSTOP 0 -#define LUA_GCRESTART 1 -#define LUA_GCCOLLECT 2 -#define LUA_GCCOUNT 3 -#define LUA_GCCOUNTB 4 -#define LUA_GCSTEP 5 -#define LUA_GCSETPAUSE 6 -#define LUA_GCSETSTEPMUL 7 -#define LUA_GCSETMAJORINC 8 -#define LUA_GCISRUNNING 9 -#define LUA_GCGEN 10 -#define LUA_GCINC 11 - -LUA_API int (lua_gc) (lua_State *L, int what, int data); - - -/* -** miscellaneous functions -*/ - -LUA_API int (lua_error) (lua_State *L); - -LUA_API int (lua_next) (lua_State *L, int idx); - -LUA_API void (lua_concat) (lua_State *L, int n); -LUA_API void (lua_len) (lua_State *L, int idx); - -LUA_API lua_Alloc (lua_getallocf) (lua_State *L, void **ud); -LUA_API void (lua_setallocf) (lua_State *L, lua_Alloc f, void *ud); - - - -/* -** =============================================================== -** some useful macros -** =============================================================== -*/ - -#define lua_tonumber(L,i) lua_tonumberx(L,i,NULL) -#define lua_tointeger(L,i) lua_tointegerx(L,i,NULL) -#define lua_tounsigned(L,i) lua_tounsignedx(L,i,NULL) - -#define lua_pop(L,n) lua_settop(L, -(n)-1) - -#define lua_newtable(L) lua_createtable(L, 0, 0) - -#define lua_register(L,n,f) (lua_pushcfunction(L, (f)), lua_setglobal(L, (n))) - -#define lua_pushcfunction(L,f) lua_pushcclosure(L, (f), 0) - -#define lua_isfunction(L,n) (lua_type(L, (n)) == LUA_TFUNCTION) -#define lua_istable(L,n) (lua_type(L, (n)) == LUA_TTABLE) -#define lua_islightuserdata(L,n) (lua_type(L, (n)) == LUA_TLIGHTUSERDATA) -#define lua_isnil(L,n) (lua_type(L, (n)) == LUA_TNIL) -#define lua_isboolean(L,n) (lua_type(L, (n)) == LUA_TBOOLEAN) -#define lua_isthread(L,n) (lua_type(L, (n)) == LUA_TTHREAD) -#define lua_isnone(L,n) (lua_type(L, (n)) == LUA_TNONE) -#define lua_isnoneornil(L, n) (lua_type(L, (n)) <= 0) - -#define lua_pushliteral(L, s) \ - lua_pushlstring(L, "" s, (sizeof(s)/sizeof(char))-1) - -#define lua_pushglobaltable(L) \ - lua_rawgeti(L, LUA_REGISTRYINDEX, LUA_RIDX_GLOBALS) - -#define lua_tostring(L,i) lua_tolstring(L, (i), NULL) - - - -/* -** {====================================================================== -** Debug API -** ======================================================================= -*/ - - -/* -** Event codes -*/ -#define LUA_HOOKCALL 0 -#define LUA_HOOKRET 1 -#define LUA_HOOKLINE 2 -#define LUA_HOOKCOUNT 3 -#define LUA_HOOKTAILCALL 4 - - -/* -** Event masks -*/ -#define LUA_MASKCALL (1 << LUA_HOOKCALL) -#define LUA_MASKRET (1 << LUA_HOOKRET) -#define LUA_MASKLINE (1 << LUA_HOOKLINE) -#define LUA_MASKCOUNT (1 << LUA_HOOKCOUNT) - -typedef struct lua_Debug lua_Debug; /* activation record */ - - -/* Functions to be called by the debugger in specific events */ -typedef void (*lua_Hook) (lua_State *L, lua_Debug *ar); - - -LUA_API int (lua_getstack) (lua_State *L, int level, lua_Debug *ar); -LUA_API int (lua_getinfo) (lua_State *L, const char *what, lua_Debug *ar); -LUA_API const char *(lua_getlocal) (lua_State *L, const lua_Debug *ar, int n); -LUA_API const char *(lua_setlocal) (lua_State *L, const lua_Debug *ar, int n); -LUA_API const char *(lua_getupvalue) (lua_State *L, int funcindex, int n); -LUA_API const char *(lua_setupvalue) (lua_State *L, int funcindex, int n); - -LUA_API void *(lua_upvalueid) (lua_State *L, int fidx, int n); -LUA_API void (lua_upvaluejoin) (lua_State *L, int fidx1, int n1, - int fidx2, int n2); - -LUA_API int (lua_sethook) (lua_State *L, lua_Hook func, int mask, int count); -LUA_API lua_Hook (lua_gethook) (lua_State *L); -LUA_API int (lua_gethookmask) (lua_State *L); -LUA_API int (lua_gethookcount) (lua_State *L); - - -struct lua_Debug { - int event; - const char *name; /* (n) */ - const char *namewhat; /* (n) 'global', 'local', 'field', 'method' */ - const char *what; /* (S) 'Lua', 'C', 'main', 'tail' */ - const char *source; /* (S) */ - int currentline; /* (l) */ - int linedefined; /* (S) */ - int lastlinedefined; /* (S) */ - unsigned char nups; /* (u) number of upvalues */ - unsigned char nparams;/* (u) number of parameters */ - char isvararg; /* (u) */ - char istailcall; /* (t) */ - char short_src[LUA_IDSIZE]; /* (S) */ - /* private part */ - struct CallInfo *i_ci; /* active function */ -}; - -/* }====================================================================== */ - - -/****************************************************************************** -* Copyright (C) 1994-2015 Lua.org, PUC-Rio. -* -* 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 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -******************************************************************************/ - - -#endif diff --git a/source/libs/lua52/lua52-src/src/lua.hpp b/source/libs/lua52/lua52-src/src/lua.hpp deleted file mode 100644 index ec417f59469c8672a13a726afe6186cccbe54895..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lua.hpp +++ /dev/null @@ -1,9 +0,0 @@ -// lua.hpp -// Lua header files for C++ -// <<extern "C">> not supplied automatically because Lua also compiles as C++ - -extern "C" { -#include "lua.h" -#include "lualib.h" -#include "lauxlib.h" -} diff --git a/source/libs/lua52/lua52-src/src/luac.c b/source/libs/lua52/lua52-src/src/luac.c deleted file mode 100644 index 7409706ec729a901dbb2f8030bbb08ce3b024ce2..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/luac.c +++ /dev/null @@ -1,432 +0,0 @@ -/* -** $Id: luac.c,v 1.69 2011/11/29 17:46:33 lhf Exp $ -** Lua compiler (saves bytecodes to files; also list bytecodes) -** See Copyright Notice in lua.h -*/ - -#include <errno.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#define luac_c -#define LUA_CORE - -#include "lua.h" -#include "lauxlib.h" - -#include "lobject.h" -#include "lstate.h" -#include "lundump.h" - -static void PrintFunction(const Proto* f, int full); -#define luaU_print PrintFunction - -#define PROGNAME "luac" /* default program name */ -#define OUTPUT PROGNAME ".out" /* default output file */ - -static int listing=0; /* list bytecodes? */ -static int dumping=1; /* dump bytecodes? */ -static int stripping=0; /* strip debug information? */ -static char Output[]={ OUTPUT }; /* default output file name */ -static const char* output=Output; /* actual output file name */ -static const char* progname=PROGNAME; /* actual program name */ - -static void fatal(const char* message) -{ - fprintf(stderr,"%s: %s\n",progname,message); - exit(EXIT_FAILURE); -} - -static void cannot(const char* what) -{ - fprintf(stderr,"%s: cannot %s %s: %s\n",progname,what,output,strerror(errno)); - exit(EXIT_FAILURE); -} - -static void usage(const char* message) -{ - if (*message=='-') - fprintf(stderr,"%s: unrecognized option " LUA_QS "\n",progname,message); - else - fprintf(stderr,"%s: %s\n",progname,message); - fprintf(stderr, - "usage: %s [options] [filenames]\n" - "Available options are:\n" - " -l list (use -l -l for full listing)\n" - " -o name output to file " LUA_QL("name") " (default is \"%s\")\n" - " -p parse only\n" - " -s strip debug information\n" - " -v show version information\n" - " -- stop handling options\n" - " - stop handling options and process stdin\n" - ,progname,Output); - exit(EXIT_FAILURE); -} - -#define IS(s) (strcmp(argv[i],s)==0) - -static int doargs(int argc, char* argv[]) -{ - int i; - int version=0; - if (argv[0]!=NULL && *argv[0]!=0) progname=argv[0]; - for (i=1; i<argc; i++) - { - if (*argv[i]!='-') /* end of options; keep it */ - break; - else if (IS("--")) /* end of options; skip it */ - { - ++i; - if (version) ++version; - break; - } - else if (IS("-")) /* end of options; use stdin */ - break; - else if (IS("-l")) /* list */ - ++listing; - else if (IS("-o")) /* output file */ - { - output=argv[++i]; - if (output==NULL || *output==0 || (*output=='-' && output[1]!=0)) - usage(LUA_QL("-o") " needs argument"); - if (IS("-")) output=NULL; - } - else if (IS("-p")) /* parse only */ - dumping=0; - else if (IS("-s")) /* strip debug information */ - stripping=1; - else if (IS("-v")) /* show version */ - ++version; - else /* unknown option */ - usage(argv[i]); - } - if (i==argc && (listing || !dumping)) - { - dumping=0; - argv[--i]=Output; - } - if (version) - { - printf("%s\n",LUA_COPYRIGHT); - if (version==argc-1) exit(EXIT_SUCCESS); - } - return i; -} - -#define FUNCTION "(function()end)();" - -static const char* reader(lua_State *L, void *ud, size_t *size) -{ - UNUSED(L); - if ((*(int*)ud)--) - { - *size=sizeof(FUNCTION)-1; - return FUNCTION; - } - else - { - *size=0; - return NULL; - } -} - -#define toproto(L,i) getproto(L->top+(i)) - -static const Proto* combine(lua_State* L, int n) -{ - if (n==1) - return toproto(L,-1); - else - { - Proto* f; - int i=n; - if (lua_load(L,reader,&i,"=(" PROGNAME ")",NULL)!=LUA_OK) fatal(lua_tostring(L,-1)); - f=toproto(L,-1); - for (i=0; i<n; i++) - { - f->p[i]=toproto(L,i-n-1); - if (f->p[i]->sizeupvalues>0) f->p[i]->upvalues[0].instack=0; - } - f->sizelineinfo=0; - return f; - } -} - -static int writer(lua_State* L, const void* p, size_t size, void* u) -{ - UNUSED(L); - return (fwrite(p,size,1,(FILE*)u)!=1) && (size!=0); -} - -static int pmain(lua_State* L) -{ - int argc=(int)lua_tointeger(L,1); - char** argv=(char**)lua_touserdata(L,2); - const Proto* f; - int i; - if (!lua_checkstack(L,argc)) fatal("too many input files"); - for (i=0; i<argc; i++) - { - const char* filename=IS("-") ? NULL : argv[i]; - if (luaL_loadfile(L,filename)!=LUA_OK) fatal(lua_tostring(L,-1)); - } - f=combine(L,argc); - if (listing) luaU_print(f,listing>1); - if (dumping) - { - FILE* D= (output==NULL) ? stdout : fopen(output,"wb"); - if (D==NULL) cannot("open"); - lua_lock(L); - luaU_dump(L,f,writer,D,stripping); - lua_unlock(L); - if (ferror(D)) cannot("write"); - if (fclose(D)) cannot("close"); - } - return 0; -} - -int main(int argc, char* argv[]) -{ - lua_State* L; - int i=doargs(argc,argv); - argc-=i; argv+=i; - if (argc<=0) usage("no input files given"); - L=luaL_newstate(); - if (L==NULL) fatal("cannot create state: not enough memory"); - lua_pushcfunction(L,&pmain); - lua_pushinteger(L,argc); - lua_pushlightuserdata(L,argv); - if (lua_pcall(L,2,0,0)!=LUA_OK) fatal(lua_tostring(L,-1)); - lua_close(L); - return EXIT_SUCCESS; -} - -/* -** $Id: print.c,v 1.69 2013/07/04 01:03:46 lhf Exp $ -** print bytecodes -** See Copyright Notice in lua.h -*/ - -#include <ctype.h> -#include <stdio.h> - -#define luac_c -#define LUA_CORE - -#include "ldebug.h" -#include "lobject.h" -#include "lopcodes.h" - -#define VOID(p) ((const void*)(p)) - -static void PrintString(const TString* ts) -{ - const char* s=getstr(ts); - size_t i,n=ts->tsv.len; - printf("%c",'"'); - for (i=0; i<n; i++) - { - int c=(int)(unsigned char)s[i]; - switch (c) - { - case '"': printf("\\\""); break; - case '\\': printf("\\\\"); break; - case '\a': printf("\\a"); break; - case '\b': printf("\\b"); break; - case '\f': printf("\\f"); break; - case '\n': printf("\\n"); break; - case '\r': printf("\\r"); break; - case '\t': printf("\\t"); break; - case '\v': printf("\\v"); break; - default: if (isprint(c)) - printf("%c",c); - else - printf("\\%03d",c); - } - } - printf("%c",'"'); -} - -static void PrintConstant(const Proto* f, int i) -{ - const TValue* o=&f->k[i]; - switch (ttypenv(o)) - { - case LUA_TNIL: - printf("nil"); - break; - case LUA_TBOOLEAN: - printf(bvalue(o) ? "true" : "false"); - break; - case LUA_TNUMBER: - printf(LUA_NUMBER_FMT,nvalue(o)); - break; - case LUA_TSTRING: - PrintString(rawtsvalue(o)); - break; - default: /* cannot happen */ - printf("? type=%d",ttype(o)); - break; - } -} - -#define UPVALNAME(x) ((f->upvalues[x].name) ? getstr(f->upvalues[x].name) : "-") -#define MYK(x) (-1-(x)) - -static void PrintCode(const Proto* f) -{ - const Instruction* code=f->code; - int pc,n=f->sizecode; - for (pc=0; pc<n; pc++) - { - Instruction i=code[pc]; - OpCode o=GET_OPCODE(i); - int a=GETARG_A(i); - int b=GETARG_B(i); - int c=GETARG_C(i); - int ax=GETARG_Ax(i); - int bx=GETARG_Bx(i); - int sbx=GETARG_sBx(i); - int line=getfuncline(f,pc); - printf("\t%d\t",pc+1); - if (line>0) printf("[%d]\t",line); else printf("[-]\t"); - printf("%-9s\t",luaP_opnames[o]); - switch (getOpMode(o)) - { - case iABC: - printf("%d",a); - if (getBMode(o)!=OpArgN) printf(" %d",ISK(b) ? (MYK(INDEXK(b))) : b); - if (getCMode(o)!=OpArgN) printf(" %d",ISK(c) ? (MYK(INDEXK(c))) : c); - break; - case iABx: - printf("%d",a); - if (getBMode(o)==OpArgK) printf(" %d",MYK(bx)); - if (getBMode(o)==OpArgU) printf(" %d",bx); - break; - case iAsBx: - printf("%d %d",a,sbx); - break; - case iAx: - printf("%d",MYK(ax)); - break; - } - switch (o) - { - case OP_LOADK: - printf("\t; "); PrintConstant(f,bx); - break; - case OP_GETUPVAL: - case OP_SETUPVAL: - printf("\t; %s",UPVALNAME(b)); - break; - case OP_GETTABUP: - printf("\t; %s",UPVALNAME(b)); - if (ISK(c)) { printf(" "); PrintConstant(f,INDEXK(c)); } - break; - case OP_SETTABUP: - printf("\t; %s",UPVALNAME(a)); - if (ISK(b)) { printf(" "); PrintConstant(f,INDEXK(b)); } - if (ISK(c)) { printf(" "); PrintConstant(f,INDEXK(c)); } - break; - case OP_GETTABLE: - case OP_SELF: - if (ISK(c)) { printf("\t; "); PrintConstant(f,INDEXK(c)); } - break; - case OP_SETTABLE: - case OP_ADD: - case OP_SUB: - case OP_MUL: - case OP_DIV: - case OP_POW: - case OP_EQ: - case OP_LT: - case OP_LE: - if (ISK(b) || ISK(c)) - { - printf("\t; "); - if (ISK(b)) PrintConstant(f,INDEXK(b)); else printf("-"); - printf(" "); - if (ISK(c)) PrintConstant(f,INDEXK(c)); else printf("-"); - } - break; - case OP_JMP: - case OP_FORLOOP: - case OP_FORPREP: - case OP_TFORLOOP: - printf("\t; to %d",sbx+pc+2); - break; - case OP_CLOSURE: - printf("\t; %p",VOID(f->p[bx])); - break; - case OP_SETLIST: - if (c==0) printf("\t; %d",(int)code[++pc]); else printf("\t; %d",c); - break; - case OP_EXTRAARG: - printf("\t; "); PrintConstant(f,ax); - break; - default: - break; - } - printf("\n"); - } -} - -#define SS(x) ((x==1)?"":"s") -#define S(x) (int)(x),SS(x) - -static void PrintHeader(const Proto* f) -{ - const char* s=f->source ? getstr(f->source) : "=?"; - if (*s=='@' || *s=='=') - s++; - else if (*s==LUA_SIGNATURE[0]) - s="(bstring)"; - else - s="(string)"; - printf("\n%s <%s:%d,%d> (%d instruction%s at %p)\n", - (f->linedefined==0)?"main":"function",s, - f->linedefined,f->lastlinedefined, - S(f->sizecode),VOID(f)); - printf("%d%s param%s, %d slot%s, %d upvalue%s, ", - (int)(f->numparams),f->is_vararg?"+":"",SS(f->numparams), - S(f->maxstacksize),S(f->sizeupvalues)); - printf("%d local%s, %d constant%s, %d function%s\n", - S(f->sizelocvars),S(f->sizek),S(f->sizep)); -} - -static void PrintDebug(const Proto* f) -{ - int i,n; - n=f->sizek; - printf("constants (%d) for %p:\n",n,VOID(f)); - for (i=0; i<n; i++) - { - printf("\t%d\t",i+1); - PrintConstant(f,i); - printf("\n"); - } - n=f->sizelocvars; - printf("locals (%d) for %p:\n",n,VOID(f)); - for (i=0; i<n; i++) - { - printf("\t%d\t%s\t%d\t%d\n", - i,getstr(f->locvars[i].varname),f->locvars[i].startpc+1,f->locvars[i].endpc+1); - } - n=f->sizeupvalues; - printf("upvalues (%d) for %p:\n",n,VOID(f)); - for (i=0; i<n; i++) - { - printf("\t%d\t%s\t%d\t%d\n", - i,UPVALNAME(i),f->upvalues[i].instack,f->upvalues[i].idx); - } -} - -static void PrintFunction(const Proto* f, int full) -{ - int i,n=f->sizep; - PrintHeader(f); - PrintCode(f); - if (full) PrintDebug(f); - for (i=0; i<n; i++) PrintFunction(f->p[i],full); -} diff --git a/source/libs/lua52/lua52-src/src/luaconf.h b/source/libs/lua52/lua52-src/src/luaconf.h deleted file mode 100644 index 1b0ff59fa008e3831d765dc3de65abe4d7d36a4f..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/luaconf.h +++ /dev/null @@ -1,551 +0,0 @@ -/* -** $Id: luaconf.h,v 1.176.1.2 2013/11/21 17:26:16 roberto Exp $ -** Configuration file for Lua -** See Copyright Notice in lua.h -*/ - - -#ifndef lconfig_h -#define lconfig_h - -#include <limits.h> -#include <stddef.h> - - -/* -** ================================================================== -** Search for "@@" to find all configurable definitions. -** =================================================================== -*/ - - -/* -@@ LUA_ANSI controls the use of non-ansi features. -** CHANGE it (define it) if you want Lua to avoid the use of any -** non-ansi feature or library. -*/ -#if !defined(LUA_ANSI) && defined(__STRICT_ANSI__) -#define LUA_ANSI -#endif - - -#if !defined(LUA_ANSI) && defined(_WIN32) && !defined(_WIN32_WCE) -#define LUA_WIN /* enable goodies for regular Windows platforms */ -#endif - -#if defined(LUA_WIN) -#define LUA_DL_DLL -#define LUA_USE_AFORMAT /* assume 'printf' handles 'aA' specifiers */ -#endif - - - -#if defined(LUA_USE_LINUX) -#define LUA_USE_POSIX -#define LUA_USE_DLOPEN /* needs an extra library: -ldl */ -#define LUA_USE_READLINE /* needs some extra libraries */ -#define LUA_USE_STRTODHEX /* assume 'strtod' handles hex formats */ -#define LUA_USE_AFORMAT /* assume 'printf' handles 'aA' specifiers */ -#define LUA_USE_LONGLONG /* assume support for long long */ -#endif - -#if defined(LUA_USE_MACOSX) -#define LUA_USE_POSIX -#define LUA_USE_DLOPEN /* does not need -ldl */ -#define LUA_USE_READLINE /* needs an extra library: -lreadline */ -#define LUA_USE_STRTODHEX /* assume 'strtod' handles hex formats */ -#define LUA_USE_AFORMAT /* assume 'printf' handles 'aA' specifiers */ -#define LUA_USE_LONGLONG /* assume support for long long */ -#endif - - - -/* -@@ LUA_USE_POSIX includes all functionality listed as X/Open System -@* Interfaces Extension (XSI). -** CHANGE it (define it) if your system is XSI compatible. -*/ -#if defined(LUA_USE_POSIX) -#define LUA_USE_MKSTEMP -#define LUA_USE_ISATTY -#define LUA_USE_POPEN -#define LUA_USE_ULONGJMP -#define LUA_USE_GMTIME_R -#endif - - - -/* -@@ LUA_PATH_DEFAULT is the default path that Lua uses to look for -@* Lua libraries. -@@ LUA_CPATH_DEFAULT is the default path that Lua uses to look for -@* C libraries. -** CHANGE them if your machine has a non-conventional directory -** hierarchy or if you want to install your libraries in -** non-conventional directories. -*/ -#if defined(_WIN32) /* { */ -/* -** In Windows, any exclamation mark ('!') in the path is replaced by the -** path of the directory of the executable file of the current process. -*/ -#define LUA_LDIR "!\\lua\\" -#define LUA_CDIR "!\\" -#define LUA_PATH_DEFAULT \ - LUA_LDIR"?.lua;" LUA_LDIR"?\\init.lua;" \ - LUA_CDIR"?.lua;" LUA_CDIR"?\\init.lua;" ".\\?.lua" -#define LUA_CPATH_DEFAULT \ - LUA_CDIR"?.dll;" LUA_CDIR"loadall.dll;" ".\\?.dll" - -#else /* }{ */ - -#define LUA_VDIR LUA_VERSION_MAJOR "." LUA_VERSION_MINOR "/" -#define LUA_ROOT "/usr/local/" -#define LUA_LDIR LUA_ROOT "share/lua/" LUA_VDIR -#define LUA_CDIR LUA_ROOT "lib/lua/" LUA_VDIR -#define LUA_PATH_DEFAULT \ - LUA_LDIR"?.lua;" LUA_LDIR"?/init.lua;" \ - LUA_CDIR"?.lua;" LUA_CDIR"?/init.lua;" "./?.lua" -#define LUA_CPATH_DEFAULT \ - LUA_CDIR"?.so;" LUA_CDIR"loadall.so;" "./?.so" -#endif /* } */ - - -/* -@@ LUA_DIRSEP is the directory separator (for submodules). -** CHANGE it if your machine does not use "/" as the directory separator -** and is not Windows. (On Windows Lua automatically uses "\".) -*/ -#if defined(_WIN32) -#define LUA_DIRSEP "\\" -#else -#define LUA_DIRSEP "/" -#endif - - -/* -@@ LUA_ENV is the name of the variable that holds the current -@@ environment, used to access global names. -** CHANGE it if you do not like this name. -*/ -#define LUA_ENV "_ENV" - - -/* -@@ LUA_API is a mark for all core API functions. -@@ LUALIB_API is a mark for all auxiliary library functions. -@@ LUAMOD_API is a mark for all standard library opening functions. -** CHANGE them if you need to define those functions in some special way. -** For instance, if you want to create one Windows DLL with the core and -** the libraries, you may want to use the following definition (define -** LUA_BUILD_AS_DLL to get it). -*/ -#if defined(LUA_BUILD_AS_DLL) /* { */ - -#if defined(LUA_CORE) || defined(LUA_LIB) /* { */ -#define LUA_API __declspec(dllexport) -#else /* }{ */ -#define LUA_API __declspec(dllimport) -#endif /* } */ - -#else /* }{ */ - -#define LUA_API extern - -#endif /* } */ - - -/* more often than not the libs go together with the core */ -#define LUALIB_API LUA_API -#define LUAMOD_API LUALIB_API - - -/* -@@ LUAI_FUNC is a mark for all extern functions that are not to be -@* exported to outside modules. -@@ LUAI_DDEF and LUAI_DDEC are marks for all extern (const) variables -@* that are not to be exported to outside modules (LUAI_DDEF for -@* definitions and LUAI_DDEC for declarations). -** CHANGE them if you need to mark them in some special way. Elf/gcc -** (versions 3.2 and later) mark them as "hidden" to optimize access -** when Lua is compiled as a shared library. Not all elf targets support -** this attribute. Unfortunately, gcc does not offer a way to check -** whether the target offers that support, and those without support -** give a warning about it. To avoid these warnings, change to the -** default definition. -*/ -#if defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 302) && \ - defined(__ELF__) /* { */ -#define LUAI_FUNC __attribute__((visibility("hidden"))) extern -#define LUAI_DDEC LUAI_FUNC -#define LUAI_DDEF /* empty */ - -#else /* }{ */ -#define LUAI_FUNC extern -#define LUAI_DDEC extern -#define LUAI_DDEF /* empty */ -#endif /* } */ - - - -/* -@@ LUA_QL describes how error messages quote program elements. -** CHANGE it if you want a different appearance. -*/ -#define LUA_QL(x) "'" x "'" -#define LUA_QS LUA_QL("%s") - - -/* -@@ LUA_IDSIZE gives the maximum size for the description of the source -@* of a function in debug information. -** CHANGE it if you want a different size. -*/ -#define LUA_IDSIZE 60 - - -/* -@@ luai_writestring/luai_writeline define how 'print' prints its results. -** They are only used in libraries and the stand-alone program. (The #if -** avoids including 'stdio.h' everywhere.) -*/ -#if defined(LUA_LIB) || defined(lua_c) -#include <stdio.h> -#define luai_writestring(s,l) fwrite((s), sizeof(char), (l), stdout) -#define luai_writeline() (luai_writestring("\n", 1), fflush(stdout)) -#endif - -/* -@@ luai_writestringerror defines how to print error messages. -** (A format string with one argument is enough for Lua...) -*/ -#define luai_writestringerror(s,p) \ - (fprintf(stderr, (s), (p)), fflush(stderr)) - - -/* -@@ LUAI_MAXSHORTLEN is the maximum length for short strings, that is, -** strings that are internalized. (Cannot be smaller than reserved words -** or tags for metamethods, as these strings must be internalized; -** #("function") = 8, #("__newindex") = 10.) -*/ -#define LUAI_MAXSHORTLEN 40 - - - -/* -** {================================================================== -** Compatibility with previous versions -** =================================================================== -*/ - -/* -@@ LUA_COMPAT_ALL controls all compatibility options. -** You can define it to get all options, or change specific options -** to fit your specific needs. -*/ -#if defined(LUA_COMPAT_ALL) /* { */ - -/* -@@ LUA_COMPAT_UNPACK controls the presence of global 'unpack'. -** You can replace it with 'table.unpack'. -*/ -#define LUA_COMPAT_UNPACK - -/* -@@ LUA_COMPAT_LOADERS controls the presence of table 'package.loaders'. -** You can replace it with 'package.searchers'. -*/ -#define LUA_COMPAT_LOADERS - -/* -@@ macro 'lua_cpcall' emulates deprecated function lua_cpcall. -** You can call your C function directly (with light C functions). -*/ -#define lua_cpcall(L,f,u) \ - (lua_pushcfunction(L, (f)), \ - lua_pushlightuserdata(L,(u)), \ - lua_pcall(L,1,0,0)) - - -/* -@@ LUA_COMPAT_LOG10 defines the function 'log10' in the math library. -** You can rewrite 'log10(x)' as 'log(x, 10)'. -*/ -#define LUA_COMPAT_LOG10 - -/* -@@ LUA_COMPAT_LOADSTRING defines the function 'loadstring' in the base -** library. You can rewrite 'loadstring(s)' as 'load(s)'. -*/ -#define LUA_COMPAT_LOADSTRING - -/* -@@ LUA_COMPAT_MAXN defines the function 'maxn' in the table library. -*/ -#define LUA_COMPAT_MAXN - -/* -@@ The following macros supply trivial compatibility for some -** changes in the API. The macros themselves document how to -** change your code to avoid using them. -*/ -#define lua_strlen(L,i) lua_rawlen(L, (i)) - -#define lua_objlen(L,i) lua_rawlen(L, (i)) - -#define lua_equal(L,idx1,idx2) lua_compare(L,(idx1),(idx2),LUA_OPEQ) -#define lua_lessthan(L,idx1,idx2) lua_compare(L,(idx1),(idx2),LUA_OPLT) - -/* -@@ LUA_COMPAT_MODULE controls compatibility with previous -** module functions 'module' (Lua) and 'luaL_register' (C). -*/ -#define LUA_COMPAT_MODULE - -#endif /* } */ - -/* }================================================================== */ - - - -/* -@@ LUAI_BITSINT defines the number of bits in an int. -** CHANGE here if Lua cannot automatically detect the number of bits of -** your machine. Probably you do not need to change this. -*/ -/* avoid overflows in comparison */ -#if INT_MAX-20 < 32760 /* { */ -#define LUAI_BITSINT 16 -#elif INT_MAX > 2147483640L /* }{ */ -/* int has at least 32 bits */ -#define LUAI_BITSINT 32 -#else /* }{ */ -#error "you must define LUA_BITSINT with number of bits in an integer" -#endif /* } */ - - -/* -@@ LUA_INT32 is a signed integer with exactly 32 bits. -@@ LUAI_UMEM is an unsigned integer big enough to count the total -@* memory used by Lua. -@@ LUAI_MEM is a signed integer big enough to count the total memory -@* used by Lua. -** CHANGE here if for some weird reason the default definitions are not -** good enough for your machine. Probably you do not need to change -** this. -*/ -#if LUAI_BITSINT >= 32 /* { */ -#define LUA_INT32 int -#define LUAI_UMEM size_t -#define LUAI_MEM ptrdiff_t -#else /* }{ */ -/* 16-bit ints */ -#define LUA_INT32 long -#define LUAI_UMEM unsigned long -#define LUAI_MEM long -#endif /* } */ - - -/* -@@ LUAI_MAXSTACK limits the size of the Lua stack. -** CHANGE it if you need a different limit. This limit is arbitrary; -** its only purpose is to stop Lua from consuming unlimited stack -** space (and to reserve some numbers for pseudo-indices). -*/ -#if LUAI_BITSINT >= 32 -#define LUAI_MAXSTACK 1000000 -#else -#define LUAI_MAXSTACK 15000 -#endif - -/* reserve some space for error handling */ -#define LUAI_FIRSTPSEUDOIDX (-LUAI_MAXSTACK - 1000) - - - - -/* -@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system. -** CHANGE it if it uses too much C-stack space. -*/ -#define LUAL_BUFFERSIZE BUFSIZ - - - - -/* -** {================================================================== -@@ LUA_NUMBER is the type of numbers in Lua. -** CHANGE the following definitions only if you want to build Lua -** with a number type different from double. You may also need to -** change lua_number2int & lua_number2integer. -** =================================================================== -*/ - -#define LUA_NUMBER_DOUBLE -#define LUA_NUMBER double - -/* -@@ LUAI_UACNUMBER is the result of an 'usual argument conversion' -@* over a number. -*/ -#define LUAI_UACNUMBER double - - -/* -@@ LUA_NUMBER_SCAN is the format for reading numbers. -@@ LUA_NUMBER_FMT is the format for writing numbers. -@@ lua_number2str converts a number to a string. -@@ LUAI_MAXNUMBER2STR is maximum size of previous conversion. -*/ -#define LUA_NUMBER_SCAN "%lf" -#define LUA_NUMBER_FMT "%.14g" -#define lua_number2str(s,n) sprintf((s), LUA_NUMBER_FMT, (n)) -#define LUAI_MAXNUMBER2STR 32 /* 16 digits, sign, point, and \0 */ - - -/* -@@ l_mathop allows the addition of an 'l' or 'f' to all math operations -*/ -#define l_mathop(x) (x) - - -/* -@@ lua_str2number converts a decimal numeric string to a number. -@@ lua_strx2number converts an hexadecimal numeric string to a number. -** In C99, 'strtod' does both conversions. C89, however, has no function -** to convert floating hexadecimal strings to numbers. For these -** systems, you can leave 'lua_strx2number' undefined and Lua will -** provide its own implementation. -*/ -#define lua_str2number(s,p) strtod((s), (p)) - -#if defined(LUA_USE_STRTODHEX) -#define lua_strx2number(s,p) strtod((s), (p)) -#endif - - -/* -@@ The luai_num* macros define the primitive operations over numbers. -*/ - -/* the following operations need the math library */ -#if defined(lobject_c) || defined(lvm_c) -#include <math.h> -#define luai_nummod(L,a,b) ((a) - l_mathop(floor)((a)/(b))*(b)) -#define luai_numpow(L,a,b) (l_mathop(pow)(a,b)) -#endif - -/* these are quite standard operations */ -#if defined(LUA_CORE) -#define luai_numadd(L,a,b) ((a)+(b)) -#define luai_numsub(L,a,b) ((a)-(b)) -#define luai_nummul(L,a,b) ((a)*(b)) -#define luai_numdiv(L,a,b) ((a)/(b)) -#define luai_numunm(L,a) (-(a)) -#define luai_numeq(a,b) ((a)==(b)) -#define luai_numlt(L,a,b) ((a)<(b)) -#define luai_numle(L,a,b) ((a)<=(b)) -#define luai_numisnan(L,a) (!luai_numeq((a), (a))) -#endif - - - -/* -@@ LUA_INTEGER is the integral type used by lua_pushinteger/lua_tointeger. -** CHANGE that if ptrdiff_t is not adequate on your machine. (On most -** machines, ptrdiff_t gives a good choice between int or long.) -*/ -#define LUA_INTEGER ptrdiff_t - -/* -@@ LUA_UNSIGNED is the integral type used by lua_pushunsigned/lua_tounsigned. -** It must have at least 32 bits. -*/ -#define LUA_UNSIGNED unsigned LUA_INT32 - - - -/* -** Some tricks with doubles -*/ - -#if defined(LUA_NUMBER_DOUBLE) && !defined(LUA_ANSI) /* { */ -/* -** The next definitions activate some tricks to speed up the -** conversion from doubles to integer types, mainly to LUA_UNSIGNED. -** -@@ LUA_MSASMTRICK uses Microsoft assembler to avoid clashes with a -** DirectX idiosyncrasy. -** -@@ LUA_IEEE754TRICK uses a trick that should work on any machine -** using IEEE754 with a 32-bit integer type. -** -@@ LUA_IEEELL extends the trick to LUA_INTEGER; should only be -** defined when LUA_INTEGER is a 32-bit integer. -** -@@ LUA_IEEEENDIAN is the endianness of doubles in your machine -** (0 for little endian, 1 for big endian); if not defined, Lua will -** check it dynamically for LUA_IEEE754TRICK (but not for LUA_NANTRICK). -** -@@ LUA_NANTRICK controls the use of a trick to pack all types into -** a single double value, using NaN values to represent non-number -** values. The trick only works on 32-bit machines (ints and pointers -** are 32-bit values) with numbers represented as IEEE 754-2008 doubles -** with conventional endianess (12345678 or 87654321), in CPUs that do -** not produce signaling NaN values (all NaNs are quiet). -*/ - -/* Microsoft compiler on a Pentium (32 bit) ? */ -#if defined(LUA_WIN) && defined(_MSC_VER) && defined(_M_IX86) /* { */ - -#define LUA_MSASMTRICK -#define LUA_IEEEENDIAN 0 -#define LUA_NANTRICK - - -/* pentium 32 bits? */ -#elif defined(__i386__) || defined(__i386) || defined(__X86__) /* }{ */ - -#define LUA_IEEE754TRICK -#define LUA_IEEELL -#define LUA_IEEEENDIAN 0 -#define LUA_NANTRICK - -/* pentium 64 bits? */ -#elif defined(__x86_64) /* }{ */ - -#define LUA_IEEE754TRICK -#define LUA_IEEEENDIAN 0 - -#elif defined(__POWERPC__) || defined(__ppc__) /* }{ */ - -#define LUA_IEEE754TRICK -#define LUA_IEEEENDIAN 1 - -#else /* }{ */ - -/* assume IEEE754 and a 32-bit integer type */ -#define LUA_IEEE754TRICK - -#endif /* } */ - -#endif /* } */ - -/* }================================================================== */ - - - - -/* =================================================================== */ - -/* -** Local configuration. You can use this space to add your redefinitions -** without modifying the main part of the file. -*/ - - - -#endif - diff --git a/source/libs/lua52/lua52-src/src/lualib.h b/source/libs/lua52/lua52-src/src/lualib.h deleted file mode 100644 index da82005c9de25155e6b97b3c1dd779f3e7b0d9b7..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lualib.h +++ /dev/null @@ -1,55 +0,0 @@ -/* -** $Id: lualib.h,v 1.43.1.1 2013/04/12 18:48:47 roberto Exp $ -** Lua standard libraries -** See Copyright Notice in lua.h -*/ - - -#ifndef lualib_h -#define lualib_h - -#include "lua.h" - - - -LUAMOD_API int (luaopen_base) (lua_State *L); - -#define LUA_COLIBNAME "coroutine" -LUAMOD_API int (luaopen_coroutine) (lua_State *L); - -#define LUA_TABLIBNAME "table" -LUAMOD_API int (luaopen_table) (lua_State *L); - -#define LUA_IOLIBNAME "io" -LUAMOD_API int (luaopen_io) (lua_State *L); - -#define LUA_OSLIBNAME "os" -LUAMOD_API int (luaopen_os) (lua_State *L); - -#define LUA_STRLIBNAME "string" -LUAMOD_API int (luaopen_string) (lua_State *L); - -#define LUA_BITLIBNAME "bit32" -LUAMOD_API int (luaopen_bit32) (lua_State *L); - -#define LUA_MATHLIBNAME "math" -LUAMOD_API int (luaopen_math) (lua_State *L); - -#define LUA_DBLIBNAME "debug" -LUAMOD_API int (luaopen_debug) (lua_State *L); - -#define LUA_LOADLIBNAME "package" -LUAMOD_API int (luaopen_package) (lua_State *L); - - -/* open all previous libraries */ -LUALIB_API void (luaL_openlibs) (lua_State *L); - - - -#if !defined(lua_assert) -#define lua_assert(x) ((void)0) -#endif - - -#endif diff --git a/source/libs/lua52/lua52-src/src/lundump.c b/source/libs/lua52/lua52-src/src/lundump.c deleted file mode 100644 index 4163cb5d3b04a821d766ce596b3811340639015e..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lundump.c +++ /dev/null @@ -1,258 +0,0 @@ -/* -** $Id: lundump.c,v 2.22.1.1 2013/04/12 18:48:47 roberto Exp $ -** load precompiled Lua chunks -** See Copyright Notice in lua.h -*/ - -#include <string.h> - -#define lundump_c -#define LUA_CORE - -#include "lua.h" - -#include "ldebug.h" -#include "ldo.h" -#include "lfunc.h" -#include "lmem.h" -#include "lobject.h" -#include "lstring.h" -#include "lundump.h" -#include "lzio.h" - -typedef struct { - lua_State* L; - ZIO* Z; - Mbuffer* b; - const char* name; -} LoadState; - -static l_noret error(LoadState* S, const char* why) -{ - luaO_pushfstring(S->L,"%s: %s precompiled chunk",S->name,why); - luaD_throw(S->L,LUA_ERRSYNTAX); -} - -#define LoadMem(S,b,n,size) LoadBlock(S,b,(n)*(size)) -#define LoadByte(S) (lu_byte)LoadChar(S) -#define LoadVar(S,x) LoadMem(S,&x,1,sizeof(x)) -#define LoadVector(S,b,n,size) LoadMem(S,b,n,size) - -#if !defined(luai_verifycode) -#define luai_verifycode(L,b,f) /* empty */ -#endif - -static void LoadBlock(LoadState* S, void* b, size_t size) -{ - if (luaZ_read(S->Z,b,size)!=0) error(S,"truncated"); -} - -static int LoadChar(LoadState* S) -{ - char x; - LoadVar(S,x); - return x; -} - -static int LoadInt(LoadState* S) -{ - int x; - LoadVar(S,x); - if (x<0) error(S,"corrupted"); - return x; -} - -static lua_Number LoadNumber(LoadState* S) -{ - lua_Number x; - LoadVar(S,x); - return x; -} - -static TString* LoadString(LoadState* S) -{ - size_t size; - LoadVar(S,size); - if (size==0) - return NULL; - else - { - char* s=luaZ_openspace(S->L,S->b,size); - LoadBlock(S,s,size*sizeof(char)); - return luaS_newlstr(S->L,s,size-1); /* remove trailing '\0' */ - } -} - -static void LoadCode(LoadState* S, Proto* f) -{ - int n=LoadInt(S); - f->code=luaM_newvector(S->L,n,Instruction); - f->sizecode=n; - LoadVector(S,f->code,n,sizeof(Instruction)); -} - -static void LoadFunction(LoadState* S, Proto* f); - -static void LoadConstants(LoadState* S, Proto* f) -{ - int i,n; - n=LoadInt(S); - f->k=luaM_newvector(S->L,n,TValue); - f->sizek=n; - for (i=0; i<n; i++) setnilvalue(&f->k[i]); - for (i=0; i<n; i++) - { - TValue* o=&f->k[i]; - int t=LoadChar(S); - switch (t) - { - case LUA_TNIL: - setnilvalue(o); - break; - case LUA_TBOOLEAN: - setbvalue(o,LoadChar(S)); - break; - case LUA_TNUMBER: - setnvalue(o,LoadNumber(S)); - break; - case LUA_TSTRING: - setsvalue2n(S->L,o,LoadString(S)); - break; - default: lua_assert(0); - } - } - n=LoadInt(S); - f->p=luaM_newvector(S->L,n,Proto*); - f->sizep=n; - for (i=0; i<n; i++) f->p[i]=NULL; - for (i=0; i<n; i++) - { - f->p[i]=luaF_newproto(S->L); - LoadFunction(S,f->p[i]); - } -} - -static void LoadUpvalues(LoadState* S, Proto* f) -{ - int i,n; - n=LoadInt(S); - f->upvalues=luaM_newvector(S->L,n,Upvaldesc); - f->sizeupvalues=n; - for (i=0; i<n; i++) f->upvalues[i].name=NULL; - for (i=0; i<n; i++) - { - f->upvalues[i].instack=LoadByte(S); - f->upvalues[i].idx=LoadByte(S); - } -} - -static void LoadDebug(LoadState* S, Proto* f) -{ - int i,n; - f->source=LoadString(S); - n=LoadInt(S); - f->lineinfo=luaM_newvector(S->L,n,int); - f->sizelineinfo=n; - LoadVector(S,f->lineinfo,n,sizeof(int)); - n=LoadInt(S); - f->locvars=luaM_newvector(S->L,n,LocVar); - f->sizelocvars=n; - for (i=0; i<n; i++) f->locvars[i].varname=NULL; - for (i=0; i<n; i++) - { - f->locvars[i].varname=LoadString(S); - f->locvars[i].startpc=LoadInt(S); - f->locvars[i].endpc=LoadInt(S); - } - n=LoadInt(S); - for (i=0; i<n; i++) f->upvalues[i].name=LoadString(S); -} - -static void LoadFunction(LoadState* S, Proto* f) -{ - f->linedefined=LoadInt(S); - f->lastlinedefined=LoadInt(S); - f->numparams=LoadByte(S); - f->is_vararg=LoadByte(S); - f->maxstacksize=LoadByte(S); - LoadCode(S,f); - LoadConstants(S,f); - LoadUpvalues(S,f); - LoadDebug(S,f); -} - -/* the code below must be consistent with the code in luaU_header */ -#define N0 LUAC_HEADERSIZE -#define N1 (sizeof(LUA_SIGNATURE)-sizeof(char)) -#define N2 N1+2 -#define N3 N2+6 - -static void LoadHeader(LoadState* S) -{ - lu_byte h[LUAC_HEADERSIZE]; - lu_byte s[LUAC_HEADERSIZE]; - luaU_header(h); - memcpy(s,h,sizeof(char)); /* first char already read */ - LoadBlock(S,s+sizeof(char),LUAC_HEADERSIZE-sizeof(char)); - if (memcmp(h,s,N0)==0) return; - if (memcmp(h,s,N1)!=0) error(S,"not a"); - if (memcmp(h,s,N2)!=0) error(S,"version mismatch in"); - if (memcmp(h,s,N3)!=0) error(S,"incompatible"); else error(S,"corrupted"); -} - -/* -** load precompiled chunk -*/ -Closure* luaU_undump (lua_State* L, ZIO* Z, Mbuffer* buff, const char* name) -{ - LoadState S; - Closure* cl; - if (*name=='@' || *name=='=') - S.name=name+1; - else if (*name==LUA_SIGNATURE[0]) - S.name="binary string"; - else - S.name=name; - S.L=L; - S.Z=Z; - S.b=buff; - LoadHeader(&S); - cl=luaF_newLclosure(L,1); - setclLvalue(L,L->top,cl); incr_top(L); - cl->l.p=luaF_newproto(L); - LoadFunction(&S,cl->l.p); - if (cl->l.p->sizeupvalues != 1) - { - Proto* p=cl->l.p; - cl=luaF_newLclosure(L,cl->l.p->sizeupvalues); - cl->l.p=p; - setclLvalue(L,L->top-1,cl); - } - luai_verifycode(L,buff,cl->l.p); - return cl; -} - -#define MYINT(s) (s[0]-'0') -#define VERSION MYINT(LUA_VERSION_MAJOR)*16+MYINT(LUA_VERSION_MINOR) -#define FORMAT 0 /* this is the official format */ - -/* -* make header for precompiled chunks -* if you change the code below be sure to update LoadHeader and FORMAT above -* and LUAC_HEADERSIZE in lundump.h -*/ -void luaU_header (lu_byte* h) -{ - int x=1; - memcpy(h,LUA_SIGNATURE,sizeof(LUA_SIGNATURE)-sizeof(char)); - h+=sizeof(LUA_SIGNATURE)-sizeof(char); - *h++=cast_byte(VERSION); - *h++=cast_byte(FORMAT); - *h++=cast_byte(*(char*)&x); /* endianness */ - *h++=cast_byte(sizeof(int)); - *h++=cast_byte(sizeof(size_t)); - *h++=cast_byte(sizeof(Instruction)); - *h++=cast_byte(sizeof(lua_Number)); - *h++=cast_byte(((lua_Number)0.5)==0); /* is lua_Number integral? */ - memcpy(h,LUAC_TAIL,sizeof(LUAC_TAIL)-sizeof(char)); -} diff --git a/source/libs/lua52/lua52-src/src/lundump.h b/source/libs/lua52/lua52-src/src/lundump.h deleted file mode 100644 index ede365a2272ae8d45dee3f4b6eca0481df36a89a..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lundump.h +++ /dev/null @@ -1,28 +0,0 @@ -/* -** $Id: lundump.h,v 1.39.1.1 2013/04/12 18:48:47 roberto Exp $ -** load precompiled Lua chunks -** See Copyright Notice in lua.h -*/ - -#ifndef lundump_h -#define lundump_h - -#include "lobject.h" -#include "lzio.h" - -/* load one chunk; from lundump.c */ -LUAI_FUNC Closure* luaU_undump (lua_State* L, ZIO* Z, Mbuffer* buff, const char* name); - -/* make header; from lundump.c */ -LUAI_FUNC void luaU_header (lu_byte* h); - -/* dump one chunk; from ldump.c */ -LUA_API int luaU_dump (lua_State* L, const Proto* f, lua_Writer w, void* data, int strip); - -/* data to catch conversion errors */ -#define LUAC_TAIL "\x19\x93\r\n\x1a\n" - -/* size in bytes of header of binary files */ -#define LUAC_HEADERSIZE (sizeof(LUA_SIGNATURE)-sizeof(char)+2+6+sizeof(LUAC_TAIL)-sizeof(char)) - -#endif diff --git a/source/libs/lua52/lua52-src/src/lvm.c b/source/libs/lua52/lua52-src/src/lvm.c deleted file mode 100644 index 141b9fd19c3be43ec257ac86ed19aa4c7c409164..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lvm.c +++ /dev/null @@ -1,867 +0,0 @@ -/* -** $Id: lvm.c,v 2.155.1.1 2013/04/12 18:48:47 roberto Exp $ -** Lua virtual machine -** See Copyright Notice in lua.h -*/ - - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#define lvm_c -#define LUA_CORE - -#include "lua.h" - -#include "ldebug.h" -#include "ldo.h" -#include "lfunc.h" -#include "lgc.h" -#include "lobject.h" -#include "lopcodes.h" -#include "lstate.h" -#include "lstring.h" -#include "ltable.h" -#include "ltm.h" -#include "lvm.h" - - - -/* limit for table tag-method chains (to avoid loops) */ -#define MAXTAGLOOP 100 - - -const TValue *luaV_tonumber (const TValue *obj, TValue *n) { - lua_Number num; - if (ttisnumber(obj)) return obj; - if (ttisstring(obj) && luaO_str2d(svalue(obj), tsvalue(obj)->len, &num)) { - setnvalue(n, num); - return n; - } - else - return NULL; -} - - -int luaV_tostring (lua_State *L, StkId obj) { - if (!ttisnumber(obj)) - return 0; - else { - char s[LUAI_MAXNUMBER2STR]; - lua_Number n = nvalue(obj); - int l = lua_number2str(s, n); - setsvalue2s(L, obj, luaS_newlstr(L, s, l)); - return 1; - } -} - - -static void traceexec (lua_State *L) { - CallInfo *ci = L->ci; - lu_byte mask = L->hookmask; - int counthook = ((mask & LUA_MASKCOUNT) && L->hookcount == 0); - if (counthook) - resethookcount(L); /* reset count */ - if (ci->callstatus & CIST_HOOKYIELD) { /* called hook last time? */ - ci->callstatus &= ~CIST_HOOKYIELD; /* erase mark */ - return; /* do not call hook again (VM yielded, so it did not move) */ - } - if (counthook) - luaD_hook(L, LUA_HOOKCOUNT, -1); /* call count hook */ - if (mask & LUA_MASKLINE) { - Proto *p = ci_func(ci)->p; - int npc = pcRel(ci->u.l.savedpc, p); - int newline = getfuncline(p, npc); - if (npc == 0 || /* call linehook when enter a new function, */ - ci->u.l.savedpc <= L->oldpc || /* when jump back (loop), or when */ - newline != getfuncline(p, pcRel(L->oldpc, p))) /* enter a new line */ - luaD_hook(L, LUA_HOOKLINE, newline); /* call line hook */ - } - L->oldpc = ci->u.l.savedpc; - if (L->status == LUA_YIELD) { /* did hook yield? */ - if (counthook) - L->hookcount = 1; /* undo decrement to zero */ - ci->u.l.savedpc--; /* undo increment (resume will increment it again) */ - ci->callstatus |= CIST_HOOKYIELD; /* mark that it yielded */ - ci->func = L->top - 1; /* protect stack below results */ - luaD_throw(L, LUA_YIELD); - } -} - - -static void callTM (lua_State *L, const TValue *f, const TValue *p1, - const TValue *p2, TValue *p3, int hasres) { - ptrdiff_t result = savestack(L, p3); - setobj2s(L, L->top++, f); /* push function */ - setobj2s(L, L->top++, p1); /* 1st argument */ - setobj2s(L, L->top++, p2); /* 2nd argument */ - if (!hasres) /* no result? 'p3' is third argument */ - setobj2s(L, L->top++, p3); /* 3rd argument */ - /* metamethod may yield only when called from Lua code */ - luaD_call(L, L->top - (4 - hasres), hasres, isLua(L->ci)); - if (hasres) { /* if has result, move it to its place */ - p3 = restorestack(L, result); - setobjs2s(L, p3, --L->top); - } -} - - -void luaV_gettable (lua_State *L, const TValue *t, TValue *key, StkId val) { - int loop; - for (loop = 0; loop < MAXTAGLOOP; loop++) { - const TValue *tm; - if (ttistable(t)) { /* `t' is a table? */ - Table *h = hvalue(t); - const TValue *res = luaH_get(h, key); /* do a primitive get */ - if (!ttisnil(res) || /* result is not nil? */ - (tm = fasttm(L, h->metatable, TM_INDEX)) == NULL) { /* or no TM? */ - setobj2s(L, val, res); - return; - } - /* else will try the tag method */ - } - else if (ttisnil(tm = luaT_gettmbyobj(L, t, TM_INDEX))) - luaG_typeerror(L, t, "index"); - if (ttisfunction(tm)) { - callTM(L, tm, t, key, val, 1); - return; - } - t = tm; /* else repeat with 'tm' */ - } - luaG_runerror(L, "loop in gettable"); -} - - -void luaV_settable (lua_State *L, const TValue *t, TValue *key, StkId val) { - int loop; - for (loop = 0; loop < MAXTAGLOOP; loop++) { - const TValue *tm; - if (ttistable(t)) { /* `t' is a table? */ - Table *h = hvalue(t); - TValue *oldval = cast(TValue *, luaH_get(h, key)); - /* if previous value is not nil, there must be a previous entry - in the table; moreover, a metamethod has no relevance */ - if (!ttisnil(oldval) || - /* previous value is nil; must check the metamethod */ - ((tm = fasttm(L, h->metatable, TM_NEWINDEX)) == NULL && - /* no metamethod; is there a previous entry in the table? */ - (oldval != luaO_nilobject || - /* no previous entry; must create one. (The next test is - always true; we only need the assignment.) */ - (oldval = luaH_newkey(L, h, key), 1)))) { - /* no metamethod and (now) there is an entry with given key */ - setobj2t(L, oldval, val); /* assign new value to that entry */ - invalidateTMcache(h); - luaC_barrierback(L, obj2gco(h), val); - return; - } - /* else will try the metamethod */ - } - else /* not a table; check metamethod */ - if (ttisnil(tm = luaT_gettmbyobj(L, t, TM_NEWINDEX))) - luaG_typeerror(L, t, "index"); - /* there is a metamethod */ - if (ttisfunction(tm)) { - callTM(L, tm, t, key, val, 0); - return; - } - t = tm; /* else repeat with 'tm' */ - } - luaG_runerror(L, "loop in settable"); -} - - -static int call_binTM (lua_State *L, const TValue *p1, const TValue *p2, - StkId res, TMS event) { - const TValue *tm = luaT_gettmbyobj(L, p1, event); /* try first operand */ - if (ttisnil(tm)) - tm = luaT_gettmbyobj(L, p2, event); /* try second operand */ - if (ttisnil(tm)) return 0; - callTM(L, tm, p1, p2, res, 1); - return 1; -} - - -static const TValue *get_equalTM (lua_State *L, Table *mt1, Table *mt2, - TMS event) { - const TValue *tm1 = fasttm(L, mt1, event); - const TValue *tm2; - if (tm1 == NULL) return NULL; /* no metamethod */ - if (mt1 == mt2) return tm1; /* same metatables => same metamethods */ - tm2 = fasttm(L, mt2, event); - if (tm2 == NULL) return NULL; /* no metamethod */ - if (luaV_rawequalobj(tm1, tm2)) /* same metamethods? */ - return tm1; - return NULL; -} - - -static int call_orderTM (lua_State *L, const TValue *p1, const TValue *p2, - TMS event) { - if (!call_binTM(L, p1, p2, L->top, event)) - return -1; /* no metamethod */ - else - return !l_isfalse(L->top); -} - - -static int l_strcmp (const TString *ls, const TString *rs) { - const char *l = getstr(ls); - size_t ll = ls->tsv.len; - const char *r = getstr(rs); - size_t lr = rs->tsv.len; - for (;;) { - int temp = strcoll(l, r); - if (temp != 0) return temp; - else { /* strings are equal up to a `\0' */ - size_t len = strlen(l); /* index of first `\0' in both strings */ - if (len == lr) /* r is finished? */ - return (len == ll) ? 0 : 1; - else if (len == ll) /* l is finished? */ - return -1; /* l is smaller than r (because r is not finished) */ - /* both strings longer than `len'; go on comparing (after the `\0') */ - len++; - l += len; ll -= len; r += len; lr -= len; - } - } -} - - -int luaV_lessthan (lua_State *L, const TValue *l, const TValue *r) { - int res; - if (ttisnumber(l) && ttisnumber(r)) - return luai_numlt(L, nvalue(l), nvalue(r)); - else if (ttisstring(l) && ttisstring(r)) - return l_strcmp(rawtsvalue(l), rawtsvalue(r)) < 0; - else if ((res = call_orderTM(L, l, r, TM_LT)) < 0) - luaG_ordererror(L, l, r); - return res; -} - - -int luaV_lessequal (lua_State *L, const TValue *l, const TValue *r) { - int res; - if (ttisnumber(l) && ttisnumber(r)) - return luai_numle(L, nvalue(l), nvalue(r)); - else if (ttisstring(l) && ttisstring(r)) - return l_strcmp(rawtsvalue(l), rawtsvalue(r)) <= 0; - else if ((res = call_orderTM(L, l, r, TM_LE)) >= 0) /* first try `le' */ - return res; - else if ((res = call_orderTM(L, r, l, TM_LT)) < 0) /* else try `lt' */ - luaG_ordererror(L, l, r); - return !res; -} - - -/* -** equality of Lua values. L == NULL means raw equality (no metamethods) -*/ -int luaV_equalobj_ (lua_State *L, const TValue *t1, const TValue *t2) { - const TValue *tm; - lua_assert(ttisequal(t1, t2)); - switch (ttype(t1)) { - case LUA_TNIL: return 1; - case LUA_TNUMBER: return luai_numeq(nvalue(t1), nvalue(t2)); - case LUA_TBOOLEAN: return bvalue(t1) == bvalue(t2); /* true must be 1 !! */ - case LUA_TLIGHTUSERDATA: return pvalue(t1) == pvalue(t2); - case LUA_TLCF: return fvalue(t1) == fvalue(t2); - case LUA_TSHRSTR: return eqshrstr(rawtsvalue(t1), rawtsvalue(t2)); - case LUA_TLNGSTR: return luaS_eqlngstr(rawtsvalue(t1), rawtsvalue(t2)); - case LUA_TUSERDATA: { - if (uvalue(t1) == uvalue(t2)) return 1; - else if (L == NULL) return 0; - tm = get_equalTM(L, uvalue(t1)->metatable, uvalue(t2)->metatable, TM_EQ); - break; /* will try TM */ - } - case LUA_TTABLE: { - if (hvalue(t1) == hvalue(t2)) return 1; - else if (L == NULL) return 0; - tm = get_equalTM(L, hvalue(t1)->metatable, hvalue(t2)->metatable, TM_EQ); - break; /* will try TM */ - } - default: - lua_assert(iscollectable(t1)); - return gcvalue(t1) == gcvalue(t2); - } - if (tm == NULL) return 0; /* no TM? */ - callTM(L, tm, t1, t2, L->top, 1); /* call TM */ - return !l_isfalse(L->top); -} - - -void luaV_concat (lua_State *L, int total) { - lua_assert(total >= 2); - do { - StkId top = L->top; - int n = 2; /* number of elements handled in this pass (at least 2) */ - if (!(ttisstring(top-2) || ttisnumber(top-2)) || !tostring(L, top-1)) { - if (!call_binTM(L, top-2, top-1, top-2, TM_CONCAT)) - luaG_concaterror(L, top-2, top-1); - } - else if (tsvalue(top-1)->len == 0) /* second operand is empty? */ - (void)tostring(L, top - 2); /* result is first operand */ - else if (ttisstring(top-2) && tsvalue(top-2)->len == 0) { - setobjs2s(L, top - 2, top - 1); /* result is second op. */ - } - else { - /* at least two non-empty string values; get as many as possible */ - size_t tl = tsvalue(top-1)->len; - char *buffer; - int i; - /* collect total length */ - for (i = 1; i < total && tostring(L, top-i-1); i++) { - size_t l = tsvalue(top-i-1)->len; - if (l >= (MAX_SIZET/sizeof(char)) - tl) - luaG_runerror(L, "string length overflow"); - tl += l; - } - buffer = luaZ_openspace(L, &G(L)->buff, tl); - tl = 0; - n = i; - do { /* concat all strings */ - size_t l = tsvalue(top-i)->len; - memcpy(buffer+tl, svalue(top-i), l * sizeof(char)); - tl += l; - } while (--i > 0); - setsvalue2s(L, top-n, luaS_newlstr(L, buffer, tl)); - } - total -= n-1; /* got 'n' strings to create 1 new */ - L->top -= n-1; /* popped 'n' strings and pushed one */ - } while (total > 1); /* repeat until only 1 result left */ -} - - -void luaV_objlen (lua_State *L, StkId ra, const TValue *rb) { - const TValue *tm; - switch (ttypenv(rb)) { - case LUA_TTABLE: { - Table *h = hvalue(rb); - tm = fasttm(L, h->metatable, TM_LEN); - if (tm) break; /* metamethod? break switch to call it */ - setnvalue(ra, cast_num(luaH_getn(h))); /* else primitive len */ - return; - } - case LUA_TSTRING: { - setnvalue(ra, cast_num(tsvalue(rb)->len)); - return; - } - default: { /* try metamethod */ - tm = luaT_gettmbyobj(L, rb, TM_LEN); - if (ttisnil(tm)) /* no metamethod? */ - luaG_typeerror(L, rb, "get length of"); - break; - } - } - callTM(L, tm, rb, rb, ra, 1); -} - - -void luaV_arith (lua_State *L, StkId ra, const TValue *rb, - const TValue *rc, TMS op) { - TValue tempb, tempc; - const TValue *b, *c; - if ((b = luaV_tonumber(rb, &tempb)) != NULL && - (c = luaV_tonumber(rc, &tempc)) != NULL) { - lua_Number res = luaO_arith(op - TM_ADD + LUA_OPADD, nvalue(b), nvalue(c)); - setnvalue(ra, res); - } - else if (!call_binTM(L, rb, rc, ra, op)) - luaG_aritherror(L, rb, rc); -} - - -/* -** check whether cached closure in prototype 'p' may be reused, that is, -** whether there is a cached closure with the same upvalues needed by -** new closure to be created. -*/ -static Closure *getcached (Proto *p, UpVal **encup, StkId base) { - Closure *c = p->cache; - if (c != NULL) { /* is there a cached closure? */ - int nup = p->sizeupvalues; - Upvaldesc *uv = p->upvalues; - int i; - for (i = 0; i < nup; i++) { /* check whether it has right upvalues */ - TValue *v = uv[i].instack ? base + uv[i].idx : encup[uv[i].idx]->v; - if (c->l.upvals[i]->v != v) - return NULL; /* wrong upvalue; cannot reuse closure */ - } - } - return c; /* return cached closure (or NULL if no cached closure) */ -} - - -/* -** create a new Lua closure, push it in the stack, and initialize -** its upvalues. Note that the call to 'luaC_barrierproto' must come -** before the assignment to 'p->cache', as the function needs the -** original value of that field. -*/ -static void pushclosure (lua_State *L, Proto *p, UpVal **encup, StkId base, - StkId ra) { - int nup = p->sizeupvalues; - Upvaldesc *uv = p->upvalues; - int i; - Closure *ncl = luaF_newLclosure(L, nup); - ncl->l.p = p; - setclLvalue(L, ra, ncl); /* anchor new closure in stack */ - for (i = 0; i < nup; i++) { /* fill in its upvalues */ - if (uv[i].instack) /* upvalue refers to local variable? */ - ncl->l.upvals[i] = luaF_findupval(L, base + uv[i].idx); - else /* get upvalue from enclosing function */ - ncl->l.upvals[i] = encup[uv[i].idx]; - } - luaC_barrierproto(L, p, ncl); - p->cache = ncl; /* save it on cache for reuse */ -} - - -/* -** finish execution of an opcode interrupted by an yield -*/ -void luaV_finishOp (lua_State *L) { - CallInfo *ci = L->ci; - StkId base = ci->u.l.base; - Instruction inst = *(ci->u.l.savedpc - 1); /* interrupted instruction */ - OpCode op = GET_OPCODE(inst); - switch (op) { /* finish its execution */ - case OP_ADD: case OP_SUB: case OP_MUL: case OP_DIV: - case OP_MOD: case OP_POW: case OP_UNM: case OP_LEN: - case OP_GETTABUP: case OP_GETTABLE: case OP_SELF: { - setobjs2s(L, base + GETARG_A(inst), --L->top); - break; - } - case OP_LE: case OP_LT: case OP_EQ: { - int res = !l_isfalse(L->top - 1); - L->top--; - /* metamethod should not be called when operand is K */ - lua_assert(!ISK(GETARG_B(inst))); - if (op == OP_LE && /* "<=" using "<" instead? */ - ttisnil(luaT_gettmbyobj(L, base + GETARG_B(inst), TM_LE))) - res = !res; /* invert result */ - lua_assert(GET_OPCODE(*ci->u.l.savedpc) == OP_JMP); - if (res != GETARG_A(inst)) /* condition failed? */ - ci->u.l.savedpc++; /* skip jump instruction */ - break; - } - case OP_CONCAT: { - StkId top = L->top - 1; /* top when 'call_binTM' was called */ - int b = GETARG_B(inst); /* first element to concatenate */ - int total = cast_int(top - 1 - (base + b)); /* yet to concatenate */ - setobj2s(L, top - 2, top); /* put TM result in proper position */ - if (total > 1) { /* are there elements to concat? */ - L->top = top - 1; /* top is one after last element (at top-2) */ - luaV_concat(L, total); /* concat them (may yield again) */ - } - /* move final result to final position */ - setobj2s(L, ci->u.l.base + GETARG_A(inst), L->top - 1); - L->top = ci->top; /* restore top */ - break; - } - case OP_TFORCALL: { - lua_assert(GET_OPCODE(*ci->u.l.savedpc) == OP_TFORLOOP); - L->top = ci->top; /* correct top */ - break; - } - case OP_CALL: { - if (GETARG_C(inst) - 1 >= 0) /* nresults >= 0? */ - L->top = ci->top; /* adjust results */ - break; - } - case OP_TAILCALL: case OP_SETTABUP: case OP_SETTABLE: - break; - default: lua_assert(0); - } -} - - - -/* -** some macros for common tasks in `luaV_execute' -*/ - -#if !defined luai_runtimecheck -#define luai_runtimecheck(L, c) /* void */ -#endif - - -#define RA(i) (base+GETARG_A(i)) -/* to be used after possible stack reallocation */ -#define RB(i) check_exp(getBMode(GET_OPCODE(i)) == OpArgR, base+GETARG_B(i)) -#define RC(i) check_exp(getCMode(GET_OPCODE(i)) == OpArgR, base+GETARG_C(i)) -#define RKB(i) check_exp(getBMode(GET_OPCODE(i)) == OpArgK, \ - ISK(GETARG_B(i)) ? k+INDEXK(GETARG_B(i)) : base+GETARG_B(i)) -#define RKC(i) check_exp(getCMode(GET_OPCODE(i)) == OpArgK, \ - ISK(GETARG_C(i)) ? k+INDEXK(GETARG_C(i)) : base+GETARG_C(i)) -#define KBx(i) \ - (k + (GETARG_Bx(i) != 0 ? GETARG_Bx(i) - 1 : GETARG_Ax(*ci->u.l.savedpc++))) - - -/* execute a jump instruction */ -#define dojump(ci,i,e) \ - { int a = GETARG_A(i); \ - if (a > 0) luaF_close(L, ci->u.l.base + a - 1); \ - ci->u.l.savedpc += GETARG_sBx(i) + e; } - -/* for test instructions, execute the jump instruction that follows it */ -#define donextjump(ci) { i = *ci->u.l.savedpc; dojump(ci, i, 1); } - - -#define Protect(x) { {x;}; base = ci->u.l.base; } - -#define checkGC(L,c) \ - Protect( luaC_condGC(L,{L->top = (c); /* limit of live values */ \ - luaC_step(L); \ - L->top = ci->top;}) /* restore top */ \ - luai_threadyield(L); ) - - -#define arith_op(op,tm) { \ - TValue *rb = RKB(i); \ - TValue *rc = RKC(i); \ - if (ttisnumber(rb) && ttisnumber(rc)) { \ - lua_Number nb = nvalue(rb), nc = nvalue(rc); \ - setnvalue(ra, op(L, nb, nc)); \ - } \ - else { Protect(luaV_arith(L, ra, rb, rc, tm)); } } - - -#define vmdispatch(o) switch(o) -#define vmcase(l,b) case l: {b} break; -#define vmcasenb(l,b) case l: {b} /* nb = no break */ - -void luaV_execute (lua_State *L) { - CallInfo *ci = L->ci; - LClosure *cl; - TValue *k; - StkId base; - newframe: /* reentry point when frame changes (call/return) */ - lua_assert(ci == L->ci); - cl = clLvalue(ci->func); - k = cl->p->k; - base = ci->u.l.base; - /* main loop of interpreter */ - for (;;) { - Instruction i = *(ci->u.l.savedpc++); - StkId ra; - if ((L->hookmask & (LUA_MASKLINE | LUA_MASKCOUNT)) && - (--L->hookcount == 0 || L->hookmask & LUA_MASKLINE)) { - Protect(traceexec(L)); - } - /* WARNING: several calls may realloc the stack and invalidate `ra' */ - ra = RA(i); - lua_assert(base == ci->u.l.base); - lua_assert(base <= L->top && L->top < L->stack + L->stacksize); - vmdispatch (GET_OPCODE(i)) { - vmcase(OP_MOVE, - setobjs2s(L, ra, RB(i)); - ) - vmcase(OP_LOADK, - TValue *rb = k + GETARG_Bx(i); - setobj2s(L, ra, rb); - ) - vmcase(OP_LOADKX, - TValue *rb; - lua_assert(GET_OPCODE(*ci->u.l.savedpc) == OP_EXTRAARG); - rb = k + GETARG_Ax(*ci->u.l.savedpc++); - setobj2s(L, ra, rb); - ) - vmcase(OP_LOADBOOL, - setbvalue(ra, GETARG_B(i)); - if (GETARG_C(i)) ci->u.l.savedpc++; /* skip next instruction (if C) */ - ) - vmcase(OP_LOADNIL, - int b = GETARG_B(i); - do { - setnilvalue(ra++); - } while (b--); - ) - vmcase(OP_GETUPVAL, - int b = GETARG_B(i); - setobj2s(L, ra, cl->upvals[b]->v); - ) - vmcase(OP_GETTABUP, - int b = GETARG_B(i); - Protect(luaV_gettable(L, cl->upvals[b]->v, RKC(i), ra)); - ) - vmcase(OP_GETTABLE, - Protect(luaV_gettable(L, RB(i), RKC(i), ra)); - ) - vmcase(OP_SETTABUP, - int a = GETARG_A(i); - Protect(luaV_settable(L, cl->upvals[a]->v, RKB(i), RKC(i))); - ) - vmcase(OP_SETUPVAL, - UpVal *uv = cl->upvals[GETARG_B(i)]; - setobj(L, uv->v, ra); - luaC_barrier(L, uv, ra); - ) - vmcase(OP_SETTABLE, - Protect(luaV_settable(L, ra, RKB(i), RKC(i))); - ) - vmcase(OP_NEWTABLE, - int b = GETARG_B(i); - int c = GETARG_C(i); - Table *t = luaH_new(L); - sethvalue(L, ra, t); - if (b != 0 || c != 0) - luaH_resize(L, t, luaO_fb2int(b), luaO_fb2int(c)); - checkGC(L, ra + 1); - ) - vmcase(OP_SELF, - StkId rb = RB(i); - setobjs2s(L, ra+1, rb); - Protect(luaV_gettable(L, rb, RKC(i), ra)); - ) - vmcase(OP_ADD, - arith_op(luai_numadd, TM_ADD); - ) - vmcase(OP_SUB, - arith_op(luai_numsub, TM_SUB); - ) - vmcase(OP_MUL, - arith_op(luai_nummul, TM_MUL); - ) - vmcase(OP_DIV, - arith_op(luai_numdiv, TM_DIV); - ) - vmcase(OP_MOD, - arith_op(luai_nummod, TM_MOD); - ) - vmcase(OP_POW, - arith_op(luai_numpow, TM_POW); - ) - vmcase(OP_UNM, - TValue *rb = RB(i); - if (ttisnumber(rb)) { - lua_Number nb = nvalue(rb); - setnvalue(ra, luai_numunm(L, nb)); - } - else { - Protect(luaV_arith(L, ra, rb, rb, TM_UNM)); - } - ) - vmcase(OP_NOT, - TValue *rb = RB(i); - int res = l_isfalse(rb); /* next assignment may change this value */ - setbvalue(ra, res); - ) - vmcase(OP_LEN, - Protect(luaV_objlen(L, ra, RB(i))); - ) - vmcase(OP_CONCAT, - int b = GETARG_B(i); - int c = GETARG_C(i); - StkId rb; - L->top = base + c + 1; /* mark the end of concat operands */ - Protect(luaV_concat(L, c - b + 1)); - ra = RA(i); /* 'luav_concat' may invoke TMs and move the stack */ - rb = b + base; - setobjs2s(L, ra, rb); - checkGC(L, (ra >= rb ? ra + 1 : rb)); - L->top = ci->top; /* restore top */ - ) - vmcase(OP_JMP, - dojump(ci, i, 0); - ) - vmcase(OP_EQ, - TValue *rb = RKB(i); - TValue *rc = RKC(i); - Protect( - if (cast_int(equalobj(L, rb, rc)) != GETARG_A(i)) - ci->u.l.savedpc++; - else - donextjump(ci); - ) - ) - vmcase(OP_LT, - Protect( - if (luaV_lessthan(L, RKB(i), RKC(i)) != GETARG_A(i)) - ci->u.l.savedpc++; - else - donextjump(ci); - ) - ) - vmcase(OP_LE, - Protect( - if (luaV_lessequal(L, RKB(i), RKC(i)) != GETARG_A(i)) - ci->u.l.savedpc++; - else - donextjump(ci); - ) - ) - vmcase(OP_TEST, - if (GETARG_C(i) ? l_isfalse(ra) : !l_isfalse(ra)) - ci->u.l.savedpc++; - else - donextjump(ci); - ) - vmcase(OP_TESTSET, - TValue *rb = RB(i); - if (GETARG_C(i) ? l_isfalse(rb) : !l_isfalse(rb)) - ci->u.l.savedpc++; - else { - setobjs2s(L, ra, rb); - donextjump(ci); - } - ) - vmcase(OP_CALL, - int b = GETARG_B(i); - int nresults = GETARG_C(i) - 1; - if (b != 0) L->top = ra+b; /* else previous instruction set top */ - if (luaD_precall(L, ra, nresults)) { /* C function? */ - if (nresults >= 0) L->top = ci->top; /* adjust results */ - base = ci->u.l.base; - } - else { /* Lua function */ - ci = L->ci; - ci->callstatus |= CIST_REENTRY; - goto newframe; /* restart luaV_execute over new Lua function */ - } - ) - vmcase(OP_TAILCALL, - int b = GETARG_B(i); - if (b != 0) L->top = ra+b; /* else previous instruction set top */ - lua_assert(GETARG_C(i) - 1 == LUA_MULTRET); - if (luaD_precall(L, ra, LUA_MULTRET)) /* C function? */ - base = ci->u.l.base; - else { - /* tail call: put called frame (n) in place of caller one (o) */ - CallInfo *nci = L->ci; /* called frame */ - CallInfo *oci = nci->previous; /* caller frame */ - StkId nfunc = nci->func; /* called function */ - StkId ofunc = oci->func; /* caller function */ - /* last stack slot filled by 'precall' */ - StkId lim = nci->u.l.base + getproto(nfunc)->numparams; - int aux; - /* close all upvalues from previous call */ - if (cl->p->sizep > 0) luaF_close(L, oci->u.l.base); - /* move new frame into old one */ - for (aux = 0; nfunc + aux < lim; aux++) - setobjs2s(L, ofunc + aux, nfunc + aux); - oci->u.l.base = ofunc + (nci->u.l.base - nfunc); /* correct base */ - oci->top = L->top = ofunc + (L->top - nfunc); /* correct top */ - oci->u.l.savedpc = nci->u.l.savedpc; - oci->callstatus |= CIST_TAIL; /* function was tail called */ - ci = L->ci = oci; /* remove new frame */ - lua_assert(L->top == oci->u.l.base + getproto(ofunc)->maxstacksize); - goto newframe; /* restart luaV_execute over new Lua function */ - } - ) - vmcasenb(OP_RETURN, - int b = GETARG_B(i); - if (b != 0) L->top = ra+b-1; - if (cl->p->sizep > 0) luaF_close(L, base); - b = luaD_poscall(L, ra); - if (!(ci->callstatus & CIST_REENTRY)) /* 'ci' still the called one */ - return; /* external invocation: return */ - else { /* invocation via reentry: continue execution */ - ci = L->ci; - if (b) L->top = ci->top; - lua_assert(isLua(ci)); - lua_assert(GET_OPCODE(*((ci)->u.l.savedpc - 1)) == OP_CALL); - goto newframe; /* restart luaV_execute over new Lua function */ - } - ) - vmcase(OP_FORLOOP, - lua_Number step = nvalue(ra+2); - lua_Number idx = luai_numadd(L, nvalue(ra), step); /* increment index */ - lua_Number limit = nvalue(ra+1); - if (luai_numlt(L, 0, step) ? luai_numle(L, idx, limit) - : luai_numle(L, limit, idx)) { - ci->u.l.savedpc += GETARG_sBx(i); /* jump back */ - setnvalue(ra, idx); /* update internal index... */ - setnvalue(ra+3, idx); /* ...and external index */ - } - ) - vmcase(OP_FORPREP, - const TValue *init = ra; - const TValue *plimit = ra+1; - const TValue *pstep = ra+2; - if (!tonumber(init, ra)) - luaG_runerror(L, LUA_QL("for") " initial value must be a number"); - else if (!tonumber(plimit, ra+1)) - luaG_runerror(L, LUA_QL("for") " limit must be a number"); - else if (!tonumber(pstep, ra+2)) - luaG_runerror(L, LUA_QL("for") " step must be a number"); - setnvalue(ra, luai_numsub(L, nvalue(ra), nvalue(pstep))); - ci->u.l.savedpc += GETARG_sBx(i); - ) - vmcasenb(OP_TFORCALL, - StkId cb = ra + 3; /* call base */ - setobjs2s(L, cb+2, ra+2); - setobjs2s(L, cb+1, ra+1); - setobjs2s(L, cb, ra); - L->top = cb + 3; /* func. + 2 args (state and index) */ - Protect(luaD_call(L, cb, GETARG_C(i), 1)); - L->top = ci->top; - i = *(ci->u.l.savedpc++); /* go to next instruction */ - ra = RA(i); - lua_assert(GET_OPCODE(i) == OP_TFORLOOP); - goto l_tforloop; - ) - vmcase(OP_TFORLOOP, - l_tforloop: - if (!ttisnil(ra + 1)) { /* continue loop? */ - setobjs2s(L, ra, ra + 1); /* save control variable */ - ci->u.l.savedpc += GETARG_sBx(i); /* jump back */ - } - ) - vmcase(OP_SETLIST, - int n = GETARG_B(i); - int c = GETARG_C(i); - int last; - Table *h; - if (n == 0) n = cast_int(L->top - ra) - 1; - if (c == 0) { - lua_assert(GET_OPCODE(*ci->u.l.savedpc) == OP_EXTRAARG); - c = GETARG_Ax(*ci->u.l.savedpc++); - } - luai_runtimecheck(L, ttistable(ra)); - h = hvalue(ra); - last = ((c-1)*LFIELDS_PER_FLUSH) + n; - if (last > h->sizearray) /* needs more space? */ - luaH_resizearray(L, h, last); /* pre-allocate it at once */ - for (; n > 0; n--) { - TValue *val = ra+n; - luaH_setint(L, h, last--, val); - luaC_barrierback(L, obj2gco(h), val); - } - L->top = ci->top; /* correct top (in case of previous open call) */ - ) - vmcase(OP_CLOSURE, - Proto *p = cl->p->p[GETARG_Bx(i)]; - Closure *ncl = getcached(p, cl->upvals, base); /* cached closure */ - if (ncl == NULL) /* no match? */ - pushclosure(L, p, cl->upvals, base, ra); /* create a new one */ - else - setclLvalue(L, ra, ncl); /* push cashed closure */ - checkGC(L, ra + 1); - ) - vmcase(OP_VARARG, - int b = GETARG_B(i) - 1; - int j; - int n = cast_int(base - ci->func) - cl->p->numparams - 1; - if (b < 0) { /* B == 0? */ - b = n; /* get all var. arguments */ - Protect(luaD_checkstack(L, n)); - ra = RA(i); /* previous call may change the stack */ - L->top = ra + n; - } - for (j = 0; j < b; j++) { - if (j < n) { - setobjs2s(L, ra + j, base - n + j); - } - else { - setnilvalue(ra + j); - } - } - ) - vmcase(OP_EXTRAARG, - lua_assert(0); - ) - } - } -} - diff --git a/source/libs/lua52/lua52-src/src/lvm.h b/source/libs/lua52/lua52-src/src/lvm.h deleted file mode 100644 index 5380270da63db86035e5a36cba98083bf81edb50..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lvm.h +++ /dev/null @@ -1,44 +0,0 @@ -/* -** $Id: lvm.h,v 2.18.1.1 2013/04/12 18:48:47 roberto Exp $ -** Lua virtual machine -** See Copyright Notice in lua.h -*/ - -#ifndef lvm_h -#define lvm_h - - -#include "ldo.h" -#include "lobject.h" -#include "ltm.h" - - -#define tostring(L,o) (ttisstring(o) || (luaV_tostring(L, o))) - -#define tonumber(o,n) (ttisnumber(o) || (((o) = luaV_tonumber(o,n)) != NULL)) - -#define equalobj(L,o1,o2) (ttisequal(o1, o2) && luaV_equalobj_(L, o1, o2)) - -#define luaV_rawequalobj(o1,o2) equalobj(NULL,o1,o2) - - -/* not to called directly */ -LUAI_FUNC int luaV_equalobj_ (lua_State *L, const TValue *t1, const TValue *t2); - - -LUAI_FUNC int luaV_lessthan (lua_State *L, const TValue *l, const TValue *r); -LUAI_FUNC int luaV_lessequal (lua_State *L, const TValue *l, const TValue *r); -LUAI_FUNC const TValue *luaV_tonumber (const TValue *obj, TValue *n); -LUAI_FUNC int luaV_tostring (lua_State *L, StkId obj); -LUAI_FUNC void luaV_gettable (lua_State *L, const TValue *t, TValue *key, - StkId val); -LUAI_FUNC void luaV_settable (lua_State *L, const TValue *t, TValue *key, - StkId val); -LUAI_FUNC void luaV_finishOp (lua_State *L); -LUAI_FUNC void luaV_execute (lua_State *L); -LUAI_FUNC void luaV_concat (lua_State *L, int total); -LUAI_FUNC void luaV_arith (lua_State *L, StkId ra, const TValue *rb, - const TValue *rc, TMS op); -LUAI_FUNC void luaV_objlen (lua_State *L, StkId ra, const TValue *rb); - -#endif diff --git a/source/libs/lua52/lua52-src/src/lzio.c b/source/libs/lua52/lua52-src/src/lzio.c deleted file mode 100644 index 20efea983004a8538938e53298c50e496a182180..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lzio.c +++ /dev/null @@ -1,76 +0,0 @@ -/* -** $Id: lzio.c,v 1.35.1.1 2013/04/12 18:48:47 roberto Exp $ -** Buffered streams -** See Copyright Notice in lua.h -*/ - - -#include <string.h> - -#define lzio_c -#define LUA_CORE - -#include "lua.h" - -#include "llimits.h" -#include "lmem.h" -#include "lstate.h" -#include "lzio.h" - - -int luaZ_fill (ZIO *z) { - size_t size; - lua_State *L = z->L; - const char *buff; - lua_unlock(L); - buff = z->reader(L, z->data, &size); - lua_lock(L); - if (buff == NULL || size == 0) - return EOZ; - z->n = size - 1; /* discount char being returned */ - z->p = buff; - return cast_uchar(*(z->p++)); -} - - -void luaZ_init (lua_State *L, ZIO *z, lua_Reader reader, void *data) { - z->L = L; - z->reader = reader; - z->data = data; - z->n = 0; - z->p = NULL; -} - - -/* --------------------------------------------------------------- read --- */ -size_t luaZ_read (ZIO *z, void *b, size_t n) { - while (n) { - size_t m; - if (z->n == 0) { /* no bytes in buffer? */ - if (luaZ_fill(z) == EOZ) /* try to read more */ - return n; /* no more input; return number of missing bytes */ - else { - z->n++; /* luaZ_fill consumed first byte; put it back */ - z->p--; - } - } - m = (n <= z->n) ? n : z->n; /* min. between n and z->n */ - memcpy(b, z->p, m); - z->n -= m; - z->p += m; - b = (char *)b + m; - n -= m; - } - return 0; -} - -/* ------------------------------------------------------------------------ */ -char *luaZ_openspace (lua_State *L, Mbuffer *buff, size_t n) { - if (n > buff->buffsize) { - if (n < LUA_MINBUFFER) n = LUA_MINBUFFER; - luaZ_resizebuffer(L, buff, n); - } - return buff->buffer; -} - - diff --git a/source/libs/lua52/lua52-src/src/lzio.h b/source/libs/lua52/lua52-src/src/lzio.h deleted file mode 100644 index 441f7479cb1465da3777d01ff1d9267abbc89a08..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52-src/src/lzio.h +++ /dev/null @@ -1,65 +0,0 @@ -/* -** $Id: lzio.h,v 1.26.1.1 2013/04/12 18:48:47 roberto Exp $ -** Buffered streams -** See Copyright Notice in lua.h -*/ - - -#ifndef lzio_h -#define lzio_h - -#include "lua.h" - -#include "lmem.h" - - -#define EOZ (-1) /* end of stream */ - -typedef struct Zio ZIO; - -#define zgetc(z) (((z)->n--)>0 ? cast_uchar(*(z)->p++) : luaZ_fill(z)) - - -typedef struct Mbuffer { - char *buffer; - size_t n; - size_t buffsize; -} Mbuffer; - -#define luaZ_initbuffer(L, buff) ((buff)->buffer = NULL, (buff)->buffsize = 0) - -#define luaZ_buffer(buff) ((buff)->buffer) -#define luaZ_sizebuffer(buff) ((buff)->buffsize) -#define luaZ_bufflen(buff) ((buff)->n) - -#define luaZ_resetbuffer(buff) ((buff)->n = 0) - - -#define luaZ_resizebuffer(L, buff, size) \ - (luaM_reallocvector(L, (buff)->buffer, (buff)->buffsize, size, char), \ - (buff)->buffsize = size) - -#define luaZ_freebuffer(L, buff) luaZ_resizebuffer(L, buff, 0) - - -LUAI_FUNC char *luaZ_openspace (lua_State *L, Mbuffer *buff, size_t n); -LUAI_FUNC void luaZ_init (lua_State *L, ZIO *z, lua_Reader reader, - void *data); -LUAI_FUNC size_t luaZ_read (ZIO* z, void* b, size_t n); /* read next n bytes */ - - - -/* --------- Private Part ------------------ */ - -struct Zio { - size_t n; /* bytes still unread */ - const char *p; /* current position in buffer */ - lua_Reader reader; /* reader function */ - void* data; /* additional data */ - lua_State *L; /* Lua state (for reader) */ -}; - - -LUAI_FUNC int luaZ_fill (ZIO *z); - -#endif diff --git a/source/libs/lua52/lua52.test b/source/libs/lua52/lua52.test deleted file mode 100644 index 34d5c4bad42d2b8dbe1dc1f177f40b0ee5ff813c..0000000000000000000000000000000000000000 --- a/source/libs/lua52/lua52.test +++ /dev/null @@ -1,7 +0,0 @@ -#! /bin/sh - -# Copyright (C) 2014 Peter Breitenlohner <tex-live@tug.org> -# You may freely use, modify and/or distribute this file. - -./luatest || exit 1 - diff --git a/source/libs/lua52/luaerror.test b/source/libs/lua52/luaerror.test deleted file mode 100644 index 3992b1d4bf8e577e33184bc4ff22b08e298f2039..0000000000000000000000000000000000000000 --- a/source/libs/lua52/luaerror.test +++ /dev/null @@ -1,15 +0,0 @@ -#! /bin/sh -vx -# Copyright 2017-2018 Karl Berry <tex-live@tug.org> -# Copyright 2014 Peter Breitenlohner <tex-live@tug.org> -# You may freely use, modify and/or distribute this file. - -LC_ALL=C; export LC_ALL; LANGUAGE=C; export LANGUAGE - -./luatry -e "error('test')" 2>error.tmp && exit 1 - -sed -e 's/lt-luatry/luatry/;s,^.*/luatry,./luatry,' error.tmp >error.out - -diff $srcdir/error.exp error.out || exit 1 - - - diff --git a/source/libs/lua52/luatest.c b/source/libs/lua52/luatest.c deleted file mode 100644 index ae2f3dcbe8e7fe8d42880d13b2cfd6376fe865be..0000000000000000000000000000000000000000 --- a/source/libs/lua52/luatest.c +++ /dev/null @@ -1,15 +0,0 @@ -/* luatest.c: Basic test for liblua52 - * - * Copyright (C) 2014 Peter Breitenlohner <tex-live@tug.org> - * You may freely use, modify and/or distribute this file. - */ - -#include <stdio.h> -#include <lua.h> - -int main (int argc, char **argv) -{ - printf ("%s: Compiled with %s\n", - argv[0], LUA_VERSION); - return 0; -} diff --git a/source/libs/lua52/texlua52.pc.in b/source/libs/lua52/texlua52.pc.in deleted file mode 100644 index 2e91e4f36f56a777eedabff3bbc3d3ba2723f097..0000000000000000000000000000000000000000 --- a/source/libs/lua52/texlua52.pc.in +++ /dev/null @@ -1,12 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ - -Name: Lua for LuaTeX -Description: Lua 5.2, modified for use with LuaTeX -Version: @LUA52VERSION@ -Libs: -L${libdir} -ltexlua52 -Libs.private: @LIBS@ -Cflags: -I${includedir}/texlua52 - diff --git a/source/libs/lua52/version.ac b/source/libs/lua52/version.ac deleted file mode 100644 index 6909c27af33deba2f3f5b953fde488ef6c287df6..0000000000000000000000000000000000000000 --- a/source/libs/lua52/version.ac +++ /dev/null @@ -1,11 +0,0 @@ -dnl -dnl Copyright (C) 2013-2015 Peter Breitenlohner <tex-live@tug.org> -dnl -dnl This file is free software; the copyright holder -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. -dnl -dnl -------------------------------------------------------- -dnl -dnl m4-include this file to define the current lua52 version -m4_define([lua52_version], [5.2.4]) diff --git a/source/libs/lua53/configure b/source/libs/lua53/configure index 587651654766d9c4668728421965b820f15fa831..f9bdca4da6c05726e0c325f536e202729c581401 100755 --- a/source/libs/lua53/configure +++ b/source/libs/lua53/configure @@ -3876,6 +3876,7 @@ else fi ;; esac +##tldbg KPSE_BASIC: Remember lua53 () as Kpse_Package (for future messages). if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output @@ -13321,9 +13322,9 @@ _ACEOF case $host:$ac_cv_sizeof_void_p in #( *-*-mingw*:4) : - kpse_dll_name=texlua53 ;; #( + kpse_dll_name=texlua ;; #( *-*-mingw*:8) : - kpse_dll_name=texlua53 ;; #( + kpse_dll_name=texlua ;; #( *-*-cygwin:4) : kpse_dll_name= ;; #( *-*-cygwin:8) : diff --git a/source/libs/lua53/configure.ac b/source/libs/lua53/configure.ac index a95651ea43b020bc8c27ead8112305be9f3bc132..b5f9f0532de3b7f6883da277bed9115b99bb8c57 100644 --- a/source/libs/lua53/configure.ac +++ b/source/libs/lua53/configure.ac @@ -24,7 +24,7 @@ KPSE_LT_VERSION([lua53]) LT_INIT([win32-dll]) -KPSE_DLL_NAME([texlua53], [texlua53]) +KPSE_DLL_NAME([texlua], [texlua]) AC_CONFIG_HEADERS([config.h])[]dnl unused, to avoid zillions of -D's on command line diff --git a/source/libs/luajit/LuaJIT-src/src/lj_alloc.c b/source/libs/luajit/LuaJIT-src/src/lj_alloc.c index 95d15d046adce17445d5e169e52c83eb20d8a7ef..e482a834669ddf80e00b077e534a8dba13545446 100644 --- a/source/libs/luajit/LuaJIT-src/src/lj_alloc.c +++ b/source/libs/luajit/LuaJIT-src/src/lj_alloc.c @@ -343,7 +343,7 @@ static void *CALL_MMAP(size_t size) } #endif -#if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) && !LJ_TARGET_PS4 +#if ((defined(__FreeBSD__) && __FreeBSD__ < 10) || defined(__FreeBSD_kernel__)) && !LJ_TARGET_PS4 #include <sys/resource.h> diff --git a/source/libs/luajit/TLpatches/patch-13 b/source/libs/luajit/TLpatches/patch-13 new file mode 100644 index 0000000000000000000000000000000000000000..a4aaeedbe5dcc235b88ff601203f9b9c15cbfa76 --- /dev/null +++ b/source/libs/luajit/TLpatches/patch-13 @@ -0,0 +1,13 @@ +diff -bur lj_alloc.c.orig lj_alloc.c +--- lj_alloc.c.orig 2018-10-27 20:24:05.499136144 +0200 ++++ lj_alloc.c 2018-10-27 20:24:28.790707009 +0200 +@@ -343,7 +343,7 @@ + } + #endif + +-#if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) && !LJ_TARGET_PS4 ++#if ((defined(__FreeBSD__) && __FreeBSD__ < 10) || defined(__FreeBSD_kernel__)) && !LJ_TARGET_PS4 + + #include <sys/resource.h> + + diff --git a/source/libs/luajit/configure b/source/libs/luajit/configure index 62e0e452414b5881736ffbc9036715e37176a1ed..1c0ad48d980a74ad56a65566f0099fdfedca451a 100755 --- a/source/libs/luajit/configure +++ b/source/libs/luajit/configure @@ -3943,6 +3943,7 @@ else fi ;; esac +##tldbg KPSE_BASIC: Remember luajit () as Kpse_Package (for future messages). if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output @@ -13810,7 +13811,6 @@ if test "$ac_res" != no; then : fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 $as_echo_n "checking for library containing dlopen... " >&6; } if ${ac_cv_search_dlopen+:} false; then : diff --git a/source/libs/luajit/configure.ac b/source/libs/luajit/configure.ac index 1eed7f255a2c48c4811c8338fc710172d6b09b2f..f3e20d48159412674edc7c04439e9aac52062f83 100644 --- a/source/libs/luajit/configure.ac +++ b/source/libs/luajit/configure.ac @@ -34,7 +34,6 @@ AC_CHECK_SIZEOF([void *]) ac_configure_args="$ac_configure_args HOST_PTR_SIZE='$ac_cv_sizeof_void_p'" AC_SEARCH_LIBS([pow], [m]) - AC_SEARCH_LIBS([dlopen], [dl]) KPSE_LUAJIT_DEFINES diff --git a/source/libs/luajit/native/configure b/source/libs/luajit/native/configure index 6668bba1ae167a623a38c81790cba82408603fd0..7294da4c7a19ef87c86c76a1a6419bc8694fc0b6 100755 --- a/source/libs/luajit/native/configure +++ b/source/libs/luajit/native/configure @@ -3747,6 +3747,7 @@ else fi ;; esac +##tldbg KPSE_BASIC: Remember luajit native () as Kpse_Package (for future messages). if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output @@ -5141,8 +5142,11 @@ _ACEOF if test "x$ac_cv_sizeof_void_p" != "x$HOST_PTR_SIZE"; then : HOST_PTR_BITS=`expr 8 \* $HOST_PTR_SIZE` -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: pointer size mismatch in cross-build; use a ${HOST_PTR_BITS}bit compiler BULDCC." >&5 -$as_echo "$as_me: WARNING: pointer size mismatch in cross-build; use a ${HOST_PTR_BITS}bit compiler BULDCC." >&2;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: pointer size mismatch in cross-build; use a ${HOST_PTR_BITS}bit compiler LUAJITCROSSCOMPILER." >&5 +$as_echo "$as_me: WARNING: pointer size mismatch in cross-build; use a ${HOST_PTR_BITS}bit compiler LUAJITCROSSCOMPILER." >&2;} +if test "x$LUAJITCROSSCOMPILER" != x""; then : + CC=$LUAJITCROSSCOMPILER +fi case $HOST_PTR_BITS in #( 32|64) : CC="$CC -m$HOST_PTR_BITS"; { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: trying: $CC" >&5 diff --git a/source/libs/luajit/native/configure.ac b/source/libs/luajit/native/configure.ac index ebb6d324dcabbf4478b7e187b62baf8f9d514244..4d7940412e3d9ee3ccb167d1e947d0443534d750 100644 --- a/source/libs/luajit/native/configure.ac +++ b/source/libs/luajit/native/configure.ac @@ -21,7 +21,8 @@ AC_PROG_LN_S AC_CHECK_SIZEOF([void *]) AS_IF([test "x$ac_cv_sizeof_void_p" != "x$HOST_PTR_SIZE"], [dnl HOST_PTR_BITS=`expr 8 \* $HOST_PTR_SIZE` -AC_MSG_WARN([pointer size mismatch in cross-build; use a ${HOST_PTR_BITS}bit compiler BULDCC.]) +AC_MSG_WARN([pointer size mismatch in cross-build; use a ${HOST_PTR_BITS}bit compiler LUAJITCROSSCOMPILER.]) +AS_IF([test "x$LUAJITCROSSCOMPILER" != x""],[CC=$LUAJITCROSSCOMPILER], []) AS_CASE([$HOST_PTR_BITS], [32|64], [CC="$CC -m$HOST_PTR_BITS"; AC_MSG_WARN([trying: $CC])])]) diff --git a/source/libs/zlib/configure b/source/libs/zlib/configure index 40ffe82aaaec5c12ae4752c144e66edfa09615d9..e40b8d0ea1bc7daae66bc8f15b0ccacc96a773fd 100755 --- a/source/libs/zlib/configure +++ b/source/libs/zlib/configure @@ -3646,6 +3646,7 @@ else fi ;; esac +##tldbg KPSE_BASIC: Remember zlib () as Kpse_Package (for future messages). if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output @@ -4700,7 +4701,7 @@ $as_echo "no, using $LN_S" >&6; } fi -echo 'dbg:_KPSE_COMPILER_VISIBILITY called.' >&5 +echo 'tldbg:KPSE_COMPILER_VISIBILITY called.' >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for C to hide external symbols" >&5 $as_echo_n "checking CFLAGS for C to hide external symbols... " >&6; } if ${kpse_cv_visibility_cflags+:} false; then : diff --git a/source/libs/zziplib/configure b/source/libs/zziplib/configure index 511990a7047388d7e0e9c4c225b667a454a180d0..26675494852ddce82429552cd80c805478b1a377 100755 --- a/source/libs/zziplib/configure +++ b/source/libs/zziplib/configure @@ -3978,6 +3978,7 @@ else fi ;; esac +##tldbg KPSE_BASIC: Remember zziplib () as Kpse_Package (for future messages). if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output @@ -5105,7 +5106,7 @@ $as_echo "no, using $LN_S" >&6; } fi -echo 'dbg:_KPSE_COMPILER_VISIBILITY called.' >&5 +echo 'tldbg:KPSE_COMPILER_VISIBILITY called.' >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for C to hide external symbols" >&5 $as_echo_n "checking CFLAGS for C to hide external symbols... " >&6; } if ${kpse_cv_visibility_cflags+:} false; then : @@ -6684,11 +6685,13 @@ done kpse_save_CPPFLAGS=$CPPFLAGS kpse_save_LIBS=$LIBS -## _KPSE_INIT: Initialize TL infrastructure +##tldbg _KPSE_INIT: Initialize TL infrastructure. kpse_BLD=`(cd "./../../." && pwd)` kpse_SRC=`(cd "$srcdir/../../." && pwd)` -## _KPSE_LIB_FLAGS: Setup zlib (-lz) flags +##tldbg _KPSE_LIB_FLAGS: Setup zlib (-lz) flags. +echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=zlib, libname=z, options=, tlincl=-IBLD/libs/zlib/include, tllib=BLD/libs/zlib/libz.a, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/zlib/include/zconf.h.' >&5 +##tldbg _KPSE_LIB_FLAGS_TL: zlib (z) . # Check whether --with-system-zlib was given. if test "${with_system_zlib+set}" = set; then : @@ -6705,7 +6708,8 @@ if test "${with_zlib_libdir+set}" = set; then : withval=$with_zlib_libdir; fi if test "x$with_system_zlib" = xyes; then - if test "x$with_zlib_includes" != x && test "x$with_zlib_includes" != xyes; then + ##tldbg _KPSE_LIB_FLAGS_SYSTEM: zlib (z). +if test "x$with_zlib_includes" != x && test "x$with_zlib_includes" != xyes; then ZLIB_INCLUDES="-I$with_zlib_includes" fi ZLIB_LIBS="-lz" diff --git a/source/m4/ChangeLog b/source/m4/ChangeLog index 3879271b2aeba4226889f0fbbe2f4c4eda8a4639..957005d800d6a12f1d6543bbeee2c3624208f26b 100644 --- a/source/m4/ChangeLog +++ b/source/m4/ChangeLog @@ -1,3 +1,15 @@ +2018-12-24 Karl Berry <karl@freefriends.org> + + * kpse-common.m4, + * kpse-pkgs.m4, + * kpse-setup.m4, + * kpse-visibility.m4: consistently use tldbg in tracing messages, + both in the configure scripts and the config.log transcript. + * kpse-icu-flags.m4 (_KPSE_ICU_FLAGS): special case to include + -lpthread when $build_os is openbsd. Reported by Mojca and Nelson + and others, e.g., + https://tug.org/pipermail/tlbuild/2017q2/003799.html + 2018-08-27 Karl Berry <karl@freefriends.org> * kpse-potrace-flags.m4: remove file, again bundled with dvisvgm. diff --git a/source/m4/kpse-common.m4 b/source/m4/kpse-common.m4 index c1f193d850d7606a55cf92379ed965f63108d4af..05aed4437db23a66303e32b7a79094b6cb19f2d9 100644 --- a/source/m4/kpse-common.m4 +++ b/source/m4/kpse-common.m4 @@ -1,6 +1,7 @@ +# $Id: kpse-common.m4 49495 2018-12-24 23:17:30Z karl $ # Public macros for the TeX Live (TL) tree. -# Copyright (C) 1995-2009 Karl Berry <tex-live@tug.org> -# Copyright (C) 2009-2015 Peter Breitenlohner <tex-live@tug.org> +# Copyright 1995-2009, 2018 Karl Berry <tex-live@tug.org> +# Copyright 2009-2015 Peter Breitenlohner <tex-live@tug.org> # # This file is free software; the copyright holders # give unlimited permission to copy and/or distribute it, @@ -16,7 +17,7 @@ AC_DEFUN([KPSE_LIBS_PREPARE], []) # Initialize infrastructure for libraries and programs in the TL tree. # If in the TL tree, define kpse_TL as relative path to the TL root. AC_DEFUN([_KPSE_INIT], -[## $0: Initialize TL infrastructure +[##tldbg $0: Initialize TL infrastructure. m4_syscmd([test -f ../../texk/kpathsea/doc/kpathsea.texi])[]dnl m4_if(m4_sysval, [0], [m4_define([kpse_TL], [../../])])[]dnl m4_ifdef([kpse_TL], @@ -34,7 +35,7 @@ AC_DEFUN([KPSE_INIT], # _KPSE_USE_LIBTOOL() # ------------------- AC_DEFUN([_KPSE_USE_LIBTOOL], -[## $0: Generate a libtool script for use in configure tests +[##tldbg $0: Generate a libtool script for use in configure tests. AC_PROVIDE_IFELSE([LT_INIT], , [m4_fatal([$0: requires libtool])])[]dnl LT_OUTPUT @@ -79,7 +80,8 @@ AC_LANG(_AC_LANG)[]dnl # the TL tree). AC_DEFUN([_KPSE_LIB_FLAGS], [AC_REQUIRE([_KPSE_INIT])[]dnl -## $0: Setup $1 (-l$2) flags +##tldbg $0: Setup $1 (-l$2) flags. +echo 'tldbg:[$0] called: libdir=[$1], libname=[$2], options=[$3], tlincl=[$4], tllib=[$5], tlextra=[$6], rebuildsrcdeps=[$7], rebuildblddeps=[$8].' >&AS_MESSAGE_LOG_FD m4_ifdef([kpse_TL], [_KPSE_LIB_FLAGS_TL($@)], [_KPSE_LIB_FLAGS_STANDALONE($@)])[]dnl @@ -106,7 +108,8 @@ AC_DEFUN([_KPSE_TEXLIB_FLAGS], # -------------------------------------------------- # Internal subroutine for use of _KPSE_LIB_FLAGS inside the TL tree. m4_define([_KPSE_LIB_FLAGS_TL], -[m4_if(m4_index([ $3 ], [ lt ]), [-1], , +[##tldbg $0: $1 ($2) $3. +m4_if(m4_index([ $3 ], [ lt ]), [-1], , [AC_REQUIRE([_KPSE_USE_LIBTOOL])])[]dnl m4_if m4_if(m4_index([ $3 ], [ tree ]), [-1], [KPSE_]AS_TR_CPP([$1])[_OPTIONS([with-system])[]dnl @@ -140,7 +143,8 @@ m4_if(m4_index([ $3 ], [ tree ]), [-1], # ---------------------------------------------------- # Internal subroutine for standalone use of _KPSE_LIB_FLAGS. m4_define([_KPSE_LIB_FLAGS_STANDALONE], -[m4_if(m4_index([ $3 ], [ tree ]), [-1], +[##tldbg $0: $1 ($2) $3. +m4_if(m4_index([ $3 ], [ tree ]), [-1], [KPSE_]AS_TR_CPP([$1])[_OPTIONS([])]dnl [KPSE_]AS_TR_CPP([$1])[_SYSTEM_FLAGS], [m4_fatal([$0: not in TL tree])])[]dnl m4_if @@ -167,7 +171,8 @@ AC_ARG_WITH([$1-libdir], # --------------------------------------- # Internal subroutine: default flags for system library. m4_define([_KPSE_LIB_FLAGS_SYSTEM], -[if test "x$with_[]AS_TR_SH($1)_includes" != x && test "x$with_[]AS_TR_SH($1)_includes" != xyes; then +[##tldbg $0: $1 ($2). +if test "x$with_[]AS_TR_SH($1)_includes" != x && test "x$with_[]AS_TR_SH($1)_includes" != xyes; then AS_TR_CPP($1)_INCLUDES="-I$with_[]AS_TR_SH($1)_includes" fi AS_TR_CPP($1)_LIBS="-l$2" @@ -207,7 +212,8 @@ eval LIBS=\"$[]AS_TR_CPP($1)_LIBS \$LIBS\" # Common Autoconf code for all libraries and programs. # # Initialization of Automake, compiler warnings, etc. -AC_DEFUN([KPSE_BASIC], [dnl Remember PACKAGE-NAME as Kpse_Package (for future messages) +AC_DEFUN([KPSE_BASIC], [dnl +##tldbg $0: Remember $1 ($2) as Kpse_Package (for future messages). m4_define([Kpse_Package], [$1]) dnl AM_INIT_AUTOMAKE([foreign silent-rules subdir-objects]m4_ifval([$2], [ $2])) @@ -234,6 +240,7 @@ KPSE_COMPILER_WARNINGS # Originally written by Karl Berry as texk/kpathsea/common.ac. # AC_DEFUN([KPSE_COMMON], [dnl +##tldbg $0: $1 ($2). KPSE_BASIC($@) dnl LT_PREREQ([2.2.6]) diff --git a/source/m4/kpse-icu-flags.m4 b/source/m4/kpse-icu-flags.m4 index 8a1fbea97812694b270ab2d360afa1923a028e42..c7c02676aa76d71804d7dfc629b4f403e3ee8de9 100644 --- a/source/m4/kpse-icu-flags.m4 +++ b/source/m4/kpse-icu-flags.m4 @@ -1,22 +1,24 @@ -# $Id: kpse-icu-flags.m4 46014 2017-12-07 23:42:12Z karl $ -# ICU support for the TeX Live (TL) tree. -# Copyright 2017 Karl Berry <tex-live@tug.org> +# $Id: kpse-icu-flags.m4 49495 2018-12-24 23:17:30Z karl $ +# ICU support in the TeX Live (TL) tree. +# Copyright 2017-2018 Karl Berry <tex-live@tug.org> # Copyright 2009-2015 Peter Breitenlohner <tex-live@tug.org> # # This file is free software; the copyright holder # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# KPSE_ICU_FLAGS([MORE-ICU-LIBS], [ICU_CONFIG_ARGS]) +# KPSE_ICU_FLAGS([MORE-ICU-LIBS], [ICU-CONFIG-ARGS]) # -------------------------------------------------- # Provide the configure option '--with-system-icu' (if in the TL tree). # -# ICU_CONFIG_ARGS: icu-config arguments for additional icu libraries. +# MORE-ICU-LIBS: icu libraries from TL tree in addition to icuuc and icudata. +# ICU-CONFIG-ARGS: icu-config arguments for additional icu libraries. # # Set the make variables ICU_INCLUDES and ICU_LIBS to the CPPFLAGS and # LIBS required for the icu libraries in libs/icu/ of the TL tree. AC_DEFUN([KPSE_ICU_FLAGS], -[m4_pushdef([kpse_icu_config_args], [$2])[]dnl +[echo 'tldbg:[$0] called: more-icu-libs=[$1], icu-config-args=[$2].' >&AS_MESSAGE_LOG_FD +m4_pushdef([kpse_icu_config_args], [$2])[]dnl _KPSE_ICU_FLAGS([icuxxx], [], [$1])[]dnl m4_popdef([kpse_icu_config_args])[]dnl ]) # KPSE_ICU_FLAGS @@ -26,8 +28,7 @@ m4_popdef([kpse_icu_config_args])[]dnl # Internal subroutine. # # LIBNAME and OPTIONS as for _KPSE_LIB_FLAGS(). -# MORE-ICU-LIBS: icu libraries from the TL tree in addition to icuuc and -# icudata. +# MORE-ICU-LIBS: as above. m4_define([_KPSE_ICU_FLAGS], [dnl _KPSE_LIB_FLAGS([icu], [$1], [$2], [-DU_STATIC_IMPLEMENTATION -IBLD/libs/icu/include], @@ -36,6 +37,12 @@ _KPSE_LIB_FLAGS([icu], [$1], [$2], [BLD/libs/icu/icu-build/lib/libicu\1.a]), [], [], [${top_builddir}/../../libs/icu/include/unicode/uversion.h])[]dnl +# checking for openbsd to add -lpthread for icu. +case $build_os in +openbsd*) + eval AS_TR_CPP($1)_LIBS=\"$[]AS_TR_CPP($1)_LIBS -lpthread\" + ;; +esac ]) # _KPSE_ICU_FLAGS # KPSE_ICU_OPTIONS([WITH-SYSTEM]) @@ -51,7 +58,7 @@ m4_ifval([$1], # --------------------- AC_DEFUN([KPSE_ICU_SYSTEM_FLAGS], [dnl AC_REQUIRE([AC_CANONICAL_HOST])[]dnl -echo 'dbg:[_KPSE_ICU_SYSTEM_FLAGS] called.' >&AS_MESSAGE_LOG_FD +echo 'tldbg:[$0] called.' >&AS_MESSAGE_LOG_FD AC_CHECK_TOOL([ICU_CONFIG], [icu-config], [false])[]dnl AC_CHECK_TOOL([PKG_CONFIG], [pkg-config], [false])[]dnl if $ICU_CONFIG --version >/dev/null 2>&1; then diff --git a/source/m4/kpse-pkgs.m4 b/source/m4/kpse-pkgs.m4 index 70c77478cdd817ff761ecb4962ae5b0a8bc092ac..50df0e583c18bc073254409eb61046746f7904a7 100644 --- a/source/m4/kpse-pkgs.m4 +++ b/source/m4/kpse-pkgs.m4 @@ -1,4 +1,4 @@ -# $Id: kpse-pkgs.m4 48527 2018-08-31 23:11:41Z karl $ +# $Id: kpse-pkgs.m4 49495 2018-12-24 23:17:30Z karl $ # Private Autoconf macros for the TeX Live (TL) tree. # Copyright 2016-2018 Karl Berry <tex-live@tug.org> # Copyright 2009-2015 Peter Breitenlohner <tex-live@tug.org> @@ -7,9 +7,9 @@ # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -## ------------------------------ ## -## Define lists of sub-packages. ## -## ------------------------------ ## +# ------------------------------ # +# Define lists of sub-packages. # +# ------------------------------ # # Hopefully these lists are defined here and nowhere else. # Note: directories in these lists need not exist. @@ -112,6 +112,7 @@ dtl dvi2tty dvidvi dviljk +dviout-util dvipdfm-x dvipng dvipos @@ -135,11 +136,9 @@ xdvik texlive ])]) # KPSE_TEXK_PKGS - - -## ------------------------------- ## -## Loop over one of these lists. ## -## ------------------------------- ## +# ------------------------------- # +# Loop over one of these lists. # +# ------------------------------- # # KPSE_FOR_PKGS(LIST, ACTION) # --------------------------- diff --git a/source/m4/kpse-setup.m4 b/source/m4/kpse-setup.m4 index 020adfea8e1d722e8c621b7d9a3227bb564d3cad..bb174a110a40aac43c87a719111ef2a4f875f195 100644 --- a/source/m4/kpse-setup.m4 +++ b/source/m4/kpse-setup.m4 @@ -1,6 +1,6 @@ -# $Id: kpse-setup.m4 45671 2017-11-02 18:12:59Z karl $ +# $Id: kpse-setup.m4 49495 2018-12-24 23:17:30Z karl $ # Private macros for the TeX Live (TL) tree. -# Copyright 2017 Karl Berry <tex-live@tug.org> +# Copyright 2017-2018 Karl Berry <tex-live@tug.org> # Copyright 2009-2015 Peter Breitenlohner <tex-live@tug.org> # # This file is free software; the copyright holder @@ -275,7 +275,7 @@ m4_popdef([Kpse_add])[]dnl # m4_define([_KPSE_RECURSE], [dnl AC_MSG_CHECKING([for $2 to build]) -echo 'dbg:[_KPSE_RECURSE] called: list=$1, text=$2, cond=$3, prefix=$4.' >&AS_MESSAGE_LOG_FD +echo 'tldbg:[$0] called: list=[$1], text=[$2], cond=[$3], prefix=[$4].' >&AS_MESSAGE_LOG_FD MAKE_SUBDIRS= CONF_SUBDIRS= KPSE_FOR_PKGS([$1], [dnl diff --git a/source/m4/kpse-visibility.m4 b/source/m4/kpse-visibility.m4 index c2761156ffc636f901bf6415ad11b542fe380dba..c07938ac2b8883b0ad010a422732906dccf110ba 100644 --- a/source/m4/kpse-visibility.m4 +++ b/source/m4/kpse-visibility.m4 @@ -1,6 +1,6 @@ -# $Id: kpse-visibility.m4 45970 2017-12-02 23:50:45Z karl $ +# $Id: kpse-visibility.m4 49495 2018-12-24 23:17:30Z karl $ # Public macros for the TeX Live (TL) tree. -# Copyright 2017 Karl Berry <tex-live@tug.org> +# Copyright 2017-2018 Karl Berry <tex-live@tug.org> # Copyright 2013-2014 Peter Breitenlohner <tex-live@tug.org> # # This file is free software; the copyright holder @@ -15,7 +15,7 @@ # them a Makefile.am must use them, e.g., in AM_CFLAGS or AM_CXXFLAGS. AC_DEFUN([KPSE_COMPILER_VISIBILITY], [dnl arrange that AC_PROG_CC uses _KPSE_VISIBILITY_CFLAGS etc. -echo 'dbg:[_KPSE_COMPILER_VISIBILITY] called.' >&AS_MESSAGE_LOG_FD +echo 'tldbg:[$0] called.' >&AS_MESSAGE_LOG_FD AC_PROVIDE_IFELSE([AC_PROG_CC], [_KPSE_VISIBILITY_CFLAGS], [m4_define([AC_PROG_CC], diff --git a/source/texk/Makefile.in b/source/texk/Makefile.in index 19325d2a8889b6a62c43eb669ad39d99a1d7b0d9..72a8e2bb143086d2cdc98234882adb8141fcda66 100644 --- a/source/texk/Makefile.in +++ b/source/texk/Makefile.in @@ -111,7 +111,6 @@ am__aclocal_m4_deps = $(top_srcdir)/../m4/kpse-common.m4 \ $(top_srcdir)/../libs/zziplib/ac/withenable.ac \ $(top_srcdir)/../libs/libpng/ac/withenable.ac \ $(top_srcdir)/../libs/luajit/ac/withenable.ac \ - $(top_srcdir)/../libs/lua52/ac/withenable.ac \ $(top_srcdir)/../libs/lua53/ac/withenable.ac \ $(top_srcdir)/../libs/zlib/ac/withenable.ac \ $(top_srcdir)/../texk/kpathsea/ac/withenable.ac \ diff --git a/source/texk/README b/source/texk/README index 62ebc875d88f3d415ad8e81fe103af8c46b8ffeb..39308215faadfee67c7d84ab1027d9c3fce8587f 100644 --- a/source/texk/README +++ b/source/texk/README @@ -1,4 +1,4 @@ -$Id: README 48410 2018-08-16 00:59:29Z hironobu $ +$Id: README 49020 2018-10-29 22:11:07Z karl $ Copyright 2006-2018 TeX Users Group. You may freely use, modify and/or distribute this file. @@ -47,6 +47,10 @@ dvidvi - maintained here dviljk - maintained here, by Joachim Schrod +dviout-util - by Japanese TeX Development Community (Hironobu, Takuji et al.) + https://github.com/texjporg/tex-jp-build + but also: https://github.com/aminophen/dviout-util + dvipdfm-x - maintained here, by us, contains dvipdfmx xdvipdfmx @@ -60,7 +64,7 @@ dvipos - maintained here, by us dvipsk - maintained here, by us -dvisvgm 2.4.2 - checked 19jul18 +dvisvgm 2.6.1 - checked 29oct18 https://dvisvgm.de/Downloads/ gregorio 5.1.1 - checked 25mar18 diff --git a/source/texk/configure b/source/texk/configure index bf3706ce2c54880a096305787fe2f22e9e6d1217..c3320d8bc50b8eea6c8a26e4664631abf23607c8 100755 --- a/source/texk/configure +++ b/source/texk/configure @@ -3686,9 +3686,6 @@ test "x$need_libpng" = xyes && { ## libs/luajit/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/luajit/ ## configure options and TL libraries required for luajit -## libs/lua52/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/lua52/ -## configure options and TL libraries required for lua52 - ## libs/lua53/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/lua53/ ## configure options and TL libraries required for lua53 @@ -4317,6 +4314,7 @@ else fi ;; esac +##tldbg KPSE_BASIC: Remember texk () as Kpse_Package (for future messages). if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output @@ -4673,7 +4671,7 @@ WARNING_CFLAGS=$kpse_cv_warning_cflags { $as_echo "$as_me:${as_lineno-$LINENO}: checking for TeXk programs to build" >&5 $as_echo_n "checking for TeXk programs to build... " >&6; } -echo 'dbg:_KPSE_RECURSE called: list=texk, text=TeXk programs, cond=test "x$enable_Kpse_pkg" = xyes, prefix=.' >&5 +echo 'tldbg:_KPSE_RECURSE called: list=texk, text=TeXk programs, cond=test "x$enable_[]Kpse_pkg" = xyes, prefix=.' >&5 MAKE_SUBDIRS= CONF_SUBDIRS= if test -x $srcdir/web2c/configure; then diff --git a/source/texk/kpathsea/ChangeLog b/source/texk/kpathsea/ChangeLog index 6341326931eca8b350fee9e1c4e5ca09c3a16cb4..5d0e755174cebafeff43d9dbf030edf5557e8ff5 100644 --- a/source/texk/kpathsea/ChangeLog +++ b/source/texk/kpathsea/ChangeLog @@ -1,3 +1,80 @@ +2018-12-30 Karl Berry <karl@tug.org> + + * texmf.cnf (shell_escape_commands): make that r-mpost. + +2018-12-24 Andreas Scherer <https://ascherer.github.io> + + * kpsewhich.c: Add missing format placeholder. + +2018-12-21 Karl Berry <karl@freefriends.org> + + * texmf.cnf (shell_escape_commands): add rmpost. + +2018-12-17 Karl Berry <karl@freefriends.org> + + * kpsewhich.c (--var-brace-value, var_to_brace_value): new option + and corresponding option. + (main): new case for it. For --var-value, go back to just variable + (kpathsea_var_value) expansion. + * doc/kpathsea.texi (Auxiliary tasks): document the new option, + try to explain the difference. + Follow-up report from jbglaw, + https://github.com/TeX-Live/texlive-source/issues/3. + +2018-12-14 Karl Berry <karl@tug.org> + + * c-pathch.h (IS_KPSE_SEP): check for both : and ; only on Unix. + On Windows, : is the c: drive separator and must not ever be + a path separator. + + * texmf.cnf (TEXMFDOTDIR): new variable, used instead of + literal "." in all search paths, so that it can be redefined as + ".//". Suggestion from Linas Stonys, tex-k 4 Dec 2018 10:09:35. + +2018-12-13 Karl Berry <karl@freefriends.org> + + * c-pathch.h (IS_KPSE_SEP): new macro to check for either : or ; + regardless of the current system. + * path-elt.c (element): use it when extracting the path elements, + so that we'll get ~ expansion on Unix in, e.g., + env FOO='/;~' ./kpsewhich --expand-braces='$FOO' + * kpsewhich.c (main): call kpathsea_brace_expand on the result + from kpathsea_var_value, so that we'll get ~ expansion in, e.g., + env FOO='/:~' ./kpsewhich --var-value=FOO + Original report from e-kwsm (E Kawashima), + https://github.com/TeX-Live/texlive-source/issues/3 + + * NEWS, + * doc/kpathsea.texi (Auxiliary tasks): document that -var-value + now does brace expansion. + +2018-12-12 Karl Berry <karl@freefriends.org> + + * expand.h, + * pathsearch.h, + * cnf.c: doc fixes. + + * kpsewhich.c (main): show path when --show-path can't run. + +2018-12-11 Karl Berry <karl@freefriends.org> + + * kpsewhich.c (main): formatting. + +2018-12-04 Karl Berry <karl@freefriends.org> + + * kpsewhich.c (main) [WIN32]: #define puts kpathsea_win32_puts + once, instead of many #ifdefs throughout function. + +2018-11-23 Akira Kakuto <kakuto@fuk.kindai.ac.jp> + + * elt-dirs.c, knj.c, progname.c: Support non-ascii values + for variables in the case of + command_line_encoding = utf-8 (w32 only). + +2018-11-12 Andreas Scherer <https://ascherer.github.io> + + * tex-make.c (maketex): check return value from dup(2). + 2018-07-02 Karl Berry <karl@freefriends.org> * kpsewhich.c (lookup): warn that --all is ignored with bitmap fonts. diff --git a/source/texk/kpathsea/NEWS b/source/texk/kpathsea/NEWS index 3be0479b0553582d6ba6b831219841e2c7d04328..68dc912e11bd86e730e0dce6340d1afe79488cad 100644 --- a/source/texk/kpathsea/NEWS +++ b/source/texk/kpathsea/NEWS @@ -1,6 +1,13 @@ -$Id: NEWS 47457 2018-04-13 22:20:58Z karl $ +$Id: NEWS 49400 2018-12-13 17:23:10Z karl $ This file records noteworthy changes. (Public domain.) +6.3.1 (for TeX Live 2019) +* kpsewhich --var-value does brace expansion as well as variable and + tilde expansion. +* The kpathsea_path_search() and related functions always recognize either + common path separator (: or ;) when splitting paths into elements. + (Before, there were some unusual contexts where this did not happen.) + 6.3.0 (for TeX Live 2018, 14 April 2018) * New configuration value texmf_casefold_search to fall back to case-insensitive search in non-system directories if there is no exact diff --git a/source/texk/kpathsea/c-pathch.h b/source/texk/kpathsea/c-pathch.h index 76352f82a6dfd665e7f7663a875bcc5f39dd6270..44b101035127b72b24f5413ac0169e3a3e8a0ffd 100644 --- a/source/texk/kpathsea/c-pathch.h +++ b/source/texk/kpathsea/c-pathch.h @@ -1,7 +1,7 @@ /* c-pathch.h: define the characters which separate components of filenames and environment variable paths. - Copyright 1992, 1993, 1995, 1997, 2008 Karl Berry. + Copyright 1992, 1993, 1995, 1997, 2008, 2018 Karl Berry. Copyright 1997, 1999, 2001, 2005 Olaf Weber. This library is free software; you can redistribute it and/or @@ -90,6 +90,10 @@ #else # define ENV_SEP ':' # define ENV_SEP_STRING ":" +/* Because paths in Kpathsea cnf files allow use of either ; or : separators + regardless of the current system, on Unix we sometimes need to check + for either . */ +# define IS_KPSE_SEP(ch) ((ch) == ':' || (ch) == ';') #endif #endif /* not ENV_SEP */ @@ -97,4 +101,11 @@ #define IS_ENV_SEP(ch) ((ch) == ENV_SEP) #endif +#ifndef IS_KPSE_SEP +/* But for Windows, we do not want to consider : as a path separator, + ever, because it is the drive separator (as in c:\tex). So just + check for the regular separator (;). */ +#define IS_KPSE_SEP(ch) (IS_ENV_SEP (ch)) +#endif + #endif /* not C_PATHCH_H */ diff --git a/source/texk/kpathsea/cnf.c b/source/texk/kpathsea/cnf.c index b8d4a9c69ac71f9f4a1e8d0cd38289d02ded461a..60a5df93e6de98d27d9eb1294fb3924ff7206f97 100644 --- a/source/texk/kpathsea/cnf.c +++ b/source/texk/kpathsea/cnf.c @@ -1,7 +1,7 @@ /* cnf.c: read config files. Copyright 1994, 1995, 1996, 1997, 2008, 2009, 2011, 2012, 2016, - 2017 Karl Berry. + 2017, 2018 Karl Berry. Copyright 1997-2005 Olaf Weber. This library is free software; you can redistribute it and/or @@ -140,14 +140,14 @@ do_line (kpathsea kpse, string line) value[len] = 0; /* Suppose we want to write a single texmf.cnf that can be used under - both NT and Unix. This is feasible except for the path separators - : on Unix, ; on NT. We can't switch NT to allowing :'s, since : - is the drive separator. So we switch Unix to allowing ;'s. On the - other hand, we don't want to change IS_ENV_SEP and all the rest. - - So, simply translate all ;'s in the path - values to :'s if we are a Unix binary. (Fortunately we don't use ; - in other kinds of texmf.cnf values.) */ + both Windows and Unix. This is feasible except for the path + separators: : on Unix, ; on Windows. We can't switch Windows to + allowing :, since : is the drive separator. So we switch Unix to + allowing ;. On the other hand, we don't want to change IS_ENV_SEP + and all the rest. + + So, translate all ;'s in the path values to :'s if we'd normally + use :. (Fortunately we don't use ; as a normal character in values.) */ if (IS_ENV_SEP(':')) { string loc; diff --git a/source/texk/kpathsea/configure b/source/texk/kpathsea/configure index 9b88c3db5ecc1c38d860e00e504bf628253d6992..6537f0559c286fc43cd690e7d178fbcb444968d4 100755 --- a/source/texk/kpathsea/configure +++ b/source/texk/kpathsea/configure @@ -8048,6 +8048,8 @@ fi done +##tldbg KPSE_COMMON: kpathsea (). +##tldbg KPSE_BASIC: Remember kpathsea () as Kpse_Package (for future messages). if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output diff --git a/source/texk/kpathsea/doc/kpathsea.info b/source/texk/kpathsea/doc/kpathsea.info index 547ea1a5161f3d7530bc9ddef393ea55eda0f74e..b6438df80adcbd18a3fe05fe61bd2f89740e6324 100644 --- a/source/texk/kpathsea/doc/kpathsea.info +++ b/source/texk/kpathsea/doc/kpathsea.info @@ -37,7 +37,7 @@ Kpathsea library **************** This manual documents the Kpathsea library for path searching. It -corresponds to version 6.3.0, released in July 2018. +corresponds to version 6.3.0, released in December 2018. * Menu: @@ -62,7 +62,7 @@ File: kpathsea.info, Node: Introduction, Next: unixtex.ftp, Prev: Top, Up: T ************** This manual corresponds to version 6.3.0 of the Kpathsea library, -released in July 2018. +released in December 2018. The library's fundamental purpose is to return a filename from a list of directories specified by the user, similar to what shells do when @@ -725,7 +725,7 @@ File: kpathsea.info, Node: Brace expansion, Next: KPSE_DOT expansion, Prev: T foo/{1,2}/baz expands to 'foo/1/baz:foo/2/baz'. ':' is the path separator on the -current system; e.g., on a DOS system, it's ';'. +current system; e.g., on a Windows system, it's ';'. Braces can be nested; for example, 'x{A,B{1,2}}y' expands to 'xAy:xB1y:xB2y'. @@ -738,7 +738,7 @@ example, 'x{A,B}{1,2}y' expands to 'x{A,B}1y:x{A,B}2y', which expands to assigning a brace list to '$TEXMF', as mentioned in 'texmf.in'. You can also use the path separator instead of the comma. The last -example could have been written 'x{A:B}{1:2}y'. +example could have been written 'x{A:B}{1:2}y' (on Unix). Brace expansion is implemented in the source file 'kpathsea/expand.c'. @@ -1425,8 +1425,8 @@ Kpsewhich provides some features in addition to path lookup as such: Set debugging options to NUM. *Note Debugging::. '--expand-braces=STRING' - Output variable and brace expansion of STRING. *Note Path - expansion::. + Output variable, tilde, and brace expansion of STRING, which is + assumed to be a single path element. *Note Path expansion::. '--expand-path=STRING' Output the complete expansion of STRING, with each element @@ -1444,12 +1444,12 @@ Kpsewhich provides some features in addition to path lookup as such: => For one-shot uses of an arbitrary (not built in to Kpathsea) path, - see '--path' (*note Path searching options::) + see '--path' (*note Path searching options::). '--expand-var=STRING' - Output the variable and tilde expansion of STRING the 'mktex...' - scripts run 'kpsewhich --expand-var='$TEXMF'' to find the root of - the TeX system hierarchy. *Note Path expansion::. + Output the variable and tilde expansion of STRING. For example, + with the usual 'texmf.cnf', 'kpsewhich --expand-var='$TEXMF'' + returns the TeX system hierarchy root(s). *Note Path expansion::. '--help-formats' Output information about each supported format (*note Supported @@ -1469,11 +1469,33 @@ Kpsewhich provides some features in addition to path lookup as such: integer can be used, just as with '--format', described in the previous section. +'--var-brace-value=VARIABLE' + Like '--var-value' (next), but also expands '{...}' constructs. + (*note Brace expansion::). Thus, the value is assumed to possibly + be several path elements, and '~' is expanded at the beginning of + each. The path separator is changed to that of the current system + in the expansion. + + Example: 'FOO='.;~' kpsewhich --var-brace-value=FOO' outputs (on a + Unix-ish system) '.:/home/karl', supposing the latter is the + current user's home directory. Note that the ';' in the source + value, as commonly used in 'texmf.cnf', has changed to a ':', as + the normal path separator on the current system. (On a Windows-ish + system, the ';' would remain.) + '--var-value=VARIABLE' - Outputs the value of VARIABLE (a simple identifier like 'TEXMF', - with no '$' or other constructs), expanding '$' (*note Variable - expansion:: and '~' (*note Tilde expansion::) constructs, but not - performing other expansions. + Outputs the value of VARIABLE (a simple identifier like + 'TEXMFDIST', with no '$' or other constructs), expanding '$' (*note + Variable expansion::) and '~' (*note Tilde expansion::) constructs + in the value. '~' expansion happens at the beginning of the + overall value and at the beginning of a variable expansion, but not + arbitrarily within the string. Braces are not expanded. + + Example: '--var-value=texmf_casefold_search' outputs (if the + default is not changed) '1'. + + Example to contrast with '--var-brace-value': 'FOO='.;~' kpsewhich + --var-value=FOO' outputs '.;~', i.e., the same as the input value. File: kpathsea.info, Node: Standard options, Prev: Auxiliary tasks, Up: Invoking kpsewhich @@ -2911,9 +2933,6 @@ running a normal input file, the problem is usually a compiler bug passed, problems may lurk. Optimization occasionally causes trouble in programs other than TeX and Metafont themselves, too. - Insufficient swap space may also cause core dumps or other erratic -behavior. - For a workaround, if you enabled any optimization flags, it's best to omit optimization entirely. In any case, the way to find the facts is to run the program under the debugger and see where it's failing. @@ -2926,8 +2945,7 @@ also recommend reporting a bug to the GCC mailing list; see *note To report compiler bugs effectively requires perseverance and perspicacity: you must find the miscompiled line, and that usually involves delving backwards in time from the point of error, checking -through TeX's (or whatever program's) data structures. Things are not -helped by all-too-common bugs in the debugger itself. Good luck. +through TeX's (or whatever program's) data structures. Good luck. File: kpathsea.info, Node: Index, Prev: Reporting bugs, Up: Top @@ -2978,7 +2996,8 @@ Index * --show-path=NAME: Auxiliary tasks. (line 51) * --subdir=STRING: Path searching options. (line 164) -* --var-value=VARIABLE: Auxiliary tasks. (line 57) +* --var-brace-value=VARIABLE: Auxiliary tasks. (line 57) +* --var-value=VARIABLE: Auxiliary tasks. (line 71) * --version: Standard options. (line 11) * --with-mktextex-default: mktex configuration. (line 12) * --without-mktexfmt-default: mktex configuration. (line 12) @@ -3195,7 +3214,7 @@ Index * compiler bugs: TeX or Metafont failing. (line 6) * compiler bugs, finding: TeX or Metafont failing. - (line 24) + (line 21) * conditions for use: Introduction. (line 32) * config files: Config files. (line 6) * config files, for Kpathsea-using programs: Calling sequence. @@ -3360,7 +3379,7 @@ Index * glyphlist.txt: Specially-recognized files. (line 25) * GNU C compiler bugs: TeX or Metafont failing. - (line 19) + (line 16) * GNU General Public License: Introduction. (line 32) * group-writable directories: Security. (line 40) * GSFTOPK_DEBUG (128): Debugging. (line 88) @@ -3535,7 +3554,7 @@ Index * OPENTYPEFONTS: Supported file formats. (line 145) * optimization caveat: TeX or Metafont failing. - (line 15) + (line 12) * options for debugging: Debugging. (line 6) * OTPINPUTS: Supported file formats. (line 151) @@ -3669,7 +3688,7 @@ Index * symbolic links, and ls-R: ls-R. (line 38) * symlinks, resolving: Calling sequence. (line 31) * system C compiler bugs: TeX or Metafont failing. - (line 19) + (line 16) * system-dependent casefolding behavior: Casefolding rationale. (line 6) * T1FONTS: Supported file formats. @@ -3847,61 +3866,61 @@ Index Tag Table: Node: Top1480 -Node: Introduction2259 -Node: History4328 -Node: unixtex.ftp8924 -Node: Security10349 -Node: TeX directory structure12853 -Node: Path searching16901 -Node: Searching overview17628 -Node: Path sources21447 -Node: Config files22538 -Node: Path expansion26465 -Node: Default expansion27418 -Node: Variable expansion29488 -Node: Tilde expansion30889 -Node: Brace expansion31869 -Node: KPSE_DOT expansion32794 -Node: Subdirectory expansion33307 -Node: Casefolding search35661 -Node: Casefolding rationale36430 -Node: Casefolding examples37769 -Node: Filename database42819 -Node: ls-R43877 -Node: Filename aliases46772 -Node: Database format47950 -Node: Invoking kpsewhich48963 -Node: Path searching options49918 -Node: Specially-recognized files58437 -Node: Auxiliary tasks59792 -Node: Standard options62131 -Node: TeX support62487 -Node: Supported file formats63841 -Node: File lookup71506 -Node: Glyph lookup73255 -Node: Basic glyph lookup74379 -Node: Fontmap75259 -Node: Fallback font77788 -Node: Suppressing warnings78700 -Node: mktex scripts79827 -Node: mktex configuration81042 -Node: mktex script names86845 -Node: mktex script arguments88231 -Node: Programming89110 -Node: Programming overview89683 -Node: Calling sequence92544 -Node: Program-specific files99076 -Node: Programming with config files100099 -Node: Reporting bugs101411 -Node: Bug checklist102089 -Node: Mailing lists105561 -Node: Debugging106236 -Node: Logging111313 -Node: Common problems113180 -Node: Unable to find files113657 -Node: Slow path searching116067 -Node: Unable to generate fonts117442 -Node: TeX or Metafont failing119913 -Node: Index121266 +Node: Introduction2263 +Node: History4336 +Node: unixtex.ftp8932 +Node: Security10357 +Node: TeX directory structure12861 +Node: Path searching16909 +Node: Searching overview17636 +Node: Path sources21455 +Node: Config files22546 +Node: Path expansion26473 +Node: Default expansion27426 +Node: Variable expansion29496 +Node: Tilde expansion30897 +Node: Brace expansion31877 +Node: KPSE_DOT expansion32816 +Node: Subdirectory expansion33329 +Node: Casefolding search35683 +Node: Casefolding rationale36452 +Node: Casefolding examples37791 +Node: Filename database42841 +Node: ls-R43899 +Node: Filename aliases46794 +Node: Database format47972 +Node: Invoking kpsewhich48985 +Node: Path searching options49940 +Node: Specially-recognized files58459 +Node: Auxiliary tasks59814 +Node: Standard options63353 +Node: TeX support63709 +Node: Supported file formats65063 +Node: File lookup72728 +Node: Glyph lookup74477 +Node: Basic glyph lookup75601 +Node: Fontmap76481 +Node: Fallback font79010 +Node: Suppressing warnings79922 +Node: mktex scripts81049 +Node: mktex configuration82264 +Node: mktex script names88067 +Node: mktex script arguments89453 +Node: Programming90332 +Node: Programming overview90905 +Node: Calling sequence93766 +Node: Program-specific files100298 +Node: Programming with config files101321 +Node: Reporting bugs102633 +Node: Bug checklist103311 +Node: Mailing lists106783 +Node: Debugging107458 +Node: Logging112535 +Node: Common problems114402 +Node: Unable to find files114879 +Node: Slow path searching117289 +Node: Unable to generate fonts118664 +Node: TeX or Metafont failing121135 +Node: Index122337 End Tag Table diff --git a/source/texk/kpathsea/doc/kpathsea.texi b/source/texk/kpathsea/doc/kpathsea.texi index 999819a516cc896cee720a05b1c707072247100c..449bd0e74893b06ad984492f0a88b46314dfa75c 100644 --- a/source/texk/kpathsea/doc/kpathsea.texi +++ b/source/texk/kpathsea/doc/kpathsea.texi @@ -3,7 +3,7 @@ @settitle Kpathsea: A library for path searching @set version 6.3.0 -@set month-year July 2018 +@set month-year December 2018 @copying This file documents the Kpathsea library for path searching. @@ -919,7 +919,7 @@ foo/@{1,2@}/baz @end example @noindent expands to @samp{foo/1/baz:foo/2/baz}. @samp{:} is the path -separator on the current system; e.g., on a DOS system, it's @samp{;}. +separator on the current system; e.g., on a Windows system, it's @samp{;}. Braces can be nested; for example, @samp{x@{A,B@{1,2@}@}y} expands to @samp{xAy:xB1y:xB2y}. @@ -934,7 +934,7 @@ assigning a brace list to @code{$TEXMF}, as mentioned in @file{texmf.in}. You can also use the path separator instead of the comma. The last -example could have been written @samp{x@{A:B@}@{1:2@}y}. +example could have been written @samp{x@{A:B@}@{1:2@}y} (on Unix). @flindex expand.c @@ -1769,8 +1769,8 @@ Set debugging options to @var{num}. @xref{Debugging}. @item --expand-braces=@var{string} @opindex --expand-braces=@var{string} -Output variable and brace expansion of @var{string}. @xref{Path -expansion}. +Output variable, tilde, and brace expansion of @var{string}, which is +assumed to be a single path element. @xref{Path expansion}. @item --expand-path=@var{string} @opindex --expand-path=@var{string} @@ -1791,14 +1791,14 @@ $ kpsewhich --expand-path '/nonesuch' @end example For one-shot uses of an arbitrary (not built in to Kpathsea) path, see -@samp{--path} (@pxref{Path searching options}) +@samp{--path} (@pxref{Path searching options}). @item --expand-var=@var{string} @opindex --expand-var=@var{string} -Output the variable and tilde expansion of @var{string} -the @samp{mktex@dots{}} scripts run @samp{kpsewhich ---expand-var='$TEXMF'} to find the root of the @TeX{} system -hierarchy. @xref{Path expansion}. +Output the variable and tilde expansion of @var{string}. For example, +with the usual @file{texmf.cnf}, @samp{kpsewhich +--expand-var='$TEXMF'} returns the @TeX{} system hierarchy root(s). +@xref{Path expansion}. @item --help-formats @opindex --help-formats @@ -1822,12 +1822,36 @@ Show the path that would be used for file lookups of file type or an integer can be used, just as with @samp{--format}, described in the previous section. +@item --var-brace-value=@var{variable} +@opindex --var-brace-value=@var{variable} +Like @samp{--var-value} (next), but also expands @samp{@{...@}} +constructs. (@pxref{Brace expansion}). Thus, the value is assumed to +possibly be several path elements, and @samp{~} is expanded at the +beginning of each. The path separator is changed to that of the +current system in the expansion. + +Example: @samp{FOO='.;~' kpsewhich --var-brace-value=FOO} outputs (on +a Unix-ish system) @samp{.:/home/karl}, supposing the latter is the +current user's home directory. Note that the @samp{;} in the source +value, as commonly used in @file{texmf.cnf}, has changed to a +@samp{:}, as the normal path separator on the current system. (On a +Windows-ish system, the @samp{;} would remain.) + @item --var-value=@var{variable} @opindex --var-value=@var{variable} Outputs the value of @var{variable} (a simple identifier like -@samp{TEXMF}, with no @samp{$} or other constructs), expanding -@samp{$} (@pxref{Variable expansion} and @samp{~} (@pxref{Tilde -expansion}) constructs, but not performing other expansions. +@samp{TEXMFDIST}, with no @samp{$} or other constructs), expanding +@samp{$} (@pxref{Variable expansion}) and @samp{~} (@pxref{Tilde +expansion}) constructs in the value. @samp{~} expansion happens at the +beginning of the overall value and at the beginning of a variable +expansion, but not arbitrarily within the string. Braces are not expanded. + +Example: @samp{--var-value=texmf_casefold_search} outputs (if the +default is not changed) @samp{1}. + +Example to contrast with @samp{--var-brace-value}: @samp{FOO='.;~' +kpsewhich --var-value=FOO} outputs @samp{.;~}, i.e., the same as the +input value. @end table @@ -3790,9 +3814,6 @@ running a normal input file, the problem is usually a compiler bug passed, problems may lurk. Optimization occasionally causes trouble in programs other than @TeX{} and Metafont themselves, too. -Insufficient swap space may also cause core dumps or other erratic -behavior. - @cindex optimization caveat For a workaround, if you enabled any optimization flags, it's best to omit optimization entirely. In any case, the way to find the facts is @@ -3809,8 +3830,7 @@ Using and Porting GNU CC}. To report compiler bugs effectively requires perseverance and perspicacity: you must find the miscompiled line, and that usually involves delving backwards in time from the point of error, checking -through @TeX{}'s (or whatever program's) data structures. Things are -not helped by all-too-common bugs in the debugger itself. Good luck. +through @TeX{}'s (or whatever program's) data structures. Good luck. @node Index diff --git a/source/texk/kpathsea/elt-dirs.c b/source/texk/kpathsea/elt-dirs.c index 5db08f37099f4eb1cd2fcd53d1bfe28ad7d30ca3..ec60fe82d708872081d6363b0c7a8d4074f3d5da 100644 --- a/source/texk/kpathsea/elt-dirs.c +++ b/source/texk/kpathsea/elt-dirs.c @@ -1,7 +1,7 @@ /* elt-dirs.c: Translate a path element to its corresponding director{y,ies}. Copyright 1993, 1994, 1995, 1996, 1997, 2008, 2009, 2010, 2011, 2016, - 2017 Karl Berry. + 2017, 2018 Karl Berry. Copyright 1997, 1998, 1999, 2000, 2005 Olaf Weber. This library is free software; you can redistribute it and/or @@ -409,17 +409,44 @@ kpathsea_element_dirs (kpathsea kpse, string elt) str_llist_type *ret; unsigned i; +#ifdef _WIN32 + char *tname = NULL; + wchar_t *wtname = NULL; +#endif /* _WIN32 */ + /* If given nothing, return nothing. */ if (!elt || !*elt) return NULL; +#ifdef _WIN32 +/* + Change encoding of a variable into kpse->File_system_codepage + to support non-ascii values for the variable. +*/ + if (kpse->File_system_codepage != kpse->Win32_codepage) { + wtname = get_wstring_from_mbstring (kpse->Win32_codepage, + elt, wtname = NULL); + tname = get_mbstring_from_wstring (kpse->File_system_codepage, + wtname, tname = NULL); + elt = tname; + free(wtname); + } +#endif /* _WIN32 */ + /* Normalize ELT before looking for a cached value. */ i = kpathsea_normalize_path (kpse, elt); /* If we've already cached the answer for ELT, return it. */ ret = cached (kpse, elt); +#ifdef _WIN32 + if (ret) { + if (tname) free (tname); + return ret; + } +#else if (ret) return ret; +#endif /* _WIN32 */ /* We're going to have a real directory list to return. */ ret = XTALLOC1 (str_llist_type); @@ -447,6 +474,10 @@ kpathsea_element_dirs (kpathsea kpse, string elt) } #endif /* KPSE_DEBUG */ +#ifdef _WIN32 + if (tname) free (tname); +#endif /* _WIN32 */ + return ret; } diff --git a/source/texk/kpathsea/expand.h b/source/texk/kpathsea/expand.h index cebeb747b5c7d4455ecaa49e52471292bc5993ff..7d38611be7bd04f6acb66b0e2160280292297388 100644 --- a/source/texk/kpathsea/expand.h +++ b/source/texk/kpathsea/expand.h @@ -1,6 +1,6 @@ /* expand.h: general expansion. - Copyright 1993, 1994, 1996, 2008, 2011 Karl Berry. + Copyright 1993, 1994, 1996, 2008, 2011, 2018 Karl Berry. Copyright 1999, 2005 Olaf Weber. This library is free software; you can redistribute it and/or @@ -34,7 +34,7 @@ extern string kpathsea_expand (kpathsea kpse, const_string s); #endif /* MAKE_KPSE_DLL */ -/* Do brace expansion and call `kpse_expand' on each element of the +/* Do brace expansion and call `kpathsea_expand' on each element of the result; return the final expansion (always in fresh memory, even if no expansions were done). We don't call `kpse_expand_default' because there is a whole sequence of defaults to run through; see diff --git a/source/texk/kpathsea/knj.c b/source/texk/kpathsea/knj.c index 09d718ce8e2d1c5ecfb6a6f70ef1f1cd077007a8..6db6262161fb52703fdb5a6ad4088ac061df1d9d 100644 --- a/source/texk/kpathsea/knj.c +++ b/source/texk/kpathsea/knj.c @@ -1,6 +1,6 @@ /* knj.c: check for 2-Byte Kanji (CP 932, SJIS) codes. - Copyright 2010, 2016 Akira Kakuto. + Copyright 2010, 2016, 2018 Akira Kakuto. Copyright 2013, 2016 TANAKA Takuji. This library is free software; you can redistribute it and/or @@ -244,7 +244,12 @@ kpathsea_get_command_line_args_utf8 (kpathsea kpse, const_string enc, int *p_ac, hStderr = GetStdHandle( STD_ERROR_HANDLE ); #endif /* DEBUG */ kpse->File_system_codepage = CP_UTF8; +/* + IS_KANJI() in the CP932-like system seems to be necessary to + support non-ascii values for variables in the case of + command_line_encoding = utf-8. kpse->Is_cp932_system = 0; +*/ argvw = CommandLineToArgvW(GetCommandLineW(), &argcw); argc = argcw; argv = xmalloc(sizeof(char *)*(argcw+1)); diff --git a/source/texk/kpathsea/kpsewhich.c b/source/texk/kpathsea/kpsewhich.c index 76fc21d1ad8e6cef8fac9a81043760c52b940a9b..b4e1d988973bed96e2d9cc9f4cd1929278e515a6 100644 --- a/source/texk/kpathsea/kpsewhich.c +++ b/source/texk/kpathsea/kpsewhich.c @@ -31,12 +31,13 @@ #include <kpathsea/version.h> /* For variable and path expansion. (-expand-var, -expand-path, - -show-path) */ + -show-path, etc.) */ string var_to_expand = NULL; string braces_to_expand = NULL; string path_to_expand = NULL; string path_to_show = NULL; string var_to_value = NULL; +string var_to_brace_value = NULL; /* Base resolution. (-D, -dpi) */ unsigned dpi = 600; @@ -493,7 +494,8 @@ to also use -engine, or nothing will be returned; in particular,\n\ -show-path=TYPE output search path for file type TYPE\n\ (list shown by -help-formats).\n\ -subdir=STRING only output matches whose directory ends with STRING.\n\ --var-value=STRING output the value of variable $STRING.\n\ +-var-brace-value=STRING output brace-expanded value of variable $STRING.\n\ +-var-value=STRING output variable-expanded value of variable $STRING.\n\ -version display version information number and exit.\n \ " @@ -607,6 +609,7 @@ static struct option long_options[] { "safe-out-name", 1, 0, 0 }, { "subdir", 1, 0, 0 }, { "show-path", 1, 0, 0 }, + { "var-brace-value", 1, 0, 0 }, { "var-value", 1, 0, 0 }, { "version", 0, 0, 0 }, { 0, 0, 0, 0 } }; @@ -694,6 +697,9 @@ read_command_line (kpathsea kpse, int argc, string *argv) } else if (ARGUMENT_IS ("subdir")) { str_list_add (&subdir_paths, optarg); + } else if (ARGUMENT_IS ("var-brace-value")) { + var_to_brace_value = optarg; + } else if (ARGUMENT_IS ("var-value")) { var_to_value = optarg; @@ -718,7 +724,7 @@ There is NO WARRANTY, to the extent permitted by law.\n"); if (optind == argc && !var_to_expand && !braces_to_expand && !path_to_expand - && !path_to_show && !var_to_value + && !path_to_show && !var_to_value && !var_to_brace_value && !safe_in_name && !safe_out_name) { fputs ("Missing argument. Try `kpsewhich --help' for more information.\n", stderr); @@ -767,11 +773,12 @@ int main (int argc, string *argv) { #ifdef WIN32 +#define puts(s) kpathsea_win32_puts(kpse, (s)) string *av, enc; int ac; -#endif +#endif /* WIN32 */ unsigned unfound = 0; - kpathsea kpse = kpathsea_new(); + kpathsea kpse = kpathsea_new (); /* Read options, then dependent initializations. */ read_command_line (kpse, argc, argv); @@ -796,7 +803,7 @@ main (int argc, string *argv) argc = ac; } } -#endif +#endif /* WIN32 */ init_more (kpse); @@ -804,55 +811,57 @@ main (int argc, string *argv) /* Variable expansion. */ if (var_to_expand) -#ifdef WIN32 - kpathsea_win32_puts (kpse, kpathsea_var_expand (kpse, var_to_expand)); -#else puts (kpathsea_var_expand (kpse, var_to_expand)); -#endif /* Brace expansion. */ if (braces_to_expand) -#ifdef WIN32 - kpathsea_win32_puts (kpse, kpathsea_brace_expand (kpse, braces_to_expand)); -#else puts (kpathsea_brace_expand (kpse, braces_to_expand)); -#endif /* Path expansion. */ if (path_to_expand) -#ifdef WIN32 - kpathsea_win32_puts (kpse, kpathsea_path_expand (kpse, path_to_expand)); -#else puts (kpathsea_path_expand (kpse, path_to_expand)); -#endif /* Show a search path. */ if (path_to_show) { if (user_format != kpse_last_format) { - if (!kpse->format_info[user_format].type) /* needed if arg was numeric */ + if (!kpse->format_info[user_format].type) { + /* needed if arg was numeric */ kpathsea_init_format (kpse, user_format); -#ifdef WIN32 - kpathsea_win32_puts (kpse, kpse->format_info[user_format].path); -#else + } puts (kpse->format_info[user_format].path); -#endif } else { - WARNING ("kpsewhich: Cannot show path for unknown file type"); + WARNING1 ("kpsewhich: Unknown file type, cannot show path: %s", + path_to_show); } } - /* Var to value. */ + /* Var to value. */ if (var_to_value) { const_string value = kpathsea_var_value (kpse, var_to_value); if (!value) { unfound++; value = ""; } -#ifdef WIN32 - kpathsea_win32_puts (kpse, value); -#else puts (value); -#endif + } + + /* Var to brace-expanded value. This is separate from --var-value for + compatibility; people use --var-value for non-path values, where + changing commas to colons, which brace expansion does, is not right. */ + if (var_to_brace_value) { + const_string value = kpathsea_var_value (kpse, var_to_brace_value); + if (!value) { + unfound++; + value = ""; + } else { + /* Sometimes users want the fully-expanded (as a string, no + filesystem checks) value. We can't call brace_expand as part of + kpathsea_var_value, though, because unfortunately it is not + reentrant. We use var_value in lots of places in the source, + and it clobbers the static buffer in the kpse structure. */ + value = kpathsea_brace_expand (kpse, value); + } + puts (value); } if (safe_in_name) { diff --git a/source/texk/kpathsea/path-elt.c b/source/texk/kpathsea/path-elt.c index b678bdf4cf256e89e65a1ca85eaf7f792c9a76e0..5666e30b6153ed0866f7574e1e1d7ae67c9fa81b 100644 --- a/source/texk/kpathsea/path-elt.c +++ b/source/texk/kpathsea/path-elt.c @@ -1,6 +1,6 @@ /* path-elt.c: return the stuff between colons. - Copyright 1993, 1996 2008, 2016 Karl Berry. + Copyright 1993, 1996, 2008, 2016, 2018 Karl Berry. Copyright 1997, 2001, 2005 Olaf Weber. This library is free software; you can redistribute it and/or @@ -28,7 +28,7 @@ thus, we parse the same path over and over, on every lookup. If that turns out to be a significant lose, it can be fixed, but I'm guessing disk accesses overwhelm everything else. If ENV_P is true, use - IS_ENV_SEP; else use IS_DIR_SEP. */ + IS_KPSE_SEP; else use IS_DIR_SEP. */ static string element (kpathsea kpse, const_string passed_path, boolean env_p) @@ -49,10 +49,16 @@ element (kpathsea kpse, const_string passed_path, boolean env_p) assert (kpse->path); p = kpse->path; - /* Find the next colon not enclosed by braces (or the end of the path). */ + /* Find the next path separator not enclosed by braces (or the end of + the path). Here we want to check for either : or ; because we might + be called with the ;-using paths from the default texmf.cnf, e.g., + with kpsewhich --expand-braces or kpsewhich --var-value, while on a + Unix system. Otherwise, the path elements are not parsed and thus ~ + expansion (for example), does not happen except on the first element. + https://github.com/TeX-Live/texlive-source/issues/3 */ brace_level = 0; - while (*p != 0 && !(brace_level == 0 - && (env_p ? IS_ENV_SEP (*p) : IS_DIR_SEP (*p)))) { + while (*p != 0 && !(brace_level == 0 + && (env_p ? IS_KPSE_SEP (*p) : IS_DIR_SEP (*p)))) { if (*p == '{') ++brace_level; else if (*p == '}') --brace_level; #if defined(WIN32) diff --git a/source/texk/kpathsea/pathsearch.h b/source/texk/kpathsea/pathsearch.h index 7b4d5a7920e2ae162990705831c131309812a188..057c6c92c03a2619213e56e6288df230105c0b4f 100644 --- a/source/texk/kpathsea/pathsearch.h +++ b/source/texk/kpathsea/pathsearch.h @@ -1,7 +1,7 @@ /* pathsearch.h: mostly-generic path searching. Copyright 1993, 1994, 1996, 1997, 2007, 2008, 2009, 2011, 2012, - 2014 Karl Berry. + 2014, 2018 Karl Berry. Copyright 1999-2005 Olaf Weber. This library is free software; you can redistribute it and/or @@ -36,7 +36,7 @@ extern "C" { #ifdef MAKE_KPSE_DLL /* libkpathsea internal only */ /* If PATH is non-null, return its first element (as defined by - IS_ENV_SEP). If it's NULL, return the next element in the previous + IS_KPSE_SEP). If it's NULL, return the next element in the previous path, a la strtok. Leading, trailing, or doubled colons result in the empty string. When at the end of PATH, return NULL. In any case, return a pointer to an area that may be overwritten on @@ -47,10 +47,9 @@ extern string kpathsea_path_element (kpathsea kpse, const_string path); IS_DIR_SEP). Uses same area as `kpathsea_path_element'. */ extern string kpathsea_filename_component (kpathsea kpse, const_string path); -/* - This function may rewrite its argument to avoid bugs when calling - stat() or equivalent under Win32. Also, it returns the index after - which the program should start to look for expandable constructs. */ +/* This function may rewrite its argument to avoid bugs when calling + stat() or equivalent under Windows. Also, it returns the index after + which the program should start to look for expandable constructs. */ extern unsigned kpathsea_normalize_path (kpathsea kpse, string elt); /* Given a path element ELT, return a pointer to a NULL-terminated list @@ -61,8 +60,7 @@ extern unsigned kpathsea_normalize_path (kpathsea kpse, string elt); It's up to the caller to expand ELT. This is because this routine is most likely only useful to be called from `kpathsea_path_search', which has already assumed expansion has been done. */ -extern str_llist_type *kpathsea_element_dirs (kpathsea kpse, - string elt); +extern str_llist_type *kpathsea_element_dirs (kpathsea kpse, string elt); #endif /* MAKE_KPSE_DLL */ diff --git a/source/texk/kpathsea/progname.c b/source/texk/kpathsea/progname.c index 54563f136ba0d42a10b770b22b28471a564b0d8f..545f4439250327694c456fdcc2f814015e1609ff 100644 --- a/source/texk/kpathsea/progname.c +++ b/source/texk/kpathsea/progname.c @@ -494,9 +494,10 @@ kpathsea_set_program_name (kpathsea kpse, const_string argv0, } #if defined(WIN32) + cp = AreFileApisANSI() ? GetACP() : GetOEMCP(); if (!kpse->File_system_codepage) - kpse->File_system_codepage = AreFileApisANSI() ? GetACP() : GetOEMCP(); - cp = kpse->Win32_codepage = kpse->File_system_codepage; + kpse->File_system_codepage = cp; + kpse->Win32_codepage = cp; if (cp == 932 || cp == 936 || cp == 950) { kpse->Is_cp932_system = cp; } diff --git a/source/texk/kpathsea/tex-make.c b/source/texk/kpathsea/tex-make.c index 95851fdd5614c0cb1fc1b14e72123969fff01526..629857a3346919b58504aa678db9419ba699274e 100644 --- a/source/texk/kpathsea/tex-make.c +++ b/source/texk/kpathsea/tex-make.c @@ -318,20 +318,32 @@ maketex (kpathsea kpse, kpse_file_format_type format, string* args) /* stdin -- the child will not receive input from this */ if (childin != 0) { close(0); - dup(childin); + if (dup(childin) != 0) { + perror("kpathsea: dup(2) failed for stdin"); + close(childin); + _exit(1); + } close(childin); } /* stdout -- the output of the child's action */ if (childout[1] != 1) { close(1); - dup(childout[1]); + if (dup(childout[1]) != 1) { + perror("kpathsea: dup(2) failed for stdout"); + close(childout[1]); + _exit(1); + } close(childout[1]); } /* stderr -- use /dev/null if we discard errors */ if (childerr != 2) { if (kpse->make_tex_discard_errors) { close(2); - dup(childerr); + if (dup(childerr) != 2) { + perror("kpathsea: dup(2) failed for stderr"); + close(childerr); + _exit(1); + } } close(childerr); } diff --git a/source/texk/kpathsea/texmf.cnf b/source/texk/kpathsea/texmf.cnf index 7d5acb45ada81736522d2c26331a8a12b12d0666..65c5c40c687c2436993ed2c9c3f3fe7c0b5d9f81 100644 --- a/source/texk/kpathsea/texmf.cnf +++ b/source/texk/kpathsea/texmf.cnf @@ -153,131 +153,140 @@ VARTEXFONTS = $TEXMFVAR/fonts % a good place to look for them. WEB2C = $TEXMF/web2c +% This variable exists only to be redefined; it is used in nearly all +% search paths. If a document has source files not only in the current +% directory but also in subdirectories, it is convenient to set +% TEXMFDOTDIR=.// so that everything will be searched automatically. +% On the other hand, if you never want the current directory to be +% searched at all, setting TEXMFDOTDIR=/nonesuch should come close. +% +TEXMFDOTDIR = . + % TEXINPUTS is for TeX input files -- i.e., anything to be found by \input % or \openin, including .sty, .eps, etc. We specify paths for all known % formats, past or present. Not all of them are built these days. % Plain TeX. Have the command tex check all directories as a last % resort, we may have plain-compatible stuff anywhere. -TEXINPUTS.tex = .;$TEXMF/tex/{plain,generic,}// +TEXINPUTS.tex = $TEXMFDOTDIR;$TEXMF/tex/{plain,generic,}// % Fontinst needs to read afm files. -TEXINPUTS.fontinst = .;$TEXMF/{tex,fonts/afm}// +TEXINPUTS.fontinst = $TEXMFDOTDIR;$TEXMF/{tex,fonts/afm}// % Other plain-based formats. -TEXINPUTS.amstex = .;$TEXMF/tex/{amstex,plain,generic,}// -TEXINPUTS.csplain = .;$TEXMF/tex/{csplain,plain,generic,}// -TEXINPUTS.eplain = .;$TEXMF/tex/{eplain,plain,generic,}// -TEXINPUTS.ftex = .;$TEXMF/tex/{formate,plain,generic,}// -TEXINPUTS.mex = .;$TEXMF/tex/{mex,plain,generic,}// -TEXINPUTS.texinfo = .;$TEXMF/tex/{texinfo,plain,generic,}// +TEXINPUTS.amstex = $TEXMFDOTDIR;$TEXMF/tex/{amstex,plain,generic,}// +TEXINPUTS.csplain = $TEXMFDOTDIR;$TEXMF/tex/{csplain,plain,generic,}// +TEXINPUTS.eplain = $TEXMFDOTDIR;$TEXMF/tex/{eplain,plain,generic,}// +TEXINPUTS.ftex = $TEXMFDOTDIR;$TEXMF/tex/{formate,plain,generic,}// +TEXINPUTS.mex = $TEXMFDOTDIR;$TEXMF/tex/{mex,plain,generic,}// +TEXINPUTS.texinfo = $TEXMFDOTDIR;$TEXMF/tex/{texinfo,plain,generic,}// % LaTeX 2e specific macros are stored in latex/, macros that can only be % used with 2.09 in latex209/. In addition, we look in the directory % latex209, useful for macros that were written for 2.09 and do not % mention 2e at all, but can be used with 2e. -TEXINPUTS.cslatex = .;$TEXMF/tex/{cslatex,csplain,latex,generic,}// -TEXINPUTS.latex = .;$TEXMF/tex/{latex,generic,}// -TEXINPUTS.latex209 = .;$TEXMF/tex/{latex209,generic,latex,}// -TEXINPUTS.olatex = .;$TEXMF/tex/{latex,generic,}// +TEXINPUTS.cslatex = $TEXMFDOTDIR;$TEXMF/tex/{cslatex,csplain,latex,generic,}// +TEXINPUTS.latex = $TEXMFDOTDIR;$TEXMF/tex/{latex,generic,}// +TEXINPUTS.latex209 = $TEXMFDOTDIR;$TEXMF/tex/{latex209,generic,latex,}// +TEXINPUTS.olatex = $TEXMFDOTDIR;$TEXMF/tex/{latex,generic,}// % MLTeX. -TEXINPUTS.frlatex = .;$TEXMF/tex/{french,latex,generic,}// -TEXINPUTS.frtex = .;$TEXMF/tex/{french,plain,generic,}// -TEXINPUTS.mllatex = .;$TEXMF/tex/{latex,generic,}// -TEXINPUTS.mltex = .;$TEXMF/tex/{plain,generic,}// +TEXINPUTS.frlatex = $TEXMFDOTDIR;$TEXMF/tex/{french,latex,generic,}// +TEXINPUTS.frtex = $TEXMFDOTDIR;$TEXMF/tex/{french,plain,generic,}// +TEXINPUTS.mllatex = $TEXMFDOTDIR;$TEXMF/tex/{latex,generic,}// +TEXINPUTS.mltex = $TEXMFDOTDIR;$TEXMF/tex/{plain,generic,}// % e-TeX. -TEXINPUTS.elatex = .;$TEXMF/tex/{latex,generic,}// -TEXINPUTS.etex = .;$TEXMF/tex/{plain,generic,}// +TEXINPUTS.elatex = $TEXMFDOTDIR;$TEXMF/tex/{latex,generic,}// +TEXINPUTS.etex = $TEXMFDOTDIR;$TEXMF/tex/{plain,generic,}// % pdfTeX. -TEXINPUTS.pdfcslatex = .;$TEXMF/tex/{cslatex,csplain,latex,generic,}// -TEXINPUTS.pdfcsplain = .;$TEXMF/tex/{csplain,plain,generic,}// -TEXINPUTS.pdflatex = .;$TEXMF/tex/{latex,generic,}// -TEXINPUTS.pdfmex = .;$TEXMF/tex/{mex,plain,generic,}// -TEXINPUTS.utf8mex = .;$TEXMF/tex/{mex,plain,generic,}// -TEXINPUTS.pdftex = .;$TEXMF/tex/{plain,generic,}// -TEXINPUTS.pdftexinfo = .;$TEXMF/tex/{texinfo,plain,generic,}// -TEXINPUTS.pdfamstex = .;$TEXMF/tex/{amstex,plain,generic,}// +TEXINPUTS.pdfcslatex = $TEXMFDOTDIR;$TEXMF/tex/{cslatex,csplain,latex,generic,}// +TEXINPUTS.pdfcsplain = $TEXMFDOTDIR;$TEXMF/tex/{csplain,plain,generic,}// +TEXINPUTS.pdflatex = $TEXMFDOTDIR;$TEXMF/tex/{latex,generic,}// +TEXINPUTS.pdfmex = $TEXMFDOTDIR;$TEXMF/tex/{mex,plain,generic,}// +TEXINPUTS.utf8mex = $TEXMFDOTDIR;$TEXMF/tex/{mex,plain,generic,}// +TEXINPUTS.pdftex = $TEXMFDOTDIR;$TEXMF/tex/{plain,generic,}// +TEXINPUTS.pdftexinfo = $TEXMFDOTDIR;$TEXMF/tex/{texinfo,plain,generic,}// +TEXINPUTS.pdfamstex = $TEXMFDOTDIR;$TEXMF/tex/{amstex,plain,generic,}// % pdfeTeX. -TEXINPUTS.pdfelatex = .;$TEXMF/tex/{latex,generic,}// -TEXINPUTS.pdfetex = .;$TEXMF/tex/{plain,generic,}// +TEXINPUTS.pdfelatex = $TEXMFDOTDIR;$TEXMF/tex/{latex,generic,}// +TEXINPUTS.pdfetex = $TEXMFDOTDIR;$TEXMF/tex/{plain,generic,}// % LuaTeX. -TEXINPUTS.luatex = .;$TEXMF/tex/{luatex,plain,generic,}// -TEXINPUTS.luajittex = .;$TEXMF/tex/{luatex,plain,generic,}// -TEXINPUTS.dviluatex = .;$TEXMF/tex/{luatex,plain,generic,}// -TEXINPUTS.lualatex = .;$TEXMF/tex/{lualatex,latex,luatex,generic,}// -TEXINPUTS.luajitlatex = .;$TEXMF/tex/{lualatex,latex,luatex,generic,}// -TEXINPUTS.dvilualatex = .;$TEXMF/tex/{lualatex,latex,luatex,generic,}// +TEXINPUTS.luatex = $TEXMFDOTDIR;$TEXMF/tex/{luatex,plain,generic,}// +TEXINPUTS.luajittex = $TEXMFDOTDIR;$TEXMF/tex/{luatex,plain,generic,}// +TEXINPUTS.dviluatex = $TEXMFDOTDIR;$TEXMF/tex/{luatex,plain,generic,}// +TEXINPUTS.lualatex = $TEXMFDOTDIR;$TEXMF/tex/{lualatex,latex,luatex,generic,}// +TEXINPUTS.luajitlatex = $TEXMFDOTDIR;$TEXMF/tex/{lualatex,latex,luatex,generic,}// +TEXINPUTS.dvilualatex = $TEXMFDOTDIR;$TEXMF/tex/{lualatex,latex,luatex,generic,}// % XeTeX. -TEXINPUTS.xelatex = .;$TEXMF/tex/{xelatex,latex,xetex,generic,}// -TEXINPUTS.xeplain = .;$TEXMF/tex/{xeplain,eplain,plain,xetex,generic,}// -TEXINPUTS.xetex = .;$TEXMF/tex/{xetex,plain,generic,}// +TEXINPUTS.xelatex = $TEXMFDOTDIR;$TEXMF/tex/{xelatex,latex,xetex,generic,}// +TEXINPUTS.xeplain = $TEXMFDOTDIR;$TEXMF/tex/{xeplain,eplain,plain,xetex,generic,}// +TEXINPUTS.xetex = $TEXMFDOTDIR;$TEXMF/tex/{xetex,plain,generic,}// % Omega / Aleph. -TEXINPUTS.aleph = .;$TEXMF/tex/{plain,generic,}// -TEXINPUTS.elambda = .;$TEXMF/tex/{lambda,latex,generic,}// -TEXINPUTS.eomega = .;$TEXMF/tex/{plain,generic,}// -TEXINPUTS.lambda = .;$TEXMF/tex/{lambda,latex,generic,}// -TEXINPUTS.lamed = .;$TEXMF/tex/{lambda,latex,generic,}// -TEXINPUTS.omega = .;$TEXMF/tex/{plain,generic,}// +TEXINPUTS.aleph = $TEXMFDOTDIR;$TEXMF/tex/{plain,generic,}// +TEXINPUTS.elambda = $TEXMFDOTDIR;$TEXMF/tex/{lambda,latex,generic,}// +TEXINPUTS.eomega = $TEXMFDOTDIR;$TEXMF/tex/{plain,generic,}// +TEXINPUTS.lambda = $TEXMFDOTDIR;$TEXMF/tex/{lambda,latex,generic,}// +TEXINPUTS.lamed = $TEXMFDOTDIR;$TEXMF/tex/{lambda,latex,generic,}// +TEXINPUTS.omega = $TEXMFDOTDIR;$TEXMF/tex/{plain,generic,}// % p(La)TeX. -TEXINPUTS.ptex = .;$TEXMF/tex/{ptex,plain,generic,}// -TEXINPUTS.platex = .;$TEXMF/tex/{platex,latex,generic,}// +TEXINPUTS.ptex = $TEXMFDOTDIR;$TEXMF/tex/{ptex,plain,generic,}// +TEXINPUTS.platex = $TEXMFDOTDIR;$TEXMF/tex/{platex,latex,generic,}// % epTeX, and for pmpost. -TEXINPUTS.eptex = .;$TEXMF/tex/{ptex,plain,generic,}// +TEXINPUTS.eptex = $TEXMFDOTDIR;$TEXMF/tex/{ptex,plain,generic,}// TEX.pmpost = eptex % p(La)TeX-ng -TEXINPUTS.ptex-ng = .;$TEXMF/tex/{uptex,ptex,plain,generic,}// -TEXINPUTS.platex-ng = .;$TEXMF/tex/{uplatex,platex,latex,generic,}// +TEXINPUTS.ptex-ng = $TEXMFDOTDIR;$TEXMF/tex/{uptex,ptex,plain,generic,}// +TEXINPUTS.platex-ng = $TEXMFDOTDIR;$TEXMF/tex/{uplatex,platex,latex,generic,}// % (e)up(La)TeX, and for upmpost -TEXINPUTS.uplatex = .;$TEXMF/tex/{uplatex,platex,latex,generic,}// -TEXINPUTS.uptex = .;$TEXMF/tex/{uptex,ptex,plain,generic,}// -TEXINPUTS.euptex = .;$TEXMF/tex/{uptex,ptex,plain,generic,}// +TEXINPUTS.uplatex = $TEXMFDOTDIR;$TEXMF/tex/{uplatex,platex,latex,generic,}// +TEXINPUTS.uptex = $TEXMFDOTDIR;$TEXMF/tex/{uptex,ptex,plain,generic,}// +TEXINPUTS.euptex = $TEXMFDOTDIR;$TEXMF/tex/{uptex,ptex,plain,generic,}// TEX.upmpost = euptex % pBibTeX bibliographies and style files. -BIBINPUTS.pbibtex = .;$TEXMF/{pbibtex,bibtex}/bib// -BSTINPUTS.pbibtex = .;$TEXMF/{pbibtex,bibtex}/bst// +BIBINPUTS.pbibtex = $TEXMFDOTDIR;$TEXMF/{pbibtex,bibtex}/bib// +BSTINPUTS.pbibtex = $TEXMFDOTDIR;$TEXMF/{pbibtex,bibtex}/bst// % upBibTeX bibliographies and style files. -BIBINPUTS.upbibtex = .;$TEXMF/{upbibtex,pbibtex,bibtex}/bib// -BSTINPUTS.upbibtex = .;$TEXMF/{upbibtex,pbibtex,bibtex}/bst// +BIBINPUTS.upbibtex = $TEXMFDOTDIR;$TEXMF/{upbibtex,pbibtex,bibtex}/bib// +BSTINPUTS.upbibtex = $TEXMFDOTDIR;$TEXMF/{upbibtex,pbibtex,bibtex}/bst// % ConTeXt. -TEXINPUTS.context = .;$TEXMF/tex/{context,plain,generic,}// +TEXINPUTS.context = $TEXMFDOTDIR;$TEXMF/tex/{context,plain,generic,}// % jadetex. -TEXINPUTS.jadetex = .;$TEXMF/tex/{jadetex,latex,generic,}// -TEXINPUTS.pdfjadetex = .;$TEXMF/tex/{jadetex,latex,generic,}// +TEXINPUTS.jadetex = $TEXMFDOTDIR;$TEXMF/tex/{jadetex,latex,generic,}// +TEXINPUTS.pdfjadetex = $TEXMFDOTDIR;$TEXMF/tex/{jadetex,latex,generic,}// % XMLTeX. -TEXINPUTS.xmltex = .;$TEXMF/tex/{xmltex,latex,generic,}// -TEXINPUTS.pdfxmltex = .;$TEXMF/tex/{xmltex,latex,generic,}// +TEXINPUTS.xmltex = $TEXMFDOTDIR;$TEXMF/tex/{xmltex,latex,generic,}// +TEXINPUTS.pdfxmltex = $TEXMFDOTDIR;$TEXMF/tex/{xmltex,latex,generic,}// % Miscellany, no longer built. -TEXINPUTS.lamstex = .;$TEXMF/tex/{lamstex,plain,generic,}// -TEXINPUTS.lollipop = .;$TEXMF/tex/{lollipop,plain,generic,}// -TEXINPUTS.frpdflatex = .;$TEXMF/tex/{french,latex,generic,}// -TEXINPUTS.frpdftex = .;$TEXMF/tex/{french,plain,generic,}// +TEXINPUTS.lamstex = $TEXMFDOTDIR;$TEXMF/tex/{lamstex,plain,generic,}// +TEXINPUTS.lollipop = $TEXMFDOTDIR;$TEXMF/tex/{lollipop,plain,generic,}// +TEXINPUTS.frpdflatex = $TEXMFDOTDIR;$TEXMF/tex/{french,latex,generic,}// +TEXINPUTS.frpdftex = $TEXMFDOTDIR;$TEXMF/tex/{french,plain,generic,}// % Earlier entries override later ones, so put this generic one last. -TEXINPUTS = .;$TEXMF/tex/{$progname,generic,}// +TEXINPUTS = $TEXMFDOTDIR;$TEXMF/tex/{$progname,generic,}// % ttf2tfm. -TTF2TFMINPUTS = .;$TEXMF/ttf2pk// +TTF2TFMINPUTS = $TEXMFDOTDIR;$TEXMF/ttf2pk// % Metafont, MetaPost inputs. -MFINPUTS = .;$TEXMF/metafont//;{$TEXMF/fonts,$VARTEXFONTS}/source// -MPINPUTS = .;$TEXMF/metapost// +MFINPUTS = $TEXMFDOTDIR;$TEXMF/metafont//;{$TEXMF/fonts,$VARTEXFONTS}/source// +MPINPUTS = $TEXMFDOTDIR;$TEXMF/metapost// % Dump files (fmt/base/mem) for vir{tex,mf,mp} to read. % We want to find the engine-specific file, e.g., cont-en.fmt can @@ -286,67 +295,67 @@ MPINPUTS = .;$TEXMF/metapost// % We repeat the same definition three times because of the way fmtutil % is implemented; if we use ${TEXFORMATS}, the mpost/mf/etc. formats % will not be found. -TEXFORMATS = .;$TEXMF/web2c{/$engine,} -MFBASES = .;$TEXMF/web2c{/$engine,} -MPMEMS = .;$TEXMF/web2c{/$engine,} +TEXFORMATS = $TEXMFDOTDIR;$TEXMF/web2c{/$engine,} +MFBASES = $TEXMFDOTDIR;$TEXMF/web2c{/$engine,} +MPMEMS = $TEXMFDOTDIR;$TEXMF/web2c{/$engine,} % % As of 2008, pool files don't exist any more (the strings are compiled % into the binaries), but just in case something expects to find these: -TEXPOOL = .;$TEXMF/web2c +TEXPOOL = $TEXMFDOTDIR;$TEXMF/web2c MFPOOL = ${TEXPOOL} MPPOOL = ${TEXPOOL} % support the original xdvi. Must come before the generic settings. -PKFONTS.XDvi = .;$TEXMF/%s;$VARTEXFONTS/pk/{%m,modeless}// -VFFONTS.XDvi = .;$TEXMF/%s -PSHEADERS.XDvi = .;$TEXMF/%q{dvips,fonts/type1}// -TEXPICTS.XDvi = .;$TEXMF/%q{dvips,tex}// +PKFONTS.XDvi = $TEXMFDOTDIR;$TEXMF/%s;$VARTEXFONTS/pk/{%m,modeless}// +VFFONTS.XDvi = $TEXMFDOTDIR;$TEXMF/%s +PSHEADERS.XDvi = $TEXMFDOTDIR;$TEXMF/%q{dvips,fonts/type1}// +TEXPICTS.XDvi = $TEXMFDOTDIR;$TEXMF/%q{dvips,tex}// % Device-independent font metric files. -VFFONTS = .;$TEXMF/fonts/vf// -TFMFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/tfm// +VFFONTS = $TEXMFDOTDIR;$TEXMF/fonts/vf// +TFMFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$VARTEXFONTS}/tfm// % The $MAKETEX_MODE below means the drivers will not use a cx font when % the mode is ricoh. If no mode is explicitly specified, kpse_prog_init % sets MAKETEX_MODE to /, so all subdirectories are searched. See the manual. % The modeless part guarantees that bitmaps for PostScript fonts are found. -PKFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/pk/{$MAKETEX_MODE,modeless}// +PKFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$VARTEXFONTS}/pk/{$MAKETEX_MODE,modeless}// % Similarly for the GF format, which only remains in existence because % Metafont outputs it (and MF isn't going to change). -GFFONTS = .;$TEXMF/fonts/gf/$MAKETEX_MODE// +GFFONTS = $TEXMFDOTDIR;$TEXMF/fonts/gf/$MAKETEX_MODE// % A backup for PKFONTS and GFFONTS. Not used for anything. -GLYPHFONTS = .;$TEXMF/fonts +GLYPHFONTS = $TEXMFDOTDIR;$TEXMF/fonts % A place to puth everything that doesn't fit the other font categories. -MISCFONTS = .;$TEXMF/fonts/misc// +MISCFONTS = $TEXMFDOTDIR;$TEXMF/fonts/misc// % font name map files. This isn't just fonts/map// because ConTeXt % wants support for having files with the same name in the different % subdirs. Maybe if the programs ever get unified to accepting the same % map file syntax the definition can be simplified again. -TEXFONTMAPS = .;$TEXMF/fonts/map/{$progname,pdftex,dvips,}// +TEXFONTMAPS = $TEXMFDOTDIR;$TEXMF/fonts/map/{$progname,pdftex,dvips,}// % BibTeX bibliographies and style files. bibtex8 also uses these. -BIBINPUTS = .;$TEXMF/bibtex/bib// -BSTINPUTS = .;$TEXMF/bibtex/{bst,csf}// +BIBINPUTS = $TEXMFDOTDIR;$TEXMF/bibtex/bib// +BSTINPUTS = $TEXMFDOTDIR;$TEXMF/bibtex/{bst,csf}// % MlBibTeX. -MLBIBINPUTS = .;$TEXMF/bibtex/bib/{mlbib,}// -MLBSTINPUTS = .;$TEXMF/bibtex/{mlbst,bst}// +MLBIBINPUTS = $TEXMFDOTDIR;$TEXMF/bibtex/bib/{mlbib,}// +MLBSTINPUTS = $TEXMFDOTDIR;$TEXMF/bibtex/{mlbst,bst}// % .ris and .bltxml bibliography formats. -RISINPUTS = .;$TEXMF/biber/ris// -BLTXMLINPUTS = .;$TEXMF/biber/bltxml// +RISINPUTS = $TEXMFDOTDIR;$TEXMF/biber/ris// +BLTXMLINPUTS = $TEXMFDOTDIR;$TEXMF/biber/bltxml// % MFT style files. -MFTINPUTS = .;$TEXMF/mft// +MFTINPUTS = $TEXMFDOTDIR;$TEXMF/mft// % PostScript headers and prologues (.pro); unfortunately, some programs % also use this for acessing font files (enc, type1, truetype) -TEXPSHEADERS = .;$TEXMF/{dvips,fonts/{enc,type1,type42,type3}}// -TEXPSHEADERS.gsftopk = .;$TEXMF/{dvips,fonts/{enc,type1,type42,type3,truetype}}// +TEXPSHEADERS = $TEXMFDOTDIR;$TEXMF/{dvips,fonts/{enc,type1,type42,type3}}// +TEXPSHEADERS.gsftopk = $TEXMFDOTDIR;$TEXMF/{dvips,fonts/{enc,type1,type42,type3,truetype}}// % OSFONTDIR is to provide a convenient hook for allowing TeX to find % fonts installed on the system (outside of TeX). An empty default @@ -354,54 +363,54 @@ TEXPSHEADERS.gsftopk = .;$TEXMF/{dvips,fonts/{enc,type1,type42,type3,truetype}}/ OSFONTDIR = /please/set/osfontdir/in/the/environment % PostScript Type 1 outline fonts. -T1FONTS = .;$TEXMF/fonts/type1//;$OSFONTDIR// +T1FONTS = $TEXMFDOTDIR;$TEXMF/fonts/type1//;$OSFONTDIR// % PostScript AFM metric files. -AFMFONTS = .;$TEXMF/fonts/afm//;$OSFONTDIR// +AFMFONTS = $TEXMFDOTDIR;$TEXMF/fonts/afm//;$OSFONTDIR// % TrueType outline fonts. -TTFONTS = .;$TEXMF/fonts/{truetype,opentype}//;$OSFONTDIR// +TTFONTS = $TEXMFDOTDIR;$TEXMF/fonts/{truetype,opentype}//;$OSFONTDIR// % OpenType outline fonts. -OPENTYPEFONTS = .;$TEXMF/fonts/{opentype,truetype}//;$OSFONTDIR// +OPENTYPEFONTS = $TEXMFDOTDIR;$TEXMF/fonts/{opentype,truetype}//;$OSFONTDIR// % Type 42 outline fonts. -T42FONTS = .;$TEXMF/fonts/type42// +T42FONTS = $TEXMFDOTDIR;$TEXMF/fonts/type42// % Ligature definition files. -LIGFONTS = .;$TEXMF/fonts/lig// +LIGFONTS = $TEXMFDOTDIR;$TEXMF/fonts/lig// % Dvips' config.* files (this name should not start with `TEX'!). TEXCONFIG = $TEXMF/dvips// % Makeindex style (.ist) files. -INDEXSTYLE = .;$TEXMF/makeindex// +INDEXSTYLE = $TEXMFDOTDIR;$TEXMF/makeindex// % mendex dictionary files. Used internally by mendex and upmendex. % It is not necessary to introduce a new format in Kpathsea. -INDEXDICTIONARY = .;$TEXMF/makeindex// +INDEXDICTIONARY = $TEXMFDOTDIR;$TEXMF/makeindex// % Font encoding files (.enc). -ENCFONTS = .;$TEXMF/fonts/enc// +ENCFONTS = $TEXMFDOTDIR;$TEXMF/fonts/enc// % CMap files. -CMAPFONTS = .;$TEXMF/fonts/cmap// +CMAPFONTS = $TEXMFDOTDIR;$TEXMF/fonts/cmap// % Subfont definition files. -SFDFONTS = .;$TEXMF/fonts/sfd// +SFDFONTS = $TEXMFDOTDIR;$TEXMF/fonts/sfd// % OpenType feature files (.fea). -FONTFEATURES=.;$TEXMF/fonts/fea// +FONTFEATURES=$TEXMFDOTDIR;$TEXMF/fonts/fea// % .cid and .cidmap -FONTCIDMAPS=.;$TEXMF/fonts/cid// +FONTCIDMAPS=$TEXMFDOTDIR;$TEXMF/fonts/cid// % pdftex config files: -PDFTEXCONFIG = .;$TEXMF/pdftex/{$progname,}// +PDFTEXCONFIG = $TEXMFDOTDIR;$TEXMF/pdftex/{$progname,}// % Used by DMP (ditroff-to-mpx), called by makempx -troff. TRFONTS = /usr{/local,}/share/groff/{current/font,site-font}/devps -MPSUPPORT = .;$TEXMF/metapost/support +MPSUPPORT = $TEXMFDOTDIR;$TEXMF/metapost/support % For xdvi to find mime.types and .mailcap, if they do not exist in % ~. These are single directories, not paths. @@ -419,28 +428,28 @@ FC_CACHEDIR = $TEXMFSYSVAR/fonts/cache % TeX documentation and source files, for use with texdoc and kpsewhich. TEXDOCS = $TEXMF/doc// -TEXSOURCES = .;$TEXMF/source// +TEXSOURCES = $TEXMFDOTDIR;$TEXMF/source// % Web and CWeb input paths. -WEBINPUTS = .;$TEXMF/web// -CWEBINPUTS = .;$TEXMF/cweb// +WEBINPUTS = $TEXMFDOTDIR;$TEXMF/web// +CWEBINPUTS = $TEXMFDOTDIR;$TEXMF/cweb// % Omega-related fonts and other files. -OFMFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/{ofm,tfm}// -OPLFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/opl// -OVFFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/{ovf,vf}// -OVPFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/ovp// -OTPINPUTS = .;$TEXMF/omega/otp// -OCPINPUTS = .;$TEXMF/omega/ocp// +OFMFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$VARTEXFONTS}/{ofm,tfm}// +OPLFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$VARTEXFONTS}/opl// +OVFFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$VARTEXFONTS}/{ovf,vf}// +OVPFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$VARTEXFONTS}/ovp// +OTPINPUTS = $TEXMFDOTDIR;$TEXMF/omega/otp// +OCPINPUTS = $TEXMFDOTDIR;$TEXMF/omega/ocp// % Some additional input variables for several programs. If you add % a program that uses the `other text files' or `other binary files' % search formats, you'll want to add their variables here as well. -T4HTINPUTS = .;$TEXMF/tex4ht// +T4HTINPUTS = $TEXMFDOTDIR;$TEXMF/tex4ht// %% t4ht utility, sharing files with TeX4ht TEX4HTFONTSET=alias,iso8859,unicode -TEX4HTINPUTS = .;$TEXMF/tex4ht/base//;$TEXMF/tex4ht/ht-fonts/{$TEX4HTFONTSET}// +TEX4HTINPUTS = $TEXMFDOTDIR;$TEXMF/tex4ht/base//;$TEXMF/tex4ht/ht-fonts/{$TEX4HTFONTSET}// % TeXworks editor configuration and settings TW_LIBPATH = $TEXMFCONFIG/texworks @@ -460,21 +469,21 @@ DVIPDFMXINPUTS = $TEXMF/dvipdfmx % So, duplicate the TEXINPUTS.*lualatex values as LUAINPUTS.*lualatex. % The default LUAINPUTS suffices for luatex and dviluatex. % -LUAINPUTS.lualatex = .;$TEXMF/scripts/{$progname,$engine,}/{lua,}//;$TEXMF/tex/{lualatex,latex,luatex,generic,}// -LUAINPUTS.dvilualatex = .;$TEXMF/scripts/{$progname,$engine,}/{lua,}//;$TEXMF/tex/{lualatex,latex,luatex,generic,}// -LUAINPUTS = .;$TEXMF/scripts/{$progname,$engine,}/{lua,}//;$TEXMF/tex/{luatex,plain,generic,}// +LUAINPUTS.lualatex = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/{lua,}//;$TEXMF/tex/{lualatex,latex,luatex,generic,}// +LUAINPUTS.dvilualatex = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/{lua,}//;$TEXMF/tex/{lualatex,latex,luatex,generic,}// +LUAINPUTS = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/{lua,}//;$TEXMF/tex/{luatex,plain,generic,}// % Lua needs to look for binary lua libraries distributed with packages. -CLUAINPUTS = .;$SELFAUTOLOC/lib/{$progname,$engine,}/lua// +CLUAINPUTS = $TEXMFDOTDIR;$SELFAUTOLOC/lib/{$progname,$engine,}/lua// % Architecture independent executables. TEXMFSCRIPTS = $TEXMF/scripts/{$progname,$engine,}// % Other languages. -JAVAINPUTS = .;$TEXMF/scripts/{$progname,$engine,}/java// -PERLINPUTS = .;$TEXMF/scripts/{$progname,$engine,}/perl// -PYTHONINPUTS = .;$TEXMF/scripts/{$progname,$engine,}/python// -RUBYINPUTS = .;$TEXMF/scripts/{$progname,$engine,}/ruby// +JAVAINPUTS = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/java// +PERLINPUTS = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/perl// +PYTHONINPUTS = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/python// +RUBYINPUTS = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/ruby// %% The mktex* scripts rely on KPSE_DOT. Do not set it in the environment. @@ -591,6 +600,7 @@ gregorio,\ kpsewhich,\ makeindex,\ repstopdf,\ +r-mpost,\ texosquery-jre8,\ % we'd like to allow: diff --git a/source/texk/texlive/linked_scripts/Makefile.am b/source/texk/texlive/linked_scripts/Makefile.am index 2f2e27e0d662f60c9042b85b809caf6713dcf5e9..163aa0d90d41494e2e4e90d63464d89f1047e24c 100644 --- a/source/texk/texlive/linked_scripts/Makefile.am +++ b/source/texk/texlive/linked_scripts/Makefile.am @@ -78,6 +78,7 @@ texmf_shell_scripts = \ pdfjam/pdfjoin \ pdfjam/pdfnup \ pdfjam/pdfpun \ + pdftex-quiet/pdftex-quiet \ pdfxup/pdfxup \ pst-pdf/ps4pdf \ simpdftex/simpdftex \ @@ -100,6 +101,7 @@ texmf_other_scripts = \ cachepic/cachepic.tlu \ checkcites/checkcites.lua \ cjk-gs-integrate/cjk-gs-integrate.pl \ + cluttex/cluttex.lua \ context/perl/mptopdf.pl \ convbkmk/convbkmk.rb \ crossrefware/bbl2bib.pl \ @@ -213,6 +215,7 @@ texmf_other_scripts = \ ulqda/ulqda.pl \ urlbst/urlbst \ vpe/vpe.pl \ + xindex/xindex.lua \ yplan/yplan texmf_context_scripts = \ context/stubs/unix/context \ @@ -234,6 +237,8 @@ nobase_dist_texmf_scripts_SCRIPTS = \ ## Symlinks within $(bindir): FILE:LINK here means "ln -s FILE LINK" is done. bin_links = \ + cluttex:clxelatex \ + cluttex:cllualatex \ epstopdf:repstopdf \ pdfcrop:rpdfcrop \ texdef:latexdef diff --git a/source/texk/texlive/linked_scripts/Makefile.in b/source/texk/texlive/linked_scripts/Makefile.in index 0a33fb7e4bdbbc46a89f9f9c679a44c2ddc69175..13dc1d7d30b4fe190729e61df235d42c2a02d62c 100644 --- a/source/texk/texlive/linked_scripts/Makefile.in +++ b/source/texk/texlive/linked_scripts/Makefile.in @@ -291,6 +291,7 @@ texmf_shell_scripts = \ pdfjam/pdfjoin \ pdfjam/pdfnup \ pdfjam/pdfpun \ + pdftex-quiet/pdftex-quiet \ pdfxup/pdfxup \ pst-pdf/ps4pdf \ simpdftex/simpdftex \ @@ -314,6 +315,7 @@ texmf_other_scripts = \ cachepic/cachepic.tlu \ checkcites/checkcites.lua \ cjk-gs-integrate/cjk-gs-integrate.pl \ + cluttex/cluttex.lua \ context/perl/mptopdf.pl \ convbkmk/convbkmk.rb \ crossrefware/bbl2bib.pl \ @@ -427,6 +429,7 @@ texmf_other_scripts = \ ulqda/ulqda.pl \ urlbst/urlbst \ vpe/vpe.pl \ + xindex/xindex.lua \ yplan/yplan texmf_context_scripts = \ @@ -444,6 +447,8 @@ nobase_dist_texmf_scripts_SCRIPTS = \ $(texmf_context_scripts) bin_links = \ + cluttex:clxelatex \ + cluttex:cllualatex \ epstopdf:repstopdf \ pdfcrop:rpdfcrop \ texdef:latexdef diff --git a/source/texk/texlive/w32_wrapper/runscript.tlu b/source/texk/texlive/w32_wrapper/runscript.tlu index da2c1cf5e9fbdedf2be2cfa218e96b4dfd41571d..3356ed09dd93ea78d4e9beeca714e09bf0bb280e 100644 --- a/source/texk/texlive/w32_wrapper/runscript.tlu +++ b/source/texk/texlive/w32_wrapper/runscript.tlu @@ -1,7 +1,7 @@ -local svnrevision = string.match("$Revision: 48059 $", "%d+") or "0" -local svndate = string.match("$Date: 2018-06-20 05:55:23 +0200 (Wed, 20 Jun 2018) $", "[-%d]+") or "2009-12-04" +local svnrevision = string.match("$Revision: 48877 $", "%d+") or "0" +local svndate = string.match("$Date: 2018-10-10 09:25:30 +0200 (Wed, 10 Oct 2018) $", "[-%d]+") or "2009-12-04" local bannerstr = "runscript wrapper utility (rev. " .. svnrevision .. ", " .. svndate .. ")\n" .. "usage: runscript script-name [arguments]\n" .. @@ -270,6 +270,9 @@ local docstr = [[ 2018/06/20 - support also scripts in trees other than TEXMFDIST: https://tug.org/pipermail/tex-live/2018-June/041922.html + 2018/10/10 + - support cluttex scripts + ]] -- HELPER SUBROUTINES -- @@ -762,6 +765,12 @@ elseif progname == 'tlperl' then elseif progname == 'latexdef' then progname = 'texdef' argline = ' --tex latex ' .. argline +elseif progname == 'cllualatex' then + progname = 'cluttex' + argline = ' --engine=lualatex ' .. argline +elseif progname == 'clxelatex' then + progname = 'cluttex' + argline = ' --engine=xelatex ' .. argline end -- general case diff --git a/source/texk/web2c/ChangeLog b/source/texk/web2c/ChangeLog index 8f828367d9d0cb22bb5d40857399579432c02861..4960c098620858a2e0c70c5496b004b420210857 100644 --- a/source/texk/web2c/ChangeLog +++ b/source/texk/web2c/ChangeLog @@ -1,3 +1,35 @@ +2018-12-30 Karl Berry <karl@tug.org> + + * mplibdir/am/mplib.am, + * pmpostdir/am/pmpost.am (bin_links): make that r- instead of r. + Suggested by Hironobu, + https://tug.org/pipermail/tex-live/2018-December/043014.html. + +2018-12-21 Karl Berry <karl@freefriends.org> + + * mplibdir/am/mplib.am, + * pmpostdir/am/pmpost.am (bin_links): make links at install time: + ln -s mpost rmpost + ln -s pmpost rpmpost + ln -s upmpost rupmpost + which implicitly specify -restricted; these new links can be + included in shell_escape_commands (we hope). + Thread starting here: + https://tug.org/pipermail/tex-live/2017-May/040169.html + +2018-11-19 Akira Kakuto <kakuto@fuk.kindai.ac.jp> + + * texmfmp.h: Remove unused functions in XeTeX. + +2018-11-17 Joseph Wright <joseph.wright@morningstar2.co.uk> + + * texmfmp.h: Support some primitives from pdfTeX in XeTeX. + +2018-09-09 Karl Berry <karl@tug.org> + + * mftraptest.test, + * triptest.test: LC_ALL=LANGUAGE=C. + 2018-07-24 Akira Kakuto <kakuto@fuk.kindai.ac.jp> * synctexdir/am/synctex.am: Add synctex_version.h. diff --git a/source/texk/web2c/Makefile.am b/source/texk/web2c/Makefile.am index 1a2c7036bdea210f2b9b2a852e5f07bf1eb2423d..945e012f8241234cf9e4df72d57ea77f130b2ba6 100644 --- a/source/texk/web2c/Makefile.am +++ b/source/texk/web2c/Makefile.am @@ -1,4 +1,4 @@ -## $Id: Makefile.am 46348 2018-01-17 18:00:12Z lscarso $ +## $Id: Makefile.am 48591 2018-09-05 21:30:41Z lscarso $ ## Makefile.am for the TeX Live subdirectory texk/web2c/. ## ## Copyright 2017 Karl Berry <tex-live@tug.org> diff --git a/source/texk/web2c/Makefile.in b/source/texk/web2c/Makefile.in index a213592907e2eed6c065ef65578801cfac0fc35e..ea032018d472b8fdac0787a42394f389c6fd1c17 100644 --- a/source/texk/web2c/Makefile.in +++ b/source/texk/web2c/Makefile.in @@ -14,6 +14,10 @@ @SET_MAKE@ +#LUA_INCLUDES = $(LUA52_INCLUDES) $(LUA52_DEFINES) +#LUA_LIBS = $(LUA52_LIBS) +#LUA_DEPEND = $(LUA52_DEPEND) + @@ -98,9 +102,9 @@ EXTRA_PROGRAMS = $(am__EXEEXT_1) tex$(EXEEXT) mf$(EXEEXT) \ pmpost$(EXEEXT) upmpost$(EXEEXT) etex$(EXEEXT) ptex$(EXEEXT) \ $(am__EXEEXT_2) eptex$(EXEEXT) uptex$(EXEEXT) $(am__EXEEXT_3) \ euptex$(EXEEXT) pdftex$(EXEEXT) ttf2afm$(EXEEXT) \ - pdftosrc$(EXEEXT) luatex$(EXEEXT) luatex53$(EXEEXT) \ - luajittex$(EXEEXT) xetex$(EXEEXT) $(am__EXEEXT_4) \ - aleph$(EXEEXT) synctex$(EXEEXT) md5main$(EXEEXT) + pdftosrc$(EXEEXT) luatex$(EXEEXT) luajittex$(EXEEXT) \ + xetex$(EXEEXT) $(am__EXEEXT_4) aleph$(EXEEXT) synctex$(EXEEXT) \ + md5main$(EXEEXT) bin_PROGRAMS = tangle$(EXEEXT) ctangle$(EXEEXT) $(am__EXEEXT_5) \ ctie$(EXEEXT) cweave$(EXEEXT) tie$(EXEEXT) $(am__EXEEXT_6) \ $(am__EXEEXT_7) $(am__EXEEXT_8) $(am__EXEEXT_9) \ @@ -110,22 +114,20 @@ bin_PROGRAMS = tangle$(EXEEXT) ctangle$(EXEEXT) $(am__EXEEXT_5) \ $(am__EXEEXT_19) $(am__EXEEXT_20) $(am__EXEEXT_21) \ $(am__EXEEXT_22) $(am__EXEEXT_23) $(am__EXEEXT_24) \ $(am__EXEEXT_25) $(am__EXEEXT_26) $(am__EXEEXT_27) \ - $(am__EXEEXT_28) $(am__EXEEXT_29) $(am__EXEEXT_30) \ - $(am__EXEEXT_31) + $(am__EXEEXT_28) $(am__EXEEXT_29) $(am__EXEEXT_30) noinst_PROGRAMS = tangleboot$(EXEEXT) ctangleboot$(EXEEXT) \ - $(am__EXEEXT_32) $(am__EXEEXT_33) $(am__EXEEXT_34) \ - $(am__EXEEXT_35) $(am__EXEEXT_36) $(am__EXEEXT_37) \ - $(am__EXEEXT_38) $(am__EXEEXT_39) $(am__EXEEXT_40) -TESTS = tangle.test $(am__EXEEXT_43) ctiedir/ctie.test \ + $(am__EXEEXT_31) $(am__EXEEXT_32) $(am__EXEEXT_33) \ + $(am__EXEEXT_34) $(am__EXEEXT_35) $(am__EXEEXT_36) \ + $(am__EXEEXT_37) $(am__EXEEXT_38) +TESTS = tangle.test $(am__EXEEXT_41) ctiedir/ctie.test \ cwebdir/cweave.test tiedir/tie.test $(am__append_6) \ $(am__append_16) $(am__append_25) $(am__append_34) \ $(am__append_42) $(am__append_55) $(am__append_56) \ $(am__append_58) $(am__append_63) $(am__append_66) \ $(am__append_68) $(am__append_73) $(am__append_76) \ - $(am__append_78) $(am__append_83) $(am__append_99) \ - $(am__append_100) $(am__append_101) $(am__append_109) \ - $(am__append_111) $(am__append_113) $(am__append_147) \ - libmd5/md5.test + $(am__append_78) $(am__append_83) $(am__append_94) \ + $(am__append_95) $(am__append_103) $(am__append_105) \ + $(am__append_107) $(am__append_141) libmd5/md5.test @WEB_TRUE@am__append_1 = $(web_programs) @WEB_TRUE@am__append_2 = $(web_tests) @TEX_TRUE@am__append_3 = tex @@ -166,7 +168,9 @@ TESTS = tangle.test $(am__EXEEXT_43) ctiedir/ctie.test \ @MP_TRUE@@WIN32_TRUE@am__append_38 = call_mpost @MP_TRUE@@WIN32_TRUE@am__append_39 = install-mpost-links @MP_TRUE@@WIN32_TRUE@am__append_40 = uninstall-mpost-links -@MP_TRUE@@WIN32_FALSE@am__append_41 = mpost$(EXEEXT):dvitomp mpost$(EXEEXT):mfplain +@MP_TRUE@@WIN32_FALSE@am__append_41 = mpost$(EXEEXT):dvitomp \ +@MP_TRUE@@WIN32_FALSE@ mpost$(EXEEXT):mfplain \ +@MP_TRUE@@WIN32_FALSE@ mpost$(EXEEXT):r-mpost @MP_TRUE@am__append_42 = $(mp_tests) @MP_TRUE@am__append_43 = mptrap.diffs @MP_TRUE@am__append_44 = mptrap-clean @@ -174,12 +178,14 @@ TESTS = tangle.test $(am__EXEEXT_43) ctiedir/ctie.test \ @PMP_TRUE@@WIN32_TRUE@am__append_46 = call_pmpost @PMP_TRUE@@WIN32_TRUE@am__append_47 = install-pmpost-links @PMP_TRUE@@WIN32_TRUE@am__append_48 = uninstall-pmpost-links -@PMP_TRUE@@WIN32_FALSE@am__append_49 = pmpost$(EXEEXT):pdvitomp +@PMP_TRUE@@WIN32_FALSE@am__append_49 = pmpost$(EXEEXT):pdvitomp \ +@PMP_TRUE@@WIN32_FALSE@ pmpost$(EXEEXT):r-pmpost @UPMP_TRUE@am__append_50 = upmpost @UPMP_TRUE@@WIN32_TRUE@am__append_51 = call_upmpost @UPMP_TRUE@@WIN32_TRUE@am__append_52 = install-upmpost-links @UPMP_TRUE@@WIN32_TRUE@am__append_53 = uninstall-upmpost-links -@UPMP_TRUE@@WIN32_FALSE@am__append_54 = upmpost$(EXEEXT):updvitomp +@UPMP_TRUE@@WIN32_FALSE@am__append_54 = upmpost$(EXEEXT):updvitomp \ +@UPMP_TRUE@@WIN32_FALSE@ upmpost$(EXEEXT):r-upmpost @PMP_TRUE@am__append_55 = $(pmpost_tests) @UPMP_TRUE@am__append_56 = $(upmpost_tests) @ETEX_TRUE@am__append_57 = etex @@ -218,130 +224,138 @@ TESTS = tangle.test $(am__EXEEXT_43) ctiedir/ctie.test \ @LUATEX_TRUE@@WIN32_TRUE@am__append_86 = install-luatex-links @LUATEX_TRUE@@WIN32_TRUE@am__append_87 = uninstall-luatex-links @LUATEX_TRUE@@WIN32_FALSE@am__append_88 = luatex$(EXEEXT):texlua luatex$(EXEEXT):texluac -@LUATEX53_TRUE@am__append_89 = luatex53 -@LUATEX53_TRUE@@WIN32_TRUE@am__append_90 = call_luatex53 -@LUATEX53_TRUE@@WIN32_TRUE@am__append_91 = install-luatex53-links -@LUATEX53_TRUE@@WIN32_TRUE@am__append_92 = uninstall-luatex53-links -@LUATEX53_TRUE@@WIN32_FALSE@am__append_93 = luatex53$(EXEEXT):texlua53 -@LUAJITTEX_TRUE@am__append_94 = luajittex -@LUAJITTEX_TRUE@@WIN32_TRUE@am__append_95 = call_luajittex -@LUAJITTEX_TRUE@@WIN32_TRUE@am__append_96 = install-luajittex-links -@LUAJITTEX_TRUE@@WIN32_TRUE@am__append_97 = uninstall-luajittex-links -@LUAJITTEX_TRUE@@WIN32_FALSE@am__append_98 = luajittex$(EXEEXT):texluajit luajittex$(EXEEXT):texluajitc -@LUATEX_TRUE@am__append_99 = $(luatex_tests) -@LUATEX53_TRUE@am__append_100 = $(luatex_tests) -@LUAJITTEX_TRUE@am__append_101 = $(luajittex_tests) -@XETEX_TRUE@am__append_102 = xetex -@XETEX_MACOSX_TRUE@am__append_103 = -DXETEX_MAC -@XETEX_MACOSX_TRUE@am__append_104 = -std=c++11 -@XETEX_MACOSX_FALSE@am__append_105 = $(FONTCONFIG_INCLUDES) -@XETEX_MACOSX_FALSE@am__append_106 = $(FONTCONFIG_LIBS) -@XETEX_MACOSX_TRUE@am__append_107 = \ + +#if LUATEX53 +#bin_PROGRAMS += luatex53 +#if WIN32 +#noinst_PROGRAMS += call_luatex53 +#install_exe_links += install-luatex53-links +#uninstall_exe_links += uninstall-luatex53-links +#else !WIN32 +#bin_links += luatex53$(EXEEXT):texlua53 +#endif !WIN32 +#endif LUATEX53 +@LUAJITTEX_TRUE@am__append_89 = luajittex +@LUAJITTEX_TRUE@@WIN32_TRUE@am__append_90 = call_luajittex +@LUAJITTEX_TRUE@@WIN32_TRUE@am__append_91 = install-luajittex-links +@LUAJITTEX_TRUE@@WIN32_TRUE@am__append_92 = uninstall-luajittex-links +@LUAJITTEX_TRUE@@WIN32_FALSE@am__append_93 = luajittex$(EXEEXT):texluajit luajittex$(EXEEXT):texluajitc +@LUATEX_TRUE@am__append_94 = $(luatex_tests) +#if LUATEX53 +#TESTS += $(luatex_tests) +#endif LUATEX53 +@LUAJITTEX_TRUE@am__append_95 = $(luajittex_tests) +@XETEX_TRUE@am__append_96 = xetex +@XETEX_MACOSX_TRUE@am__append_97 = -DXETEX_MAC +@XETEX_MACOSX_TRUE@am__append_98 = -std=c++11 +@XETEX_MACOSX_FALSE@am__append_99 = $(FONTCONFIG_INCLUDES) +@XETEX_MACOSX_FALSE@am__append_100 = $(FONTCONFIG_LIBS) +@XETEX_MACOSX_TRUE@am__append_101 = \ @XETEX_MACOSX_TRUE@ xetexdir/XeTeXFontInst_Mac.cpp \ @XETEX_MACOSX_TRUE@ xetexdir/XeTeXFontInst_Mac.h \ @XETEX_MACOSX_TRUE@ xetexdir/XeTeXFontMgr_Mac.mm \ @XETEX_MACOSX_TRUE@ xetexdir/XeTeXFontMgr_Mac.h \ @XETEX_MACOSX_TRUE@ xetexdir/XeTeX_mac.c -@XETEX_MACOSX_FALSE@am__append_108 = \ +@XETEX_MACOSX_FALSE@am__append_102 = \ @XETEX_MACOSX_FALSE@ xetexdir/XeTeXFontMgr_FC.cpp \ @XETEX_MACOSX_FALSE@ xetexdir/XeTeXFontMgr_FC.h -@XETEX_TRUE@am__append_109 = $(xetex_tests) -@OTANGLE_TRUE@am__append_110 = $(omegaware_programs) -@OTANGLE_TRUE@am__append_111 = $(OTANGLE_tests) $(OMFONTS_tests) -@ALEPH_TRUE@am__append_112 = aleph -@ALEPH_TRUE@am__append_113 = $(aleph_tests) -@SYNCTEX_TRUE@am__append_114 = synctex -@SYNCTEX_TRUE@am__append_115 = $(LTLIBSYNCTEX) -@SYNCTEX_TRUE@am__append_116 = $(LIBSYNCTEX) -@MINGW32_TRUE@am__append_117 = -lshlwapi -@MINGW32_TRUE@am__append_118 = -lshlwapi -@TEX_SYNCTEX_TRUE@am__append_119 = -I$(srcdir)/synctexdir \ +@XETEX_TRUE@am__append_103 = $(xetex_tests) +@OTANGLE_TRUE@am__append_104 = $(omegaware_programs) +@OTANGLE_TRUE@am__append_105 = $(OTANGLE_tests) $(OMFONTS_tests) +@ALEPH_TRUE@am__append_106 = aleph +@ALEPH_TRUE@am__append_107 = $(aleph_tests) +@SYNCTEX_TRUE@am__append_108 = synctex +@SYNCTEX_TRUE@am__append_109 = $(LTLIBSYNCTEX) +@SYNCTEX_TRUE@am__append_110 = $(LIBSYNCTEX) +@MINGW32_TRUE@am__append_111 = -lshlwapi +@MINGW32_TRUE@am__append_112 = -lshlwapi +@TEX_SYNCTEX_TRUE@am__append_113 = -I$(srcdir)/synctexdir \ @TEX_SYNCTEX_TRUE@ $(ZLIB_INCLUDES) -D__SyncTeX__ \ @TEX_SYNCTEX_TRUE@ -DSYNCTEX_ENGINE_H=\"synctex-tex.h\" -@TEX_SYNCTEX_TRUE@am__append_120 = $(ZLIB_LIBS) -@TEX_SYNCTEX_TRUE@am__append_121 = $(ZLIB_DEPEND) -@TEX_SYNCTEX_TRUE@am__append_122 = \ +@TEX_SYNCTEX_TRUE@am__append_114 = $(ZLIB_LIBS) +@TEX_SYNCTEX_TRUE@am__append_115 = $(ZLIB_DEPEND) +@TEX_SYNCTEX_TRUE@am__append_116 = \ @TEX_SYNCTEX_TRUE@ synctexdir/synctex.c \ @TEX_SYNCTEX_TRUE@ synctexdir/synctex.h \ @TEX_SYNCTEX_TRUE@ synctexdir/synctex-common.h \ @TEX_SYNCTEX_TRUE@ synctexdir/synctex-tex.h -@ETEX_SYNCTEX_TRUE@am__append_123 = -I$(srcdir)/synctexdir \ +@ETEX_SYNCTEX_TRUE@am__append_117 = -I$(srcdir)/synctexdir \ @ETEX_SYNCTEX_TRUE@ $(ZLIB_INCLUDES) -D__SyncTeX__ \ @ETEX_SYNCTEX_TRUE@ -DSYNCTEX_ENGINE_H=\"synctex-etex.h\" -@ETEX_SYNCTEX_TRUE@am__append_124 = $(ZLIB_LIBS) -@ETEX_SYNCTEX_TRUE@am__append_125 = $(ZLIB_DEPEND) -@ETEX_SYNCTEX_TRUE@am__append_126 = \ +@ETEX_SYNCTEX_TRUE@am__append_118 = $(ZLIB_LIBS) +@ETEX_SYNCTEX_TRUE@am__append_119 = $(ZLIB_DEPEND) +@ETEX_SYNCTEX_TRUE@am__append_120 = \ @ETEX_SYNCTEX_TRUE@ synctexdir/synctex.c \ @ETEX_SYNCTEX_TRUE@ synctexdir/synctex.h \ @ETEX_SYNCTEX_TRUE@ synctexdir/synctex-common.h \ @ETEX_SYNCTEX_TRUE@ synctexdir/synctex-etex.h -@PTEX_SYNCTEX_TRUE@am__append_127 = -I$(srcdir)/synctexdir \ +@PTEX_SYNCTEX_TRUE@am__append_121 = -I$(srcdir)/synctexdir \ @PTEX_SYNCTEX_TRUE@ $(ZLIB_INCLUDES) -D__SyncTeX__ \ @PTEX_SYNCTEX_TRUE@ -DSYNCTEX_ENGINE_H=\"synctex-ptex.h\" -@PTEX_SYNCTEX_TRUE@am__append_128 = $(ZLIB_LIBS) -@PTEX_SYNCTEX_TRUE@am__append_129 = $(ZLIB_DEPEND) -@PTEX_SYNCTEX_TRUE@am__append_130 = \ +@PTEX_SYNCTEX_TRUE@am__append_122 = $(ZLIB_LIBS) +@PTEX_SYNCTEX_TRUE@am__append_123 = $(ZLIB_DEPEND) +@PTEX_SYNCTEX_TRUE@am__append_124 = \ @PTEX_SYNCTEX_TRUE@ synctexdir/synctex.c \ @PTEX_SYNCTEX_TRUE@ synctexdir/synctex.h \ @PTEX_SYNCTEX_TRUE@ synctexdir/synctex-common.h \ @PTEX_SYNCTEX_TRUE@ synctexdir/synctex-ptex.h -@UPTEX_SYNCTEX_TRUE@am__append_131 = -I$(srcdir)/synctexdir \ +@UPTEX_SYNCTEX_TRUE@am__append_125 = -I$(srcdir)/synctexdir \ @UPTEX_SYNCTEX_TRUE@ $(ZLIB_INCLUDES) -D__SyncTeX__ \ @UPTEX_SYNCTEX_TRUE@ -DSYNCTEX_ENGINE_H=\"synctex-uptex.h\" -@UPTEX_SYNCTEX_TRUE@am__append_132 = $(ZLIB_LIBS) -@UPTEX_SYNCTEX_TRUE@am__append_133 = $(ZLIB_DEPEND) -@UPTEX_SYNCTEX_TRUE@am__append_134 = \ +@UPTEX_SYNCTEX_TRUE@am__append_126 = $(ZLIB_LIBS) +@UPTEX_SYNCTEX_TRUE@am__append_127 = $(ZLIB_DEPEND) +@UPTEX_SYNCTEX_TRUE@am__append_128 = \ @UPTEX_SYNCTEX_TRUE@ synctexdir/synctex.c \ @UPTEX_SYNCTEX_TRUE@ synctexdir/synctex.h \ @UPTEX_SYNCTEX_TRUE@ synctexdir/synctex-common.h \ @UPTEX_SYNCTEX_TRUE@ synctexdir/synctex-uptex.h -@EPTEX_SYNCTEX_TRUE@am__append_135 = -I$(srcdir)/synctexdir \ +@EPTEX_SYNCTEX_TRUE@am__append_129 = -I$(srcdir)/synctexdir \ @EPTEX_SYNCTEX_TRUE@ $(ZLIB_INCLUDES) -D__SyncTeX__ \ @EPTEX_SYNCTEX_TRUE@ -DSYNCTEX_ENGINE_H=\"synctex-eptex.h\" -@EPTEX_SYNCTEX_TRUE@am__append_136 = $(ZLIB_LIBS) -@EPTEX_SYNCTEX_TRUE@am__append_137 = $(ZLIB_DEPEND) -@EPTEX_SYNCTEX_TRUE@am__append_138 = \ +@EPTEX_SYNCTEX_TRUE@am__append_130 = $(ZLIB_LIBS) +@EPTEX_SYNCTEX_TRUE@am__append_131 = $(ZLIB_DEPEND) +@EPTEX_SYNCTEX_TRUE@am__append_132 = \ @EPTEX_SYNCTEX_TRUE@ synctexdir/synctex.c \ @EPTEX_SYNCTEX_TRUE@ synctexdir/synctex.h \ @EPTEX_SYNCTEX_TRUE@ synctexdir/synctex-common.h \ @EPTEX_SYNCTEX_TRUE@ synctexdir/synctex-eptex.h -@EUPTEX_SYNCTEX_TRUE@am__append_139 = -I$(srcdir)/synctexdir \ +@EUPTEX_SYNCTEX_TRUE@am__append_133 = -I$(srcdir)/synctexdir \ @EUPTEX_SYNCTEX_TRUE@ $(ZLIB_INCLUDES) -D__SyncTeX__ \ @EUPTEX_SYNCTEX_TRUE@ -DSYNCTEX_ENGINE_H=\"synctex-euptex.h\" -@EUPTEX_SYNCTEX_TRUE@am__append_140 = $(ZLIB_LIBS) -@EUPTEX_SYNCTEX_TRUE@am__append_141 = $(ZLIB_DEPEND) -@EUPTEX_SYNCTEX_TRUE@am__append_142 = \ +@EUPTEX_SYNCTEX_TRUE@am__append_134 = $(ZLIB_LIBS) +@EUPTEX_SYNCTEX_TRUE@am__append_135 = $(ZLIB_DEPEND) +@EUPTEX_SYNCTEX_TRUE@am__append_136 = \ @EUPTEX_SYNCTEX_TRUE@ synctexdir/synctex.c \ @EUPTEX_SYNCTEX_TRUE@ synctexdir/synctex.h \ @EUPTEX_SYNCTEX_TRUE@ synctexdir/synctex-common.h \ @EUPTEX_SYNCTEX_TRUE@ synctexdir/synctex-euptex.h -@PDFTEX_SYNCTEX_TRUE@am__append_143 = -I$(srcdir)/synctexdir \ +@PDFTEX_SYNCTEX_TRUE@am__append_137 = -I$(srcdir)/synctexdir \ @PDFTEX_SYNCTEX_TRUE@ -D__SyncTeX__ \ @PDFTEX_SYNCTEX_TRUE@ -DSYNCTEX_ENGINE_H=\"synctex-pdftex.h\" -@PDFTEX_SYNCTEX_TRUE@am__append_144 = \ +@PDFTEX_SYNCTEX_TRUE@am__append_138 = \ @PDFTEX_SYNCTEX_TRUE@ synctexdir/synctex.c \ @PDFTEX_SYNCTEX_TRUE@ synctexdir/synctex.h \ @PDFTEX_SYNCTEX_TRUE@ synctexdir/synctex-common.h \ @PDFTEX_SYNCTEX_TRUE@ synctexdir/synctex-pdftex.h -@XETEX_SYNCTEX_TRUE@am__append_145 = -I$(srcdir)/synctexdir \ +@XETEX_SYNCTEX_TRUE@am__append_139 = -I$(srcdir)/synctexdir \ @XETEX_SYNCTEX_TRUE@ -D__SyncTeX__ \ @XETEX_SYNCTEX_TRUE@ -DSYNCTEX_ENGINE_H=\"synctex-xetex.h\" -@XETEX_SYNCTEX_TRUE@am__append_146 = \ +@XETEX_SYNCTEX_TRUE@am__append_140 = \ @XETEX_SYNCTEX_TRUE@ synctexdir/synctex.c \ @XETEX_SYNCTEX_TRUE@ synctexdir/synctex.h \ @XETEX_SYNCTEX_TRUE@ synctexdir/synctex-common.h \ @XETEX_SYNCTEX_TRUE@ synctexdir/synctex-xetex.h -@SYNCTEX_TRUE@am__append_147 = $(synctex_tests) +@SYNCTEX_TRUE@am__append_141 = $(synctex_tests) subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/web2c-disable.m4 \ @@ -435,25 +449,23 @@ am__EXEEXT_4 = odvicopy$(EXEEXT) odvitype$(EXEEXT) otangle$(EXEEXT) \ @PDFTEX_TRUE@am__EXEEXT_24 = pdftex$(EXEEXT) ttf2afm$(EXEEXT) \ @PDFTEX_TRUE@ pdftosrc$(EXEEXT) @LUATEX_TRUE@am__EXEEXT_25 = luatex$(EXEEXT) -@LUATEX53_TRUE@am__EXEEXT_26 = luatex53$(EXEEXT) -@LUAJITTEX_TRUE@am__EXEEXT_27 = luajittex$(EXEEXT) -@XETEX_TRUE@am__EXEEXT_28 = xetex$(EXEEXT) -@OTANGLE_TRUE@am__EXEEXT_29 = $(am__EXEEXT_4) -@ALEPH_TRUE@am__EXEEXT_30 = aleph$(EXEEXT) -@SYNCTEX_TRUE@am__EXEEXT_31 = synctex$(EXEEXT) +@LUAJITTEX_TRUE@am__EXEEXT_26 = luajittex$(EXEEXT) +@XETEX_TRUE@am__EXEEXT_27 = xetex$(EXEEXT) +@OTANGLE_TRUE@am__EXEEXT_28 = $(am__EXEEXT_4) +@ALEPH_TRUE@am__EXEEXT_29 = aleph$(EXEEXT) +@SYNCTEX_TRUE@am__EXEEXT_30 = synctex$(EXEEXT) am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libdir)" \ "$(DESTDIR)$(libdir)" "$(DESTDIR)$(man1dir)" \ "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(pkgconfigdir)" \ "$(DESTDIR)$(syncincludedir)" -@MF_TRUE@@WIN32_TRUE@am__EXEEXT_32 = call_mf$(EXEEXT) -@MFLUA_TRUE@@WIN32_TRUE@am__EXEEXT_33 = call_mflua$(EXEEXT) -@MFLUAJIT_TRUE@@WIN32_TRUE@am__EXEEXT_34 = call_mfluajit$(EXEEXT) -@MP_TRUE@@WIN32_TRUE@am__EXEEXT_35 = call_mpost$(EXEEXT) -@PMP_TRUE@@WIN32_TRUE@am__EXEEXT_36 = call_pmpost$(EXEEXT) -@UPMP_TRUE@@WIN32_TRUE@am__EXEEXT_37 = call_upmpost$(EXEEXT) -@LUATEX_TRUE@@WIN32_TRUE@am__EXEEXT_38 = call_luatex$(EXEEXT) -@LUATEX53_TRUE@@WIN32_TRUE@am__EXEEXT_39 = call_luatex53$(EXEEXT) -@LUAJITTEX_TRUE@@WIN32_TRUE@am__EXEEXT_40 = call_luajittex$(EXEEXT) +@MF_TRUE@@WIN32_TRUE@am__EXEEXT_31 = call_mf$(EXEEXT) +@MFLUA_TRUE@@WIN32_TRUE@am__EXEEXT_32 = call_mflua$(EXEEXT) +@MFLUAJIT_TRUE@@WIN32_TRUE@am__EXEEXT_33 = call_mfluajit$(EXEEXT) +@MP_TRUE@@WIN32_TRUE@am__EXEEXT_34 = call_mpost$(EXEEXT) +@PMP_TRUE@@WIN32_TRUE@am__EXEEXT_35 = call_pmpost$(EXEEXT) +@UPMP_TRUE@@WIN32_TRUE@am__EXEEXT_36 = call_upmpost$(EXEEXT) +@LUATEX_TRUE@@WIN32_TRUE@am__EXEEXT_37 = call_luatex$(EXEEXT) +@LUAJITTEX_TRUE@@WIN32_TRUE@am__EXEEXT_38 = call_luajittex$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ @@ -539,208 +551,17 @@ libkanji_a_AR = $(AR) $(ARFLAGS) libkanji_a_LIBADD = am_libkanji_a_OBJECTS = ptexdir/libkanji_a-kanji.$(OBJEXT) libkanji_a_OBJECTS = $(am_libkanji_a_OBJECTS) -liblua53ffi_a_AR = $(AR) $(ARFLAGS) -liblua53ffi_a_LIBADD = -am__objects_1 = luatexdir/luaffi/liblua53ffi_a-call.$(OBJEXT) \ - luatexdir/luaffi/liblua53ffi_a-ctype.$(OBJEXT) \ - luatexdir/luaffi/liblua53ffi_a-ffi.$(OBJEXT) \ - luatexdir/luaffi/liblua53ffi_a-parser.$(OBJEXT) -nodist_liblua53ffi_a_OBJECTS = $(am__objects_1) -liblua53ffi_a_OBJECTS = $(nodist_liblua53ffi_a_OBJECTS) -liblua53misc_a_AR = $(AR) $(ARFLAGS) -liblua53misc_a_LIBADD = -am__objects_2 = \ - luatexdir/luafilesystem/src/liblua53misc_a-lfs.$(OBJEXT) \ - luatexdir/luamd5/liblua53misc_a-md5.$(OBJEXT) \ - luatexdir/luamd5/liblua53misc_a-md5lib.$(OBJEXT) \ - luatexdir/luapeg/liblua53misc_a-lpeg.$(OBJEXT) \ - luatexdir/luazip/src/liblua53misc_a-luazip.$(OBJEXT) \ - luatexdir/luazlib/liblua53misc_a-lgzip.$(OBJEXT) \ - luatexdir/luazlib/liblua53misc_a-lzlib.$(OBJEXT) \ - luatexdir/slnunicode/liblua53misc_a-slnunico.$(OBJEXT) -nodist_liblua53misc_a_OBJECTS = $(am__objects_2) -liblua53misc_a_OBJECTS = $(nodist_liblua53misc_a_OBJECTS) -liblua53pplib_a_AR = $(AR) $(ARFLAGS) -liblua53pplib_a_LIBADD = -am__objects_3 = luatexdir/luapplib/liblua53pplib_a-pparray.$(OBJEXT) \ - luatexdir/luapplib/liblua53pplib_a-ppcrypt.$(OBJEXT) \ - luatexdir/luapplib/liblua53pplib_a-ppdict.$(OBJEXT) \ - luatexdir/luapplib/liblua53pplib_a-ppheap.$(OBJEXT) \ - luatexdir/luapplib/liblua53pplib_a-ppload.$(OBJEXT) \ - luatexdir/luapplib/liblua53pplib_a-ppstream.$(OBJEXT) \ - luatexdir/luapplib/liblua53pplib_a-ppxref.$(OBJEXT) \ - luatexdir/luapplib/util/liblua53pplib_a-utilbasexx.$(OBJEXT) \ - luatexdir/luapplib/util/liblua53pplib_a-utilcrypt.$(OBJEXT) \ - luatexdir/luapplib/util/liblua53pplib_a-utilflate.$(OBJEXT) \ - luatexdir/luapplib/util/liblua53pplib_a-utilfpred.$(OBJEXT) \ - luatexdir/luapplib/util/liblua53pplib_a-utiliof.$(OBJEXT) \ - luatexdir/luapplib/util/liblua53pplib_a-utillog.$(OBJEXT) \ - luatexdir/luapplib/util/liblua53pplib_a-utillzw.$(OBJEXT) \ - luatexdir/luapplib/util/liblua53pplib_a-utilmd5.$(OBJEXT) \ - luatexdir/luapplib/util/liblua53pplib_a-utilmem.$(OBJEXT) \ - luatexdir/luapplib/util/liblua53pplib_a-utilnumber.$(OBJEXT) \ - luatexdir/luapplib/util/liblua53pplib_a-utilsha.$(OBJEXT) -nodist_liblua53pplib_a_OBJECTS = $(am__objects_3) -liblua53pplib_a_OBJECTS = $(nodist_liblua53pplib_a_OBJECTS) -liblua53socket_a_AR = $(AR) $(ARFLAGS) -liblua53socket_a_LIBADD = -am__objects_4 = \ - luatexdir/luasocket/src/liblua53socket_a-auxiliar.$(OBJEXT) \ - luatexdir/luasocket/src/liblua53socket_a-buffer.$(OBJEXT) \ - luatexdir/luasocket/src/liblua53socket_a-compat.$(OBJEXT) \ - luatexdir/luasocket/src/liblua53socket_a-except.$(OBJEXT) \ - luatexdir/luasocket/src/liblua53socket_a-inet.$(OBJEXT) \ - luatexdir/luasocket/src/liblua53socket_a-io.$(OBJEXT) \ - luatexdir/luasocket/src/liblua53socket_a-lua_preload.$(OBJEXT) \ - luatexdir/luasocket/src/liblua53socket_a-luasocket.$(OBJEXT) \ - luatexdir/luasocket/src/liblua53socket_a-mime.$(OBJEXT) \ - luatexdir/luasocket/src/liblua53socket_a-options.$(OBJEXT) \ - luatexdir/luasocket/src/liblua53socket_a-select.$(OBJEXT) \ - luatexdir/luasocket/src/liblua53socket_a-serial.$(OBJEXT) \ - luatexdir/luasocket/src/liblua53socket_a-socket.$(OBJEXT) \ - luatexdir/luasocket/src/liblua53socket_a-tcp.$(OBJEXT) \ - luatexdir/luasocket/src/liblua53socket_a-timeout.$(OBJEXT) \ - luatexdir/luasocket/src/liblua53socket_a-udp.$(OBJEXT) -nodist_liblua53socket_a_OBJECTS = $(am__objects_4) -liblua53socket_a_OBJECTS = $(nodist_liblua53socket_a_OBJECTS) -liblua53tex_a_AR = $(AR) $(ARFLAGS) -liblua53tex_a_LIBADD = -dist_liblua53tex_a_OBJECTS = \ - luatexdir/lua/liblua53tex_a-lstrlibext.$(OBJEXT) \ - luatexdir/lua/liblua53tex_a-helpers.$(OBJEXT) \ - luatexdir/lua/liblua53tex_a-texluac.$(OBJEXT) -am__objects_5 = \ - luatexdir/luafontloader/src/liblua53tex_a-ffdummies.$(OBJEXT) \ - luatexdir/luafontloader/src/liblua53tex_a-luafflib.$(OBJEXT) \ - luatexdir/dvi/liblua53tex_a-dvigen.$(OBJEXT) \ - luatexdir/font/liblua53tex_a-dofont.$(OBJEXT) \ - luatexdir/font/liblua53tex_a-luafont.$(OBJEXT) \ - luatexdir/font/liblua53tex_a-mapfile.$(OBJEXT) \ - luatexdir/font/liblua53tex_a-pkin.$(OBJEXT) \ - luatexdir/font/liblua53tex_a-sfnt.$(OBJEXT) \ - luatexdir/font/liblua53tex_a-texfont.$(OBJEXT) \ - luatexdir/font/liblua53tex_a-tfmofm.$(OBJEXT) \ - luatexdir/font/liblua53tex_a-tounicode.$(OBJEXT) \ - luatexdir/font/liblua53tex_a-tt_glyf.$(OBJEXT) \ - luatexdir/font/liblua53tex_a-tt_table.$(OBJEXT) \ - luatexdir/font/liblua53tex_a-vfovf.$(OBJEXT) \ - luatexdir/font/liblua53tex_a-vfpacket.$(OBJEXT) \ - luatexdir/font/liblua53tex_a-writecff.$(OBJEXT) \ - luatexdir/font/liblua53tex_a-writeenc.$(OBJEXT) \ - luatexdir/font/liblua53tex_a-writefont.$(OBJEXT) \ - luatexdir/font/liblua53tex_a-writet1.$(OBJEXT) \ - luatexdir/font/liblua53tex_a-writet3.$(OBJEXT) \ - luatexdir/font/liblua53tex_a-writettf.$(OBJEXT) \ - luatexdir/font/liblua53tex_a-writetype0.$(OBJEXT) \ - luatexdir/font/liblua53tex_a-writetype2.$(OBJEXT) \ - luatexdir/image/liblua53tex_a-pdftoepdf.$(OBJEXT) \ - luatexdir/image/liblua53tex_a-writeimg.$(OBJEXT) \ - luatexdir/image/liblua53tex_a-writejbig2.$(OBJEXT) \ - luatexdir/image/liblua53tex_a-writejp2.$(OBJEXT) \ - luatexdir/image/liblua53tex_a-writejpg.$(OBJEXT) \ - luatexdir/image/liblua53tex_a-writepng.$(OBJEXT) \ - luatexdir/lang/liblua53tex_a-hnjalloc.$(OBJEXT) \ - luatexdir/lang/liblua53tex_a-hyphen.$(OBJEXT) \ - luatexdir/lang/liblua53tex_a-texlang.$(OBJEXT) \ - luatexdir/lua/liblua53tex_a-lcallbacklib.$(OBJEXT) \ - luatexdir/lua/liblua53tex_a-lfontlib.$(OBJEXT) \ - luatexdir/lua/liblua53tex_a-limglib.$(OBJEXT) \ - luatexdir/lua/liblua53tex_a-lpdfelib.$(OBJEXT) \ - luatexdir/lua/liblua53tex_a-lpdfscannerlib.$(OBJEXT) \ - luatexdir/lua/liblua53tex_a-lkpselib.$(OBJEXT) \ - luatexdir/lua/liblua53tex_a-llanglib.$(OBJEXT) \ - luatexdir/lua/liblua53tex_a-llualib.$(OBJEXT) \ - luatexdir/lua/liblua53tex_a-lnodelib.$(OBJEXT) \ - luatexdir/lua/liblua53tex_a-liolibext.$(OBJEXT) \ - luatexdir/lua/liblua53tex_a-loslibext.$(OBJEXT) \ - luatexdir/lua/liblua53tex_a-lpdflib.$(OBJEXT) \ - luatexdir/lua/liblua53tex_a-lstatslib.$(OBJEXT) \ - luatexdir/lua/liblua53tex_a-ltexiolib.$(OBJEXT) \ - luatexdir/lua/liblua53tex_a-ltexlib.$(OBJEXT) \ - luatexdir/lua/liblua53tex_a-lnewtokenlib.$(OBJEXT) \ - luatexdir/lua/liblua53tex_a-luatex-core.$(OBJEXT) \ - luatexdir/lua/liblua53tex_a-helpers.$(OBJEXT) \ - luatexdir/lua/liblua53tex_a-luainit.$(OBJEXT) \ - luatexdir/lua/liblua53tex_a-luanode.$(OBJEXT) \ - luatexdir/lua/liblua53tex_a-luastuff.$(OBJEXT) \ - luatexdir/lua/liblua53tex_a-luatoken.$(OBJEXT) \ - luatexdir/lua/liblua53tex_a-mplibstuff.$(OBJEXT) \ - luatexdir/pdf/liblua53tex_a-pdfaction.$(OBJEXT) \ - luatexdir/pdf/liblua53tex_a-pdfannot.$(OBJEXT) \ - luatexdir/pdf/liblua53tex_a-pdfcolorstack.$(OBJEXT) \ - luatexdir/pdf/liblua53tex_a-pdfdest.$(OBJEXT) \ - luatexdir/pdf/liblua53tex_a-pdffont.$(OBJEXT) \ - luatexdir/pdf/liblua53tex_a-pdfgen.$(OBJEXT) \ - luatexdir/pdf/liblua53tex_a-pdfglyph.$(OBJEXT) \ - luatexdir/pdf/liblua53tex_a-pdfimage.$(OBJEXT) \ - luatexdir/pdf/liblua53tex_a-pdflink.$(OBJEXT) \ - luatexdir/pdf/liblua53tex_a-pdflistout.$(OBJEXT) \ - luatexdir/pdf/liblua53tex_a-pdfliteral.$(OBJEXT) \ - luatexdir/pdf/liblua53tex_a-pdfobj.$(OBJEXT) \ - luatexdir/pdf/liblua53tex_a-pdfoutline.$(OBJEXT) \ - luatexdir/pdf/liblua53tex_a-pdfpage.$(OBJEXT) \ - luatexdir/pdf/liblua53tex_a-pdfpagetree.$(OBJEXT) \ - luatexdir/pdf/liblua53tex_a-pdfrule.$(OBJEXT) \ - luatexdir/pdf/liblua53tex_a-pdfsaverestore.$(OBJEXT) \ - luatexdir/pdf/liblua53tex_a-pdfsetmatrix.$(OBJEXT) \ - luatexdir/pdf/liblua53tex_a-pdfshipout.$(OBJEXT) \ - luatexdir/pdf/liblua53tex_a-pdftables.$(OBJEXT) \ - luatexdir/pdf/liblua53tex_a-pdfthread.$(OBJEXT) \ - luatexdir/pdf/liblua53tex_a-pdfxform.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-backend.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-align.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-arithmetic.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-buildpage.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-commands.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-conditional.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-directions.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-dumpdata.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-equivalents.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-errors.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-expand.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-extensions.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-filename.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-inputstack.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-linebreak.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-mainbody.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-maincontrol.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-mathcodes.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-memoryword.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-mlist.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-nesting.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-packaging.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-postlinebreak.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-primitive.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-printing.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-scanning.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-stringpool.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-texdeffont.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-texfileio.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-texmath.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-texnodes.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-textcodes.$(OBJEXT) \ - luatexdir/tex/liblua53tex_a-textoken.$(OBJEXT) \ - luatexdir/utils/liblua53tex_a-avl.$(OBJEXT) \ - luatexdir/utils/liblua53tex_a-avlstuff.$(OBJEXT) \ - luatexdir/utils/liblua53tex_a-managed-sa.$(OBJEXT) \ - luatexdir/utils/liblua53tex_a-unistring.$(OBJEXT) \ - luatexdir/utils/liblua53tex_a-utils.$(OBJEXT) \ - synctexdir/liblua53tex_a-synctex.$(OBJEXT) -am__objects_6 = -nodist_liblua53tex_a_OBJECTS = $(am__objects_5) $(am__objects_6) -liblua53tex_a_OBJECTS = $(dist_liblua53tex_a_OBJECTS) \ - $(nodist_liblua53tex_a_OBJECTS) libluaffi_a_AR = $(AR) $(ARFLAGS) libluaffi_a_LIBADD = -am__objects_7 = luatexdir/luaffi/libluaffi_a-call.$(OBJEXT) \ +am__objects_1 = luatexdir/luaffi/libluaffi_a-call.$(OBJEXT) \ luatexdir/luaffi/libluaffi_a-ctype.$(OBJEXT) \ luatexdir/luaffi/libluaffi_a-ffi.$(OBJEXT) \ luatexdir/luaffi/libluaffi_a-parser.$(OBJEXT) -nodist_libluaffi_a_OBJECTS = $(am__objects_7) +nodist_libluaffi_a_OBJECTS = $(am__objects_1) libluaffi_a_OBJECTS = $(nodist_libluaffi_a_OBJECTS) libluajitmisc_a_AR = $(AR) $(ARFLAGS) libluajitmisc_a_LIBADD = -am__objects_8 = \ +am__objects_2 = \ luatexdir/luafilesystem/src/libluajitmisc_a-lfs.$(OBJEXT) \ luatexdir/luamd5/libluajitmisc_a-md5.$(OBJEXT) \ luatexdir/luamd5/libluajitmisc_a-md5lib.$(OBJEXT) \ @@ -749,16 +570,19 @@ am__objects_8 = \ luatexdir/luazlib/libluajitmisc_a-lgzip.$(OBJEXT) \ luatexdir/luazlib/libluajitmisc_a-lzlib.$(OBJEXT) \ luatexdir/slnunicode/libluajitmisc_a-slnunico.$(OBJEXT) -nodist_libluajitmisc_a_OBJECTS = $(am__objects_8) +nodist_libluajitmisc_a_OBJECTS = $(am__objects_2) libluajitmisc_a_OBJECTS = $(nodist_libluajitmisc_a_OBJECTS) libluajitpplib_a_AR = $(AR) $(ARFLAGS) libluajitpplib_a_LIBADD = -am__objects_9 = luatexdir/luapplib/libluajitpplib_a-pparray.$(OBJEXT) \ +am__objects_3 = luatexdir/luapplib/libluajitpplib_a-pparray.$(OBJEXT) \ luatexdir/luapplib/libluajitpplib_a-ppcrypt.$(OBJEXT) \ luatexdir/luapplib/libluajitpplib_a-ppdict.$(OBJEXT) \ luatexdir/luapplib/libluajitpplib_a-ppheap.$(OBJEXT) \ luatexdir/luapplib/libluajitpplib_a-ppload.$(OBJEXT) \ luatexdir/luapplib/libluajitpplib_a-ppstream.$(OBJEXT) \ + luatexdir/luapplib/libluajitpplib_a-pptest1.$(OBJEXT) \ + luatexdir/luapplib/libluajitpplib_a-pptest2.$(OBJEXT) \ + luatexdir/luapplib/libluajitpplib_a-pptest3.$(OBJEXT) \ luatexdir/luapplib/libluajitpplib_a-ppxref.$(OBJEXT) \ luatexdir/luapplib/util/libluajitpplib_a-utilbasexx.$(OBJEXT) \ luatexdir/luapplib/util/libluajitpplib_a-utilcrypt.$(OBJEXT) \ @@ -771,11 +595,11 @@ am__objects_9 = luatexdir/luapplib/libluajitpplib_a-pparray.$(OBJEXT) \ luatexdir/luapplib/util/libluajitpplib_a-utilmem.$(OBJEXT) \ luatexdir/luapplib/util/libluajitpplib_a-utilnumber.$(OBJEXT) \ luatexdir/luapplib/util/libluajitpplib_a-utilsha.$(OBJEXT) -nodist_libluajitpplib_a_OBJECTS = $(am__objects_9) +nodist_libluajitpplib_a_OBJECTS = $(am__objects_3) libluajitpplib_a_OBJECTS = $(nodist_libluajitpplib_a_OBJECTS) libluajitsocket_a_AR = $(AR) $(ARFLAGS) libluajitsocket_a_LIBADD = -am__objects_10 = \ +am__objects_4 = \ luatexdir/luasocket/src/libluajitsocket_a-auxiliar.$(OBJEXT) \ luatexdir/luasocket/src/libluajitsocket_a-buffer.$(OBJEXT) \ luatexdir/luasocket/src/libluajitsocket_a-compat.$(OBJEXT) \ @@ -792,14 +616,14 @@ am__objects_10 = \ luatexdir/luasocket/src/libluajitsocket_a-tcp.$(OBJEXT) \ luatexdir/luasocket/src/libluajitsocket_a-timeout.$(OBJEXT) \ luatexdir/luasocket/src/libluajitsocket_a-udp.$(OBJEXT) -nodist_libluajitsocket_a_OBJECTS = $(am__objects_10) +nodist_libluajitsocket_a_OBJECTS = $(am__objects_4) libluajitsocket_a_OBJECTS = $(nodist_libluajitsocket_a_OBJECTS) libluajittex_a_AR = $(AR) $(ARFLAGS) libluajittex_a_LIBADD = dist_libluajittex_a_OBJECTS = \ luatexdir/lua/libluajittex_a-lstrlibext.$(OBJEXT) \ luatexdir/lua/libluajittex_a-texluajitc.$(OBJEXT) -am__objects_11 = luatexdir/luafontloader/src/libluajittex_a-ffdummies.$(OBJEXT) \ +am__objects_5 = luatexdir/luafontloader/src/libluajittex_a-ffdummies.$(OBJEXT) \ luatexdir/luafontloader/src/libluajittex_a-luafflib.$(OBJEXT) \ luatexdir/dvi/libluajittex_a-dvigen.$(OBJEXT) \ luatexdir/font/libluajittex_a-dofont.$(OBJEXT) \ @@ -915,12 +739,13 @@ am__objects_11 = luatexdir/luafontloader/src/libluajittex_a-ffdummies.$(OBJEXT) luatexdir/utils/libluajittex_a-unistring.$(OBJEXT) \ luatexdir/utils/libluajittex_a-utils.$(OBJEXT) \ synctexdir/libluajittex_a-synctex.$(OBJEXT) -nodist_libluajittex_a_OBJECTS = $(am__objects_11) $(am__objects_6) +am__objects_6 = +nodist_libluajittex_a_OBJECTS = $(am__objects_5) $(am__objects_6) libluajittex_a_OBJECTS = $(dist_libluajittex_a_OBJECTS) \ $(nodist_libluajittex_a_OBJECTS) libluamisc_a_AR = $(AR) $(ARFLAGS) libluamisc_a_LIBADD = -am__objects_12 = \ +am__objects_7 = \ luatexdir/luafilesystem/src/libluamisc_a-lfs.$(OBJEXT) \ luatexdir/luamd5/libluamisc_a-md5.$(OBJEXT) \ luatexdir/luamd5/libluamisc_a-md5lib.$(OBJEXT) \ @@ -929,16 +754,19 @@ am__objects_12 = \ luatexdir/luazlib/libluamisc_a-lgzip.$(OBJEXT) \ luatexdir/luazlib/libluamisc_a-lzlib.$(OBJEXT) \ luatexdir/slnunicode/libluamisc_a-slnunico.$(OBJEXT) -nodist_libluamisc_a_OBJECTS = $(am__objects_12) +nodist_libluamisc_a_OBJECTS = $(am__objects_7) libluamisc_a_OBJECTS = $(nodist_libluamisc_a_OBJECTS) libluapplib_a_AR = $(AR) $(ARFLAGS) libluapplib_a_LIBADD = -am__objects_13 = luatexdir/luapplib/libluapplib_a-pparray.$(OBJEXT) \ +am__objects_8 = luatexdir/luapplib/libluapplib_a-pparray.$(OBJEXT) \ luatexdir/luapplib/libluapplib_a-ppcrypt.$(OBJEXT) \ luatexdir/luapplib/libluapplib_a-ppdict.$(OBJEXT) \ luatexdir/luapplib/libluapplib_a-ppheap.$(OBJEXT) \ luatexdir/luapplib/libluapplib_a-ppload.$(OBJEXT) \ luatexdir/luapplib/libluapplib_a-ppstream.$(OBJEXT) \ + luatexdir/luapplib/libluapplib_a-pptest1.$(OBJEXT) \ + luatexdir/luapplib/libluapplib_a-pptest2.$(OBJEXT) \ + luatexdir/luapplib/libluapplib_a-pptest3.$(OBJEXT) \ luatexdir/luapplib/libluapplib_a-ppxref.$(OBJEXT) \ luatexdir/luapplib/util/libluapplib_a-utilbasexx.$(OBJEXT) \ luatexdir/luapplib/util/libluapplib_a-utilcrypt.$(OBJEXT) \ @@ -951,11 +779,11 @@ am__objects_13 = luatexdir/luapplib/libluapplib_a-pparray.$(OBJEXT) \ luatexdir/luapplib/util/libluapplib_a-utilmem.$(OBJEXT) \ luatexdir/luapplib/util/libluapplib_a-utilnumber.$(OBJEXT) \ luatexdir/luapplib/util/libluapplib_a-utilsha.$(OBJEXT) -nodist_libluapplib_a_OBJECTS = $(am__objects_13) +nodist_libluapplib_a_OBJECTS = $(am__objects_8) libluapplib_a_OBJECTS = $(nodist_libluapplib_a_OBJECTS) libluasocket_a_AR = $(AR) $(ARFLAGS) libluasocket_a_LIBADD = -am__objects_14 = \ +am__objects_9 = \ luatexdir/luasocket/src/libluasocket_a-auxiliar.$(OBJEXT) \ luatexdir/luasocket/src/libluasocket_a-buffer.$(OBJEXT) \ luatexdir/luasocket/src/libluasocket_a-compat.$(OBJEXT) \ @@ -972,7 +800,7 @@ am__objects_14 = \ luatexdir/luasocket/src/libluasocket_a-tcp.$(OBJEXT) \ luatexdir/luasocket/src/libluasocket_a-timeout.$(OBJEXT) \ luatexdir/luasocket/src/libluasocket_a-udp.$(OBJEXT) -nodist_libluasocket_a_OBJECTS = $(am__objects_14) +nodist_libluasocket_a_OBJECTS = $(am__objects_9) libluasocket_a_OBJECTS = $(nodist_libluasocket_a_OBJECTS) libluatex_a_AR = $(AR) $(ARFLAGS) libluatex_a_LIBADD = @@ -980,7 +808,7 @@ dist_libluatex_a_OBJECTS = \ luatexdir/lua/libluatex_a-lstrlibext.$(OBJEXT) \ luatexdir/lua/libluatex_a-helpers.$(OBJEXT) \ luatexdir/lua/libluatex_a-texluac.$(OBJEXT) -am__objects_15 = \ +am__objects_10 = \ luatexdir/luafontloader/src/libluatex_a-ffdummies.$(OBJEXT) \ luatexdir/luafontloader/src/libluatex_a-luafflib.$(OBJEXT) \ luatexdir/dvi/libluatex_a-dvigen.$(OBJEXT) \ @@ -1097,7 +925,7 @@ am__objects_15 = \ luatexdir/utils/libluatex_a-unistring.$(OBJEXT) \ luatexdir/utils/libluatex_a-utils.$(OBJEXT) \ synctexdir/libluatex_a-synctex.$(OBJEXT) -nodist_libluatex_a_OBJECTS = $(am__objects_15) $(am__objects_6) +nodist_libluatex_a_OBJECTS = $(am__objects_10) $(am__objects_6) libluatex_a_OBJECTS = $(dist_libluatex_a_OBJECTS) \ $(nodist_libluatex_a_OBJECTS) libmd5_a_AR = $(AR) $(ARFLAGS) @@ -1106,16 +934,16 @@ am_libmd5_a_OBJECTS = libmd5/a-md5.$(OBJEXT) libmd5_a_OBJECTS = $(am_libmd5_a_OBJECTS) libmf_a_AR = $(AR) $(ARFLAGS) libmf_a_LIBADD = -am__objects_16 = mfini.$(OBJEXT) mf0.$(OBJEXT) -nodist_libmf_a_OBJECTS = $(am__objects_16) mf-pool.$(OBJEXT) +am__objects_11 = mfini.$(OBJEXT) mf0.$(OBJEXT) +nodist_libmf_a_OBJECTS = $(am__objects_11) mf-pool.$(OBJEXT) libmf_a_OBJECTS = $(nodist_libmf_a_OBJECTS) libmflua_a_AR = $(AR) $(ARFLAGS) libmflua_a_LIBADD = dist_libmflua_a_OBJECTS = luatexdir/lua/libmflua_a-lkpselib.$(OBJEXT) \ mfluadir/libmflua_a-mfluac.$(OBJEXT) -am__objects_17 = libmflua_a-mfluaini.$(OBJEXT) \ +am__objects_12 = libmflua_a-mfluaini.$(OBJEXT) \ libmflua_a-mflua0.$(OBJEXT) -nodist_libmflua_a_OBJECTS = $(am__objects_17) \ +nodist_libmflua_a_OBJECTS = $(am__objects_12) \ libmflua_a-mflua-pool.$(OBJEXT) libmflua_a_OBJECTS = $(dist_libmflua_a_OBJECTS) \ $(nodist_libmflua_a_OBJECTS) @@ -1124,35 +952,35 @@ libmfluajit_a_LIBADD = dist_libmfluajit_a_OBJECTS = \ luatexdir/lua/libmfluajit_a-lkpselib.$(OBJEXT) \ mfluadir/libmfluajit_a-mfluac.$(OBJEXT) -am__objects_18 = libmfluajit_a-mfluajitini.$(OBJEXT) \ +am__objects_13 = libmfluajit_a-mfluajitini.$(OBJEXT) \ libmfluajit_a-mfluajit0.$(OBJEXT) -nodist_libmfluajit_a_OBJECTS = $(am__objects_18) \ +nodist_libmfluajit_a_OBJECTS = $(am__objects_13) \ libmfluajit_a-mfluajit-pool.$(OBJEXT) libmfluajit_a_OBJECTS = $(dist_libmfluajit_a_OBJECTS) \ $(nodist_libmfluajit_a_OBJECTS) libmplibbackends_a_AR = $(AR) $(ARFLAGS) libmplibbackends_a_LIBADD = -am__objects_19 = libmplibbackends_a-pngout.$(OBJEXT) -am__objects_20 = libmplibbackends_a-svgout.$(OBJEXT) -nodist_libmplibbackends_a_OBJECTS = $(am__objects_19) \ - $(am__objects_20) +am__objects_14 = libmplibbackends_a-pngout.$(OBJEXT) +am__objects_15 = libmplibbackends_a-svgout.$(OBJEXT) +nodist_libmplibbackends_a_OBJECTS = $(am__objects_14) \ + $(am__objects_15) libmplibbackends_a_OBJECTS = $(nodist_libmplibbackends_a_OBJECTS) libmplibcore_a_AR = $(AR) $(ARFLAGS) libmplibcore_a_LIBADD = -am__objects_21 = libmplibcore_a-mp.$(OBJEXT) -am__objects_22 = libmplibcore_a-mpmath.$(OBJEXT) -am__objects_23 = libmplibcore_a-mpmathdecimal.$(OBJEXT) -am__objects_24 = libmplibcore_a-mpmathdouble.$(OBJEXT) -am__objects_25 = libmplibcore_a-mpstrings.$(OBJEXT) -am__objects_26 = libmplibcore_a-psout.$(OBJEXT) +am__objects_16 = libmplibcore_a-mp.$(OBJEXT) +am__objects_17 = libmplibcore_a-mpmath.$(OBJEXT) +am__objects_18 = libmplibcore_a-mpmathdecimal.$(OBJEXT) +am__objects_19 = libmplibcore_a-mpmathdouble.$(OBJEXT) +am__objects_20 = libmplibcore_a-mpstrings.$(OBJEXT) +am__objects_21 = libmplibcore_a-psout.$(OBJEXT) nodist_libmplibcore_a_OBJECTS = libmplibcore_a-tfmin.$(OBJEXT) \ - $(am__objects_21) $(am__objects_22) $(am__objects_23) \ - $(am__objects_24) $(am__objects_25) $(am__objects_26) + $(am__objects_16) $(am__objects_17) $(am__objects_18) \ + $(am__objects_19) $(am__objects_20) $(am__objects_21) libmplibcore_a_OBJECTS = $(nodist_libmplibcore_a_OBJECTS) libmplibextramath_a_AR = $(AR) $(ARFLAGS) libmplibextramath_a_LIBADD = -am__objects_27 = libmplibextramath_a-mpmathbinary.$(OBJEXT) -nodist_libmplibextramath_a_OBJECTS = $(am__objects_27) +am__objects_22 = libmplibextramath_a-mpmathbinary.$(OBJEXT) +nodist_libmplibextramath_a_OBJECTS = $(am__objects_22) libmplibextramath_a_OBJECTS = $(nodist_libmplibextramath_a_OBJECTS) libmputil_a_AR = $(AR) $(ARFLAGS) libmputil_a_LIBADD = @@ -1174,7 +1002,7 @@ am__libpdftex_a_SOURCES_DIST = pdftexdir/avl.c pdftexdir/avl.h \ pdftexdir/writepng.c pdftexdir/writet1.c pdftexdir/writet3.c \ pdftexdir/writettf.c pdftexdir/writettf.h pdftexdir/writezip.c \ pdftexdir/regex/regex.c pdftexdir/regex/regex.h -@MINGW32_TRUE@am__objects_28 = \ +@MINGW32_TRUE@am__objects_23 = \ @MINGW32_TRUE@ pdftexdir/regex/libpdftex_a-regex.$(OBJEXT) am_libpdftex_a_OBJECTS = pdftexdir/libpdftex_a-avl.$(OBJEXT) \ pdftexdir/libpdftex_a-avlstuff.$(OBJEXT) \ @@ -1195,13 +1023,13 @@ am_libpdftex_a_OBJECTS = pdftexdir/libpdftex_a-avl.$(OBJEXT) \ pdftexdir/libpdftex_a-writet1.$(OBJEXT) \ pdftexdir/libpdftex_a-writet3.$(OBJEXT) \ pdftexdir/libpdftex_a-writettf.$(OBJEXT) \ - pdftexdir/libpdftex_a-writezip.$(OBJEXT) $(am__objects_28) + pdftexdir/libpdftex_a-writezip.$(OBJEXT) $(am__objects_23) libpdftex_a_OBJECTS = $(am_libpdftex_a_OBJECTS) libsynctex_a_AR = $(AR) $(ARFLAGS) libsynctex_a_LIBADD = -am__objects_29 = synctexdir/libsynctex_a-synctex_parser.$(OBJEXT) \ +am__objects_24 = synctexdir/libsynctex_a-synctex_parser.$(OBJEXT) \ synctexdir/libsynctex_a-synctex_parser_utils.$(OBJEXT) -nodist_libsynctex_a_OBJECTS = $(am__objects_29) +nodist_libsynctex_a_OBJECTS = $(am__objects_24) libsynctex_a_OBJECTS = $(nodist_libsynctex_a_OBJECTS) libukanji_a_AR = $(AR) $(ARFLAGS) libukanji_a_LIBADD = @@ -1241,10 +1069,10 @@ am__libxetex_a_SOURCES_DIST = xetexdir/XeTeXFontInst.cpp \ xetexdir/XeTeXFontInst_Mac.h xetexdir/XeTeXFontMgr_Mac.mm \ xetexdir/XeTeXFontMgr_Mac.h xetexdir/XeTeX_mac.c \ xetexdir/XeTeXFontMgr_FC.cpp xetexdir/XeTeXFontMgr_FC.h -@XETEX_MACOSX_TRUE@am__objects_30 = xetexdir/libxetex_a-XeTeXFontInst_Mac.$(OBJEXT) \ +@XETEX_MACOSX_TRUE@am__objects_25 = xetexdir/libxetex_a-XeTeXFontInst_Mac.$(OBJEXT) \ @XETEX_MACOSX_TRUE@ xetexdir/libxetex_a-XeTeXFontMgr_Mac.$(OBJEXT) \ @XETEX_MACOSX_TRUE@ xetexdir/libxetex_a-XeTeX_mac.$(OBJEXT) -@XETEX_MACOSX_FALSE@am__objects_31 = xetexdir/libxetex_a-XeTeXFontMgr_FC.$(OBJEXT) +@XETEX_MACOSX_FALSE@am__objects_26 = xetexdir/libxetex_a-XeTeXFontMgr_FC.$(OBJEXT) am_libxetex_a_OBJECTS = xetexdir/libxetex_a-XeTeXFontInst.$(OBJEXT) \ xetexdir/libxetex_a-XeTeXFontMgr.$(OBJEXT) \ xetexdir/libxetex_a-XeTeXLayoutInterface.$(OBJEXT) \ @@ -1258,8 +1086,8 @@ am_libxetex_a_OBJECTS = xetexdir/libxetex_a-XeTeXFontInst.$(OBJEXT) \ xetexdir/image/libxetex_a-jpegimage.$(OBJEXT) \ xetexdir/image/libxetex_a-mfileio.$(OBJEXT) \ xetexdir/image/libxetex_a-numbers.$(OBJEXT) \ - xetexdir/image/libxetex_a-pngimage.$(OBJEXT) $(am__objects_30) \ - $(am__objects_31) + xetexdir/image/libxetex_a-pngimage.$(OBJEXT) $(am__objects_25) \ + $(am__objects_26) libxetex_a_OBJECTS = $(am_libxetex_a_OBJECTS) am__DEPENDENCIES_1 = libsynctex_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ @@ -1277,8 +1105,8 @@ libsynctex_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ dist_aleph_OBJECTS = alephdir/aleph-aleph.$(OBJEXT) \ alephdir/aleph-alephbis.$(OBJEXT) \ alephdir/aleph-alephextra.$(OBJEXT) -am__objects_32 = aleph-alephini.$(OBJEXT) aleph-aleph0.$(OBJEXT) -nodist_aleph_OBJECTS = $(am__objects_32) aleph-aleph-pool.$(OBJEXT) +am__objects_27 = aleph-alephini.$(OBJEXT) aleph-aleph0.$(OBJEXT) +nodist_aleph_OBJECTS = $(am__objects_27) aleph-aleph-pool.$(OBJEXT) aleph_OBJECTS = $(dist_aleph_OBJECTS) $(nodist_aleph_OBJECTS) am__DEPENDENCIES_2 = $(proglib) $(am__DEPENDENCIES_1) aleph_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) @@ -1292,9 +1120,6 @@ call_luajittex_DEPENDENCIES = nodist_call_luatex_OBJECTS = call_luatex-callexe.$(OBJEXT) call_luatex_OBJECTS = $(nodist_call_luatex_OBJECTS) call_luatex_DEPENDENCIES = -nodist_call_luatex53_OBJECTS = call_luatex53-callexe.$(OBJEXT) -call_luatex53_OBJECTS = $(nodist_call_luatex53_OBJECTS) -call_luatex53_DEPENDENCIES = nodist_call_mf_OBJECTS = call_mf-callexe.$(OBJEXT) call_mf_OBJECTS = $(nodist_call_mf_OBJECTS) call_mf_DEPENDENCIES = @@ -1340,22 +1165,22 @@ am__dist_eptex_SOURCES_DIST = eptexdir/eptexextra.c \ eptexdir/eptexextra.h eptexdir/eptex_version.h \ synctexdir/synctex.c synctexdir/synctex.h \ synctexdir/synctex-common.h synctexdir/synctex-eptex.h -@EPTEX_SYNCTEX_TRUE@am__objects_33 = \ +@EPTEX_SYNCTEX_TRUE@am__objects_28 = \ @EPTEX_SYNCTEX_TRUE@ synctexdir/eptex-synctex.$(OBJEXT) dist_eptex_OBJECTS = eptexdir/eptex-eptexextra.$(OBJEXT) \ - $(am__objects_33) -am__objects_34 = eptex-eptexini.$(OBJEXT) eptex-eptex0.$(OBJEXT) -nodist_eptex_OBJECTS = $(am__objects_34) eptex-eptex-pool.$(OBJEXT) + $(am__objects_28) +am__objects_29 = eptex-eptexini.$(OBJEXT) eptex-eptex0.$(OBJEXT) +nodist_eptex_OBJECTS = $(am__objects_29) eptex-eptex-pool.$(OBJEXT) eptex_OBJECTS = $(dist_eptex_OBJECTS) $(nodist_eptex_OBJECTS) @EPTEX_SYNCTEX_TRUE@am__DEPENDENCIES_3 = $(am__DEPENDENCIES_1) am__dist_etex_SOURCES_DIST = etexdir/etexextra.c etexdir/etexextra.h \ etexdir/etex_version.h synctexdir/synctex.c \ synctexdir/synctex.h synctexdir/synctex-common.h \ synctexdir/synctex-etex.h -@ETEX_SYNCTEX_TRUE@am__objects_35 = synctexdir/etex-synctex.$(OBJEXT) -dist_etex_OBJECTS = etexdir/etex-etexextra.$(OBJEXT) $(am__objects_35) -am__objects_36 = etex-etexini.$(OBJEXT) etex-etex0.$(OBJEXT) -nodist_etex_OBJECTS = $(am__objects_36) etex-etex-pool.$(OBJEXT) +@ETEX_SYNCTEX_TRUE@am__objects_30 = synctexdir/etex-synctex.$(OBJEXT) +dist_etex_OBJECTS = etexdir/etex-etexextra.$(OBJEXT) $(am__objects_30) +am__objects_31 = etex-etexini.$(OBJEXT) etex-etex0.$(OBJEXT) +nodist_etex_OBJECTS = $(am__objects_31) etex-etex-pool.$(OBJEXT) etex_OBJECTS = $(dist_etex_OBJECTS) $(nodist_etex_OBJECTS) @ETEX_SYNCTEX_TRUE@am__DEPENDENCIES_4 = $(am__DEPENDENCIES_1) etex_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \ @@ -1364,12 +1189,12 @@ am__dist_euptex_SOURCES_DIST = euptexdir/euptexextra.c \ euptexdir/euptexextra.h synctexdir/synctex.c \ synctexdir/synctex.h synctexdir/synctex-common.h \ synctexdir/synctex-euptex.h -@EUPTEX_SYNCTEX_TRUE@am__objects_37 = \ +@EUPTEX_SYNCTEX_TRUE@am__objects_32 = \ @EUPTEX_SYNCTEX_TRUE@ synctexdir/euptex-synctex.$(OBJEXT) dist_euptex_OBJECTS = euptexdir/euptex-euptexextra.$(OBJEXT) \ - $(am__objects_37) -am__objects_38 = euptex-euptexini.$(OBJEXT) euptex-euptex0.$(OBJEXT) -nodist_euptex_OBJECTS = $(am__objects_38) euptex-euptex-pool.$(OBJEXT) + $(am__objects_32) +am__objects_33 = euptex-euptexini.$(OBJEXT) euptex-euptex0.$(OBJEXT) +nodist_euptex_OBJECTS = $(am__objects_33) euptex-euptex-pool.$(OBJEXT) euptex_OBJECTS = $(dist_euptex_OBJECTS) $(nodist_euptex_OBJECTS) @EUPTEX_SYNCTEX_TRUE@am__DEPENDENCIES_5 = $(am__DEPENDENCIES_1) am_gftodvi_OBJECTS = @@ -1388,9 +1213,9 @@ gftype_DEPENDENCIES = $(proglib) $(am__DEPENDENCIES_1) nodist_initex_OBJECTS = initex-callexe.$(OBJEXT) initex_OBJECTS = $(nodist_initex_OBJECTS) initex_DEPENDENCIES = -am__objects_39 = luatexdir/luajittex-luatex.$(OBJEXT) \ +am__objects_34 = luatexdir/luajittex-luatex.$(OBJEXT) \ mplibdir/luajittex-lmplib.$(OBJEXT) -nodist_luajittex_OBJECTS = $(am__objects_39) +nodist_luajittex_OBJECTS = $(am__objects_34) luajittex_OBJECTS = $(nodist_luajittex_OBJECTS) am__DEPENDENCIES_6 = libmplibcore.a $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ @@ -1399,21 +1224,14 @@ am__DEPENDENCIES_6 = libmplibcore.a $(am__DEPENDENCIES_1) \ luajittex_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(luajittex_LDFLAGS) $(LDFLAGS) -o $@ -am__objects_40 = luatexdir/luatex-luatex.$(OBJEXT) \ +am__objects_35 = luatexdir/luatex-luatex.$(OBJEXT) \ mplibdir/luatex-lmplib.$(OBJEXT) -nodist_luatex_OBJECTS = $(am__objects_40) +nodist_luatex_OBJECTS = $(am__objects_35) luatex_OBJECTS = $(nodist_luatex_OBJECTS) am__DEPENDENCIES_7 = $(am__DEPENDENCIES_1) luatex_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(luatex_LDFLAGS) $(LDFLAGS) -o $@ -am__objects_41 = luatexdir/luatex53-luatex.$(OBJEXT) \ - mplibdir/luatex53-lmplib.$(OBJEXT) -nodist_luatex53_OBJECTS = $(am__objects_41) -luatex53_OBJECTS = $(nodist_luatex53_OBJECTS) -luatex53_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(luatex53_LDFLAGS) $(LDFLAGS) -o $@ am_md5main_OBJECTS = libmd5/md5main-md5main.$(OBJEXT) md5main_OBJECTS = $(am_md5main_OBJECTS) md5main_DEPENDENCIES = libmd5.a @@ -1435,8 +1253,8 @@ mflua_DEPENDENCIES = libmflua.a $(am__DEPENDENCIES_2) $(windowlib) \ mflua_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(mflua_LDFLAGS) $(LDFLAGS) -o $@ -am__objects_42 = mfluadir/mflua_nowin-mfluaextra.$(OBJEXT) -nodist_mflua_nowin_OBJECTS = $(am__objects_42) +am__objects_36 = mfluadir/mflua_nowin-mfluaextra.$(OBJEXT) +nodist_mflua_nowin_OBJECTS = $(am__objects_36) mflua_nowin_OBJECTS = $(nodist_mflua_nowin_OBJECTS) mflua_nowin_DEPENDENCIES = libmflua.a $(am__DEPENDENCIES_2) \ $(windowlib) $(am__DEPENDENCIES_7) @@ -1450,8 +1268,8 @@ mfluajit_DEPENDENCIES = libmfluajit.a $(am__DEPENDENCIES_2) \ mfluajit_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(mfluajit_LDFLAGS) $(LDFLAGS) -o $@ -am__objects_43 = mfluajitdir/mfluajit_nowin-mfluajitextra.$(OBJEXT) -nodist_mfluajit_nowin_OBJECTS = $(am__objects_43) +am__objects_37 = mfluajitdir/mfluajit_nowin-mfluajitextra.$(OBJEXT) +nodist_mfluajit_nowin_OBJECTS = $(am__objects_37) mfluajit_nowin_OBJECTS = $(nodist_mfluajit_nowin_OBJECTS) mfluajit_nowin_DEPENDENCIES = libmfluajit.a $(am__DEPENDENCIES_2) \ $(windowlib) $(am__DEPENDENCIES_1) @@ -1463,8 +1281,8 @@ nodist_mft_OBJECTS = mft.$(OBJEXT) mft_OBJECTS = $(nodist_mft_OBJECTS) mft_LDADD = $(LDADD) mft_DEPENDENCIES = $(proglib) $(am__DEPENDENCIES_1) -am__objects_44 = mpost-mpxout.$(OBJEXT) -nodist_mpost_OBJECTS = mpost-mpost.$(OBJEXT) $(am__objects_44) +am__objects_38 = mpost-mpxout.$(OBJEXT) +nodist_mpost_OBJECTS = mpost-mpost.$(OBJEXT) $(am__objects_38) mpost_OBJECTS = $(nodist_mpost_OBJECTS) mpost_DEPENDENCIES = libmplibcore.a libmplibextramath.a \ libmplibbackends.a $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ @@ -1497,12 +1315,12 @@ am__dist_pdftex_SOURCES_DIST = pdftexdir/pdftexextra.c \ pdftexdir/etex_version.h synctexdir/synctex.c \ synctexdir/synctex.h synctexdir/synctex-common.h \ synctexdir/synctex-pdftex.h -@PDFTEX_SYNCTEX_TRUE@am__objects_45 = \ +@PDFTEX_SYNCTEX_TRUE@am__objects_39 = \ @PDFTEX_SYNCTEX_TRUE@ synctexdir/pdftex-synctex.$(OBJEXT) dist_pdftex_OBJECTS = pdftexdir/pdftex-pdftexextra.$(OBJEXT) \ - $(am__objects_45) -am__objects_46 = pdftex-pdftexini.$(OBJEXT) pdftex-pdftex0.$(OBJEXT) -nodist_pdftex_OBJECTS = $(am__objects_46) pdftex-pdftex-pool.$(OBJEXT) + $(am__objects_39) +am__objects_40 = pdftex-pdftexini.$(OBJEXT) pdftex-pdftex0.$(OBJEXT) +nodist_pdftex_OBJECTS = $(am__objects_40) pdftex-pdftex-pool.$(OBJEXT) pdftex_OBJECTS = $(dist_pdftex_OBJECTS) $(nodist_pdftex_OBJECTS) am__DEPENDENCIES_10 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) libmd5.a @@ -1529,20 +1347,20 @@ nodist_pltotf_OBJECTS = pltotf.$(OBJEXT) pltotf_OBJECTS = $(nodist_pltotf_OBJECTS) pltotf_LDADD = $(LDADD) pltotf_DEPENDENCIES = $(proglib) $(am__DEPENDENCIES_1) -am__objects_47 = pmpost-pmp.$(OBJEXT) -am__objects_48 = pmpost-pmpmath.$(OBJEXT) -am__objects_49 = pmpost-pmpmathbinary.$(OBJEXT) -am__objects_50 = pmpost-pmpmathdecimal.$(OBJEXT) -am__objects_51 = pmpost-pmpmathdouble.$(OBJEXT) -am__objects_52 = pmpost-pmpstrings.$(OBJEXT) -am__objects_53 = pmpost-pmpxout.$(OBJEXT) -am__objects_54 = pmpost-ppngout.$(OBJEXT) -am__objects_55 = pmpost-ppsout.$(OBJEXT) -am__objects_56 = pmpost-psvgout.$(OBJEXT) -nodist_pmpost_OBJECTS = $(am__objects_47) $(am__objects_48) \ - $(am__objects_49) $(am__objects_50) $(am__objects_51) \ - pmpost-pmpost.$(OBJEXT) $(am__objects_52) $(am__objects_53) \ - $(am__objects_54) $(am__objects_55) $(am__objects_56) \ +am__objects_41 = pmpost-pmp.$(OBJEXT) +am__objects_42 = pmpost-pmpmath.$(OBJEXT) +am__objects_43 = pmpost-pmpmathbinary.$(OBJEXT) +am__objects_44 = pmpost-pmpmathdecimal.$(OBJEXT) +am__objects_45 = pmpost-pmpmathdouble.$(OBJEXT) +am__objects_46 = pmpost-pmpstrings.$(OBJEXT) +am__objects_47 = pmpost-pmpxout.$(OBJEXT) +am__objects_48 = pmpost-ppngout.$(OBJEXT) +am__objects_49 = pmpost-ppsout.$(OBJEXT) +am__objects_50 = pmpost-psvgout.$(OBJEXT) +nodist_pmpost_OBJECTS = $(am__objects_41) $(am__objects_42) \ + $(am__objects_43) $(am__objects_44) $(am__objects_45) \ + pmpost-pmpost.$(OBJEXT) $(am__objects_46) $(am__objects_47) \ + $(am__objects_48) $(am__objects_49) $(am__objects_50) \ pmpost-ptfmin.$(OBJEXT) pmpost_OBJECTS = $(nodist_pmpost_OBJECTS) pmpost_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ @@ -1560,10 +1378,10 @@ am__dist_ptex_SOURCES_DIST = ptexdir/ptexextra.c ptexdir/ptexextra.h \ ptexdir/ptex_version.h synctexdir/synctex.c \ synctexdir/synctex.h synctexdir/synctex-common.h \ synctexdir/synctex-ptex.h -@PTEX_SYNCTEX_TRUE@am__objects_57 = synctexdir/ptex-synctex.$(OBJEXT) -dist_ptex_OBJECTS = ptexdir/ptex-ptexextra.$(OBJEXT) $(am__objects_57) -am__objects_58 = ptex-ptexini.$(OBJEXT) ptex-ptex0.$(OBJEXT) -nodist_ptex_OBJECTS = $(am__objects_58) ptex-ptex-pool.$(OBJEXT) +@PTEX_SYNCTEX_TRUE@am__objects_51 = synctexdir/ptex-synctex.$(OBJEXT) +dist_ptex_OBJECTS = ptexdir/ptex-ptexextra.$(OBJEXT) $(am__objects_51) +am__objects_52 = ptex-ptexini.$(OBJEXT) ptex-ptex0.$(OBJEXT) +nodist_ptex_OBJECTS = $(am__objects_52) ptex-ptex-pool.$(OBJEXT) ptex_OBJECTS = $(dist_ptex_OBJECTS) $(nodist_ptex_OBJECTS) @PTEX_SYNCTEX_TRUE@am__DEPENDENCIES_11 = $(am__DEPENDENCIES_1) am_ptftopl_OBJECTS = @@ -1584,10 +1402,10 @@ tangleboot_LDADD = $(LDADD) am__dist_tex_SOURCES_DIST = texextra.c synctexdir/synctex.c \ synctexdir/synctex.h synctexdir/synctex-common.h \ synctexdir/synctex-tex.h -@TEX_SYNCTEX_TRUE@am__objects_59 = synctexdir/tex-synctex.$(OBJEXT) -dist_tex_OBJECTS = tex-texextra.$(OBJEXT) $(am__objects_59) -am__objects_60 = tex-texini.$(OBJEXT) tex-tex0.$(OBJEXT) -nodist_tex_OBJECTS = $(am__objects_60) tex-tex-pool.$(OBJEXT) +@TEX_SYNCTEX_TRUE@am__objects_53 = synctexdir/tex-synctex.$(OBJEXT) +dist_tex_OBJECTS = tex-texextra.$(OBJEXT) $(am__objects_53) +am__objects_54 = tex-texini.$(OBJEXT) tex-tex0.$(OBJEXT) +nodist_tex_OBJECTS = $(am__objects_54) tex-tex-pool.$(OBJEXT) tex_OBJECTS = $(dist_tex_OBJECTS) $(nodist_tex_OBJECTS) @TEX_SYNCTEX_TRUE@am__DEPENDENCIES_13 = $(am__DEPENDENCIES_1) tex_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \ @@ -1612,21 +1430,21 @@ am_updvitype_OBJECTS = nodist_updvitype_OBJECTS = updvitype-updvitype.$(OBJEXT) updvitype_OBJECTS = $(am_updvitype_OBJECTS) \ $(nodist_updvitype_OBJECTS) -am__objects_61 = upmpost-pmp.$(OBJEXT) -am__objects_62 = upmpost-pmpmath.$(OBJEXT) -am__objects_63 = upmpost-pmpmathbinary.$(OBJEXT) -am__objects_64 = upmpost-pmpmathdecimal.$(OBJEXT) -am__objects_65 = upmpost-pmpmathdouble.$(OBJEXT) -am__objects_66 = upmpost-pmpstrings.$(OBJEXT) -am__objects_67 = upmpost-pmpxout.$(OBJEXT) -am__objects_68 = upmpost-ppngout.$(OBJEXT) -am__objects_69 = upmpost-ppsout.$(OBJEXT) -am__objects_70 = upmpost-psvgout.$(OBJEXT) -am__objects_71 = $(am__objects_61) $(am__objects_62) $(am__objects_63) \ - $(am__objects_64) $(am__objects_65) upmpost-pmpost.$(OBJEXT) \ - $(am__objects_66) $(am__objects_67) $(am__objects_68) \ - $(am__objects_69) $(am__objects_70) upmpost-ptfmin.$(OBJEXT) -nodist_upmpost_OBJECTS = $(am__objects_71) +am__objects_55 = upmpost-pmp.$(OBJEXT) +am__objects_56 = upmpost-pmpmath.$(OBJEXT) +am__objects_57 = upmpost-pmpmathbinary.$(OBJEXT) +am__objects_58 = upmpost-pmpmathdecimal.$(OBJEXT) +am__objects_59 = upmpost-pmpmathdouble.$(OBJEXT) +am__objects_60 = upmpost-pmpstrings.$(OBJEXT) +am__objects_61 = upmpost-pmpxout.$(OBJEXT) +am__objects_62 = upmpost-ppngout.$(OBJEXT) +am__objects_63 = upmpost-ppsout.$(OBJEXT) +am__objects_64 = upmpost-psvgout.$(OBJEXT) +am__objects_65 = $(am__objects_55) $(am__objects_56) $(am__objects_57) \ + $(am__objects_58) $(am__objects_59) upmpost-pmpost.$(OBJEXT) \ + $(am__objects_60) $(am__objects_61) $(am__objects_62) \ + $(am__objects_63) $(am__objects_64) upmpost-ptfmin.$(OBJEXT) +nodist_upmpost_OBJECTS = $(am__objects_65) upmpost_OBJECTS = $(nodist_upmpost_OBJECTS) am__DEPENDENCIES_15 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ @@ -1640,12 +1458,12 @@ am__dist_uptex_SOURCES_DIST = uptexdir/uptexextra.c \ uptexdir/uptexextra.h uptexdir/uptex_version.h \ synctexdir/synctex.c synctexdir/synctex.h \ synctexdir/synctex-common.h synctexdir/synctex-uptex.h -@UPTEX_SYNCTEX_TRUE@am__objects_72 = \ +@UPTEX_SYNCTEX_TRUE@am__objects_66 = \ @UPTEX_SYNCTEX_TRUE@ synctexdir/uptex-synctex.$(OBJEXT) dist_uptex_OBJECTS = uptexdir/uptex-uptexextra.$(OBJEXT) \ - $(am__objects_72) -am__objects_73 = uptex-uptexini.$(OBJEXT) uptex-uptex0.$(OBJEXT) -nodist_uptex_OBJECTS = $(am__objects_73) uptex-uptex-pool.$(OBJEXT) + $(am__objects_66) +am__objects_67 = uptex-uptexini.$(OBJEXT) uptex-uptex0.$(OBJEXT) +nodist_uptex_OBJECTS = $(am__objects_67) uptex-uptex-pool.$(OBJEXT) uptex_OBJECTS = $(dist_uptex_OBJECTS) $(nodist_uptex_OBJECTS) @UPTEX_SYNCTEX_TRUE@am__DEPENDENCIES_16 = $(am__DEPENDENCIES_1) am_uptftopl_OBJECTS = @@ -1684,12 +1502,12 @@ am__dist_xetex_SOURCES_DIST = xetexdir/xetexextra.c \ xetexdir/xetex_version.h synctexdir/synctex.c \ synctexdir/synctex.h synctexdir/synctex-common.h \ synctexdir/synctex-xetex.h -@XETEX_SYNCTEX_TRUE@am__objects_74 = \ +@XETEX_SYNCTEX_TRUE@am__objects_68 = \ @XETEX_SYNCTEX_TRUE@ synctexdir/xetex-synctex.$(OBJEXT) dist_xetex_OBJECTS = xetexdir/xetex-xetexextra.$(OBJEXT) \ - $(am__objects_74) -am__objects_75 = xetex-xetexini.$(OBJEXT) xetex-xetex0.$(OBJEXT) -nodist_xetex_OBJECTS = $(am__objects_75) xetex-xetex-pool.$(OBJEXT) + $(am__objects_68) +am__objects_69 = xetex-xetexini.$(OBJEXT) xetex-xetex0.$(OBJEXT) +nodist_xetex_OBJECTS = $(am__objects_69) xetex-xetex-pool.$(OBJEXT) xetex_OBJECTS = $(dist_xetex_OBJECTS) $(nodist_xetex_OBJECTS) @XETEX_MACOSX_FALSE@am__DEPENDENCIES_17 = $(am__DEPENDENCIES_1) am__DEPENDENCIES_18 = $(libxetex) $(am__DEPENDENCIES_1) \ @@ -1721,7 +1539,6 @@ am__depfiles_remade = ./$(DEPDIR)/aleph-aleph-pool.Po \ ./$(DEPDIR)/aleph-aleph0.Po ./$(DEPDIR)/aleph-alephini.Po \ ./$(DEPDIR)/bibtex.Po ./$(DEPDIR)/call_luajittex-callexe.Po \ ./$(DEPDIR)/call_luatex-callexe.Po \ - ./$(DEPDIR)/call_luatex53-callexe.Po \ ./$(DEPDIR)/call_mf-callexe.Po \ ./$(DEPDIR)/call_mflua-callexe.Po \ ./$(DEPDIR)/call_mfluajit-callexe.Po \ @@ -1808,30 +1625,8 @@ am__depfiles_remade = ./$(DEPDIR)/aleph-aleph-pool.Po \ libmd5/$(DEPDIR)/a-md5.Po libmd5/$(DEPDIR)/md5main-md5main.Po \ luatexdir/$(DEPDIR)/luajittex-luatex.Po \ luatexdir/$(DEPDIR)/luatex-luatex.Po \ - luatexdir/$(DEPDIR)/luatex53-luatex.Po \ - luatexdir/dvi/$(DEPDIR)/liblua53tex_a-dvigen.Po \ luatexdir/dvi/$(DEPDIR)/libluajittex_a-dvigen.Po \ luatexdir/dvi/$(DEPDIR)/libluatex_a-dvigen.Po \ - luatexdir/font/$(DEPDIR)/liblua53tex_a-dofont.Po \ - luatexdir/font/$(DEPDIR)/liblua53tex_a-luafont.Po \ - luatexdir/font/$(DEPDIR)/liblua53tex_a-mapfile.Po \ - luatexdir/font/$(DEPDIR)/liblua53tex_a-pkin.Po \ - luatexdir/font/$(DEPDIR)/liblua53tex_a-sfnt.Po \ - luatexdir/font/$(DEPDIR)/liblua53tex_a-texfont.Po \ - luatexdir/font/$(DEPDIR)/liblua53tex_a-tfmofm.Po \ - luatexdir/font/$(DEPDIR)/liblua53tex_a-tounicode.Po \ - luatexdir/font/$(DEPDIR)/liblua53tex_a-tt_glyf.Po \ - luatexdir/font/$(DEPDIR)/liblua53tex_a-tt_table.Po \ - luatexdir/font/$(DEPDIR)/liblua53tex_a-vfovf.Po \ - luatexdir/font/$(DEPDIR)/liblua53tex_a-vfpacket.Po \ - luatexdir/font/$(DEPDIR)/liblua53tex_a-writecff.Po \ - luatexdir/font/$(DEPDIR)/liblua53tex_a-writeenc.Po \ - luatexdir/font/$(DEPDIR)/liblua53tex_a-writefont.Po \ - luatexdir/font/$(DEPDIR)/liblua53tex_a-writet1.Po \ - luatexdir/font/$(DEPDIR)/liblua53tex_a-writet3.Po \ - luatexdir/font/$(DEPDIR)/liblua53tex_a-writettf.Po \ - luatexdir/font/$(DEPDIR)/liblua53tex_a-writetype0.Po \ - luatexdir/font/$(DEPDIR)/liblua53tex_a-writetype2.Po \ luatexdir/font/$(DEPDIR)/libluajittex_a-dofont.Po \ luatexdir/font/$(DEPDIR)/libluajittex_a-luafont.Po \ luatexdir/font/$(DEPDIR)/libluajittex_a-mapfile.Po \ @@ -1872,12 +1667,6 @@ am__depfiles_remade = ./$(DEPDIR)/aleph-aleph-pool.Po \ luatexdir/font/$(DEPDIR)/libluatex_a-writettf.Po \ luatexdir/font/$(DEPDIR)/libluatex_a-writetype0.Po \ luatexdir/font/$(DEPDIR)/libluatex_a-writetype2.Po \ - luatexdir/image/$(DEPDIR)/liblua53tex_a-pdftoepdf.Po \ - luatexdir/image/$(DEPDIR)/liblua53tex_a-writeimg.Po \ - luatexdir/image/$(DEPDIR)/liblua53tex_a-writejbig2.Po \ - luatexdir/image/$(DEPDIR)/liblua53tex_a-writejp2.Po \ - luatexdir/image/$(DEPDIR)/liblua53tex_a-writejpg.Po \ - luatexdir/image/$(DEPDIR)/liblua53tex_a-writepng.Po \ luatexdir/image/$(DEPDIR)/libluajittex_a-pdftoepdf.Po \ luatexdir/image/$(DEPDIR)/libluajittex_a-writeimg.Po \ luatexdir/image/$(DEPDIR)/libluajittex_a-writejbig2.Po \ @@ -1890,40 +1679,12 @@ am__depfiles_remade = ./$(DEPDIR)/aleph-aleph-pool.Po \ luatexdir/image/$(DEPDIR)/libluatex_a-writejp2.Po \ luatexdir/image/$(DEPDIR)/libluatex_a-writejpg.Po \ luatexdir/image/$(DEPDIR)/libluatex_a-writepng.Po \ - luatexdir/lang/$(DEPDIR)/liblua53tex_a-hnjalloc.Po \ - luatexdir/lang/$(DEPDIR)/liblua53tex_a-hyphen.Po \ - luatexdir/lang/$(DEPDIR)/liblua53tex_a-texlang.Po \ luatexdir/lang/$(DEPDIR)/libluajittex_a-hnjalloc.Po \ luatexdir/lang/$(DEPDIR)/libluajittex_a-hyphen.Po \ luatexdir/lang/$(DEPDIR)/libluajittex_a-texlang.Po \ luatexdir/lang/$(DEPDIR)/libluatex_a-hnjalloc.Po \ luatexdir/lang/$(DEPDIR)/libluatex_a-hyphen.Po \ luatexdir/lang/$(DEPDIR)/libluatex_a-texlang.Po \ - luatexdir/lua/$(DEPDIR)/liblua53tex_a-helpers.Po \ - luatexdir/lua/$(DEPDIR)/liblua53tex_a-lcallbacklib.Po \ - luatexdir/lua/$(DEPDIR)/liblua53tex_a-lfontlib.Po \ - luatexdir/lua/$(DEPDIR)/liblua53tex_a-limglib.Po \ - luatexdir/lua/$(DEPDIR)/liblua53tex_a-liolibext.Po \ - luatexdir/lua/$(DEPDIR)/liblua53tex_a-lkpselib.Po \ - luatexdir/lua/$(DEPDIR)/liblua53tex_a-llanglib.Po \ - luatexdir/lua/$(DEPDIR)/liblua53tex_a-llualib.Po \ - luatexdir/lua/$(DEPDIR)/liblua53tex_a-lnewtokenlib.Po \ - luatexdir/lua/$(DEPDIR)/liblua53tex_a-lnodelib.Po \ - luatexdir/lua/$(DEPDIR)/liblua53tex_a-loslibext.Po \ - luatexdir/lua/$(DEPDIR)/liblua53tex_a-lpdfelib.Po \ - luatexdir/lua/$(DEPDIR)/liblua53tex_a-lpdflib.Po \ - luatexdir/lua/$(DEPDIR)/liblua53tex_a-lpdfscannerlib.Po \ - luatexdir/lua/$(DEPDIR)/liblua53tex_a-lstatslib.Po \ - luatexdir/lua/$(DEPDIR)/liblua53tex_a-lstrlibext.Po \ - luatexdir/lua/$(DEPDIR)/liblua53tex_a-ltexiolib.Po \ - luatexdir/lua/$(DEPDIR)/liblua53tex_a-ltexlib.Po \ - luatexdir/lua/$(DEPDIR)/liblua53tex_a-luainit.Po \ - luatexdir/lua/$(DEPDIR)/liblua53tex_a-luanode.Po \ - luatexdir/lua/$(DEPDIR)/liblua53tex_a-luastuff.Po \ - luatexdir/lua/$(DEPDIR)/liblua53tex_a-luatex-core.Po \ - luatexdir/lua/$(DEPDIR)/liblua53tex_a-luatoken.Po \ - luatexdir/lua/$(DEPDIR)/liblua53tex_a-mplibstuff.Po \ - luatexdir/lua/$(DEPDIR)/liblua53tex_a-texluac.Po \ luatexdir/lua/$(DEPDIR)/libluajittex_a-helpers.Po \ luatexdir/lua/$(DEPDIR)/libluajittex_a-lcallbacklib.Po \ luatexdir/lua/$(DEPDIR)/libluajittex_a-lfontlib.Po \ @@ -1976,15 +1737,10 @@ am__depfiles_remade = ./$(DEPDIR)/aleph-aleph-pool.Po \ luatexdir/lua/$(DEPDIR)/libluatex_a-texluac.Po \ luatexdir/lua/$(DEPDIR)/libmflua_a-lkpselib.Po \ luatexdir/lua/$(DEPDIR)/libmfluajit_a-lkpselib.Po \ - luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-call.Po \ - luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-ctype.Po \ - luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-ffi.Po \ - luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-parser.Po \ luatexdir/luaffi/$(DEPDIR)/libluaffi_a-call.Po \ luatexdir/luaffi/$(DEPDIR)/libluaffi_a-ctype.Po \ luatexdir/luaffi/$(DEPDIR)/libluaffi_a-ffi.Po \ luatexdir/luaffi/$(DEPDIR)/libluaffi_a-parser.Po \ - luatexdir/luafilesystem/src/$(DEPDIR)/liblua53misc_a-lfs.Po \ luatexdir/luafilesystem/src/$(DEPDIR)/libluajitmisc_a-lfs.Po \ luatexdir/luafilesystem/src/$(DEPDIR)/libluamisc_a-lfs.Po \ luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-autohint.Po \ @@ -2029,34 +1785,25 @@ am__depfiles_remade = ./$(DEPDIR)/aleph-aleph-pool.Po \ luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-tottfgpos.Po \ luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-ttfspecial.Po \ luatexdir/luafontloader/fontforge/gutils/$(DEPDIR)/libff_a-fsys.Po \ - luatexdir/luafontloader/src/$(DEPDIR)/liblua53tex_a-ffdummies.Po \ - luatexdir/luafontloader/src/$(DEPDIR)/liblua53tex_a-luafflib.Po \ luatexdir/luafontloader/src/$(DEPDIR)/libluajittex_a-ffdummies.Po \ luatexdir/luafontloader/src/$(DEPDIR)/libluajittex_a-luafflib.Po \ luatexdir/luafontloader/src/$(DEPDIR)/libluatex_a-ffdummies.Po \ luatexdir/luafontloader/src/$(DEPDIR)/libluatex_a-luafflib.Po \ - luatexdir/luamd5/$(DEPDIR)/liblua53misc_a-md5.Po \ - luatexdir/luamd5/$(DEPDIR)/liblua53misc_a-md5lib.Po \ luatexdir/luamd5/$(DEPDIR)/libluajitmisc_a-md5.Po \ luatexdir/luamd5/$(DEPDIR)/libluajitmisc_a-md5lib.Po \ luatexdir/luamd5/$(DEPDIR)/libluamisc_a-md5.Po \ luatexdir/luamd5/$(DEPDIR)/libluamisc_a-md5lib.Po \ - luatexdir/luapeg/$(DEPDIR)/liblua53misc_a-lpeg.Po \ luatexdir/luapeg/$(DEPDIR)/libluajitmisc_a-lpeg.Po \ luatexdir/luapeg/$(DEPDIR)/libluamisc_a-lpeg.Po \ - luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-pparray.Po \ - luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppcrypt.Po \ - luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppdict.Po \ - luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppheap.Po \ - luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppload.Po \ - luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppstream.Po \ - luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppxref.Po \ luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pparray.Po \ luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-ppcrypt.Po \ luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-ppdict.Po \ luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-ppheap.Po \ luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-ppload.Po \ luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-ppstream.Po \ + luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pptest1.Po \ + luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pptest2.Po \ + luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pptest3.Po \ luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-ppxref.Po \ luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pparray.Po \ luatexdir/luapplib/$(DEPDIR)/libluapplib_a-ppcrypt.Po \ @@ -2064,18 +1811,10 @@ am__depfiles_remade = ./$(DEPDIR)/aleph-aleph-pool.Po \ luatexdir/luapplib/$(DEPDIR)/libluapplib_a-ppheap.Po \ luatexdir/luapplib/$(DEPDIR)/libluapplib_a-ppload.Po \ luatexdir/luapplib/$(DEPDIR)/libluapplib_a-ppstream.Po \ + luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pptest1.Po \ + luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pptest2.Po \ + luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pptest3.Po \ luatexdir/luapplib/$(DEPDIR)/libluapplib_a-ppxref.Po \ - luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilbasexx.Po \ - luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilcrypt.Po \ - luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilflate.Po \ - luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilfpred.Po \ - luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utiliof.Po \ - luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utillog.Po \ - luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utillzw.Po \ - luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilmd5.Po \ - luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilmem.Po \ - luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilnumber.Po \ - luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilsha.Po \ luatexdir/luapplib/util/$(DEPDIR)/libluajitpplib_a-utilbasexx.Po \ luatexdir/luapplib/util/$(DEPDIR)/libluajitpplib_a-utilcrypt.Po \ luatexdir/luapplib/util/$(DEPDIR)/libluajitpplib_a-utilflate.Po \ @@ -2098,22 +1837,6 @@ am__depfiles_remade = ./$(DEPDIR)/aleph-aleph-pool.Po \ luatexdir/luapplib/util/$(DEPDIR)/libluapplib_a-utilmem.Po \ luatexdir/luapplib/util/$(DEPDIR)/libluapplib_a-utilnumber.Po \ luatexdir/luapplib/util/$(DEPDIR)/libluapplib_a-utilsha.Po \ - luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-auxiliar.Po \ - luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-buffer.Po \ - luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-compat.Po \ - luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-except.Po \ - luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-inet.Po \ - luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-io.Po \ - luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-lua_preload.Po \ - luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-luasocket.Po \ - luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-mime.Po \ - luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-options.Po \ - luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-select.Po \ - luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-serial.Po \ - luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-socket.Po \ - luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-tcp.Po \ - luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-timeout.Po \ - luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-udp.Po \ luatexdir/luasocket/src/$(DEPDIR)/libluajitsocket_a-auxiliar.Po \ luatexdir/luasocket/src/$(DEPDIR)/libluajitsocket_a-buffer.Po \ luatexdir/luasocket/src/$(DEPDIR)/libluajitsocket_a-compat.Po \ @@ -2146,37 +1869,12 @@ am__depfiles_remade = ./$(DEPDIR)/aleph-aleph-pool.Po \ luatexdir/luasocket/src/$(DEPDIR)/libluasocket_a-tcp.Po \ luatexdir/luasocket/src/$(DEPDIR)/libluasocket_a-timeout.Po \ luatexdir/luasocket/src/$(DEPDIR)/libluasocket_a-udp.Po \ - luatexdir/luazip/src/$(DEPDIR)/liblua53misc_a-luazip.Po \ luatexdir/luazip/src/$(DEPDIR)/libluajitmisc_a-luazip.Po \ luatexdir/luazip/src/$(DEPDIR)/libluamisc_a-luazip.Po \ - luatexdir/luazlib/$(DEPDIR)/liblua53misc_a-lgzip.Po \ - luatexdir/luazlib/$(DEPDIR)/liblua53misc_a-lzlib.Po \ luatexdir/luazlib/$(DEPDIR)/libluajitmisc_a-lgzip.Po \ luatexdir/luazlib/$(DEPDIR)/libluajitmisc_a-lzlib.Po \ luatexdir/luazlib/$(DEPDIR)/libluamisc_a-lgzip.Po \ luatexdir/luazlib/$(DEPDIR)/libluamisc_a-lzlib.Po \ - luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfaction.Po \ - luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfannot.Po \ - luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfcolorstack.Po \ - luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfdest.Po \ - luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdffont.Po \ - luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfgen.Po \ - luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfglyph.Po \ - luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfimage.Po \ - luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdflink.Po \ - luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdflistout.Po \ - luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfliteral.Po \ - luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfobj.Po \ - luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfoutline.Po \ - luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfpage.Po \ - luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfpagetree.Po \ - luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfrule.Po \ - luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfsaverestore.Po \ - luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfsetmatrix.Po \ - luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfshipout.Po \ - luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdftables.Po \ - luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfthread.Po \ - luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfxform.Po \ luatexdir/pdf/$(DEPDIR)/libluajittex_a-pdfaction.Po \ luatexdir/pdf/$(DEPDIR)/libluajittex_a-pdfannot.Po \ luatexdir/pdf/$(DEPDIR)/libluajittex_a-pdfcolorstack.Po \ @@ -2221,42 +1919,8 @@ am__depfiles_remade = ./$(DEPDIR)/aleph-aleph-pool.Po \ luatexdir/pdf/$(DEPDIR)/libluatex_a-pdftables.Po \ luatexdir/pdf/$(DEPDIR)/libluatex_a-pdfthread.Po \ luatexdir/pdf/$(DEPDIR)/libluatex_a-pdfxform.Po \ - luatexdir/slnunicode/$(DEPDIR)/liblua53misc_a-slnunico.Po \ luatexdir/slnunicode/$(DEPDIR)/libluajitmisc_a-slnunico.Po \ luatexdir/slnunicode/$(DEPDIR)/libluamisc_a-slnunico.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-align.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-arithmetic.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-backend.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-buildpage.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-commands.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-conditional.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-directions.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-dumpdata.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-equivalents.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-errors.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-expand.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-extensions.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-filename.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-inputstack.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-linebreak.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-mainbody.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-maincontrol.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-mathcodes.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-memoryword.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-mlist.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-nesting.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-packaging.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-postlinebreak.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-primitive.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-printing.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-scanning.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-stringpool.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-texdeffont.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-texfileio.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-texmath.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-texnodes.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-textcodes.Po \ - luatexdir/tex/$(DEPDIR)/liblua53tex_a-textoken.Po \ luatexdir/tex/$(DEPDIR)/libluajittex_a-align.Po \ luatexdir/tex/$(DEPDIR)/libluajittex_a-arithmetic.Po \ luatexdir/tex/$(DEPDIR)/libluajittex_a-backend.Po \ @@ -2333,11 +1997,6 @@ am__depfiles_remade = ./$(DEPDIR)/aleph-aleph-pool.Po \ luatexdir/unilib/$(DEPDIR)/libunilib_a-usprintf.Po \ luatexdir/unilib/$(DEPDIR)/libunilib_a-ustring.Po \ luatexdir/unilib/$(DEPDIR)/libunilib_a-utype.Po \ - luatexdir/utils/$(DEPDIR)/liblua53tex_a-avl.Po \ - luatexdir/utils/$(DEPDIR)/liblua53tex_a-avlstuff.Po \ - luatexdir/utils/$(DEPDIR)/liblua53tex_a-managed-sa.Po \ - luatexdir/utils/$(DEPDIR)/liblua53tex_a-unistring.Po \ - luatexdir/utils/$(DEPDIR)/liblua53tex_a-utils.Po \ luatexdir/utils/$(DEPDIR)/libluajittex_a-avl.Po \ luatexdir/utils/$(DEPDIR)/libluajittex_a-avlstuff.Po \ luatexdir/utils/$(DEPDIR)/libluajittex_a-managed-sa.Po \ @@ -2359,7 +2018,6 @@ am__depfiles_remade = ./$(DEPDIR)/aleph-aleph-pool.Po \ mplibdir/$(DEPDIR)/libmputil_a-decNumber.Po \ mplibdir/$(DEPDIR)/luajittex-lmplib.Po \ mplibdir/$(DEPDIR)/luatex-lmplib.Po \ - mplibdir/$(DEPDIR)/luatex53-lmplib.Po \ pdftexdir/$(DEPDIR)/libpdftex_a-avl.Po \ pdftexdir/$(DEPDIR)/libpdftex_a-avlstuff.Po \ pdftexdir/$(DEPDIR)/libpdftex_a-epdf.Po \ @@ -2394,7 +2052,6 @@ am__depfiles_remade = ./$(DEPDIR)/aleph-aleph-pool.Po \ synctexdir/$(DEPDIR)/eptex-synctex.Po \ synctexdir/$(DEPDIR)/etex-synctex.Po \ synctexdir/$(DEPDIR)/euptex-synctex.Po \ - synctexdir/$(DEPDIR)/liblua53tex_a-synctex.Po \ synctexdir/$(DEPDIR)/libluajittex_a-synctex.Po \ synctexdir/$(DEPDIR)/libluatex_a-synctex.Po \ synctexdir/$(DEPDIR)/libsynctex_a-synctex_parser.Po \ @@ -2484,11 +2141,6 @@ am__v_OBJCXXLD_ = $(am__v_OBJCXXLD_@AM_DEFAULT_V@) am__v_OBJCXXLD_0 = @echo " OBJCXXLD" $@; am__v_OBJCXXLD_1 = SOURCES = $(libff_a_SOURCES) $(libkanji_a_SOURCES) \ - $(nodist_liblua53ffi_a_SOURCES) \ - $(nodist_liblua53misc_a_SOURCES) \ - $(nodist_liblua53pplib_a_SOURCES) \ - $(nodist_liblua53socket_a_SOURCES) \ - $(dist_liblua53tex_a_SOURCES) $(nodist_liblua53tex_a_SOURCES) \ $(nodist_libluaffi_a_SOURCES) \ $(nodist_libluajitmisc_a_SOURCES) \ $(nodist_libluajitpplib_a_SOURCES) \ @@ -2510,35 +2162,34 @@ SOURCES = $(libff_a_SOURCES) $(libkanji_a_SOURCES) \ $(libsynctex_la_SOURCES) $(dist_aleph_SOURCES) \ $(nodist_aleph_SOURCES) $(nodist_bibtex_SOURCES) \ $(nodist_call_luajittex_SOURCES) $(nodist_call_luatex_SOURCES) \ - $(nodist_call_luatex53_SOURCES) $(nodist_call_mf_SOURCES) \ - $(nodist_call_mflua_SOURCES) $(nodist_call_mfluajit_SOURCES) \ - $(nodist_call_mpost_SOURCES) $(nodist_call_pmpost_SOURCES) \ - $(nodist_call_upmpost_SOURCES) $(nodist_ctangle_SOURCES) \ - $(nodist_ctangleboot_SOURCES) $(nodist_ctie_SOURCES) \ - $(nodist_cweave_SOURCES) $(nodist_dvicopy_SOURCES) \ - $(nodist_dvitype_SOURCES) $(dist_eptex_SOURCES) \ - $(nodist_eptex_SOURCES) $(dist_etex_SOURCES) \ - $(nodist_etex_SOURCES) $(dist_euptex_SOURCES) \ - $(nodist_euptex_SOURCES) $(gftodvi_SOURCES) \ - $(nodist_gftodvi_SOURCES) $(nodist_gftopk_SOURCES) \ - $(nodist_gftype_SOURCES) $(nodist_initex_SOURCES) \ - $(nodist_luajittex_SOURCES) $(nodist_luatex_SOURCES) \ - $(nodist_luatex53_SOURCES) $(md5main_SOURCES) \ - $(dist_mf_SOURCES) $(dist_mf_nowin_SOURCES) \ - $(dist_mflua_SOURCES) $(nodist_mflua_nowin_SOURCES) \ - $(dist_mfluajit_SOURCES) $(nodist_mfluajit_nowin_SOURCES) \ - $(nodist_mft_SOURCES) $(nodist_mpost_SOURCES) \ - $(nodist_odvicopy_SOURCES) $(nodist_odvitype_SOURCES) \ - $(nodist_otangle_SOURCES) $(nodist_patgen_SOURCES) \ - $(pbibtex_SOURCES) $(nodist_pbibtex_SOURCES) \ - $(dist_pdftex_SOURCES) $(nodist_pdftex_SOURCES) \ - $(nodist_EXTRA_pdftex_SOURCES) $(pdftosrc_SOURCES) \ - $(nodist_EXTRA_pdftosrc_SOURCES) $(pdvitype_SOURCES) \ - $(nodist_pdvitype_SOURCES) $(nodist_pktogf_SOURCES) \ - $(nodist_pktype_SOURCES) $(nodist_pltotf_SOURCES) \ - $(nodist_pmpost_SOURCES) $(nodist_pooltype_SOURCES) \ - $(ppltotf_SOURCES) $(nodist_ppltotf_SOURCES) \ - $(dist_ptex_SOURCES) $(nodist_ptex_SOURCES) $(ptftopl_SOURCES) \ + $(nodist_call_mf_SOURCES) $(nodist_call_mflua_SOURCES) \ + $(nodist_call_mfluajit_SOURCES) $(nodist_call_mpost_SOURCES) \ + $(nodist_call_pmpost_SOURCES) $(nodist_call_upmpost_SOURCES) \ + $(nodist_ctangle_SOURCES) $(nodist_ctangleboot_SOURCES) \ + $(nodist_ctie_SOURCES) $(nodist_cweave_SOURCES) \ + $(nodist_dvicopy_SOURCES) $(nodist_dvitype_SOURCES) \ + $(dist_eptex_SOURCES) $(nodist_eptex_SOURCES) \ + $(dist_etex_SOURCES) $(nodist_etex_SOURCES) \ + $(dist_euptex_SOURCES) $(nodist_euptex_SOURCES) \ + $(gftodvi_SOURCES) $(nodist_gftodvi_SOURCES) \ + $(nodist_gftopk_SOURCES) $(nodist_gftype_SOURCES) \ + $(nodist_initex_SOURCES) $(nodist_luajittex_SOURCES) \ + $(nodist_luatex_SOURCES) $(md5main_SOURCES) $(dist_mf_SOURCES) \ + $(dist_mf_nowin_SOURCES) $(dist_mflua_SOURCES) \ + $(nodist_mflua_nowin_SOURCES) $(dist_mfluajit_SOURCES) \ + $(nodist_mfluajit_nowin_SOURCES) $(nodist_mft_SOURCES) \ + $(nodist_mpost_SOURCES) $(nodist_odvicopy_SOURCES) \ + $(nodist_odvitype_SOURCES) $(nodist_otangle_SOURCES) \ + $(nodist_patgen_SOURCES) $(pbibtex_SOURCES) \ + $(nodist_pbibtex_SOURCES) $(dist_pdftex_SOURCES) \ + $(nodist_pdftex_SOURCES) $(nodist_EXTRA_pdftex_SOURCES) \ + $(pdftosrc_SOURCES) $(nodist_EXTRA_pdftosrc_SOURCES) \ + $(pdvitype_SOURCES) $(nodist_pdvitype_SOURCES) \ + $(nodist_pktogf_SOURCES) $(nodist_pktype_SOURCES) \ + $(nodist_pltotf_SOURCES) $(nodist_pmpost_SOURCES) \ + $(nodist_pooltype_SOURCES) $(ppltotf_SOURCES) \ + $(nodist_ppltotf_SOURCES) $(dist_ptex_SOURCES) \ + $(nodist_ptex_SOURCES) $(ptftopl_SOURCES) \ $(nodist_ptftopl_SOURCES) $(synctex_SOURCES) \ $(nodist_tangle_SOURCES) $(nodist_tangleboot_SOURCES) \ $(dist_tex_SOURCES) $(nodist_tex_SOURCES) \ @@ -2556,19 +2207,19 @@ SOURCES = $(libff_a_SOURCES) $(libkanji_a_SOURCES) \ $(dist_xetex_SOURCES) $(nodist_xetex_SOURCES) \ $(nodist_EXTRA_xetex_SOURCES) DIST_SOURCES = $(libff_a_SOURCES) $(libkanji_a_SOURCES) \ - $(dist_liblua53tex_a_SOURCES) $(dist_libluajittex_a_SOURCES) \ - $(dist_libluatex_a_SOURCES) $(libmd5_a_SOURCES) \ - $(dist_libmflua_a_SOURCES) $(dist_libmfluajit_a_SOURCES) \ - $(libmputil_a_SOURCES) $(am__libpdftex_a_SOURCES_DIST) \ - $(EXTRA_libpdftex_a_SOURCES) $(libukanji_a_SOURCES) \ - $(libunilib_a_SOURCES) $(am__libxetex_a_SOURCES_DIST) \ - $(libsynctex_la_SOURCES) $(dist_aleph_SOURCES) \ - $(am__dist_eptex_SOURCES_DIST) $(am__dist_etex_SOURCES_DIST) \ - $(am__dist_euptex_SOURCES_DIST) $(gftodvi_SOURCES) \ - $(md5main_SOURCES) $(dist_mf_SOURCES) $(dist_mf_nowin_SOURCES) \ - $(dist_mflua_SOURCES) $(dist_mfluajit_SOURCES) \ - $(pbibtex_SOURCES) $(am__dist_pdftex_SOURCES_DIST) \ - $(pdftosrc_SOURCES) $(pdvitype_SOURCES) $(ppltotf_SOURCES) \ + $(dist_libluajittex_a_SOURCES) $(dist_libluatex_a_SOURCES) \ + $(libmd5_a_SOURCES) $(dist_libmflua_a_SOURCES) \ + $(dist_libmfluajit_a_SOURCES) $(libmputil_a_SOURCES) \ + $(am__libpdftex_a_SOURCES_DIST) $(EXTRA_libpdftex_a_SOURCES) \ + $(libukanji_a_SOURCES) $(libunilib_a_SOURCES) \ + $(am__libxetex_a_SOURCES_DIST) $(libsynctex_la_SOURCES) \ + $(dist_aleph_SOURCES) $(am__dist_eptex_SOURCES_DIST) \ + $(am__dist_etex_SOURCES_DIST) $(am__dist_euptex_SOURCES_DIST) \ + $(gftodvi_SOURCES) $(md5main_SOURCES) $(dist_mf_SOURCES) \ + $(dist_mf_nowin_SOURCES) $(dist_mflua_SOURCES) \ + $(dist_mfluajit_SOURCES) $(pbibtex_SOURCES) \ + $(am__dist_pdftex_SOURCES_DIST) $(pdftosrc_SOURCES) \ + $(pdvitype_SOURCES) $(ppltotf_SOURCES) \ $(am__dist_ptex_SOURCES_DIST) $(ptftopl_SOURCES) \ $(synctex_SOURCES) $(am__dist_tex_SOURCES_DIST) \ $(ttf2afm_SOURCES) $(EXTRA_ttf2afm_SOURCES) \ @@ -2782,14 +2433,14 @@ am__set_TESTS_bases = \ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ bases=`echo $$bases` RECHECK_LOGS = $(TEST_LOGS) -am__EXEEXT_41 = bibtex.test dvicopy.test dvitype.test gftodvi.test \ +am__EXEEXT_39 = bibtex.test dvicopy.test dvitype.test gftodvi.test \ gftopk.test gftype.test mft.test patgen.test pktogf.test \ pktype.test pltotf.test pooltype.test tftopl.test vftovp.test \ vptovf.test weave.test -am__EXEEXT_42 = $(am__EXEEXT_41) tests/bibtex-openout-test.pl \ +am__EXEEXT_40 = $(am__EXEEXT_39) tests/bibtex-openout-test.pl \ tests/bibtex-longline-test.pl tests/bibtex-mem.test \ tests/bibtex-auxinclude.test -@WEB_TRUE@am__EXEEXT_43 = $(am__EXEEXT_42) +@WEB_TRUE@am__EXEEXT_41 = $(am__EXEEXT_40) TEST_SUITE_LOG = test-suite.log am__test_logs1 = $(TESTS:=.log) am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) @@ -3010,7 +2661,7 @@ NM = @NM@ NMEDIT = @NMEDIT@ OBJCXX = @OBJCXX@ OBJCXXDEPMODE = @OBJCXXDEPMODE@ -OBJCXXFLAGS = @OBJCXXFLAGS@ $(am__append_104) +OBJCXXFLAGS = @OBJCXXFLAGS@ $(am__append_98) OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTANGLE = @OTANGLE@ @@ -3135,20 +2786,30 @@ AM_OBJCXXFLAGS = ## $(WARNING_OBJCXXFLAGS) version = $(WEB2CVERSION) SUBDIRS = doc lib man web2c . window omegafonts otps proglib = lib/lib.a + +#EXTRA_LIBRARIES += libluasocket.a liblua53socket.a libluajitsocket.a + +#EXTRA_LIBRARIES += libluamisc.a liblua53misc.a libluajitmisc.a + +#EXTRA_LIBRARIES += libluatex.a liblua53tex.a libluajittex.a + +#EXTRA_LIBRARIES += libluaffi.a liblua53ffi.a + +#EXTRA_LIBRARIES += libluapplib.a liblua53pplib.a libluajitpplib.a EXTRA_LIBRARIES = libmf.a libmflua.a libmfluajit.a libmputil.a \ libmplibcore.a libmplibextramath.a libmplibbackends.a \ libkanji.a libukanji.a libpdftex.a libluasocket.a \ - liblua53socket.a libluajitsocket.a libluamisc.a liblua53misc.a \ - libluajitmisc.a libunilib.a libff.a libluatex.a liblua53tex.a \ - libluajittex.a libluaffi.a liblua53ffi.a libluapplib.a \ - liblua53pplib.a libluajitpplib.a libxetex.a libsynctex.a \ - libmd5.a + libluajitsocket.a libluamisc.a libluajitmisc.a libunilib.a \ + libff.a libluatex.a libluajittex.a libluaffi.a libluapplib.a \ + libluajitpplib.a libxetex.a libsynctex.a libmd5.a EXTRA_LTLIBRARIES = libsynctex.la -lib_LIBRARIES = $(am__append_116) -lib_LTLIBRARIES = $(am__append_115) +lib_LIBRARIES = $(am__append_110) +lib_LTLIBRARIES = $(am__append_109) dist_man_MANS = synctexdir/man1/synctex.1 synctexdir/man5/synctex.5 nodist_man_MANS = TEST_EXTENSIONS = .pl .test + +#dist_liblua53tex_sources = $(dist_libluatex_sources) EXTRA_DIST = PROJECTS cftests cpascal.h help.h w2c/config.h \ triptrap-sh tangle.web tangle.ch tangleboot.pin cwebdir \ ctangleboot.cin cwebboot.cin cwebboot.hin tangle.test \ @@ -3586,14 +3247,13 @@ TRIPTRAP = $(am__append_7) $(am__append_17) $(am__append_26) \ bin_links = $(am__append_5) $(am__append_14) $(am__append_15) \ $(am__append_24) $(am__append_33) $(am__append_41) \ $(am__append_49) $(am__append_54) $(am__append_88) \ - $(am__append_93) $(am__append_98) + $(am__append_93) install_exe_links = $(am__append_12) $(am__append_22) $(am__append_31) \ $(am__append_39) $(am__append_47) $(am__append_52) \ - $(am__append_86) $(am__append_91) $(am__append_96) + $(am__append_86) $(am__append_91) uninstall_exe_links = $(am__append_13) $(am__append_23) \ $(am__append_32) $(am__append_40) $(am__append_48) \ - $(am__append_53) $(am__append_87) $(am__append_92) \ - $(am__append_97) + $(am__append_53) $(am__append_87) $(am__append_92) NEVER_DIST = `find . $(NEVER_NAMES)` cwebdir/cweave.log \ cwebdir/cweave.trs ctiedir/ctie.log ctiedir/ctie.trs \ tiedir/tie.log tiedir/tie.trs @@ -3707,18 +3367,18 @@ tie_CPPFLAGS = $(AM_CPPFLAGS) -DNOT_WEB2C initex_CPPFLAGS = -DEXEPROG=\"tex.exe\" nodist_initex_SOURCES = callexe.c initex_LDADD = -tex_CPPFLAGS = $(AM_CPPFLAGS) $(am__append_119) +tex_CPPFLAGS = $(AM_CPPFLAGS) $(am__append_113) # With --enable-ipc, TeX may need to link with -lsocket. -tex_LDADD = $(LDADD) $(ipc_socketlibs) $(am__append_120) +tex_LDADD = $(LDADD) $(ipc_socketlibs) $(am__append_114) # TeX C sources tex_c_h = texini.c tex0.c texcoerce.h texd.h nodist_tex_SOURCES = $(tex_c_h) tex-pool.c -dist_tex_SOURCES = texextra.c $(am__append_122) +dist_tex_SOURCES = texextra.c $(am__append_116) # We must create texd.h before building the tex_OBJECTS. -tex_prereq = texd.h $(am__append_121) +tex_prereq = texd.h $(am__append_115) tex_ch_srcs = \ tex.web \ tex.ch \ @@ -3913,19 +3573,19 @@ libmplib_web = mplibdir/mp.w mplibdir/psout.w mplibdir/svgout.w \ mplibdir/pngout.w mplibdir/mpmath.w mplibdir/mpmathbinary.w \ mplibdir/mpmathdecimal.w mplibdir/mpmathdouble.w \ mplibdir/mpstrings.w mplibdir/tfmin.w -etex_CPPFLAGS = $(AM_CPPFLAGS) $(am__append_123) +etex_CPPFLAGS = $(AM_CPPFLAGS) $(am__append_117) # With --enable-ipc, e-TeX may need to link with -lsocket. -etex_LDADD = $(LDADD) $(ipc_socketlibs) $(am__append_124) +etex_LDADD = $(LDADD) $(ipc_socketlibs) $(am__append_118) # e-TeX C sources etex_c_h = etexini.c etex0.c etexcoerce.h etexd.h nodist_etex_SOURCES = $(etex_c_h) etex-pool.c dist_etex_SOURCES = etexdir/etexextra.c etexdir/etexextra.h \ - etexdir/etex_version.h $(am__append_126) + etexdir/etex_version.h $(am__append_120) # We must create etexd.h and etexdir/etex_version.h before building the etex_OBJECTS. -etex_prereq = etexd.h etexdir/etex_version.h $(am__append_125) +etex_prereq = etexd.h etexdir/etex_version.h $(am__append_119) etex_web_srcs = \ tex.web \ etexdir/etex.ch @@ -3951,20 +3611,20 @@ pweb_programs = pbibtex pdvitype ppltotf ptftopl pproglib = lib/libp.a libkanji_a_SOURCES = ptexdir/kanji.c ptexdir/kanji.h libkanji_a_CPPFLAGS = $(ptex_cppflags) -ptex_CPPFLAGS = $(ptex_cppflags) $(am__append_127) +ptex_CPPFLAGS = $(ptex_cppflags) $(am__append_121) # With --enable-ipc, pTeX may need to link with -lsocket. -ptex_LDADD = $(ptex_ldadd) $(ipc_socketlibs) $(am__append_128) +ptex_LDADD = $(ptex_ldadd) $(ipc_socketlibs) $(am__append_122) ptex_DEPENDENCIES = $(ptex_dependencies) # pTeX C sources ptex_c_h = ptexini.c ptex0.c ptexcoerce.h ptexd.h nodist_ptex_SOURCES = $(ptex_c_h) ptex-pool.c dist_ptex_SOURCES = ptexdir/ptexextra.c ptexdir/ptexextra.h \ - ptexdir/ptex_version.h $(am__append_130) + ptexdir/ptex_version.h $(am__append_124) # We must create ptexd.h and ptexdir/ptex_version.h before building the ptex_OBJECTS. -ptex_prereq = ptexd.h ptexdir/ptex_version.h $(am__append_129) +ptex_prereq = ptexd.h ptexdir/ptex_version.h $(am__append_123) ptex_web_srcs = \ tex.web \ tex.ch @@ -4005,22 +3665,22 @@ pweb_tests = ptexdir/pbibtex.test ptexdir/pdvitype.test \ ptexdir/nissya.test ptexdir/sample.test ptexdir/yokotate.test \ ptexdir/skipjfmp.test eptex_CPPFLAGS = $(PTEXENC_INCLUDES) $(AM_CPPFLAGS) -I$(srcdir)/libmd5 \ - $(am__append_135) + $(am__append_129) # With --enable-ipc, e-pTeX may need to link with -lsocket. eptex_LDADD = libkanji.a $(pproglib) $(PTEXENC_LIBS) $(LDADD) \ - $(ipc_socketlibs) libmd5.a $(am__append_136) + $(ipc_socketlibs) libmd5.a $(am__append_130) eptex_DEPENDENCIES = libkanji.a $(pproglib) $(PTEXENC_DEPEND) $(default_dependencies) libmd5.a # e-pTeX C sources eptex_c_h = eptexini.c eptex0.c eptexcoerce.h eptexd.h nodist_eptex_SOURCES = $(eptex_c_h) eptex-pool.c dist_eptex_SOURCES = eptexdir/eptexextra.c eptexdir/eptexextra.h \ - eptexdir/eptex_version.h $(am__append_138) + eptexdir/eptex_version.h $(am__append_132) # We must create eptexd.h and eptexdir/eptex_version.h before building the eptex_OBJECTS. eptex_prereq = eptexd.h etexdir/etex_version.h ptexdir/ptex_version.h \ - eptexdir/eptex_version.h $(am__append_137) + eptexdir/eptex_version.h $(am__append_131) eptex_web_srcs = \ tex.web \ etexdir/etex.ch \ @@ -4050,21 +3710,21 @@ up_tangle = $(tangle_silent)WEBINPUTS=.:$(srcdir)/uptexdir:$(srcdir) $(buildenv) upweb_programs = upbibtex updvitype uppltotf uptftopl libukanji_a_SOURCES = uptexdir/kanji.c uptexdir/kanji.h uptexdir/kanji_dump.c libukanji_a_CPPFLAGS = $(uptex_cppflags) -uptex_CPPFLAGS = $(uptex_cppflags) $(am__append_131) +uptex_CPPFLAGS = $(uptex_cppflags) $(am__append_125) # With --enable-ipc, upTeX may need to link with -lsocket. -uptex_LDADD = $(uptex_ldadd) $(ipc_socketlibs) $(am__append_132) +uptex_LDADD = $(uptex_ldadd) $(ipc_socketlibs) $(am__append_126) uptex_DEPENDENCIES = $(uptex_dependencies) # upTeX C sources uptex_c_h = uptexini.c uptex0.c uptexcoerce.h uptexd.h nodist_uptex_SOURCES = $(uptex_c_h) uptex-pool.c dist_uptex_SOURCES = uptexdir/uptexextra.c uptexdir/uptexextra.h \ - uptexdir/uptex_version.h $(am__append_134) + uptexdir/uptex_version.h $(am__append_128) # We must create uptexd.h and uptexdir/uptex_version.h before building the uptex_OBJECTS. uptex_prereq = uptexd.h ptexdir/ptex_version.h \ - uptexdir/uptex_version.h $(am__append_133) + uptexdir/uptex_version.h $(am__append_127) uptex_web_srcs = \ tex.web \ tex.ch @@ -4109,23 +3769,23 @@ upweb_tests = \ uptexdir/gkhuge.test euptex_CPPFLAGS = $(PTEXENC_INCLUDES) $(AM_CPPFLAGS) \ - -I$(srcdir)/libmd5 $(am__append_139) + -I$(srcdir)/libmd5 $(am__append_133) # With --enable-ipc, e-upTeX may need to link with -lsocket. euptex_LDADD = libukanji.a $(pproglib) $(PTEXENC_LIBS) $(LDADD) \ - $(ipc_socketlibs) libmd5.a $(am__append_140) + $(ipc_socketlibs) libmd5.a $(am__append_134) euptex_DEPENDENCIES = libukanji.a $(pproglib) $(PTEXENC_DEPEND) $(default_dependencies) libmd5.a # e-upTeX C sources euptex_c_h = euptexini.c euptex0.c euptexcoerce.h euptexd.h nodist_euptex_SOURCES = $(euptex_c_h) euptex-pool.c dist_euptex_SOURCES = euptexdir/euptexextra.c euptexdir/euptexextra.h \ - $(am__append_142) + $(am__append_136) # We must create euptexd.h and [eu]ptexdir/[eu]ptex_version.h before building the euptex_OBJECTS. euptex_prereq = euptexd.h etexdir/etex_version.h \ ptexdir/ptex_version.h eptexdir/eptex_version.h \ - uptexdir/uptex_version.h $(am__append_141) + uptexdir/uptex_version.h $(am__append_135) euptex_web_srcs = \ tex.web \ etexdir/etex.ch \ @@ -4181,7 +3841,7 @@ pdftex_dependencies = $(proglib) $(KPATHSEA_DEPEND) $(LIBPNG_DEPEND) \ # Force Automake to use CXXLD for linking nodist_EXTRA_pdftex_SOURCES = dummy.cxx pdf_tangle = WEBINPUTS=.:$(srcdir)/pdftexdir AM_V_P=$(AM_V_P) $(SHELL) ./tangle-sh $@ $(TANGLE) -pdftex_CPPFLAGS = $(pdftex_cppflags) $(am__append_143) +pdftex_CPPFLAGS = $(pdftex_cppflags) $(am__append_137) pdftex_CXXFLAGS = $(WARNING_CXXFLAGS) # With --enable-ipc, pdfTeX may need to link with -lsocket. @@ -4194,7 +3854,7 @@ pdftex_c_h = pdftexini.c pdftex0.c pdftexcoerce.h pdftexd.h nodist_pdftex_SOURCES = $(pdftex_c_h) pdftex-pool.c dist_pdftex_SOURCES = pdftexdir/pdftexextra.c pdftexdir/pdftexextra.h \ pdftexdir/pdftex_version.h pdftexdir/etex_version.h \ - $(am__append_144) + $(am__append_138) pdftex_ch_srcs = \ pdftexdir/pdftex.web \ pdftexdir/tex.ch0 \ @@ -4225,21 +3885,21 @@ pdftosrc_LDADD = $(pdftex_ldadd) $(LDADD) pdftosrc_DEPENDENCIES = $(pdftex_dependencies) pdftosrc_tests = pdftexdir/pdftosrc.test libluasocket_a_DEPENDENCIES = $(ZLIB_DEPEND) -liblua53socket_a_DEPENDENCIES = $(ZLIB_DEPEND) +#liblua53socket_a_DEPENDENCIES = $(ZLIB_DEPEND) libluajitsocket_a_DEPENDENCIES = $(ZLIB_DEPEND) libluasocket_a_CPPFLAGS = \ -DLUASOCKET_DEBUG -I$(top_srcdir)/luatexdir/luasocket $(LUA_INCLUDES) -liblua53socket_a_CPPFLAGS = \ - -DLUASOCKET_DEBUG -I$(top_srcdir)/luatexdir/luasocket $(LUA_LUA53_INCLUDES) +#liblua53socket_a_CPPFLAGS = \ +# -DLUASOCKET_DEBUG -I$(top_srcdir)/luatexdir/luasocket $(LUA_LUA53_INCLUDES) libluajitsocket_a_CPPFLAGS = \ -DLUASOCKET_DEBUG -I$(top_srcdir)/luatexdir/luasocket $(LUAJIT_INCLUDES) libluasocket_a_CFLAGS = # $(WARNING_CFLAGS) libluajitsocket_a_CFLAGS = # $(WARNING_CFLAGS) nodist_libluasocket_a_SOURCES = $(libluasocket_sources) -nodist_liblua53socket_a_SOURCES = $(libluasocket_sources) +#nodist_liblua53socket_a_SOURCES = $(libluasocket_sources) nodist_libluajitsocket_a_SOURCES = $(libluasocket_sources) libluasocket_sources = \ luatexdir/luasocket/src/auxiliar.c \ @@ -4275,17 +3935,17 @@ libluasocket_sources = \ luatexdir/luasocket/src/usocket.h libluamisc_a_DEPENDENCIES = $(ZZIPLIB_DEPEND) libluasocket.a libluaffi.a libluapplib.a -liblua53misc_a_DEPENDENCIES = $(ZZIPLIB_DEPEND) liblua53socket.a liblua53ffi.a liblua53pplib.a +#liblua53misc_a_DEPENDENCIES = $(ZZIPLIB_DEPEND) liblua53socket.a liblua53ffi.a liblua53pplib.a libluajitmisc_a_DEPENDENCIES = $(ZZIPLIB_DEPEND) libluajitsocket.a libluajitpplib.a libluamisc_a_CPPFLAGS = $(ZLIB_INCLUDES) $(ZZIPLIB_INCLUDES) $(LUA_INCLUDES) -liblua53misc_a_CPPFLAGS = $(ZLIB_INCLUDES) $(ZZIPLIB_INCLUDES) $(LUA_LUA53_INCLUDES) +#liblua53misc_a_CPPFLAGS = $(ZLIB_INCLUDES) $(ZZIPLIB_INCLUDES) $(LUA_LUA53_INCLUDES) libluajitmisc_a_CPPFLAGS = $(ZLIB_INCLUDES) $(ZZIPLIB_INCLUDES) \ $(LUAJIT_INCLUDES) -DLuajitTeX -I$(srcdir)/luatexdir libluamisc_a_CFLAGS = # $(WARNING_CFLAGS) -liblua53misc_a_CFLAGS = # $(WARNING_CFLAGS) +#liblua53misc_a_CFLAGS = # $(WARNING_CFLAGS) libluajitmisc_a_CFLAGS = # $(WARNING_CFLAGS) nodist_libluamisc_a_SOURCES = $(libluamisc_sources) -nodist_liblua53misc_a_SOURCES = $(libluamisc_sources) +#nodist_liblua53misc_a_SOURCES = $(libluamisc_sources) nodist_libluajitmisc_a_SOURCES = $(libluamisc_sources) libluamisc_sources = \ luatexdir/luafilesystem/src/lfs.c \ @@ -4402,14 +4062,15 @@ libff_a_SOURCES = \ luatexdir/luafontloader/fontforge/inc/gimage.h \ luatexdir/luafontloader/fontforge/inc/intl.h -LUA_INCLUDES = $(LUA52_INCLUDES) $(LUA52_DEFINES) -LUA_LIBS = $(LUA52_LIBS) -LUA_DEPEND = $(LUA52_DEPEND) -LUA_LUA53_INCLUDES = $(LUA53_INCLUDES) $(LUA53_DEFINES) -LUA_LUA53_LIBS = $(LUA53_LIBS) -LUA_LUA53_DEPEND = $(LUA53_DEPEND) + +#LUA_LUA53_INCLUDES = $(LUA53_INCLUDES) $(LUA53_DEFINES) +#LUA_LUA53_LIBS = $(LUA53_LIBS) +#LUA_LUA53_DEPEND = $(LUA53_DEPEND) +LUA_INCLUDES = $(LUA53_INCLUDES) $(LUA53_DEFINES) +LUA_LIBS = $(LUA53_LIBS) +LUA_DEPEND = $(LUA53_DEPEND) libluatex_a_DEPENDENCIES = libff.a libluamisc.a -liblua53tex_a_DEPENDENCIES = libff.a liblua53misc.a +#liblua53tex_a_DEPENDENCIES = libff.a liblua53misc.a libluajittex_a_DEPENDENCIES = libff.a libluajitmisc.a libluatex_a_preflags = $(AM_CPPFLAGS) $(ZLIB_INCLUDES) \ $(LIBPNG_INCLUDES) -I$(srcdir)/libmd5 -DpdfTeX \ @@ -4420,11 +4081,11 @@ libluatex_a_preflags = $(AM_CPPFLAGS) $(ZLIB_INCLUDES) \ -I$(srcdir)/luatexdir/luafontloader/fontforge/fontforge \ -DSYNCTEX_ENGINE_H='<synctex-luatex.h>' -I$(srcdir)/synctexdir libluatex_a_CPPFLAGS = $(libluatex_a_preflags) $(LUA_INCLUDES) -liblua53tex_a_CPPFLAGS = $(libluatex_a_preflags) $(LUA_LUA53_INCLUDES) +#liblua53tex_a_CPPFLAGS = $(libluatex_a_preflags) $(LUA_LUA53_INCLUDES) libluajittex_a_CPPFLAGS = $(libluatex_a_preflags) $(LUAJIT_INCLUDES) \ $(LUAJIT_DEFINES) -DLuajitTeX libluatex_a_CXXFLAGS = $(WARNING_CXXFLAGS) -liblua53tex_a_CXXFLAGS = $(WARNING_CXXFLAGS) +#liblua53tex_a_CXXFLAGS = $(WARNING_CXXFLAGS) libluajittex_a_CXXFLAGS = $(WARNING_CXXFLAGS) dist_libluatex_a_SOURCES = \ luatexdir/lua/lstrlibext.c \ @@ -4435,15 +4096,13 @@ nodist_libluatex_a_SOURCES = \ $(dist_libluatex_sources) \ $(nodist_libluatex_sources) -dist_liblua53tex_a_SOURCES = \ - luatexdir/lua/lstrlibext.c \ - luatexdir/lua/helpers.c \ - luatexdir/lua/texluac.c - -nodist_liblua53tex_a_SOURCES = \ - $(dist_libluatex_sources) \ - $(nodist_libluatex_sources) - +# dist_liblua53tex_a_SOURCES = \ +# luatexdir/lua/lstrlibext.c \ +# luatexdir/lua/helpers.c \ +# luatexdir/lua/texluac.c +# nodist_liblua53tex_a_SOURCES = \ +# $(dist_libluatex_sources) \ +# $(nodist_libluatex_sources) dist_libluajittex_a_SOURCES = \ luatexdir/lua/lauxlib_bridge.h \ luatexdir/lua/lstrlibext.c \ @@ -4847,17 +4506,17 @@ luatex_pdf_ctangle = $(ctangle_silent)CWEBINPUTS=$(srcdir)/luatexdir/pdf $(ctang ################################################################################ luatex_tex_ctangle = $(ctangle_silent)CWEBINPUTS=$(srcdir)/luatexdir/tex $(ctangle) luatex_utils_ctangle = $(ctangle_silent)CWEBINPUTS=$(srcdir)/luatexdir/utils $(ctangle) -dist_liblua53tex_sources = $(dist_libluatex_sources) +#$(liblua53ffi_a_OBJECTS): $(LUA_LUA53_DEPEND) libluaffi_a_CPPFLAGS = \ -I$(top_srcdir)/luatexdir/luaffi -I$(top_srcdir)/luatexdir/luaffi/dynasm $(LUA_INCLUDES) -liblua53ffi_a_CPPFLAGS = \ - -I$(top_srcdir)/luatexdir/luaffi -I$(top_srcdir)/luatexdir/luaffi/dynasm $(LUA_LUA53_INCLUDES) +#liblua53ffi_a_CPPFLAGS = \ +# -I$(top_srcdir)/luatexdir/luaffi -I$(top_srcdir)/luatexdir/luaffi/dynasm $(LUA_LUA53_INCLUDES) libluaffi_a_CFLAGS = # $(WARNING_CFLAGS) -liblua53ffi_a_CFLAGS = # $(WARNING_CFLAGS) +#liblua53ffi_a_CFLAGS = # $(WARNING_CFLAGS) nodist_libluaffi_a_SOURCES = $(libluaffi_sources) -nodist_liblua53ffi_a_SOURCES = $(libluaffi_sources) +#nodist_liblua53ffi_a_SOURCES = $(libluaffi_sources) libluaffi_sources = \ luatexdir/luaffi/call_arm.h \ luatexdir/luaffi/call.c \ @@ -4869,23 +4528,22 @@ libluaffi_sources = \ luatexdir/luaffi/ffi.h \ luatexdir/luaffi/parser.c -liblua53ffi_sources = $(libluaffi_sources) libluapplib_a_DEPENDENCIES = $(ZLIB_DEPEND) -liblua53pplib_a_DEPENDENCIES = $(ZLIB_DEPEND) +#liblua53pplib_a_DEPENDENCIES = $(ZLIB_DEPEND) libluajitpplib_a_DEPENDENCIES = $(ZLIB_DEPEND) libluapplib_a_CPPFLAGS = \ -I$(top_srcdir)/luatexdir/luapplib -I$(top_srcdir)/luatexdir/luapplib/util $(ZLIB_INCLUDES) $(LUA_INCLUDES) -liblua53pplib_a_CPPFLAGS = \ - -I$(top_srcdir)/luatexdir/luapplib -I$(top_srcdir)/luatexdir/luapplib/util $(ZLIB_INCLUDES) $(LUA_LUA53_INCLUDES) +#liblua53pplib_a_CPPFLAGS = \ +# -I$(top_srcdir)/luatexdir/luapplib -I$(top_srcdir)/luatexdir/luapplib/util $(ZLIB_INCLUDES) $(LUA_LUA53_INCLUDES) libluajitpplib_a_CPPFLAGS = \ -I$(top_srcdir)/luatexdir/luapplib -I$(top_srcdir)/luatexdir/luapplib/util $(ZLIB_INCLUDES) $(LUAJIT_INCLUDES) libluapplib_a_CFLAGS = # $(WARNING_CFLAGS) libluajitpplib_a_CFLAGS = # $(WARNING_CFLAGS) nodist_libluapplib_a_SOURCES = $(libluapplib_sources) -nodist_liblua53pplib_a_SOURCES = $(libluapplib_sources) +#nodist_liblua53pplib_a_SOURCES = $(libluapplib_sources) nodist_libluajitpplib_a_SOURCES = $(libluapplib_sources) libluapplib_sources = \ luatexdir/luapplib/ppapi.h \ @@ -4904,8 +4562,12 @@ libluapplib_sources = \ luatexdir/luapplib/ppload.h \ luatexdir/luapplib/ppstream.c \ luatexdir/luapplib/ppstream.h \ + luatexdir/luapplib/pptest1.c \ + luatexdir/luapplib/pptest2.c \ + luatexdir/luapplib/pptest3.c \ luatexdir/luapplib/ppxref.c \ luatexdir/luapplib/ppxref.h \ + luatexdir/luapplib/util/utilarm.h \ luatexdir/luapplib/util/utilbasexx.c \ luatexdir/luapplib/util/utilbasexx.h \ luatexdir/luapplib/util/utilcrypt.c \ @@ -4930,11 +4592,10 @@ libluapplib_sources = \ luatexdir/luapplib/util/utilnumber.h \ luatexdir/luapplib/util/utilplat.h \ luatexdir/luapplib/util/utilsha.c \ - luatexdir/luapplib/util/utilsha.h \ - luatexdir/luapplib/zlib/zconf.h \ - luatexdir/luapplib/zlib/zlib.h + luatexdir/luapplib/util/utilsha.h -liblua53pplib_sources = $(libluapplib_sources) + +#liblua53pplib_sources = $(libluapplib_sources) libluajitpplib_sources = $(libluapplib_sources) # Force Automake to use CXXLD for linking @@ -4946,14 +4607,14 @@ luatex_postflags = -I$(srcdir)/libmd5 -DpdfTeX -I$(srcdir)/luatexdir \ -I$(srcdir)/mplibdir -Dextra_version_info=`date +-%Y%m%d%H` \ -I$(srcdir)/synctexdir -DSYNCTEX_ENGINE_H='<synctex-luatex.h>' luatex_CPPFLAGS = $(luatex_preflags) $(LUA_INCLUDES) $(luatex_postflags) -luatex53_CPPFLAGS = $(luatex_preflags) $(LUA_LUA53_INCLUDES) $(luatex_postflags) +#luatex53_CPPFLAGS = $(luatex_preflags) $(LUA_LUA53_INCLUDES) $(luatex_postflags) luajittex_CPPFLAGS = $(luatex_preflags) $(LUAJIT_INCLUDES) \ $(LUAJIT_DEFINES) $(luatex_postflags) -DLuajitTeX luatex_CXXFLAGS = $(WARNING_CXXFLAGS) -luatex53_CXXFLAGS = $(WARNING_CXXFLAGS) +#luatex53_CXXFLAGS = $(WARNING_CXXFLAGS) luajittex_CXXFLAGS = $(WARNING_CXXFLAGS) luatex_LDFLAGS = -export-dynamic -luatex53_LDFLAGS = -export-dynamic +#luatex53_LDFLAGS = -export-dynamic luajittex_LDFLAGS = -export-dynamic $(LUAJIT_LDEXTRA) #luatex_postldadd = libmplibcore.a $(MPFR_LIBS) $(GMP_LIBS) @@ -4961,14 +4622,14 @@ luatex_postldadd = libmplibcore.a $(ZZIPLIB_LIBS) $(LIBPNG_LIBS) \ $(ZLIB_LIBS) $(LDADD) libmputil.a libunilib.a libmd5.a \ $(lua_socketlibs) luatex_LDADD = libluatex.a libff.a libluamisc.a libluasocket.a libluaffi.a libluapplib.a $(LUA_LIBS) $(luatex_postldadd) -luatex53_LDADD = liblua53tex.a libff.a liblua53misc.a liblua53socket.a liblua53ffi.a liblua53pplib.a $(LUA_LUA53_LIBS) $(luatex_postldadd) +#luatex53_LDADD = liblua53tex.a libff.a liblua53misc.a liblua53socket.a liblua53ffi.a liblua53pplib.a $(LUA_LUA53_LIBS) $(luatex_postldadd) luajittex_LDADD = libluajittex.a libff.a libluajitmisc.a libluajitsocket.a libluajitpplib.a $(LUAJIT_LIBS) $(luatex_postldadd) luatex_depend = $(proglib) $(KPATHSEA_DEPEND) $(LIBPNG_DEPEND) libmputil.a libmd5.a luatex_DEPENDENCIES = $(luatex_depend) libluatex.a -luatex53_DEPENDENCIES = $(luatex_depend) liblua53tex.a +#luatex53_DEPENDENCIES = $(luatex_depend) liblua53tex.a luajittex_DEPENDENCIES = $(luatex_depend) libluajittex.a nodist_luatex_SOURCES = $(luatex_sources) -nodist_luatex53_SOURCES = $(luatex_sources) +#nodist_luatex53_SOURCES = $(luatex_sources) nodist_luajittex_SOURCES = $(luatex_sources) luatex_sources = \ luatexdir/luatex_svnversion.h \ @@ -4979,9 +4640,10 @@ luatex_sources = \ call_luatex_CPPFLAGS = -DEXEPROG=\"luatex.exe\" nodist_call_luatex_SOURCES = callexe.c call_luatex_LDADD = -call_luatex53_CPPFLAGS = -DEXEPROG=\"luatex53.exe\" -nodist_call_luatex53_SOURCES = callexe.c -call_luatex53_LDADD = + +#call_luatex53_CPPFLAGS = -DEXEPROG=\"luatex53.exe\" +#nodist_call_luatex53_SOURCES = callexe.c +#call_luatex53_LDADD = call_luajittex_CPPFLAGS = -DEXEPROG=\"luajittex.exe\" nodist_call_luajittex_SOURCES = callexe.c call_luajittex_LDADD = @@ -4989,7 +4651,8 @@ call_luajittex_LDADD = # LuaTeX/LuaJITTeX Tests # luatex_tests = luatexdir/luatex.test luatexdir/luaimage.test -luatex53_tests = luatexdir/luatex.test luatexdir/luaimage.test +#luatex53_tests = luatexdir/luatex.test luatexdir/luaimage.test +#luatexdir/luatex53.log luatexdir/luaimage53.log: luatex53$(EXEEXT) luajittex_tests = luatexdir/luajittex.test luatexdir/luajitimage.test # Force Automake to use CXXLD for linking @@ -4999,18 +4662,18 @@ libxetex = libxetex.a xetex_cppflags = $(AM_CPPFLAGS) -I$(srcdir)/xetexdir $(ICU_INCLUDES) \ $(FREETYPE2_INCLUDES) $(TECKIT_INCLUDES) $(HARFBUZZ_INCLUDES) \ $(GRAPHITE2_INCLUDES) $(POPPLER_INCLUDES) $(LIBPNG_INCLUDES) \ - $(ZLIB_INCLUDES) -I$(srcdir)/libmd5 $(am__append_103) \ - $(am__append_105) + $(ZLIB_INCLUDES) -I$(srcdir)/libmd5 $(am__append_97) \ + $(am__append_99) xetex_ldadd = $(libxetex) $(HARFBUZZ_LIBS) $(GRAPHITE2_LIBS) \ $(ICU_LIBS) $(ICU_LIBS_EXTRA) $(TECKIT_LIBS) $(POPPLER_LIBS) \ $(LIBPNG_LIBS) $(FREETYPE2_LIBS) $(ZLIB_LIBS) libmd5.a \ - $(am__append_106) + $(am__append_100) xetex_dependencies = $(proglib) $(KPATHSEA_DEPEND) $(ICU_DEPEND) \ $(TECKIT_DEPEND) $(HARFBUZZ_DEPEND) $(GRAPHITE2_DEPEND) \ $(POPPLER_DEPEND) $(LIBPNG_DEPEND) $(FREETYPE2_DEPEND) \ $(ZLIB_DEPEND) libmd5.a @XETEX_MACOSX_TRUE@xetex_LDFLAGS = -framework ApplicationServices -framework Cocoa -xetex_CPPFLAGS = $(xetex_cppflags) $(am__append_145) +xetex_CPPFLAGS = $(xetex_cppflags) $(am__append_139) xetex_CFLAGS = $(WARNING_CFLAGS) xetex_CXXFLAGS = # $(WARNING_CXXFLAGS) xetex_LDADD = $(xetex_ldadd) $(LDADD) $(ipc_socketlibs) @@ -5021,7 +4684,7 @@ xetex_c_h = xetexini.c xetex0.c xetexcoerce.h xetexd.h nodist_xetex_SOURCES = $(xetex_c_h) xetex-pool.c dist_xetex_SOURCES = xetexdir/xetexextra.c xetexdir/xetexextra.h \ xetexdir/etex_version.h xetexdir/xetex_version.h \ - $(am__append_146) + $(am__append_140) xetex_ch_srcs = \ xetexdir/xetex.web \ xetexdir/tex.ch0 \ @@ -5048,7 +4711,7 @@ libxetex_a_SOURCES = xetexdir/XeTeXFontInst.cpp \ xetexdir/image/jpegimage.h xetexdir/image/mfileio.c \ xetexdir/image/mfileio.h xetexdir/image/numbers.c \ xetexdir/image/numbers.h xetexdir/image/pngimage.c \ - xetexdir/image/pngimage.h $(am__append_107) $(am__append_108) + xetexdir/image/pngimage.h $(am__append_101) $(am__append_102) # We must create xetexd.h etc. before building the libxetex_a_OBJECTS. libxetex_prereq = xetexd.h $(xetex_dependencies) @@ -5152,12 +4815,12 @@ synctex_SOURCES = \ synctexdir/synctex_main.c synctex_CPPFLAGS = -I$(srcdir)/synctexdir -synctex_LDADD = $(libsynctex) $(ZLIB_LIBS) $(am__append_117) +synctex_LDADD = $(libsynctex) $(ZLIB_LIBS) $(am__append_111) libsynctex = $(LTLIBSYNCTEX) $(LIBSYNCTEX) libsynctex_la_CPPFLAGS = -I$(srcdir)/synctexdir $(ZLIB_INCLUDES) -DSYNCTEX_USE_LOCAL_HEADER libsynctex_a_CPPFLAGS = $(libsynctex_la_CPPFLAGS) libsynctex_la_LDFLAGS = -rpath @libdir@ -bindir @bindir@ -no-undefined -version-info $(SYNCTEX_LT_VERSINFO) -libsynctex_la_LIBADD = $(ZLIB_LIBS) $(am__append_118) +libsynctex_la_LIBADD = $(ZLIB_LIBS) $(am__append_112) libsynctex_la_SOURCES = \ synctexdir/synctex_parser.c \ synctexdir/synctex_parser_local.h \ @@ -5631,30 +5294,30 @@ luatexdir/luaffi/$(am__dirstamp): luatexdir/luaffi/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) luatexdir/luaffi/$(DEPDIR) @: > luatexdir/luaffi/$(DEPDIR)/$(am__dirstamp) -luatexdir/luaffi/liblua53ffi_a-call.$(OBJEXT): \ +luatexdir/luaffi/libluaffi_a-call.$(OBJEXT): \ luatexdir/luaffi/$(am__dirstamp) \ luatexdir/luaffi/$(DEPDIR)/$(am__dirstamp) -luatexdir/luaffi/liblua53ffi_a-ctype.$(OBJEXT): \ +luatexdir/luaffi/libluaffi_a-ctype.$(OBJEXT): \ luatexdir/luaffi/$(am__dirstamp) \ luatexdir/luaffi/$(DEPDIR)/$(am__dirstamp) -luatexdir/luaffi/liblua53ffi_a-ffi.$(OBJEXT): \ +luatexdir/luaffi/libluaffi_a-ffi.$(OBJEXT): \ luatexdir/luaffi/$(am__dirstamp) \ luatexdir/luaffi/$(DEPDIR)/$(am__dirstamp) -luatexdir/luaffi/liblua53ffi_a-parser.$(OBJEXT): \ +luatexdir/luaffi/libluaffi_a-parser.$(OBJEXT): \ luatexdir/luaffi/$(am__dirstamp) \ luatexdir/luaffi/$(DEPDIR)/$(am__dirstamp) -liblua53ffi.a: $(liblua53ffi_a_OBJECTS) $(liblua53ffi_a_DEPENDENCIES) $(EXTRA_liblua53ffi_a_DEPENDENCIES) - $(AM_V_at)-rm -f liblua53ffi.a - $(AM_V_AR)$(liblua53ffi_a_AR) liblua53ffi.a $(liblua53ffi_a_OBJECTS) $(liblua53ffi_a_LIBADD) - $(AM_V_at)$(RANLIB) liblua53ffi.a +libluaffi.a: $(libluaffi_a_OBJECTS) $(libluaffi_a_DEPENDENCIES) $(EXTRA_libluaffi_a_DEPENDENCIES) + $(AM_V_at)-rm -f libluaffi.a + $(AM_V_AR)$(libluaffi_a_AR) libluaffi.a $(libluaffi_a_OBJECTS) $(libluaffi_a_LIBADD) + $(AM_V_at)$(RANLIB) libluaffi.a luatexdir/luafilesystem/src/$(am__dirstamp): @$(MKDIR_P) luatexdir/luafilesystem/src @: > luatexdir/luafilesystem/src/$(am__dirstamp) luatexdir/luafilesystem/src/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) luatexdir/luafilesystem/src/$(DEPDIR) @: > luatexdir/luafilesystem/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luafilesystem/src/liblua53misc_a-lfs.$(OBJEXT): \ +luatexdir/luafilesystem/src/libluajitmisc_a-lfs.$(OBJEXT): \ luatexdir/luafilesystem/src/$(am__dirstamp) \ luatexdir/luafilesystem/src/$(DEPDIR)/$(am__dirstamp) luatexdir/luamd5/$(am__dirstamp): @@ -5663,10 +5326,10 @@ luatexdir/luamd5/$(am__dirstamp): luatexdir/luamd5/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) luatexdir/luamd5/$(DEPDIR) @: > luatexdir/luamd5/$(DEPDIR)/$(am__dirstamp) -luatexdir/luamd5/liblua53misc_a-md5.$(OBJEXT): \ +luatexdir/luamd5/libluajitmisc_a-md5.$(OBJEXT): \ luatexdir/luamd5/$(am__dirstamp) \ luatexdir/luamd5/$(DEPDIR)/$(am__dirstamp) -luatexdir/luamd5/liblua53misc_a-md5lib.$(OBJEXT): \ +luatexdir/luamd5/libluajitmisc_a-md5lib.$(OBJEXT): \ luatexdir/luamd5/$(am__dirstamp) \ luatexdir/luamd5/$(DEPDIR)/$(am__dirstamp) luatexdir/luapeg/$(am__dirstamp): @@ -5675,7 +5338,7 @@ luatexdir/luapeg/$(am__dirstamp): luatexdir/luapeg/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) luatexdir/luapeg/$(DEPDIR) @: > luatexdir/luapeg/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapeg/liblua53misc_a-lpeg.$(OBJEXT): \ +luatexdir/luapeg/libluajitmisc_a-lpeg.$(OBJEXT): \ luatexdir/luapeg/$(am__dirstamp) \ luatexdir/luapeg/$(DEPDIR)/$(am__dirstamp) luatexdir/luazip/src/$(am__dirstamp): @@ -5684,7 +5347,7 @@ luatexdir/luazip/src/$(am__dirstamp): luatexdir/luazip/src/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) luatexdir/luazip/src/$(DEPDIR) @: > luatexdir/luazip/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luazip/src/liblua53misc_a-luazip.$(OBJEXT): \ +luatexdir/luazip/src/libluajitmisc_a-luazip.$(OBJEXT): \ luatexdir/luazip/src/$(am__dirstamp) \ luatexdir/luazip/src/$(DEPDIR)/$(am__dirstamp) luatexdir/luazlib/$(am__dirstamp): @@ -5693,10 +5356,10 @@ luatexdir/luazlib/$(am__dirstamp): luatexdir/luazlib/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) luatexdir/luazlib/$(DEPDIR) @: > luatexdir/luazlib/$(DEPDIR)/$(am__dirstamp) -luatexdir/luazlib/liblua53misc_a-lgzip.$(OBJEXT): \ +luatexdir/luazlib/libluajitmisc_a-lgzip.$(OBJEXT): \ luatexdir/luazlib/$(am__dirstamp) \ luatexdir/luazlib/$(DEPDIR)/$(am__dirstamp) -luatexdir/luazlib/liblua53misc_a-lzlib.$(OBJEXT): \ +luatexdir/luazlib/libluajitmisc_a-lzlib.$(OBJEXT): \ luatexdir/luazlib/$(am__dirstamp) \ luatexdir/luazlib/$(DEPDIR)/$(am__dirstamp) luatexdir/slnunicode/$(am__dirstamp): @@ -5705,39 +5368,48 @@ luatexdir/slnunicode/$(am__dirstamp): luatexdir/slnunicode/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) luatexdir/slnunicode/$(DEPDIR) @: > luatexdir/slnunicode/$(DEPDIR)/$(am__dirstamp) -luatexdir/slnunicode/liblua53misc_a-slnunico.$(OBJEXT): \ +luatexdir/slnunicode/libluajitmisc_a-slnunico.$(OBJEXT): \ luatexdir/slnunicode/$(am__dirstamp) \ luatexdir/slnunicode/$(DEPDIR)/$(am__dirstamp) -liblua53misc.a: $(liblua53misc_a_OBJECTS) $(liblua53misc_a_DEPENDENCIES) $(EXTRA_liblua53misc_a_DEPENDENCIES) - $(AM_V_at)-rm -f liblua53misc.a - $(AM_V_AR)$(liblua53misc_a_AR) liblua53misc.a $(liblua53misc_a_OBJECTS) $(liblua53misc_a_LIBADD) - $(AM_V_at)$(RANLIB) liblua53misc.a +libluajitmisc.a: $(libluajitmisc_a_OBJECTS) $(libluajitmisc_a_DEPENDENCIES) $(EXTRA_libluajitmisc_a_DEPENDENCIES) + $(AM_V_at)-rm -f libluajitmisc.a + $(AM_V_AR)$(libluajitmisc_a_AR) libluajitmisc.a $(libluajitmisc_a_OBJECTS) $(libluajitmisc_a_LIBADD) + $(AM_V_at)$(RANLIB) libluajitmisc.a luatexdir/luapplib/$(am__dirstamp): @$(MKDIR_P) luatexdir/luapplib @: > luatexdir/luapplib/$(am__dirstamp) luatexdir/luapplib/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) luatexdir/luapplib/$(DEPDIR) @: > luatexdir/luapplib/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/liblua53pplib_a-pparray.$(OBJEXT): \ +luatexdir/luapplib/libluajitpplib_a-pparray.$(OBJEXT): \ + luatexdir/luapplib/$(am__dirstamp) \ + luatexdir/luapplib/$(DEPDIR)/$(am__dirstamp) +luatexdir/luapplib/libluajitpplib_a-ppcrypt.$(OBJEXT): \ + luatexdir/luapplib/$(am__dirstamp) \ + luatexdir/luapplib/$(DEPDIR)/$(am__dirstamp) +luatexdir/luapplib/libluajitpplib_a-ppdict.$(OBJEXT): \ + luatexdir/luapplib/$(am__dirstamp) \ + luatexdir/luapplib/$(DEPDIR)/$(am__dirstamp) +luatexdir/luapplib/libluajitpplib_a-ppheap.$(OBJEXT): \ luatexdir/luapplib/$(am__dirstamp) \ luatexdir/luapplib/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/liblua53pplib_a-ppcrypt.$(OBJEXT): \ +luatexdir/luapplib/libluajitpplib_a-ppload.$(OBJEXT): \ luatexdir/luapplib/$(am__dirstamp) \ luatexdir/luapplib/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/liblua53pplib_a-ppdict.$(OBJEXT): \ +luatexdir/luapplib/libluajitpplib_a-ppstream.$(OBJEXT): \ luatexdir/luapplib/$(am__dirstamp) \ luatexdir/luapplib/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/liblua53pplib_a-ppheap.$(OBJEXT): \ +luatexdir/luapplib/libluajitpplib_a-pptest1.$(OBJEXT): \ luatexdir/luapplib/$(am__dirstamp) \ luatexdir/luapplib/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/liblua53pplib_a-ppload.$(OBJEXT): \ +luatexdir/luapplib/libluajitpplib_a-pptest2.$(OBJEXT): \ luatexdir/luapplib/$(am__dirstamp) \ luatexdir/luapplib/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/liblua53pplib_a-ppstream.$(OBJEXT): \ +luatexdir/luapplib/libluajitpplib_a-pptest3.$(OBJEXT): \ luatexdir/luapplib/$(am__dirstamp) \ luatexdir/luapplib/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/liblua53pplib_a-ppxref.$(OBJEXT): \ +luatexdir/luapplib/libluajitpplib_a-ppxref.$(OBJEXT): \ luatexdir/luapplib/$(am__dirstamp) \ luatexdir/luapplib/$(DEPDIR)/$(am__dirstamp) luatexdir/luapplib/util/$(am__dirstamp): @@ -5746,116 +5418,113 @@ luatexdir/luapplib/util/$(am__dirstamp): luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) luatexdir/luapplib/util/$(DEPDIR) @: > luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/liblua53pplib_a-utilbasexx.$(OBJEXT): \ +luatexdir/luapplib/util/libluajitpplib_a-utilbasexx.$(OBJEXT): \ luatexdir/luapplib/util/$(am__dirstamp) \ luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/liblua53pplib_a-utilcrypt.$(OBJEXT): \ +luatexdir/luapplib/util/libluajitpplib_a-utilcrypt.$(OBJEXT): \ luatexdir/luapplib/util/$(am__dirstamp) \ luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/liblua53pplib_a-utilflate.$(OBJEXT): \ +luatexdir/luapplib/util/libluajitpplib_a-utilflate.$(OBJEXT): \ luatexdir/luapplib/util/$(am__dirstamp) \ luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/liblua53pplib_a-utilfpred.$(OBJEXT): \ +luatexdir/luapplib/util/libluajitpplib_a-utilfpred.$(OBJEXT): \ luatexdir/luapplib/util/$(am__dirstamp) \ luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/liblua53pplib_a-utiliof.$(OBJEXT): \ +luatexdir/luapplib/util/libluajitpplib_a-utiliof.$(OBJEXT): \ luatexdir/luapplib/util/$(am__dirstamp) \ luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/liblua53pplib_a-utillog.$(OBJEXT): \ +luatexdir/luapplib/util/libluajitpplib_a-utillog.$(OBJEXT): \ luatexdir/luapplib/util/$(am__dirstamp) \ luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/liblua53pplib_a-utillzw.$(OBJEXT): \ +luatexdir/luapplib/util/libluajitpplib_a-utillzw.$(OBJEXT): \ luatexdir/luapplib/util/$(am__dirstamp) \ luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/liblua53pplib_a-utilmd5.$(OBJEXT): \ +luatexdir/luapplib/util/libluajitpplib_a-utilmd5.$(OBJEXT): \ luatexdir/luapplib/util/$(am__dirstamp) \ luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/liblua53pplib_a-utilmem.$(OBJEXT): \ +luatexdir/luapplib/util/libluajitpplib_a-utilmem.$(OBJEXT): \ luatexdir/luapplib/util/$(am__dirstamp) \ luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/liblua53pplib_a-utilnumber.$(OBJEXT): \ +luatexdir/luapplib/util/libluajitpplib_a-utilnumber.$(OBJEXT): \ luatexdir/luapplib/util/$(am__dirstamp) \ luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/liblua53pplib_a-utilsha.$(OBJEXT): \ +luatexdir/luapplib/util/libluajitpplib_a-utilsha.$(OBJEXT): \ luatexdir/luapplib/util/$(am__dirstamp) \ luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -liblua53pplib.a: $(liblua53pplib_a_OBJECTS) $(liblua53pplib_a_DEPENDENCIES) $(EXTRA_liblua53pplib_a_DEPENDENCIES) - $(AM_V_at)-rm -f liblua53pplib.a - $(AM_V_AR)$(liblua53pplib_a_AR) liblua53pplib.a $(liblua53pplib_a_OBJECTS) $(liblua53pplib_a_LIBADD) - $(AM_V_at)$(RANLIB) liblua53pplib.a +libluajitpplib.a: $(libluajitpplib_a_OBJECTS) $(libluajitpplib_a_DEPENDENCIES) $(EXTRA_libluajitpplib_a_DEPENDENCIES) + $(AM_V_at)-rm -f libluajitpplib.a + $(AM_V_AR)$(libluajitpplib_a_AR) libluajitpplib.a $(libluajitpplib_a_OBJECTS) $(libluajitpplib_a_LIBADD) + $(AM_V_at)$(RANLIB) libluajitpplib.a luatexdir/luasocket/src/$(am__dirstamp): @$(MKDIR_P) luatexdir/luasocket/src @: > luatexdir/luasocket/src/$(am__dirstamp) luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) luatexdir/luasocket/src/$(DEPDIR) @: > luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/liblua53socket_a-auxiliar.$(OBJEXT): \ +luatexdir/luasocket/src/libluajitsocket_a-auxiliar.$(OBJEXT): \ luatexdir/luasocket/src/$(am__dirstamp) \ luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/liblua53socket_a-buffer.$(OBJEXT): \ +luatexdir/luasocket/src/libluajitsocket_a-buffer.$(OBJEXT): \ luatexdir/luasocket/src/$(am__dirstamp) \ luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/liblua53socket_a-compat.$(OBJEXT): \ +luatexdir/luasocket/src/libluajitsocket_a-compat.$(OBJEXT): \ luatexdir/luasocket/src/$(am__dirstamp) \ luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/liblua53socket_a-except.$(OBJEXT): \ +luatexdir/luasocket/src/libluajitsocket_a-except.$(OBJEXT): \ luatexdir/luasocket/src/$(am__dirstamp) \ luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/liblua53socket_a-inet.$(OBJEXT): \ +luatexdir/luasocket/src/libluajitsocket_a-inet.$(OBJEXT): \ luatexdir/luasocket/src/$(am__dirstamp) \ luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/liblua53socket_a-io.$(OBJEXT): \ +luatexdir/luasocket/src/libluajitsocket_a-io.$(OBJEXT): \ luatexdir/luasocket/src/$(am__dirstamp) \ luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/liblua53socket_a-lua_preload.$(OBJEXT): \ +luatexdir/luasocket/src/libluajitsocket_a-lua_preload.$(OBJEXT): \ luatexdir/luasocket/src/$(am__dirstamp) \ luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/liblua53socket_a-luasocket.$(OBJEXT): \ +luatexdir/luasocket/src/libluajitsocket_a-luasocket.$(OBJEXT): \ luatexdir/luasocket/src/$(am__dirstamp) \ luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/liblua53socket_a-mime.$(OBJEXT): \ +luatexdir/luasocket/src/libluajitsocket_a-mime.$(OBJEXT): \ luatexdir/luasocket/src/$(am__dirstamp) \ luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/liblua53socket_a-options.$(OBJEXT): \ +luatexdir/luasocket/src/libluajitsocket_a-options.$(OBJEXT): \ luatexdir/luasocket/src/$(am__dirstamp) \ luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/liblua53socket_a-select.$(OBJEXT): \ +luatexdir/luasocket/src/libluajitsocket_a-select.$(OBJEXT): \ luatexdir/luasocket/src/$(am__dirstamp) \ luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/liblua53socket_a-serial.$(OBJEXT): \ +luatexdir/luasocket/src/libluajitsocket_a-serial.$(OBJEXT): \ luatexdir/luasocket/src/$(am__dirstamp) \ luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/liblua53socket_a-socket.$(OBJEXT): \ +luatexdir/luasocket/src/libluajitsocket_a-socket.$(OBJEXT): \ luatexdir/luasocket/src/$(am__dirstamp) \ luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/liblua53socket_a-tcp.$(OBJEXT): \ +luatexdir/luasocket/src/libluajitsocket_a-tcp.$(OBJEXT): \ luatexdir/luasocket/src/$(am__dirstamp) \ luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/liblua53socket_a-timeout.$(OBJEXT): \ +luatexdir/luasocket/src/libluajitsocket_a-timeout.$(OBJEXT): \ luatexdir/luasocket/src/$(am__dirstamp) \ luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/liblua53socket_a-udp.$(OBJEXT): \ +luatexdir/luasocket/src/libluajitsocket_a-udp.$(OBJEXT): \ luatexdir/luasocket/src/$(am__dirstamp) \ luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -liblua53socket.a: $(liblua53socket_a_OBJECTS) $(liblua53socket_a_DEPENDENCIES) $(EXTRA_liblua53socket_a_DEPENDENCIES) - $(AM_V_at)-rm -f liblua53socket.a - $(AM_V_AR)$(liblua53socket_a_AR) liblua53socket.a $(liblua53socket_a_OBJECTS) $(liblua53socket_a_LIBADD) - $(AM_V_at)$(RANLIB) liblua53socket.a +libluajitsocket.a: $(libluajitsocket_a_OBJECTS) $(libluajitsocket_a_DEPENDENCIES) $(EXTRA_libluajitsocket_a_DEPENDENCIES) + $(AM_V_at)-rm -f libluajitsocket.a + $(AM_V_AR)$(libluajitsocket_a_AR) libluajitsocket.a $(libluajitsocket_a_OBJECTS) $(libluajitsocket_a_LIBADD) + $(AM_V_at)$(RANLIB) libluajitsocket.a luatexdir/lua/$(am__dirstamp): @$(MKDIR_P) luatexdir/lua @: > luatexdir/lua/$(am__dirstamp) luatexdir/lua/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) luatexdir/lua/$(DEPDIR) @: > luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/liblua53tex_a-lstrlibext.$(OBJEXT): \ - luatexdir/lua/$(am__dirstamp) \ - luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/liblua53tex_a-helpers.$(OBJEXT): \ +luatexdir/lua/libluajittex_a-lstrlibext.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/liblua53tex_a-texluac.$(OBJEXT): \ +luatexdir/lua/libluajittex_a-texluajitc.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) luatexdir/luafontloader/src/$(am__dirstamp): @@ -5864,10 +5533,10 @@ luatexdir/luafontloader/src/$(am__dirstamp): luatexdir/luafontloader/src/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) luatexdir/luafontloader/src/$(DEPDIR) @: > luatexdir/luafontloader/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luafontloader/src/liblua53tex_a-ffdummies.$(OBJEXT): \ +luatexdir/luafontloader/src/libluajittex_a-ffdummies.$(OBJEXT): \ luatexdir/luafontloader/src/$(am__dirstamp) \ luatexdir/luafontloader/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luafontloader/src/liblua53tex_a-luafflib.$(OBJEXT): \ +luatexdir/luafontloader/src/libluajittex_a-luafflib.$(OBJEXT): \ luatexdir/luafontloader/src/$(am__dirstamp) \ luatexdir/luafontloader/src/$(DEPDIR)/$(am__dirstamp) luatexdir/dvi/$(am__dirstamp): @@ -5876,7 +5545,7 @@ luatexdir/dvi/$(am__dirstamp): luatexdir/dvi/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) luatexdir/dvi/$(DEPDIR) @: > luatexdir/dvi/$(DEPDIR)/$(am__dirstamp) -luatexdir/dvi/liblua53tex_a-dvigen.$(OBJEXT): \ +luatexdir/dvi/libluajittex_a-dvigen.$(OBJEXT): \ luatexdir/dvi/$(am__dirstamp) \ luatexdir/dvi/$(DEPDIR)/$(am__dirstamp) luatexdir/font/$(am__dirstamp): @@ -5885,64 +5554,64 @@ luatexdir/font/$(am__dirstamp): luatexdir/font/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) luatexdir/font/$(DEPDIR) @: > luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/liblua53tex_a-dofont.$(OBJEXT): \ +luatexdir/font/libluajittex_a-dofont.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/liblua53tex_a-luafont.$(OBJEXT): \ +luatexdir/font/libluajittex_a-luafont.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/liblua53tex_a-mapfile.$(OBJEXT): \ +luatexdir/font/libluajittex_a-mapfile.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/liblua53tex_a-pkin.$(OBJEXT): \ +luatexdir/font/libluajittex_a-pkin.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/liblua53tex_a-sfnt.$(OBJEXT): \ +luatexdir/font/libluajittex_a-sfnt.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/liblua53tex_a-texfont.$(OBJEXT): \ +luatexdir/font/libluajittex_a-texfont.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/liblua53tex_a-tfmofm.$(OBJEXT): \ +luatexdir/font/libluajittex_a-tfmofm.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/liblua53tex_a-tounicode.$(OBJEXT): \ +luatexdir/font/libluajittex_a-tounicode.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/liblua53tex_a-tt_glyf.$(OBJEXT): \ +luatexdir/font/libluajittex_a-tt_glyf.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/liblua53tex_a-tt_table.$(OBJEXT): \ +luatexdir/font/libluajittex_a-tt_table.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/liblua53tex_a-vfovf.$(OBJEXT): \ +luatexdir/font/libluajittex_a-vfovf.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/liblua53tex_a-vfpacket.$(OBJEXT): \ +luatexdir/font/libluajittex_a-vfpacket.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/liblua53tex_a-writecff.$(OBJEXT): \ +luatexdir/font/libluajittex_a-writecff.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/liblua53tex_a-writeenc.$(OBJEXT): \ +luatexdir/font/libluajittex_a-writeenc.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/liblua53tex_a-writefont.$(OBJEXT): \ +luatexdir/font/libluajittex_a-writefont.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/liblua53tex_a-writet1.$(OBJEXT): \ +luatexdir/font/libluajittex_a-writet1.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/liblua53tex_a-writet3.$(OBJEXT): \ +luatexdir/font/libluajittex_a-writet3.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/liblua53tex_a-writettf.$(OBJEXT): \ +luatexdir/font/libluajittex_a-writettf.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/liblua53tex_a-writetype0.$(OBJEXT): \ +luatexdir/font/libluajittex_a-writetype0.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/liblua53tex_a-writetype2.$(OBJEXT): \ +luatexdir/font/libluajittex_a-writetype2.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) luatexdir/image/$(am__dirstamp): @@ -5951,22 +5620,22 @@ luatexdir/image/$(am__dirstamp): luatexdir/image/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) luatexdir/image/$(DEPDIR) @: > luatexdir/image/$(DEPDIR)/$(am__dirstamp) -luatexdir/image/liblua53tex_a-pdftoepdf.$(OBJEXT): \ +luatexdir/image/libluajittex_a-pdftoepdf.$(OBJEXT): \ luatexdir/image/$(am__dirstamp) \ luatexdir/image/$(DEPDIR)/$(am__dirstamp) -luatexdir/image/liblua53tex_a-writeimg.$(OBJEXT): \ +luatexdir/image/libluajittex_a-writeimg.$(OBJEXT): \ luatexdir/image/$(am__dirstamp) \ luatexdir/image/$(DEPDIR)/$(am__dirstamp) -luatexdir/image/liblua53tex_a-writejbig2.$(OBJEXT): \ +luatexdir/image/libluajittex_a-writejbig2.$(OBJEXT): \ luatexdir/image/$(am__dirstamp) \ luatexdir/image/$(DEPDIR)/$(am__dirstamp) -luatexdir/image/liblua53tex_a-writejp2.$(OBJEXT): \ +luatexdir/image/libluajittex_a-writejp2.$(OBJEXT): \ luatexdir/image/$(am__dirstamp) \ luatexdir/image/$(DEPDIR)/$(am__dirstamp) -luatexdir/image/liblua53tex_a-writejpg.$(OBJEXT): \ +luatexdir/image/libluajittex_a-writejpg.$(OBJEXT): \ luatexdir/image/$(am__dirstamp) \ luatexdir/image/$(DEPDIR)/$(am__dirstamp) -luatexdir/image/liblua53tex_a-writepng.$(OBJEXT): \ +luatexdir/image/libluajittex_a-writepng.$(OBJEXT): \ luatexdir/image/$(am__dirstamp) \ luatexdir/image/$(DEPDIR)/$(am__dirstamp) luatexdir/lang/$(am__dirstamp): @@ -5975,79 +5644,82 @@ luatexdir/lang/$(am__dirstamp): luatexdir/lang/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) luatexdir/lang/$(DEPDIR) @: > luatexdir/lang/$(DEPDIR)/$(am__dirstamp) -luatexdir/lang/liblua53tex_a-hnjalloc.$(OBJEXT): \ +luatexdir/lang/libluajittex_a-hnjalloc.$(OBJEXT): \ luatexdir/lang/$(am__dirstamp) \ luatexdir/lang/$(DEPDIR)/$(am__dirstamp) -luatexdir/lang/liblua53tex_a-hyphen.$(OBJEXT): \ +luatexdir/lang/libluajittex_a-hyphen.$(OBJEXT): \ luatexdir/lang/$(am__dirstamp) \ luatexdir/lang/$(DEPDIR)/$(am__dirstamp) -luatexdir/lang/liblua53tex_a-texlang.$(OBJEXT): \ +luatexdir/lang/libluajittex_a-texlang.$(OBJEXT): \ luatexdir/lang/$(am__dirstamp) \ luatexdir/lang/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/liblua53tex_a-lcallbacklib.$(OBJEXT): \ +luatexdir/lua/libluajittex_a-lcallbacklib.$(OBJEXT): \ + luatexdir/lua/$(am__dirstamp) \ + luatexdir/lua/$(DEPDIR)/$(am__dirstamp) +luatexdir/lua/libluajittex_a-lfontlib.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/liblua53tex_a-lfontlib.$(OBJEXT): \ +luatexdir/lua/libluajittex_a-limglib.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/liblua53tex_a-limglib.$(OBJEXT): \ +luatexdir/lua/libluajittex_a-lpdfelib.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/liblua53tex_a-lpdfelib.$(OBJEXT): \ +luatexdir/lua/libluajittex_a-lpdfscannerlib.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/liblua53tex_a-lpdfscannerlib.$(OBJEXT): \ +luatexdir/lua/libluajittex_a-lkpselib.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/liblua53tex_a-lkpselib.$(OBJEXT): \ +luatexdir/lua/libluajittex_a-llanglib.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/liblua53tex_a-llanglib.$(OBJEXT): \ +luatexdir/lua/libluajittex_a-llualib.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/liblua53tex_a-llualib.$(OBJEXT): \ +luatexdir/lua/libluajittex_a-lnodelib.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/liblua53tex_a-lnodelib.$(OBJEXT): \ +luatexdir/lua/libluajittex_a-liolibext.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/liblua53tex_a-liolibext.$(OBJEXT): \ +luatexdir/lua/libluajittex_a-loslibext.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/liblua53tex_a-loslibext.$(OBJEXT): \ +luatexdir/lua/libluajittex_a-lpdflib.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/liblua53tex_a-lpdflib.$(OBJEXT): \ +luatexdir/lua/libluajittex_a-lstatslib.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/liblua53tex_a-lstatslib.$(OBJEXT): \ +luatexdir/lua/libluajittex_a-ltexiolib.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/liblua53tex_a-ltexiolib.$(OBJEXT): \ +luatexdir/lua/libluajittex_a-ltexlib.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/liblua53tex_a-ltexlib.$(OBJEXT): \ +luatexdir/lua/libluajittex_a-lnewtokenlib.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/liblua53tex_a-lnewtokenlib.$(OBJEXT): \ +luatexdir/lua/libluajittex_a-luatex-core.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/liblua53tex_a-luatex-core.$(OBJEXT): \ +luatexdir/lua/libluajittex_a-helpers.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/liblua53tex_a-luainit.$(OBJEXT): \ +luatexdir/lua/libluajittex_a-luainit.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/liblua53tex_a-luanode.$(OBJEXT): \ +luatexdir/lua/libluajittex_a-luanode.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/liblua53tex_a-luastuff.$(OBJEXT): \ +luatexdir/lua/libluajittex_a-luastuff.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/liblua53tex_a-luatoken.$(OBJEXT): \ +luatexdir/lua/libluajittex_a-luatoken.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/liblua53tex_a-mplibstuff.$(OBJEXT): \ +luatexdir/lua/libluajittex_a-mplibstuff.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) luatexdir/pdf/$(am__dirstamp): @@ -6056,70 +5728,70 @@ luatexdir/pdf/$(am__dirstamp): luatexdir/pdf/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) luatexdir/pdf/$(DEPDIR) @: > luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/liblua53tex_a-pdfaction.$(OBJEXT): \ +luatexdir/pdf/libluajittex_a-pdfaction.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/liblua53tex_a-pdfannot.$(OBJEXT): \ +luatexdir/pdf/libluajittex_a-pdfannot.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/liblua53tex_a-pdfcolorstack.$(OBJEXT): \ +luatexdir/pdf/libluajittex_a-pdfcolorstack.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/liblua53tex_a-pdfdest.$(OBJEXT): \ +luatexdir/pdf/libluajittex_a-pdfdest.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/liblua53tex_a-pdffont.$(OBJEXT): \ +luatexdir/pdf/libluajittex_a-pdffont.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/liblua53tex_a-pdfgen.$(OBJEXT): \ +luatexdir/pdf/libluajittex_a-pdfgen.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/liblua53tex_a-pdfglyph.$(OBJEXT): \ +luatexdir/pdf/libluajittex_a-pdfglyph.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/liblua53tex_a-pdfimage.$(OBJEXT): \ +luatexdir/pdf/libluajittex_a-pdfimage.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/liblua53tex_a-pdflink.$(OBJEXT): \ +luatexdir/pdf/libluajittex_a-pdflink.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/liblua53tex_a-pdflistout.$(OBJEXT): \ +luatexdir/pdf/libluajittex_a-pdflistout.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/liblua53tex_a-pdfliteral.$(OBJEXT): \ +luatexdir/pdf/libluajittex_a-pdfliteral.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/liblua53tex_a-pdfobj.$(OBJEXT): \ +luatexdir/pdf/libluajittex_a-pdfobj.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/liblua53tex_a-pdfoutline.$(OBJEXT): \ +luatexdir/pdf/libluajittex_a-pdfoutline.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/liblua53tex_a-pdfpage.$(OBJEXT): \ +luatexdir/pdf/libluajittex_a-pdfpage.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/liblua53tex_a-pdfpagetree.$(OBJEXT): \ +luatexdir/pdf/libluajittex_a-pdfpagetree.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/liblua53tex_a-pdfrule.$(OBJEXT): \ +luatexdir/pdf/libluajittex_a-pdfrule.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/liblua53tex_a-pdfsaverestore.$(OBJEXT): \ +luatexdir/pdf/libluajittex_a-pdfsaverestore.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/liblua53tex_a-pdfsetmatrix.$(OBJEXT): \ +luatexdir/pdf/libluajittex_a-pdfsetmatrix.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/liblua53tex_a-pdfshipout.$(OBJEXT): \ +luatexdir/pdf/libluajittex_a-pdfshipout.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/liblua53tex_a-pdftables.$(OBJEXT): \ +luatexdir/pdf/libluajittex_a-pdftables.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/liblua53tex_a-pdfthread.$(OBJEXT): \ +luatexdir/pdf/libluajittex_a-pdfthread.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/liblua53tex_a-pdfxform.$(OBJEXT): \ +luatexdir/pdf/libluajittex_a-pdfxform.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) luatexdir/tex/$(am__dirstamp): @@ -6128,103 +5800,103 @@ luatexdir/tex/$(am__dirstamp): luatexdir/tex/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) luatexdir/tex/$(DEPDIR) @: > luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-backend.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-backend.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-align.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-align.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-arithmetic.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-arithmetic.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-buildpage.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-buildpage.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-commands.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-commands.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-conditional.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-conditional.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-directions.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-directions.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-dumpdata.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-dumpdata.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-equivalents.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-equivalents.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-errors.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-errors.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-expand.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-expand.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-extensions.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-extensions.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-filename.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-filename.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-inputstack.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-inputstack.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-linebreak.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-linebreak.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-mainbody.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-mainbody.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-maincontrol.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-maincontrol.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-mathcodes.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-mathcodes.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-memoryword.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-memoryword.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-mlist.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-mlist.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-nesting.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-nesting.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-packaging.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-packaging.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-postlinebreak.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-postlinebreak.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-primitive.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-primitive.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-printing.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-printing.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-scanning.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-scanning.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-stringpool.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-stringpool.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-texdeffont.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-texdeffont.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-texfileio.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-texfileio.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-texmath.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-texmath.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-texnodes.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-texnodes.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-textcodes.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-textcodes.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/liblua53tex_a-textoken.$(OBJEXT): \ +luatexdir/tex/libluajittex_a-textoken.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) luatexdir/utils/$(am__dirstamp): @@ -6233,19 +5905,19 @@ luatexdir/utils/$(am__dirstamp): luatexdir/utils/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) luatexdir/utils/$(DEPDIR) @: > luatexdir/utils/$(DEPDIR)/$(am__dirstamp) -luatexdir/utils/liblua53tex_a-avl.$(OBJEXT): \ +luatexdir/utils/libluajittex_a-avl.$(OBJEXT): \ luatexdir/utils/$(am__dirstamp) \ luatexdir/utils/$(DEPDIR)/$(am__dirstamp) -luatexdir/utils/liblua53tex_a-avlstuff.$(OBJEXT): \ +luatexdir/utils/libluajittex_a-avlstuff.$(OBJEXT): \ luatexdir/utils/$(am__dirstamp) \ luatexdir/utils/$(DEPDIR)/$(am__dirstamp) -luatexdir/utils/liblua53tex_a-managed-sa.$(OBJEXT): \ +luatexdir/utils/libluajittex_a-managed-sa.$(OBJEXT): \ luatexdir/utils/$(am__dirstamp) \ luatexdir/utils/$(DEPDIR)/$(am__dirstamp) -luatexdir/utils/liblua53tex_a-unistring.$(OBJEXT): \ +luatexdir/utils/libluajittex_a-unistring.$(OBJEXT): \ luatexdir/utils/$(am__dirstamp) \ luatexdir/utils/$(DEPDIR)/$(am__dirstamp) -luatexdir/utils/liblua53tex_a-utils.$(OBJEXT): \ +luatexdir/utils/libluajittex_a-utils.$(OBJEXT): \ luatexdir/utils/$(am__dirstamp) \ luatexdir/utils/$(DEPDIR)/$(am__dirstamp) synctexdir/$(am__dirstamp): @@ -6254,1065 +5926,557 @@ synctexdir/$(am__dirstamp): synctexdir/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) synctexdir/$(DEPDIR) @: > synctexdir/$(DEPDIR)/$(am__dirstamp) -synctexdir/liblua53tex_a-synctex.$(OBJEXT): \ +synctexdir/libluajittex_a-synctex.$(OBJEXT): \ synctexdir/$(am__dirstamp) \ synctexdir/$(DEPDIR)/$(am__dirstamp) -liblua53tex.a: $(liblua53tex_a_OBJECTS) $(liblua53tex_a_DEPENDENCIES) $(EXTRA_liblua53tex_a_DEPENDENCIES) - $(AM_V_at)-rm -f liblua53tex.a - $(AM_V_AR)$(liblua53tex_a_AR) liblua53tex.a $(liblua53tex_a_OBJECTS) $(liblua53tex_a_LIBADD) - $(AM_V_at)$(RANLIB) liblua53tex.a -luatexdir/luaffi/libluaffi_a-call.$(OBJEXT): \ - luatexdir/luaffi/$(am__dirstamp) \ - luatexdir/luaffi/$(DEPDIR)/$(am__dirstamp) -luatexdir/luaffi/libluaffi_a-ctype.$(OBJEXT): \ - luatexdir/luaffi/$(am__dirstamp) \ - luatexdir/luaffi/$(DEPDIR)/$(am__dirstamp) -luatexdir/luaffi/libluaffi_a-ffi.$(OBJEXT): \ - luatexdir/luaffi/$(am__dirstamp) \ - luatexdir/luaffi/$(DEPDIR)/$(am__dirstamp) -luatexdir/luaffi/libluaffi_a-parser.$(OBJEXT): \ - luatexdir/luaffi/$(am__dirstamp) \ - luatexdir/luaffi/$(DEPDIR)/$(am__dirstamp) - -libluaffi.a: $(libluaffi_a_OBJECTS) $(libluaffi_a_DEPENDENCIES) $(EXTRA_libluaffi_a_DEPENDENCIES) - $(AM_V_at)-rm -f libluaffi.a - $(AM_V_AR)$(libluaffi_a_AR) libluaffi.a $(libluaffi_a_OBJECTS) $(libluaffi_a_LIBADD) - $(AM_V_at)$(RANLIB) libluaffi.a -luatexdir/luafilesystem/src/libluajitmisc_a-lfs.$(OBJEXT): \ +libluajittex.a: $(libluajittex_a_OBJECTS) $(libluajittex_a_DEPENDENCIES) $(EXTRA_libluajittex_a_DEPENDENCIES) + $(AM_V_at)-rm -f libluajittex.a + $(AM_V_AR)$(libluajittex_a_AR) libluajittex.a $(libluajittex_a_OBJECTS) $(libluajittex_a_LIBADD) + $(AM_V_at)$(RANLIB) libluajittex.a +luatexdir/luafilesystem/src/libluamisc_a-lfs.$(OBJEXT): \ luatexdir/luafilesystem/src/$(am__dirstamp) \ luatexdir/luafilesystem/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luamd5/libluajitmisc_a-md5.$(OBJEXT): \ +luatexdir/luamd5/libluamisc_a-md5.$(OBJEXT): \ luatexdir/luamd5/$(am__dirstamp) \ luatexdir/luamd5/$(DEPDIR)/$(am__dirstamp) -luatexdir/luamd5/libluajitmisc_a-md5lib.$(OBJEXT): \ +luatexdir/luamd5/libluamisc_a-md5lib.$(OBJEXT): \ luatexdir/luamd5/$(am__dirstamp) \ luatexdir/luamd5/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapeg/libluajitmisc_a-lpeg.$(OBJEXT): \ +luatexdir/luapeg/libluamisc_a-lpeg.$(OBJEXT): \ luatexdir/luapeg/$(am__dirstamp) \ luatexdir/luapeg/$(DEPDIR)/$(am__dirstamp) -luatexdir/luazip/src/libluajitmisc_a-luazip.$(OBJEXT): \ +luatexdir/luazip/src/libluamisc_a-luazip.$(OBJEXT): \ luatexdir/luazip/src/$(am__dirstamp) \ luatexdir/luazip/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luazlib/libluajitmisc_a-lgzip.$(OBJEXT): \ +luatexdir/luazlib/libluamisc_a-lgzip.$(OBJEXT): \ luatexdir/luazlib/$(am__dirstamp) \ luatexdir/luazlib/$(DEPDIR)/$(am__dirstamp) -luatexdir/luazlib/libluajitmisc_a-lzlib.$(OBJEXT): \ +luatexdir/luazlib/libluamisc_a-lzlib.$(OBJEXT): \ luatexdir/luazlib/$(am__dirstamp) \ luatexdir/luazlib/$(DEPDIR)/$(am__dirstamp) -luatexdir/slnunicode/libluajitmisc_a-slnunico.$(OBJEXT): \ +luatexdir/slnunicode/libluamisc_a-slnunico.$(OBJEXT): \ luatexdir/slnunicode/$(am__dirstamp) \ luatexdir/slnunicode/$(DEPDIR)/$(am__dirstamp) -libluajitmisc.a: $(libluajitmisc_a_OBJECTS) $(libluajitmisc_a_DEPENDENCIES) $(EXTRA_libluajitmisc_a_DEPENDENCIES) - $(AM_V_at)-rm -f libluajitmisc.a - $(AM_V_AR)$(libluajitmisc_a_AR) libluajitmisc.a $(libluajitmisc_a_OBJECTS) $(libluajitmisc_a_LIBADD) - $(AM_V_at)$(RANLIB) libluajitmisc.a -luatexdir/luapplib/libluajitpplib_a-pparray.$(OBJEXT): \ +libluamisc.a: $(libluamisc_a_OBJECTS) $(libluamisc_a_DEPENDENCIES) $(EXTRA_libluamisc_a_DEPENDENCIES) + $(AM_V_at)-rm -f libluamisc.a + $(AM_V_AR)$(libluamisc_a_AR) libluamisc.a $(libluamisc_a_OBJECTS) $(libluamisc_a_LIBADD) + $(AM_V_at)$(RANLIB) libluamisc.a +luatexdir/luapplib/libluapplib_a-pparray.$(OBJEXT): \ luatexdir/luapplib/$(am__dirstamp) \ luatexdir/luapplib/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/libluajitpplib_a-ppcrypt.$(OBJEXT): \ +luatexdir/luapplib/libluapplib_a-ppcrypt.$(OBJEXT): \ luatexdir/luapplib/$(am__dirstamp) \ luatexdir/luapplib/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/libluajitpplib_a-ppdict.$(OBJEXT): \ +luatexdir/luapplib/libluapplib_a-ppdict.$(OBJEXT): \ luatexdir/luapplib/$(am__dirstamp) \ luatexdir/luapplib/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/libluajitpplib_a-ppheap.$(OBJEXT): \ +luatexdir/luapplib/libluapplib_a-ppheap.$(OBJEXT): \ luatexdir/luapplib/$(am__dirstamp) \ luatexdir/luapplib/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/libluajitpplib_a-ppload.$(OBJEXT): \ +luatexdir/luapplib/libluapplib_a-ppload.$(OBJEXT): \ luatexdir/luapplib/$(am__dirstamp) \ luatexdir/luapplib/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/libluajitpplib_a-ppstream.$(OBJEXT): \ +luatexdir/luapplib/libluapplib_a-ppstream.$(OBJEXT): \ luatexdir/luapplib/$(am__dirstamp) \ luatexdir/luapplib/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/libluajitpplib_a-ppxref.$(OBJEXT): \ +luatexdir/luapplib/libluapplib_a-pptest1.$(OBJEXT): \ luatexdir/luapplib/$(am__dirstamp) \ luatexdir/luapplib/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/libluajitpplib_a-utilbasexx.$(OBJEXT): \ +luatexdir/luapplib/libluapplib_a-pptest2.$(OBJEXT): \ + luatexdir/luapplib/$(am__dirstamp) \ + luatexdir/luapplib/$(DEPDIR)/$(am__dirstamp) +luatexdir/luapplib/libluapplib_a-pptest3.$(OBJEXT): \ + luatexdir/luapplib/$(am__dirstamp) \ + luatexdir/luapplib/$(DEPDIR)/$(am__dirstamp) +luatexdir/luapplib/libluapplib_a-ppxref.$(OBJEXT): \ + luatexdir/luapplib/$(am__dirstamp) \ + luatexdir/luapplib/$(DEPDIR)/$(am__dirstamp) +luatexdir/luapplib/util/libluapplib_a-utilbasexx.$(OBJEXT): \ luatexdir/luapplib/util/$(am__dirstamp) \ luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/libluajitpplib_a-utilcrypt.$(OBJEXT): \ +luatexdir/luapplib/util/libluapplib_a-utilcrypt.$(OBJEXT): \ luatexdir/luapplib/util/$(am__dirstamp) \ luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/libluajitpplib_a-utilflate.$(OBJEXT): \ +luatexdir/luapplib/util/libluapplib_a-utilflate.$(OBJEXT): \ luatexdir/luapplib/util/$(am__dirstamp) \ luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/libluajitpplib_a-utilfpred.$(OBJEXT): \ +luatexdir/luapplib/util/libluapplib_a-utilfpred.$(OBJEXT): \ luatexdir/luapplib/util/$(am__dirstamp) \ luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/libluajitpplib_a-utiliof.$(OBJEXT): \ +luatexdir/luapplib/util/libluapplib_a-utiliof.$(OBJEXT): \ luatexdir/luapplib/util/$(am__dirstamp) \ luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/libluajitpplib_a-utillog.$(OBJEXT): \ +luatexdir/luapplib/util/libluapplib_a-utillog.$(OBJEXT): \ luatexdir/luapplib/util/$(am__dirstamp) \ luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/libluajitpplib_a-utillzw.$(OBJEXT): \ +luatexdir/luapplib/util/libluapplib_a-utillzw.$(OBJEXT): \ luatexdir/luapplib/util/$(am__dirstamp) \ luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/libluajitpplib_a-utilmd5.$(OBJEXT): \ +luatexdir/luapplib/util/libluapplib_a-utilmd5.$(OBJEXT): \ luatexdir/luapplib/util/$(am__dirstamp) \ luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/libluajitpplib_a-utilmem.$(OBJEXT): \ +luatexdir/luapplib/util/libluapplib_a-utilmem.$(OBJEXT): \ luatexdir/luapplib/util/$(am__dirstamp) \ luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/libluajitpplib_a-utilnumber.$(OBJEXT): \ +luatexdir/luapplib/util/libluapplib_a-utilnumber.$(OBJEXT): \ luatexdir/luapplib/util/$(am__dirstamp) \ luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/libluajitpplib_a-utilsha.$(OBJEXT): \ +luatexdir/luapplib/util/libluapplib_a-utilsha.$(OBJEXT): \ luatexdir/luapplib/util/$(am__dirstamp) \ luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -libluajitpplib.a: $(libluajitpplib_a_OBJECTS) $(libluajitpplib_a_DEPENDENCIES) $(EXTRA_libluajitpplib_a_DEPENDENCIES) - $(AM_V_at)-rm -f libluajitpplib.a - $(AM_V_AR)$(libluajitpplib_a_AR) libluajitpplib.a $(libluajitpplib_a_OBJECTS) $(libluajitpplib_a_LIBADD) - $(AM_V_at)$(RANLIB) libluajitpplib.a -luatexdir/luasocket/src/libluajitsocket_a-auxiliar.$(OBJEXT): \ +libluapplib.a: $(libluapplib_a_OBJECTS) $(libluapplib_a_DEPENDENCIES) $(EXTRA_libluapplib_a_DEPENDENCIES) + $(AM_V_at)-rm -f libluapplib.a + $(AM_V_AR)$(libluapplib_a_AR) libluapplib.a $(libluapplib_a_OBJECTS) $(libluapplib_a_LIBADD) + $(AM_V_at)$(RANLIB) libluapplib.a +luatexdir/luasocket/src/libluasocket_a-auxiliar.$(OBJEXT): \ luatexdir/luasocket/src/$(am__dirstamp) \ luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/libluajitsocket_a-buffer.$(OBJEXT): \ +luatexdir/luasocket/src/libluasocket_a-buffer.$(OBJEXT): \ luatexdir/luasocket/src/$(am__dirstamp) \ luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/libluajitsocket_a-compat.$(OBJEXT): \ +luatexdir/luasocket/src/libluasocket_a-compat.$(OBJEXT): \ luatexdir/luasocket/src/$(am__dirstamp) \ luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/libluajitsocket_a-except.$(OBJEXT): \ +luatexdir/luasocket/src/libluasocket_a-except.$(OBJEXT): \ luatexdir/luasocket/src/$(am__dirstamp) \ luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/libluajitsocket_a-inet.$(OBJEXT): \ +luatexdir/luasocket/src/libluasocket_a-inet.$(OBJEXT): \ luatexdir/luasocket/src/$(am__dirstamp) \ luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/libluajitsocket_a-io.$(OBJEXT): \ +luatexdir/luasocket/src/libluasocket_a-io.$(OBJEXT): \ luatexdir/luasocket/src/$(am__dirstamp) \ luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/libluajitsocket_a-lua_preload.$(OBJEXT): \ +luatexdir/luasocket/src/libluasocket_a-lua_preload.$(OBJEXT): \ luatexdir/luasocket/src/$(am__dirstamp) \ luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/libluajitsocket_a-luasocket.$(OBJEXT): \ +luatexdir/luasocket/src/libluasocket_a-luasocket.$(OBJEXT): \ luatexdir/luasocket/src/$(am__dirstamp) \ luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/libluajitsocket_a-mime.$(OBJEXT): \ +luatexdir/luasocket/src/libluasocket_a-mime.$(OBJEXT): \ luatexdir/luasocket/src/$(am__dirstamp) \ luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/libluajitsocket_a-options.$(OBJEXT): \ +luatexdir/luasocket/src/libluasocket_a-options.$(OBJEXT): \ luatexdir/luasocket/src/$(am__dirstamp) \ luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/libluajitsocket_a-select.$(OBJEXT): \ +luatexdir/luasocket/src/libluasocket_a-select.$(OBJEXT): \ luatexdir/luasocket/src/$(am__dirstamp) \ luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/libluajitsocket_a-serial.$(OBJEXT): \ +luatexdir/luasocket/src/libluasocket_a-serial.$(OBJEXT): \ luatexdir/luasocket/src/$(am__dirstamp) \ luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/libluajitsocket_a-socket.$(OBJEXT): \ +luatexdir/luasocket/src/libluasocket_a-socket.$(OBJEXT): \ luatexdir/luasocket/src/$(am__dirstamp) \ luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/libluajitsocket_a-tcp.$(OBJEXT): \ +luatexdir/luasocket/src/libluasocket_a-tcp.$(OBJEXT): \ luatexdir/luasocket/src/$(am__dirstamp) \ luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/libluajitsocket_a-timeout.$(OBJEXT): \ +luatexdir/luasocket/src/libluasocket_a-timeout.$(OBJEXT): \ luatexdir/luasocket/src/$(am__dirstamp) \ luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/libluajitsocket_a-udp.$(OBJEXT): \ +luatexdir/luasocket/src/libluasocket_a-udp.$(OBJEXT): \ luatexdir/luasocket/src/$(am__dirstamp) \ luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -libluajitsocket.a: $(libluajitsocket_a_OBJECTS) $(libluajitsocket_a_DEPENDENCIES) $(EXTRA_libluajitsocket_a_DEPENDENCIES) - $(AM_V_at)-rm -f libluajitsocket.a - $(AM_V_AR)$(libluajitsocket_a_AR) libluajitsocket.a $(libluajitsocket_a_OBJECTS) $(libluajitsocket_a_LIBADD) - $(AM_V_at)$(RANLIB) libluajitsocket.a -luatexdir/lua/libluajittex_a-lstrlibext.$(OBJEXT): \ +libluasocket.a: $(libluasocket_a_OBJECTS) $(libluasocket_a_DEPENDENCIES) $(EXTRA_libluasocket_a_DEPENDENCIES) + $(AM_V_at)-rm -f libluasocket.a + $(AM_V_AR)$(libluasocket_a_AR) libluasocket.a $(libluasocket_a_OBJECTS) $(libluasocket_a_LIBADD) + $(AM_V_at)$(RANLIB) libluasocket.a +luatexdir/lua/libluatex_a-lstrlibext.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluajittex_a-texluajitc.$(OBJEXT): \ +luatexdir/lua/libluatex_a-helpers.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/luafontloader/src/libluajittex_a-ffdummies.$(OBJEXT): \ +luatexdir/lua/libluatex_a-texluac.$(OBJEXT): \ + luatexdir/lua/$(am__dirstamp) \ + luatexdir/lua/$(DEPDIR)/$(am__dirstamp) +luatexdir/luafontloader/src/libluatex_a-ffdummies.$(OBJEXT): \ luatexdir/luafontloader/src/$(am__dirstamp) \ luatexdir/luafontloader/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luafontloader/src/libluajittex_a-luafflib.$(OBJEXT): \ +luatexdir/luafontloader/src/libluatex_a-luafflib.$(OBJEXT): \ luatexdir/luafontloader/src/$(am__dirstamp) \ luatexdir/luafontloader/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/dvi/libluajittex_a-dvigen.$(OBJEXT): \ +luatexdir/dvi/libluatex_a-dvigen.$(OBJEXT): \ luatexdir/dvi/$(am__dirstamp) \ luatexdir/dvi/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluajittex_a-dofont.$(OBJEXT): \ +luatexdir/font/libluatex_a-dofont.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluajittex_a-luafont.$(OBJEXT): \ +luatexdir/font/libluatex_a-luafont.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluajittex_a-mapfile.$(OBJEXT): \ +luatexdir/font/libluatex_a-mapfile.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluajittex_a-pkin.$(OBJEXT): \ +luatexdir/font/libluatex_a-pkin.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluajittex_a-sfnt.$(OBJEXT): \ +luatexdir/font/libluatex_a-sfnt.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluajittex_a-texfont.$(OBJEXT): \ +luatexdir/font/libluatex_a-texfont.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluajittex_a-tfmofm.$(OBJEXT): \ +luatexdir/font/libluatex_a-tfmofm.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluajittex_a-tounicode.$(OBJEXT): \ +luatexdir/font/libluatex_a-tounicode.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluajittex_a-tt_glyf.$(OBJEXT): \ +luatexdir/font/libluatex_a-tt_glyf.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluajittex_a-tt_table.$(OBJEXT): \ +luatexdir/font/libluatex_a-tt_table.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluajittex_a-vfovf.$(OBJEXT): \ +luatexdir/font/libluatex_a-vfovf.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluajittex_a-vfpacket.$(OBJEXT): \ +luatexdir/font/libluatex_a-vfpacket.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluajittex_a-writecff.$(OBJEXT): \ +luatexdir/font/libluatex_a-writecff.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluajittex_a-writeenc.$(OBJEXT): \ +luatexdir/font/libluatex_a-writeenc.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluajittex_a-writefont.$(OBJEXT): \ +luatexdir/font/libluatex_a-writefont.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluajittex_a-writet1.$(OBJEXT): \ +luatexdir/font/libluatex_a-writet1.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluajittex_a-writet3.$(OBJEXT): \ +luatexdir/font/libluatex_a-writet3.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluajittex_a-writettf.$(OBJEXT): \ +luatexdir/font/libluatex_a-writettf.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluajittex_a-writetype0.$(OBJEXT): \ +luatexdir/font/libluatex_a-writetype0.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluajittex_a-writetype2.$(OBJEXT): \ +luatexdir/font/libluatex_a-writetype2.$(OBJEXT): \ luatexdir/font/$(am__dirstamp) \ luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/image/libluajittex_a-pdftoepdf.$(OBJEXT): \ +luatexdir/image/libluatex_a-pdftoepdf.$(OBJEXT): \ luatexdir/image/$(am__dirstamp) \ luatexdir/image/$(DEPDIR)/$(am__dirstamp) -luatexdir/image/libluajittex_a-writeimg.$(OBJEXT): \ +luatexdir/image/libluatex_a-writeimg.$(OBJEXT): \ luatexdir/image/$(am__dirstamp) \ luatexdir/image/$(DEPDIR)/$(am__dirstamp) -luatexdir/image/libluajittex_a-writejbig2.$(OBJEXT): \ +luatexdir/image/libluatex_a-writejbig2.$(OBJEXT): \ luatexdir/image/$(am__dirstamp) \ luatexdir/image/$(DEPDIR)/$(am__dirstamp) -luatexdir/image/libluajittex_a-writejp2.$(OBJEXT): \ +luatexdir/image/libluatex_a-writejp2.$(OBJEXT): \ luatexdir/image/$(am__dirstamp) \ luatexdir/image/$(DEPDIR)/$(am__dirstamp) -luatexdir/image/libluajittex_a-writejpg.$(OBJEXT): \ +luatexdir/image/libluatex_a-writejpg.$(OBJEXT): \ luatexdir/image/$(am__dirstamp) \ luatexdir/image/$(DEPDIR)/$(am__dirstamp) -luatexdir/image/libluajittex_a-writepng.$(OBJEXT): \ +luatexdir/image/libluatex_a-writepng.$(OBJEXT): \ luatexdir/image/$(am__dirstamp) \ luatexdir/image/$(DEPDIR)/$(am__dirstamp) -luatexdir/lang/libluajittex_a-hnjalloc.$(OBJEXT): \ +luatexdir/lang/libluatex_a-hnjalloc.$(OBJEXT): \ luatexdir/lang/$(am__dirstamp) \ luatexdir/lang/$(DEPDIR)/$(am__dirstamp) -luatexdir/lang/libluajittex_a-hyphen.$(OBJEXT): \ +luatexdir/lang/libluatex_a-hyphen.$(OBJEXT): \ luatexdir/lang/$(am__dirstamp) \ luatexdir/lang/$(DEPDIR)/$(am__dirstamp) -luatexdir/lang/libluajittex_a-texlang.$(OBJEXT): \ +luatexdir/lang/libluatex_a-texlang.$(OBJEXT): \ luatexdir/lang/$(am__dirstamp) \ luatexdir/lang/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluajittex_a-lcallbacklib.$(OBJEXT): \ - luatexdir/lua/$(am__dirstamp) \ - luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluajittex_a-lfontlib.$(OBJEXT): \ +luatexdir/lua/libluatex_a-lcallbacklib.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluajittex_a-limglib.$(OBJEXT): \ +luatexdir/lua/libluatex_a-lfontlib.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluajittex_a-lpdfelib.$(OBJEXT): \ +luatexdir/lua/libluatex_a-limglib.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluajittex_a-lpdfscannerlib.$(OBJEXT): \ +luatexdir/lua/libluatex_a-lpdfelib.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluajittex_a-lkpselib.$(OBJEXT): \ +luatexdir/lua/libluatex_a-lpdfscannerlib.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluajittex_a-llanglib.$(OBJEXT): \ +luatexdir/lua/libluatex_a-lkpselib.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluajittex_a-llualib.$(OBJEXT): \ +luatexdir/lua/libluatex_a-llanglib.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluajittex_a-lnodelib.$(OBJEXT): \ +luatexdir/lua/libluatex_a-llualib.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluajittex_a-liolibext.$(OBJEXT): \ +luatexdir/lua/libluatex_a-lnodelib.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluajittex_a-loslibext.$(OBJEXT): \ +luatexdir/lua/libluatex_a-liolibext.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluajittex_a-lpdflib.$(OBJEXT): \ +luatexdir/lua/libluatex_a-loslibext.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluajittex_a-lstatslib.$(OBJEXT): \ +luatexdir/lua/libluatex_a-lpdflib.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluajittex_a-ltexiolib.$(OBJEXT): \ +luatexdir/lua/libluatex_a-lstatslib.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluajittex_a-ltexlib.$(OBJEXT): \ +luatexdir/lua/libluatex_a-ltexiolib.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluajittex_a-lnewtokenlib.$(OBJEXT): \ +luatexdir/lua/libluatex_a-ltexlib.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluajittex_a-luatex-core.$(OBJEXT): \ +luatexdir/lua/libluatex_a-lnewtokenlib.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluajittex_a-helpers.$(OBJEXT): \ +luatexdir/lua/libluatex_a-luatex-core.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluajittex_a-luainit.$(OBJEXT): \ +luatexdir/lua/libluatex_a-luainit.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluajittex_a-luanode.$(OBJEXT): \ +luatexdir/lua/libluatex_a-luanode.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluajittex_a-luastuff.$(OBJEXT): \ +luatexdir/lua/libluatex_a-luastuff.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluajittex_a-luatoken.$(OBJEXT): \ +luatexdir/lua/libluatex_a-luatoken.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluajittex_a-mplibstuff.$(OBJEXT): \ +luatexdir/lua/libluatex_a-mplibstuff.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluajittex_a-pdfaction.$(OBJEXT): \ +luatexdir/pdf/libluatex_a-pdfaction.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluajittex_a-pdfannot.$(OBJEXT): \ +luatexdir/pdf/libluatex_a-pdfannot.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluajittex_a-pdfcolorstack.$(OBJEXT): \ +luatexdir/pdf/libluatex_a-pdfcolorstack.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluajittex_a-pdfdest.$(OBJEXT): \ +luatexdir/pdf/libluatex_a-pdfdest.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluajittex_a-pdffont.$(OBJEXT): \ +luatexdir/pdf/libluatex_a-pdffont.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluajittex_a-pdfgen.$(OBJEXT): \ +luatexdir/pdf/libluatex_a-pdfgen.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluajittex_a-pdfglyph.$(OBJEXT): \ +luatexdir/pdf/libluatex_a-pdfglyph.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluajittex_a-pdfimage.$(OBJEXT): \ +luatexdir/pdf/libluatex_a-pdfimage.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluajittex_a-pdflink.$(OBJEXT): \ +luatexdir/pdf/libluatex_a-pdflink.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluajittex_a-pdflistout.$(OBJEXT): \ +luatexdir/pdf/libluatex_a-pdflistout.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluajittex_a-pdfliteral.$(OBJEXT): \ +luatexdir/pdf/libluatex_a-pdfliteral.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluajittex_a-pdfobj.$(OBJEXT): \ +luatexdir/pdf/libluatex_a-pdfobj.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluajittex_a-pdfoutline.$(OBJEXT): \ +luatexdir/pdf/libluatex_a-pdfoutline.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluajittex_a-pdfpage.$(OBJEXT): \ +luatexdir/pdf/libluatex_a-pdfpage.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluajittex_a-pdfpagetree.$(OBJEXT): \ +luatexdir/pdf/libluatex_a-pdfpagetree.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluajittex_a-pdfrule.$(OBJEXT): \ +luatexdir/pdf/libluatex_a-pdfrule.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluajittex_a-pdfsaverestore.$(OBJEXT): \ +luatexdir/pdf/libluatex_a-pdfsaverestore.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluajittex_a-pdfsetmatrix.$(OBJEXT): \ +luatexdir/pdf/libluatex_a-pdfsetmatrix.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluajittex_a-pdfshipout.$(OBJEXT): \ +luatexdir/pdf/libluatex_a-pdfshipout.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluajittex_a-pdftables.$(OBJEXT): \ +luatexdir/pdf/libluatex_a-pdftables.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluajittex_a-pdfthread.$(OBJEXT): \ +luatexdir/pdf/libluatex_a-pdfthread.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluajittex_a-pdfxform.$(OBJEXT): \ +luatexdir/pdf/libluatex_a-pdfxform.$(OBJEXT): \ luatexdir/pdf/$(am__dirstamp) \ luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-backend.$(OBJEXT): \ +luatexdir/tex/libluatex_a-backend.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-align.$(OBJEXT): \ +luatexdir/tex/libluatex_a-align.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-arithmetic.$(OBJEXT): \ +luatexdir/tex/libluatex_a-arithmetic.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-buildpage.$(OBJEXT): \ +luatexdir/tex/libluatex_a-buildpage.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-commands.$(OBJEXT): \ +luatexdir/tex/libluatex_a-commands.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-conditional.$(OBJEXT): \ +luatexdir/tex/libluatex_a-conditional.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-directions.$(OBJEXT): \ +luatexdir/tex/libluatex_a-directions.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-dumpdata.$(OBJEXT): \ +luatexdir/tex/libluatex_a-dumpdata.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-equivalents.$(OBJEXT): \ +luatexdir/tex/libluatex_a-equivalents.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-errors.$(OBJEXT): \ +luatexdir/tex/libluatex_a-errors.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-expand.$(OBJEXT): \ +luatexdir/tex/libluatex_a-expand.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-extensions.$(OBJEXT): \ +luatexdir/tex/libluatex_a-extensions.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-filename.$(OBJEXT): \ +luatexdir/tex/libluatex_a-filename.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-inputstack.$(OBJEXT): \ +luatexdir/tex/libluatex_a-inputstack.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-linebreak.$(OBJEXT): \ +luatexdir/tex/libluatex_a-linebreak.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-mainbody.$(OBJEXT): \ +luatexdir/tex/libluatex_a-mainbody.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-maincontrol.$(OBJEXT): \ +luatexdir/tex/libluatex_a-maincontrol.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-mathcodes.$(OBJEXT): \ +luatexdir/tex/libluatex_a-mathcodes.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-memoryword.$(OBJEXT): \ +luatexdir/tex/libluatex_a-memoryword.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-mlist.$(OBJEXT): \ +luatexdir/tex/libluatex_a-mlist.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-nesting.$(OBJEXT): \ +luatexdir/tex/libluatex_a-nesting.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-packaging.$(OBJEXT): \ +luatexdir/tex/libluatex_a-packaging.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-postlinebreak.$(OBJEXT): \ +luatexdir/tex/libluatex_a-postlinebreak.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-primitive.$(OBJEXT): \ +luatexdir/tex/libluatex_a-primitive.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-printing.$(OBJEXT): \ +luatexdir/tex/libluatex_a-printing.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-scanning.$(OBJEXT): \ +luatexdir/tex/libluatex_a-scanning.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-stringpool.$(OBJEXT): \ +luatexdir/tex/libluatex_a-stringpool.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-texdeffont.$(OBJEXT): \ +luatexdir/tex/libluatex_a-texdeffont.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-texfileio.$(OBJEXT): \ +luatexdir/tex/libluatex_a-texfileio.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-texmath.$(OBJEXT): \ +luatexdir/tex/libluatex_a-texmath.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-texnodes.$(OBJEXT): \ +luatexdir/tex/libluatex_a-texnodes.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-textcodes.$(OBJEXT): \ +luatexdir/tex/libluatex_a-textcodes.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluajittex_a-textoken.$(OBJEXT): \ +luatexdir/tex/libluatex_a-textoken.$(OBJEXT): \ luatexdir/tex/$(am__dirstamp) \ luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/utils/libluajittex_a-avl.$(OBJEXT): \ +luatexdir/utils/libluatex_a-avl.$(OBJEXT): \ luatexdir/utils/$(am__dirstamp) \ luatexdir/utils/$(DEPDIR)/$(am__dirstamp) -luatexdir/utils/libluajittex_a-avlstuff.$(OBJEXT): \ +luatexdir/utils/libluatex_a-avlstuff.$(OBJEXT): \ luatexdir/utils/$(am__dirstamp) \ luatexdir/utils/$(DEPDIR)/$(am__dirstamp) -luatexdir/utils/libluajittex_a-managed-sa.$(OBJEXT): \ +luatexdir/utils/libluatex_a-managed-sa.$(OBJEXT): \ luatexdir/utils/$(am__dirstamp) \ luatexdir/utils/$(DEPDIR)/$(am__dirstamp) -luatexdir/utils/libluajittex_a-unistring.$(OBJEXT): \ +luatexdir/utils/libluatex_a-unistring.$(OBJEXT): \ luatexdir/utils/$(am__dirstamp) \ luatexdir/utils/$(DEPDIR)/$(am__dirstamp) -luatexdir/utils/libluajittex_a-utils.$(OBJEXT): \ +luatexdir/utils/libluatex_a-utils.$(OBJEXT): \ luatexdir/utils/$(am__dirstamp) \ luatexdir/utils/$(DEPDIR)/$(am__dirstamp) -synctexdir/libluajittex_a-synctex.$(OBJEXT): \ - synctexdir/$(am__dirstamp) \ +synctexdir/libluatex_a-synctex.$(OBJEXT): synctexdir/$(am__dirstamp) \ synctexdir/$(DEPDIR)/$(am__dirstamp) -libluajittex.a: $(libluajittex_a_OBJECTS) $(libluajittex_a_DEPENDENCIES) $(EXTRA_libluajittex_a_DEPENDENCIES) - $(AM_V_at)-rm -f libluajittex.a - $(AM_V_AR)$(libluajittex_a_AR) libluajittex.a $(libluajittex_a_OBJECTS) $(libluajittex_a_LIBADD) - $(AM_V_at)$(RANLIB) libluajittex.a -luatexdir/luafilesystem/src/libluamisc_a-lfs.$(OBJEXT): \ - luatexdir/luafilesystem/src/$(am__dirstamp) \ - luatexdir/luafilesystem/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luamd5/libluamisc_a-md5.$(OBJEXT): \ - luatexdir/luamd5/$(am__dirstamp) \ - luatexdir/luamd5/$(DEPDIR)/$(am__dirstamp) -luatexdir/luamd5/libluamisc_a-md5lib.$(OBJEXT): \ - luatexdir/luamd5/$(am__dirstamp) \ - luatexdir/luamd5/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapeg/libluamisc_a-lpeg.$(OBJEXT): \ - luatexdir/luapeg/$(am__dirstamp) \ - luatexdir/luapeg/$(DEPDIR)/$(am__dirstamp) -luatexdir/luazip/src/libluamisc_a-luazip.$(OBJEXT): \ - luatexdir/luazip/src/$(am__dirstamp) \ - luatexdir/luazip/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luazlib/libluamisc_a-lgzip.$(OBJEXT): \ - luatexdir/luazlib/$(am__dirstamp) \ - luatexdir/luazlib/$(DEPDIR)/$(am__dirstamp) -luatexdir/luazlib/libluamisc_a-lzlib.$(OBJEXT): \ - luatexdir/luazlib/$(am__dirstamp) \ - luatexdir/luazlib/$(DEPDIR)/$(am__dirstamp) -luatexdir/slnunicode/libluamisc_a-slnunico.$(OBJEXT): \ - luatexdir/slnunicode/$(am__dirstamp) \ - luatexdir/slnunicode/$(DEPDIR)/$(am__dirstamp) - -libluamisc.a: $(libluamisc_a_OBJECTS) $(libluamisc_a_DEPENDENCIES) $(EXTRA_libluamisc_a_DEPENDENCIES) - $(AM_V_at)-rm -f libluamisc.a - $(AM_V_AR)$(libluamisc_a_AR) libluamisc.a $(libluamisc_a_OBJECTS) $(libluamisc_a_LIBADD) - $(AM_V_at)$(RANLIB) libluamisc.a -luatexdir/luapplib/libluapplib_a-pparray.$(OBJEXT): \ - luatexdir/luapplib/$(am__dirstamp) \ - luatexdir/luapplib/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/libluapplib_a-ppcrypt.$(OBJEXT): \ - luatexdir/luapplib/$(am__dirstamp) \ - luatexdir/luapplib/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/libluapplib_a-ppdict.$(OBJEXT): \ - luatexdir/luapplib/$(am__dirstamp) \ - luatexdir/luapplib/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/libluapplib_a-ppheap.$(OBJEXT): \ - luatexdir/luapplib/$(am__dirstamp) \ - luatexdir/luapplib/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/libluapplib_a-ppload.$(OBJEXT): \ - luatexdir/luapplib/$(am__dirstamp) \ - luatexdir/luapplib/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/libluapplib_a-ppstream.$(OBJEXT): \ - luatexdir/luapplib/$(am__dirstamp) \ - luatexdir/luapplib/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/libluapplib_a-ppxref.$(OBJEXT): \ - luatexdir/luapplib/$(am__dirstamp) \ - luatexdir/luapplib/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/libluapplib_a-utilbasexx.$(OBJEXT): \ - luatexdir/luapplib/util/$(am__dirstamp) \ - luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/libluapplib_a-utilcrypt.$(OBJEXT): \ - luatexdir/luapplib/util/$(am__dirstamp) \ - luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/libluapplib_a-utilflate.$(OBJEXT): \ - luatexdir/luapplib/util/$(am__dirstamp) \ - luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/libluapplib_a-utilfpred.$(OBJEXT): \ - luatexdir/luapplib/util/$(am__dirstamp) \ - luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/libluapplib_a-utiliof.$(OBJEXT): \ - luatexdir/luapplib/util/$(am__dirstamp) \ - luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/libluapplib_a-utillog.$(OBJEXT): \ - luatexdir/luapplib/util/$(am__dirstamp) \ - luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/libluapplib_a-utillzw.$(OBJEXT): \ - luatexdir/luapplib/util/$(am__dirstamp) \ - luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/libluapplib_a-utilmd5.$(OBJEXT): \ - luatexdir/luapplib/util/$(am__dirstamp) \ - luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/libluapplib_a-utilmem.$(OBJEXT): \ - luatexdir/luapplib/util/$(am__dirstamp) \ - luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/libluapplib_a-utilnumber.$(OBJEXT): \ - luatexdir/luapplib/util/$(am__dirstamp) \ - luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) -luatexdir/luapplib/util/libluapplib_a-utilsha.$(OBJEXT): \ - luatexdir/luapplib/util/$(am__dirstamp) \ - luatexdir/luapplib/util/$(DEPDIR)/$(am__dirstamp) +libluatex.a: $(libluatex_a_OBJECTS) $(libluatex_a_DEPENDENCIES) $(EXTRA_libluatex_a_DEPENDENCIES) + $(AM_V_at)-rm -f libluatex.a + $(AM_V_AR)$(libluatex_a_AR) libluatex.a $(libluatex_a_OBJECTS) $(libluatex_a_LIBADD) + $(AM_V_at)$(RANLIB) libluatex.a +libmd5/$(am__dirstamp): + @$(MKDIR_P) libmd5 + @: > libmd5/$(am__dirstamp) +libmd5/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) libmd5/$(DEPDIR) + @: > libmd5/$(DEPDIR)/$(am__dirstamp) +libmd5/a-md5.$(OBJEXT): libmd5/$(am__dirstamp) \ + libmd5/$(DEPDIR)/$(am__dirstamp) -libluapplib.a: $(libluapplib_a_OBJECTS) $(libluapplib_a_DEPENDENCIES) $(EXTRA_libluapplib_a_DEPENDENCIES) - $(AM_V_at)-rm -f libluapplib.a - $(AM_V_AR)$(libluapplib_a_AR) libluapplib.a $(libluapplib_a_OBJECTS) $(libluapplib_a_LIBADD) - $(AM_V_at)$(RANLIB) libluapplib.a -luatexdir/luasocket/src/libluasocket_a-auxiliar.$(OBJEXT): \ - luatexdir/luasocket/src/$(am__dirstamp) \ - luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/libluasocket_a-buffer.$(OBJEXT): \ - luatexdir/luasocket/src/$(am__dirstamp) \ - luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/libluasocket_a-compat.$(OBJEXT): \ - luatexdir/luasocket/src/$(am__dirstamp) \ - luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/libluasocket_a-except.$(OBJEXT): \ - luatexdir/luasocket/src/$(am__dirstamp) \ - luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/libluasocket_a-inet.$(OBJEXT): \ - luatexdir/luasocket/src/$(am__dirstamp) \ - luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/libluasocket_a-io.$(OBJEXT): \ - luatexdir/luasocket/src/$(am__dirstamp) \ - luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/libluasocket_a-lua_preload.$(OBJEXT): \ - luatexdir/luasocket/src/$(am__dirstamp) \ - luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/libluasocket_a-luasocket.$(OBJEXT): \ - luatexdir/luasocket/src/$(am__dirstamp) \ - luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/libluasocket_a-mime.$(OBJEXT): \ - luatexdir/luasocket/src/$(am__dirstamp) \ - luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/libluasocket_a-options.$(OBJEXT): \ - luatexdir/luasocket/src/$(am__dirstamp) \ - luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/libluasocket_a-select.$(OBJEXT): \ - luatexdir/luasocket/src/$(am__dirstamp) \ - luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/libluasocket_a-serial.$(OBJEXT): \ - luatexdir/luasocket/src/$(am__dirstamp) \ - luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/libluasocket_a-socket.$(OBJEXT): \ - luatexdir/luasocket/src/$(am__dirstamp) \ - luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/libluasocket_a-tcp.$(OBJEXT): \ - luatexdir/luasocket/src/$(am__dirstamp) \ - luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/libluasocket_a-timeout.$(OBJEXT): \ - luatexdir/luasocket/src/$(am__dirstamp) \ - luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luasocket/src/libluasocket_a-udp.$(OBJEXT): \ - luatexdir/luasocket/src/$(am__dirstamp) \ - luatexdir/luasocket/src/$(DEPDIR)/$(am__dirstamp) +libmd5.a: $(libmd5_a_OBJECTS) $(libmd5_a_DEPENDENCIES) $(EXTRA_libmd5_a_DEPENDENCIES) + $(AM_V_at)-rm -f libmd5.a + $(AM_V_AR)$(libmd5_a_AR) libmd5.a $(libmd5_a_OBJECTS) $(libmd5_a_LIBADD) + $(AM_V_at)$(RANLIB) libmd5.a -libluasocket.a: $(libluasocket_a_OBJECTS) $(libluasocket_a_DEPENDENCIES) $(EXTRA_libluasocket_a_DEPENDENCIES) - $(AM_V_at)-rm -f libluasocket.a - $(AM_V_AR)$(libluasocket_a_AR) libluasocket.a $(libluasocket_a_OBJECTS) $(libluasocket_a_LIBADD) - $(AM_V_at)$(RANLIB) libluasocket.a -luatexdir/lua/libluatex_a-lstrlibext.$(OBJEXT): \ - luatexdir/lua/$(am__dirstamp) \ - luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluatex_a-helpers.$(OBJEXT): \ - luatexdir/lua/$(am__dirstamp) \ - luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluatex_a-texluac.$(OBJEXT): \ +libmf.a: $(libmf_a_OBJECTS) $(libmf_a_DEPENDENCIES) $(EXTRA_libmf_a_DEPENDENCIES) + $(AM_V_at)-rm -f libmf.a + $(AM_V_AR)$(libmf_a_AR) libmf.a $(libmf_a_OBJECTS) $(libmf_a_LIBADD) + $(AM_V_at)$(RANLIB) libmf.a +luatexdir/lua/libmflua_a-lkpselib.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/luafontloader/src/libluatex_a-ffdummies.$(OBJEXT): \ - luatexdir/luafontloader/src/$(am__dirstamp) \ - luatexdir/luafontloader/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/luafontloader/src/libluatex_a-luafflib.$(OBJEXT): \ - luatexdir/luafontloader/src/$(am__dirstamp) \ - luatexdir/luafontloader/src/$(DEPDIR)/$(am__dirstamp) -luatexdir/dvi/libluatex_a-dvigen.$(OBJEXT): \ - luatexdir/dvi/$(am__dirstamp) \ - luatexdir/dvi/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluatex_a-dofont.$(OBJEXT): \ - luatexdir/font/$(am__dirstamp) \ - luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluatex_a-luafont.$(OBJEXT): \ - luatexdir/font/$(am__dirstamp) \ - luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluatex_a-mapfile.$(OBJEXT): \ - luatexdir/font/$(am__dirstamp) \ - luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluatex_a-pkin.$(OBJEXT): \ - luatexdir/font/$(am__dirstamp) \ - luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluatex_a-sfnt.$(OBJEXT): \ - luatexdir/font/$(am__dirstamp) \ - luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluatex_a-texfont.$(OBJEXT): \ - luatexdir/font/$(am__dirstamp) \ - luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluatex_a-tfmofm.$(OBJEXT): \ - luatexdir/font/$(am__dirstamp) \ - luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluatex_a-tounicode.$(OBJEXT): \ - luatexdir/font/$(am__dirstamp) \ - luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluatex_a-tt_glyf.$(OBJEXT): \ - luatexdir/font/$(am__dirstamp) \ - luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluatex_a-tt_table.$(OBJEXT): \ - luatexdir/font/$(am__dirstamp) \ - luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluatex_a-vfovf.$(OBJEXT): \ - luatexdir/font/$(am__dirstamp) \ - luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluatex_a-vfpacket.$(OBJEXT): \ - luatexdir/font/$(am__dirstamp) \ - luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluatex_a-writecff.$(OBJEXT): \ - luatexdir/font/$(am__dirstamp) \ - luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluatex_a-writeenc.$(OBJEXT): \ - luatexdir/font/$(am__dirstamp) \ - luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluatex_a-writefont.$(OBJEXT): \ - luatexdir/font/$(am__dirstamp) \ - luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluatex_a-writet1.$(OBJEXT): \ - luatexdir/font/$(am__dirstamp) \ - luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluatex_a-writet3.$(OBJEXT): \ - luatexdir/font/$(am__dirstamp) \ - luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluatex_a-writettf.$(OBJEXT): \ - luatexdir/font/$(am__dirstamp) \ - luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluatex_a-writetype0.$(OBJEXT): \ - luatexdir/font/$(am__dirstamp) \ - luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/font/libluatex_a-writetype2.$(OBJEXT): \ - luatexdir/font/$(am__dirstamp) \ - luatexdir/font/$(DEPDIR)/$(am__dirstamp) -luatexdir/image/libluatex_a-pdftoepdf.$(OBJEXT): \ - luatexdir/image/$(am__dirstamp) \ - luatexdir/image/$(DEPDIR)/$(am__dirstamp) -luatexdir/image/libluatex_a-writeimg.$(OBJEXT): \ - luatexdir/image/$(am__dirstamp) \ - luatexdir/image/$(DEPDIR)/$(am__dirstamp) -luatexdir/image/libluatex_a-writejbig2.$(OBJEXT): \ - luatexdir/image/$(am__dirstamp) \ - luatexdir/image/$(DEPDIR)/$(am__dirstamp) -luatexdir/image/libluatex_a-writejp2.$(OBJEXT): \ - luatexdir/image/$(am__dirstamp) \ - luatexdir/image/$(DEPDIR)/$(am__dirstamp) -luatexdir/image/libluatex_a-writejpg.$(OBJEXT): \ - luatexdir/image/$(am__dirstamp) \ - luatexdir/image/$(DEPDIR)/$(am__dirstamp) -luatexdir/image/libluatex_a-writepng.$(OBJEXT): \ - luatexdir/image/$(am__dirstamp) \ - luatexdir/image/$(DEPDIR)/$(am__dirstamp) -luatexdir/lang/libluatex_a-hnjalloc.$(OBJEXT): \ - luatexdir/lang/$(am__dirstamp) \ - luatexdir/lang/$(DEPDIR)/$(am__dirstamp) -luatexdir/lang/libluatex_a-hyphen.$(OBJEXT): \ - luatexdir/lang/$(am__dirstamp) \ - luatexdir/lang/$(DEPDIR)/$(am__dirstamp) -luatexdir/lang/libluatex_a-texlang.$(OBJEXT): \ - luatexdir/lang/$(am__dirstamp) \ - luatexdir/lang/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluatex_a-lcallbacklib.$(OBJEXT): \ - luatexdir/lua/$(am__dirstamp) \ - luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluatex_a-lfontlib.$(OBJEXT): \ - luatexdir/lua/$(am__dirstamp) \ - luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluatex_a-limglib.$(OBJEXT): \ - luatexdir/lua/$(am__dirstamp) \ - luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluatex_a-lpdfelib.$(OBJEXT): \ - luatexdir/lua/$(am__dirstamp) \ - luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluatex_a-lpdfscannerlib.$(OBJEXT): \ - luatexdir/lua/$(am__dirstamp) \ - luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluatex_a-lkpselib.$(OBJEXT): \ - luatexdir/lua/$(am__dirstamp) \ - luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluatex_a-llanglib.$(OBJEXT): \ - luatexdir/lua/$(am__dirstamp) \ - luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluatex_a-llualib.$(OBJEXT): \ - luatexdir/lua/$(am__dirstamp) \ - luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluatex_a-lnodelib.$(OBJEXT): \ - luatexdir/lua/$(am__dirstamp) \ - luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluatex_a-liolibext.$(OBJEXT): \ - luatexdir/lua/$(am__dirstamp) \ - luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluatex_a-loslibext.$(OBJEXT): \ - luatexdir/lua/$(am__dirstamp) \ - luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluatex_a-lpdflib.$(OBJEXT): \ - luatexdir/lua/$(am__dirstamp) \ - luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluatex_a-lstatslib.$(OBJEXT): \ - luatexdir/lua/$(am__dirstamp) \ - luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluatex_a-ltexiolib.$(OBJEXT): \ - luatexdir/lua/$(am__dirstamp) \ - luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluatex_a-ltexlib.$(OBJEXT): \ - luatexdir/lua/$(am__dirstamp) \ - luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluatex_a-lnewtokenlib.$(OBJEXT): \ - luatexdir/lua/$(am__dirstamp) \ - luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluatex_a-luatex-core.$(OBJEXT): \ - luatexdir/lua/$(am__dirstamp) \ - luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluatex_a-luainit.$(OBJEXT): \ - luatexdir/lua/$(am__dirstamp) \ - luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluatex_a-luanode.$(OBJEXT): \ - luatexdir/lua/$(am__dirstamp) \ - luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluatex_a-luastuff.$(OBJEXT): \ - luatexdir/lua/$(am__dirstamp) \ - luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluatex_a-luatoken.$(OBJEXT): \ - luatexdir/lua/$(am__dirstamp) \ - luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/lua/libluatex_a-mplibstuff.$(OBJEXT): \ - luatexdir/lua/$(am__dirstamp) \ - luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluatex_a-pdfaction.$(OBJEXT): \ - luatexdir/pdf/$(am__dirstamp) \ - luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluatex_a-pdfannot.$(OBJEXT): \ - luatexdir/pdf/$(am__dirstamp) \ - luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluatex_a-pdfcolorstack.$(OBJEXT): \ - luatexdir/pdf/$(am__dirstamp) \ - luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluatex_a-pdfdest.$(OBJEXT): \ - luatexdir/pdf/$(am__dirstamp) \ - luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluatex_a-pdffont.$(OBJEXT): \ - luatexdir/pdf/$(am__dirstamp) \ - luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluatex_a-pdfgen.$(OBJEXT): \ - luatexdir/pdf/$(am__dirstamp) \ - luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluatex_a-pdfglyph.$(OBJEXT): \ - luatexdir/pdf/$(am__dirstamp) \ - luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluatex_a-pdfimage.$(OBJEXT): \ - luatexdir/pdf/$(am__dirstamp) \ - luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluatex_a-pdflink.$(OBJEXT): \ - luatexdir/pdf/$(am__dirstamp) \ - luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluatex_a-pdflistout.$(OBJEXT): \ - luatexdir/pdf/$(am__dirstamp) \ - luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluatex_a-pdfliteral.$(OBJEXT): \ - luatexdir/pdf/$(am__dirstamp) \ - luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluatex_a-pdfobj.$(OBJEXT): \ - luatexdir/pdf/$(am__dirstamp) \ - luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluatex_a-pdfoutline.$(OBJEXT): \ - luatexdir/pdf/$(am__dirstamp) \ - luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluatex_a-pdfpage.$(OBJEXT): \ - luatexdir/pdf/$(am__dirstamp) \ - luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluatex_a-pdfpagetree.$(OBJEXT): \ - luatexdir/pdf/$(am__dirstamp) \ - luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluatex_a-pdfrule.$(OBJEXT): \ - luatexdir/pdf/$(am__dirstamp) \ - luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluatex_a-pdfsaverestore.$(OBJEXT): \ - luatexdir/pdf/$(am__dirstamp) \ - luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluatex_a-pdfsetmatrix.$(OBJEXT): \ - luatexdir/pdf/$(am__dirstamp) \ - luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluatex_a-pdfshipout.$(OBJEXT): \ - luatexdir/pdf/$(am__dirstamp) \ - luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluatex_a-pdftables.$(OBJEXT): \ - luatexdir/pdf/$(am__dirstamp) \ - luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluatex_a-pdfthread.$(OBJEXT): \ - luatexdir/pdf/$(am__dirstamp) \ - luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/pdf/libluatex_a-pdfxform.$(OBJEXT): \ - luatexdir/pdf/$(am__dirstamp) \ - luatexdir/pdf/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-backend.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-align.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-arithmetic.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-buildpage.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-commands.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-conditional.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-directions.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-dumpdata.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-equivalents.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-errors.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-expand.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-extensions.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-filename.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-inputstack.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-linebreak.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-mainbody.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-maincontrol.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-mathcodes.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-memoryword.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-mlist.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-nesting.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-packaging.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-postlinebreak.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-primitive.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-printing.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-scanning.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-stringpool.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-texdeffont.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-texfileio.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-texmath.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-texnodes.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-textcodes.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/tex/libluatex_a-textoken.$(OBJEXT): \ - luatexdir/tex/$(am__dirstamp) \ - luatexdir/tex/$(DEPDIR)/$(am__dirstamp) -luatexdir/utils/libluatex_a-avl.$(OBJEXT): \ - luatexdir/utils/$(am__dirstamp) \ - luatexdir/utils/$(DEPDIR)/$(am__dirstamp) -luatexdir/utils/libluatex_a-avlstuff.$(OBJEXT): \ - luatexdir/utils/$(am__dirstamp) \ - luatexdir/utils/$(DEPDIR)/$(am__dirstamp) -luatexdir/utils/libluatex_a-managed-sa.$(OBJEXT): \ - luatexdir/utils/$(am__dirstamp) \ - luatexdir/utils/$(DEPDIR)/$(am__dirstamp) -luatexdir/utils/libluatex_a-unistring.$(OBJEXT): \ - luatexdir/utils/$(am__dirstamp) \ - luatexdir/utils/$(DEPDIR)/$(am__dirstamp) -luatexdir/utils/libluatex_a-utils.$(OBJEXT): \ - luatexdir/utils/$(am__dirstamp) \ - luatexdir/utils/$(DEPDIR)/$(am__dirstamp) -synctexdir/libluatex_a-synctex.$(OBJEXT): synctexdir/$(am__dirstamp) \ - synctexdir/$(DEPDIR)/$(am__dirstamp) - -libluatex.a: $(libluatex_a_OBJECTS) $(libluatex_a_DEPENDENCIES) $(EXTRA_libluatex_a_DEPENDENCIES) - $(AM_V_at)-rm -f libluatex.a - $(AM_V_AR)$(libluatex_a_AR) libluatex.a $(libluatex_a_OBJECTS) $(libluatex_a_LIBADD) - $(AM_V_at)$(RANLIB) libluatex.a -libmd5/$(am__dirstamp): - @$(MKDIR_P) libmd5 - @: > libmd5/$(am__dirstamp) -libmd5/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) libmd5/$(DEPDIR) - @: > libmd5/$(DEPDIR)/$(am__dirstamp) -libmd5/a-md5.$(OBJEXT): libmd5/$(am__dirstamp) \ - libmd5/$(DEPDIR)/$(am__dirstamp) - -libmd5.a: $(libmd5_a_OBJECTS) $(libmd5_a_DEPENDENCIES) $(EXTRA_libmd5_a_DEPENDENCIES) - $(AM_V_at)-rm -f libmd5.a - $(AM_V_AR)$(libmd5_a_AR) libmd5.a $(libmd5_a_OBJECTS) $(libmd5_a_LIBADD) - $(AM_V_at)$(RANLIB) libmd5.a - -libmf.a: $(libmf_a_OBJECTS) $(libmf_a_DEPENDENCIES) $(EXTRA_libmf_a_DEPENDENCIES) - $(AM_V_at)-rm -f libmf.a - $(AM_V_AR)$(libmf_a_AR) libmf.a $(libmf_a_OBJECTS) $(libmf_a_LIBADD) - $(AM_V_at)$(RANLIB) libmf.a -luatexdir/lua/libmflua_a-lkpselib.$(OBJEXT): \ - luatexdir/lua/$(am__dirstamp) \ - luatexdir/lua/$(DEPDIR)/$(am__dirstamp) -mfluadir/$(am__dirstamp): - @$(MKDIR_P) mfluadir - @: > mfluadir/$(am__dirstamp) -mfluadir/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) mfluadir/$(DEPDIR) - @: > mfluadir/$(DEPDIR)/$(am__dirstamp) -mfluadir/libmflua_a-mfluac.$(OBJEXT): mfluadir/$(am__dirstamp) \ - mfluadir/$(DEPDIR)/$(am__dirstamp) - -libmflua.a: $(libmflua_a_OBJECTS) $(libmflua_a_DEPENDENCIES) $(EXTRA_libmflua_a_DEPENDENCIES) - $(AM_V_at)-rm -f libmflua.a - $(AM_V_AR)$(libmflua_a_AR) libmflua.a $(libmflua_a_OBJECTS) $(libmflua_a_LIBADD) - $(AM_V_at)$(RANLIB) libmflua.a -luatexdir/lua/libmfluajit_a-lkpselib.$(OBJEXT): \ +mfluadir/$(am__dirstamp): + @$(MKDIR_P) mfluadir + @: > mfluadir/$(am__dirstamp) +mfluadir/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) mfluadir/$(DEPDIR) + @: > mfluadir/$(DEPDIR)/$(am__dirstamp) +mfluadir/libmflua_a-mfluac.$(OBJEXT): mfluadir/$(am__dirstamp) \ + mfluadir/$(DEPDIR)/$(am__dirstamp) + +libmflua.a: $(libmflua_a_OBJECTS) $(libmflua_a_DEPENDENCIES) $(EXTRA_libmflua_a_DEPENDENCIES) + $(AM_V_at)-rm -f libmflua.a + $(AM_V_AR)$(libmflua_a_AR) libmflua.a $(libmflua_a_OBJECTS) $(libmflua_a_LIBADD) + $(AM_V_at)$(RANLIB) libmflua.a +luatexdir/lua/libmfluajit_a-lkpselib.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) mfluadir/libmfluajit_a-mfluac.$(OBJEXT): mfluadir/$(am__dirstamp) \ @@ -7588,10 +6752,6 @@ call_luatex$(EXEEXT): $(call_luatex_OBJECTS) $(call_luatex_DEPENDENCIES) $(EXTRA @rm -f call_luatex$(EXEEXT) $(AM_V_CCLD)$(LINK) $(call_luatex_OBJECTS) $(call_luatex_LDADD) $(LIBS) -call_luatex53$(EXEEXT): $(call_luatex53_OBJECTS) $(call_luatex53_DEPENDENCIES) $(EXTRA_call_luatex53_DEPENDENCIES) - @rm -f call_luatex53$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(call_luatex53_OBJECTS) $(call_luatex53_LDADD) $(LIBS) - call_mf$(EXEEXT): $(call_mf_OBJECTS) $(call_mf_DEPENDENCIES) $(EXTRA_call_mf_DEPENDENCIES) @rm -f call_mf$(EXEEXT) $(AM_V_CCLD)$(LINK) $(call_mf_OBJECTS) $(call_mf_LDADD) $(LIBS) @@ -7719,14 +6879,6 @@ mplibdir/luatex-lmplib.$(OBJEXT): mplibdir/$(am__dirstamp) \ luatex$(EXEEXT): $(luatex_OBJECTS) $(luatex_DEPENDENCIES) $(EXTRA_luatex_DEPENDENCIES) @rm -f luatex$(EXEEXT) $(AM_V_CCLD)$(luatex_LINK) $(luatex_OBJECTS) $(luatex_LDADD) $(LIBS) -luatexdir/luatex53-luatex.$(OBJEXT): luatexdir/$(am__dirstamp) \ - luatexdir/$(DEPDIR)/$(am__dirstamp) -mplibdir/luatex53-lmplib.$(OBJEXT): mplibdir/$(am__dirstamp) \ - mplibdir/$(DEPDIR)/$(am__dirstamp) - -luatex53$(EXEEXT): $(luatex53_OBJECTS) $(luatex53_DEPENDENCIES) $(EXTRA_luatex53_DEPENDENCIES) - @rm -f luatex53$(EXEEXT) - $(AM_V_CCLD)$(luatex53_LINK) $(luatex53_OBJECTS) $(luatex53_LDADD) $(LIBS) libmd5/md5main-md5main.$(OBJEXT): libmd5/$(am__dirstamp) \ libmd5/$(DEPDIR)/$(am__dirstamp) @@ -8007,7 +7159,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bibtex.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/call_luajittex-callexe.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/call_luatex-callexe.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/call_luatex53-callexe.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/call_mf-callexe.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/call_mflua-callexe.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/call_mfluajit-callexe.Po@am__quote@ # am--include-marker @@ -8139,30 +7290,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@libmd5/$(DEPDIR)/md5main-md5main.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/$(DEPDIR)/luajittex-luatex.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/$(DEPDIR)/luatex-luatex.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/$(DEPDIR)/luatex53-luatex.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/dvi/$(DEPDIR)/liblua53tex_a-dvigen.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/dvi/$(DEPDIR)/libluajittex_a-dvigen.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/dvi/$(DEPDIR)/libluatex_a-dvigen.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/font/$(DEPDIR)/liblua53tex_a-dofont.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/font/$(DEPDIR)/liblua53tex_a-luafont.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/font/$(DEPDIR)/liblua53tex_a-mapfile.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/font/$(DEPDIR)/liblua53tex_a-pkin.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/font/$(DEPDIR)/liblua53tex_a-sfnt.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/font/$(DEPDIR)/liblua53tex_a-texfont.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/font/$(DEPDIR)/liblua53tex_a-tfmofm.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/font/$(DEPDIR)/liblua53tex_a-tounicode.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/font/$(DEPDIR)/liblua53tex_a-tt_glyf.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/font/$(DEPDIR)/liblua53tex_a-tt_table.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/font/$(DEPDIR)/liblua53tex_a-vfovf.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/font/$(DEPDIR)/liblua53tex_a-vfpacket.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/font/$(DEPDIR)/liblua53tex_a-writecff.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/font/$(DEPDIR)/liblua53tex_a-writeenc.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/font/$(DEPDIR)/liblua53tex_a-writefont.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/font/$(DEPDIR)/liblua53tex_a-writet1.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/font/$(DEPDIR)/liblua53tex_a-writet3.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/font/$(DEPDIR)/liblua53tex_a-writettf.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/font/$(DEPDIR)/liblua53tex_a-writetype0.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/font/$(DEPDIR)/liblua53tex_a-writetype2.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/font/$(DEPDIR)/libluajittex_a-dofont.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/font/$(DEPDIR)/libluajittex_a-luafont.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/font/$(DEPDIR)/libluajittex_a-mapfile.Po@am__quote@ # am--include-marker @@ -8203,12 +7332,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/font/$(DEPDIR)/libluatex_a-writettf.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/font/$(DEPDIR)/libluatex_a-writetype0.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/font/$(DEPDIR)/libluatex_a-writetype2.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/image/$(DEPDIR)/liblua53tex_a-pdftoepdf.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/image/$(DEPDIR)/liblua53tex_a-writeimg.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/image/$(DEPDIR)/liblua53tex_a-writejbig2.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/image/$(DEPDIR)/liblua53tex_a-writejp2.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/image/$(DEPDIR)/liblua53tex_a-writejpg.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/image/$(DEPDIR)/liblua53tex_a-writepng.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/image/$(DEPDIR)/libluajittex_a-pdftoepdf.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/image/$(DEPDIR)/libluajittex_a-writeimg.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/image/$(DEPDIR)/libluajittex_a-writejbig2.Po@am__quote@ # am--include-marker @@ -8221,40 +7344,12 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/image/$(DEPDIR)/libluatex_a-writejp2.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/image/$(DEPDIR)/libluatex_a-writejpg.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/image/$(DEPDIR)/libluatex_a-writepng.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lang/$(DEPDIR)/liblua53tex_a-hnjalloc.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lang/$(DEPDIR)/liblua53tex_a-hyphen.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lang/$(DEPDIR)/liblua53tex_a-texlang.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lang/$(DEPDIR)/libluajittex_a-hnjalloc.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lang/$(DEPDIR)/libluajittex_a-hyphen.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lang/$(DEPDIR)/libluajittex_a-texlang.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lang/$(DEPDIR)/libluatex_a-hnjalloc.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lang/$(DEPDIR)/libluatex_a-hyphen.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lang/$(DEPDIR)/libluatex_a-texlang.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/liblua53tex_a-helpers.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/liblua53tex_a-lcallbacklib.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/liblua53tex_a-lfontlib.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/liblua53tex_a-limglib.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/liblua53tex_a-liolibext.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/liblua53tex_a-lkpselib.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/liblua53tex_a-llanglib.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/liblua53tex_a-llualib.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/liblua53tex_a-lnewtokenlib.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/liblua53tex_a-lnodelib.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/liblua53tex_a-loslibext.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/liblua53tex_a-lpdfelib.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/liblua53tex_a-lpdflib.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/liblua53tex_a-lpdfscannerlib.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/liblua53tex_a-lstatslib.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/liblua53tex_a-lstrlibext.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/liblua53tex_a-ltexiolib.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/liblua53tex_a-ltexlib.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/liblua53tex_a-luainit.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/liblua53tex_a-luanode.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/liblua53tex_a-luastuff.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/liblua53tex_a-luatex-core.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/liblua53tex_a-luatoken.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/liblua53tex_a-mplibstuff.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/liblua53tex_a-texluac.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/libluajittex_a-helpers.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/libluajittex_a-lcallbacklib.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/libluajittex_a-lfontlib.Po@am__quote@ # am--include-marker @@ -8307,15 +7402,10 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/libluatex_a-texluac.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/libmflua_a-lkpselib.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/libmfluajit_a-lkpselib.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-call.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-ctype.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-ffi.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-parser.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luaffi/$(DEPDIR)/libluaffi_a-call.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luaffi/$(DEPDIR)/libluaffi_a-ctype.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luaffi/$(DEPDIR)/libluaffi_a-ffi.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luaffi/$(DEPDIR)/libluaffi_a-parser.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luafilesystem/src/$(DEPDIR)/liblua53misc_a-lfs.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luafilesystem/src/$(DEPDIR)/libluajitmisc_a-lfs.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luafilesystem/src/$(DEPDIR)/libluamisc_a-lfs.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-autohint.Po@am__quote@ # am--include-marker @@ -8360,34 +7450,25 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-tottfgpos.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-ttfspecial.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luafontloader/fontforge/gutils/$(DEPDIR)/libff_a-fsys.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luafontloader/src/$(DEPDIR)/liblua53tex_a-ffdummies.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luafontloader/src/$(DEPDIR)/liblua53tex_a-luafflib.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luafontloader/src/$(DEPDIR)/libluajittex_a-ffdummies.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luafontloader/src/$(DEPDIR)/libluajittex_a-luafflib.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luafontloader/src/$(DEPDIR)/libluatex_a-ffdummies.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luafontloader/src/$(DEPDIR)/libluatex_a-luafflib.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luamd5/$(DEPDIR)/liblua53misc_a-md5.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luamd5/$(DEPDIR)/liblua53misc_a-md5lib.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luamd5/$(DEPDIR)/libluajitmisc_a-md5.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luamd5/$(DEPDIR)/libluajitmisc_a-md5lib.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luamd5/$(DEPDIR)/libluamisc_a-md5.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luamd5/$(DEPDIR)/libluamisc_a-md5lib.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapeg/$(DEPDIR)/liblua53misc_a-lpeg.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapeg/$(DEPDIR)/libluajitmisc_a-lpeg.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapeg/$(DEPDIR)/libluamisc_a-lpeg.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-pparray.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppcrypt.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppdict.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppheap.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppload.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppstream.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppxref.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pparray.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-ppcrypt.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-ppdict.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-ppheap.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-ppload.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-ppstream.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pptest1.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pptest2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pptest3.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-ppxref.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pparray.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/$(DEPDIR)/libluapplib_a-ppcrypt.Po@am__quote@ # am--include-marker @@ -8395,18 +7476,10 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/$(DEPDIR)/libluapplib_a-ppheap.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/$(DEPDIR)/libluapplib_a-ppload.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/$(DEPDIR)/libluapplib_a-ppstream.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pptest1.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pptest2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pptest3.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/$(DEPDIR)/libluapplib_a-ppxref.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilbasexx.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilcrypt.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilflate.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilfpred.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utiliof.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utillog.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utillzw.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilmd5.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilmem.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilnumber.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilsha.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/util/$(DEPDIR)/libluajitpplib_a-utilbasexx.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/util/$(DEPDIR)/libluajitpplib_a-utilcrypt.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/util/$(DEPDIR)/libluajitpplib_a-utilflate.Po@am__quote@ # am--include-marker @@ -8429,22 +7502,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/util/$(DEPDIR)/libluapplib_a-utilmem.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/util/$(DEPDIR)/libluapplib_a-utilnumber.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luapplib/util/$(DEPDIR)/libluapplib_a-utilsha.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-auxiliar.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-buffer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-compat.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-except.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-inet.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-io.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-lua_preload.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-luasocket.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-mime.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-options.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-select.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-serial.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-socket.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-tcp.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-timeout.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-udp.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luasocket/src/$(DEPDIR)/libluajitsocket_a-auxiliar.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luasocket/src/$(DEPDIR)/libluajitsocket_a-buffer.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luasocket/src/$(DEPDIR)/libluajitsocket_a-compat.Po@am__quote@ # am--include-marker @@ -8477,37 +7534,12 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luasocket/src/$(DEPDIR)/libluasocket_a-tcp.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luasocket/src/$(DEPDIR)/libluasocket_a-timeout.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luasocket/src/$(DEPDIR)/libluasocket_a-udp.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luazip/src/$(DEPDIR)/liblua53misc_a-luazip.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luazip/src/$(DEPDIR)/libluajitmisc_a-luazip.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luazip/src/$(DEPDIR)/libluamisc_a-luazip.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luazlib/$(DEPDIR)/liblua53misc_a-lgzip.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luazlib/$(DEPDIR)/liblua53misc_a-lzlib.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luazlib/$(DEPDIR)/libluajitmisc_a-lgzip.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luazlib/$(DEPDIR)/libluajitmisc_a-lzlib.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luazlib/$(DEPDIR)/libluamisc_a-lgzip.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/luazlib/$(DEPDIR)/libluamisc_a-lzlib.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfaction.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfannot.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfcolorstack.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfdest.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdffont.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfgen.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfglyph.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfimage.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdflink.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdflistout.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfliteral.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfobj.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfoutline.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfpage.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfpagetree.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfrule.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfsaverestore.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfsetmatrix.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfshipout.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdftables.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfthread.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfxform.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/pdf/$(DEPDIR)/libluajittex_a-pdfaction.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/pdf/$(DEPDIR)/libluajittex_a-pdfannot.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/pdf/$(DEPDIR)/libluajittex_a-pdfcolorstack.Po@am__quote@ # am--include-marker @@ -8552,42 +7584,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/pdf/$(DEPDIR)/libluatex_a-pdftables.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/pdf/$(DEPDIR)/libluatex_a-pdfthread.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/pdf/$(DEPDIR)/libluatex_a-pdfxform.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/slnunicode/$(DEPDIR)/liblua53misc_a-slnunico.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/slnunicode/$(DEPDIR)/libluajitmisc_a-slnunico.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/slnunicode/$(DEPDIR)/libluamisc_a-slnunico.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-align.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-arithmetic.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-backend.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-buildpage.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-commands.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-conditional.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-directions.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-dumpdata.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-equivalents.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-errors.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-expand.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-extensions.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-filename.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-inputstack.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-linebreak.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-mainbody.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-maincontrol.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-mathcodes.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-memoryword.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-mlist.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-nesting.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-packaging.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-postlinebreak.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-primitive.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-printing.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-scanning.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-stringpool.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-texdeffont.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-texfileio.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-texmath.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-texnodes.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-textcodes.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/liblua53tex_a-textoken.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/libluajittex_a-align.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/libluajittex_a-arithmetic.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/tex/$(DEPDIR)/libluajittex_a-backend.Po@am__quote@ # am--include-marker @@ -8664,11 +7662,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/unilib/$(DEPDIR)/libunilib_a-usprintf.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/unilib/$(DEPDIR)/libunilib_a-ustring.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/unilib/$(DEPDIR)/libunilib_a-utype.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/utils/$(DEPDIR)/liblua53tex_a-avl.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/utils/$(DEPDIR)/liblua53tex_a-avlstuff.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/utils/$(DEPDIR)/liblua53tex_a-managed-sa.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/utils/$(DEPDIR)/liblua53tex_a-unistring.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/utils/$(DEPDIR)/liblua53tex_a-utils.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/utils/$(DEPDIR)/libluajittex_a-avl.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/utils/$(DEPDIR)/libluajittex_a-avlstuff.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/utils/$(DEPDIR)/libluajittex_a-managed-sa.Po@am__quote@ # am--include-marker @@ -8690,7 +7683,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@mplibdir/$(DEPDIR)/libmputil_a-decNumber.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@mplibdir/$(DEPDIR)/luajittex-lmplib.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@mplibdir/$(DEPDIR)/luatex-lmplib.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@mplibdir/$(DEPDIR)/luatex53-lmplib.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@pdftexdir/$(DEPDIR)/libpdftex_a-avl.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@pdftexdir/$(DEPDIR)/libpdftex_a-avlstuff.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@pdftexdir/$(DEPDIR)/libpdftex_a-epdf.Po@am__quote@ # am--include-marker @@ -8725,7 +7717,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@synctexdir/$(DEPDIR)/eptex-synctex.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@synctexdir/$(DEPDIR)/etex-synctex.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@synctexdir/$(DEPDIR)/euptex-synctex.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@synctexdir/$(DEPDIR)/liblua53tex_a-synctex.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@synctexdir/$(DEPDIR)/libluajittex_a-synctex.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@synctexdir/$(DEPDIR)/libluatex_a-synctex.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@synctexdir/$(DEPDIR)/libsynctex_a-synctex_parser.Po@am__quote@ # am--include-marker @@ -8739,2955 +7730,659 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@synctexdir/$(DEPDIR)/uptex-synctex.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@synctexdir/$(DEPDIR)/xetex-synctex.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@uptexdir/$(DEPDIR)/libukanji_a-kanji.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@uptexdir/$(DEPDIR)/libukanji_a-kanji_dump.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@uptexdir/$(DEPDIR)/uptex-uptexextra.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/$(DEPDIR)/libxetex_a-XeTeXFontInst.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/$(DEPDIR)/libxetex_a-XeTeXFontInst_Mac.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/$(DEPDIR)/libxetex_a-XeTeXFontMgr.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/$(DEPDIR)/libxetex_a-XeTeXFontMgr_FC.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/$(DEPDIR)/libxetex_a-XeTeXFontMgr_Mac.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/$(DEPDIR)/libxetex_a-XeTeXLayoutInterface.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/$(DEPDIR)/libxetex_a-XeTeXOTMath.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/$(DEPDIR)/libxetex_a-XeTeX_ext.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/$(DEPDIR)/libxetex_a-XeTeX_mac.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/$(DEPDIR)/libxetex_a-XeTeX_pic.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/$(DEPDIR)/libxetex_a-hz.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/$(DEPDIR)/libxetex_a-pdfimage.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/$(DEPDIR)/libxetex_a-trans.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/$(DEPDIR)/xetex-xetexextra.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/image/$(DEPDIR)/libxetex_a-bmpimage.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/image/$(DEPDIR)/libxetex_a-jpegimage.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/image/$(DEPDIR)/libxetex_a-mfileio.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/image/$(DEPDIR)/libxetex_a-numbers.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/image/$(DEPDIR)/libxetex_a-pngimage.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)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.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)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.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) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -luatexdir/luafontloader/fontforge/fontforge/libff_a-autohint.o: luatexdir/luafontloader/fontforge/fontforge/autohint.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-autohint.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-autohint.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-autohint.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/autohint.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/autohint.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-autohint.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-autohint.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/autohint.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-autohint.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-autohint.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/autohint.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/autohint.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-autohint.obj: luatexdir/luafontloader/fontforge/fontforge/autohint.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-autohint.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-autohint.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-autohint.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/autohint.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/autohint.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/autohint.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-autohint.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-autohint.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/autohint.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-autohint.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-autohint.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/autohint.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/autohint.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/autohint.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-clipnoui.o: luatexdir/luafontloader/fontforge/fontforge/clipnoui.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-clipnoui.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-clipnoui.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-clipnoui.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/clipnoui.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/clipnoui.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-clipnoui.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-clipnoui.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/clipnoui.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-clipnoui.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-clipnoui.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/clipnoui.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/clipnoui.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-clipnoui.obj: luatexdir/luafontloader/fontforge/fontforge/clipnoui.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-clipnoui.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-clipnoui.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-clipnoui.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/clipnoui.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/clipnoui.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/clipnoui.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-clipnoui.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-clipnoui.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/clipnoui.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-clipnoui.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-clipnoui.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/clipnoui.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/clipnoui.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/clipnoui.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-cvundoes.o: luatexdir/luafontloader/fontforge/fontforge/cvundoes.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-cvundoes.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-cvundoes.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-cvundoes.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/cvundoes.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/cvundoes.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-cvundoes.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-cvundoes.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/cvundoes.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-cvundoes.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-cvundoes.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/cvundoes.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/cvundoes.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-cvundoes.obj: luatexdir/luafontloader/fontforge/fontforge/cvundoes.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-cvundoes.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-cvundoes.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-cvundoes.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/cvundoes.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/cvundoes.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/cvundoes.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-cvundoes.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-cvundoes.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/cvundoes.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-cvundoes.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-cvundoes.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/cvundoes.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/cvundoes.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/cvundoes.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-dumppfa.o: luatexdir/luafontloader/fontforge/fontforge/dumppfa.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-dumppfa.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-dumppfa.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-dumppfa.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/dumppfa.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/dumppfa.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-dumppfa.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-dumppfa.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/dumppfa.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-dumppfa.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-dumppfa.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/dumppfa.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/dumppfa.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-dumppfa.obj: luatexdir/luafontloader/fontforge/fontforge/dumppfa.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-dumppfa.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-dumppfa.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-dumppfa.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/dumppfa.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/dumppfa.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/dumppfa.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-dumppfa.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-dumppfa.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/dumppfa.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-dumppfa.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-dumppfa.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/dumppfa.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/dumppfa.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/dumppfa.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-encoding.o: luatexdir/luafontloader/fontforge/fontforge/encoding.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-encoding.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-encoding.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-encoding.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/encoding.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/encoding.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-encoding.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-encoding.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/encoding.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-encoding.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-encoding.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/encoding.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/encoding.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-encoding.obj: luatexdir/luafontloader/fontforge/fontforge/encoding.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-encoding.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-encoding.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-encoding.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/encoding.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/encoding.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/encoding.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-encoding.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-encoding.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/encoding.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-encoding.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-encoding.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/encoding.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/encoding.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/encoding.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-featurefile.o: luatexdir/luafontloader/fontforge/fontforge/featurefile.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-featurefile.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-featurefile.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-featurefile.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/featurefile.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/featurefile.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-featurefile.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-featurefile.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/featurefile.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-featurefile.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-featurefile.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/featurefile.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/featurefile.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-featurefile.obj: luatexdir/luafontloader/fontforge/fontforge/featurefile.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-featurefile.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-featurefile.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-featurefile.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/featurefile.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/featurefile.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/featurefile.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-featurefile.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-featurefile.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/featurefile.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-featurefile.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-featurefile.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/featurefile.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/featurefile.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/featurefile.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-fontviewbase.o: luatexdir/luafontloader/fontforge/fontforge/fontviewbase.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-fontviewbase.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fontviewbase.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-fontviewbase.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/fontviewbase.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/fontviewbase.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fontviewbase.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fontviewbase.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/fontviewbase.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-fontviewbase.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-fontviewbase.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/fontviewbase.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/fontviewbase.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-fontviewbase.obj: luatexdir/luafontloader/fontforge/fontforge/fontviewbase.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-fontviewbase.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fontviewbase.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-fontviewbase.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/fontviewbase.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/fontviewbase.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/fontviewbase.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fontviewbase.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fontviewbase.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/fontviewbase.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-fontviewbase.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-fontviewbase.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/fontviewbase.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/fontviewbase.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/fontviewbase.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-fvcomposit.o: luatexdir/luafontloader/fontforge/fontforge/fvcomposit.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-fvcomposit.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fvcomposit.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-fvcomposit.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/fvcomposit.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/fvcomposit.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fvcomposit.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fvcomposit.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/fvcomposit.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-fvcomposit.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-fvcomposit.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/fvcomposit.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/fvcomposit.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-fvcomposit.obj: luatexdir/luafontloader/fontforge/fontforge/fvcomposit.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-fvcomposit.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fvcomposit.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-fvcomposit.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/fvcomposit.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/fvcomposit.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/fvcomposit.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fvcomposit.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fvcomposit.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/fvcomposit.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-fvcomposit.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-fvcomposit.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/fvcomposit.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/fvcomposit.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/fvcomposit.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-fvfonts.o: luatexdir/luafontloader/fontforge/fontforge/fvfonts.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-fvfonts.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fvfonts.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-fvfonts.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/fvfonts.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/fvfonts.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fvfonts.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fvfonts.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/fvfonts.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-fvfonts.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-fvfonts.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/fvfonts.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/fvfonts.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-fvfonts.obj: luatexdir/luafontloader/fontforge/fontforge/fvfonts.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-fvfonts.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fvfonts.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-fvfonts.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/fvfonts.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/fvfonts.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/fvfonts.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fvfonts.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fvfonts.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/fvfonts.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-fvfonts.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-fvfonts.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/fvfonts.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/fvfonts.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/fvfonts.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-lookups.o: luatexdir/luafontloader/fontforge/fontforge/lookups.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-lookups.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-lookups.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-lookups.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/lookups.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/lookups.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-lookups.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-lookups.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/lookups.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-lookups.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-lookups.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/lookups.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/lookups.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-lookups.obj: luatexdir/luafontloader/fontforge/fontforge/lookups.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-lookups.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-lookups.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-lookups.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/lookups.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/lookups.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/lookups.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-lookups.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-lookups.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/lookups.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-lookups.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-lookups.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/lookups.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/lookups.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/lookups.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-macbinary.o: luatexdir/luafontloader/fontforge/fontforge/macbinary.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-macbinary.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-macbinary.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-macbinary.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/macbinary.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/macbinary.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-macbinary.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-macbinary.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/macbinary.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-macbinary.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-macbinary.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/macbinary.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/macbinary.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-macbinary.obj: luatexdir/luafontloader/fontforge/fontforge/macbinary.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-macbinary.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-macbinary.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-macbinary.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/macbinary.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/macbinary.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/macbinary.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-macbinary.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-macbinary.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/macbinary.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-macbinary.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-macbinary.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/macbinary.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/macbinary.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/macbinary.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-macenc.o: luatexdir/luafontloader/fontforge/fontforge/macenc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-macenc.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-macenc.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-macenc.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/macenc.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/macenc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-macenc.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-macenc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/macenc.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-macenc.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-macenc.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/macenc.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/macenc.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-macenc.obj: luatexdir/luafontloader/fontforge/fontforge/macenc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-macenc.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-macenc.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-macenc.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/macenc.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/macenc.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/macenc.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-macenc.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-macenc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/macenc.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-macenc.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-macenc.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/macenc.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/macenc.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/macenc.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-mathconstants.o: luatexdir/luafontloader/fontforge/fontforge/mathconstants.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-mathconstants.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-mathconstants.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-mathconstants.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/mathconstants.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/mathconstants.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-mathconstants.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-mathconstants.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/mathconstants.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-mathconstants.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-mathconstants.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/mathconstants.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/mathconstants.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-mathconstants.obj: luatexdir/luafontloader/fontforge/fontforge/mathconstants.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-mathconstants.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-mathconstants.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-mathconstants.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/mathconstants.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/mathconstants.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/mathconstants.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-mathconstants.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-mathconstants.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/mathconstants.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-mathconstants.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-mathconstants.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/mathconstants.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/mathconstants.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/mathconstants.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-memory.o: luatexdir/luafontloader/fontforge/fontforge/memory.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-memory.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-memory.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-memory.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/memory.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/memory.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-memory.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-memory.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/memory.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-memory.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-memory.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/memory.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/memory.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-memory.obj: luatexdir/luafontloader/fontforge/fontforge/memory.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-memory.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-memory.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-memory.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/memory.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/memory.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/memory.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-memory.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-memory.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/memory.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-memory.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-memory.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/memory.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/memory.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/memory.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-mm.o: luatexdir/luafontloader/fontforge/fontforge/mm.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-mm.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-mm.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-mm.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/mm.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/mm.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-mm.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-mm.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/mm.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-mm.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-mm.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/mm.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/mm.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-mm.obj: luatexdir/luafontloader/fontforge/fontforge/mm.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-mm.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-mm.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-mm.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/mm.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/mm.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/mm.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-mm.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-mm.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/mm.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-mm.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-mm.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/mm.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/mm.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/mm.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-namelist.o: luatexdir/luafontloader/fontforge/fontforge/namelist.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-namelist.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-namelist.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-namelist.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/namelist.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/namelist.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-namelist.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-namelist.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/namelist.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-namelist.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-namelist.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/namelist.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/namelist.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-namelist.obj: luatexdir/luafontloader/fontforge/fontforge/namelist.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-namelist.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-namelist.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-namelist.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/namelist.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/namelist.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/namelist.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-namelist.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-namelist.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/namelist.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-namelist.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-namelist.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/namelist.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/namelist.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/namelist.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-noprefs.o: luatexdir/luafontloader/fontforge/fontforge/noprefs.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-noprefs.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-noprefs.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-noprefs.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/noprefs.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/noprefs.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-noprefs.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-noprefs.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/noprefs.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-noprefs.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-noprefs.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/noprefs.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/noprefs.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-noprefs.obj: luatexdir/luafontloader/fontforge/fontforge/noprefs.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-noprefs.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-noprefs.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-noprefs.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/noprefs.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/noprefs.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/noprefs.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-noprefs.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-noprefs.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/noprefs.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-noprefs.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-noprefs.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/noprefs.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/noprefs.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/noprefs.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-nouiutil.o: luatexdir/luafontloader/fontforge/fontforge/nouiutil.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-nouiutil.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-nouiutil.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-nouiutil.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/nouiutil.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/nouiutil.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-nouiutil.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-nouiutil.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/nouiutil.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-nouiutil.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-nouiutil.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/nouiutil.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/nouiutil.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-nouiutil.obj: luatexdir/luafontloader/fontforge/fontforge/nouiutil.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-nouiutil.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-nouiutil.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-nouiutil.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/nouiutil.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/nouiutil.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/nouiutil.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-nouiutil.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-nouiutil.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/nouiutil.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-nouiutil.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-nouiutil.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/nouiutil.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/nouiutil.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/nouiutil.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-parsepfa.o: luatexdir/luafontloader/fontforge/fontforge/parsepfa.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-parsepfa.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsepfa.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-parsepfa.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/parsepfa.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/parsepfa.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsepfa.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsepfa.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/parsepfa.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-parsepfa.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-parsepfa.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/parsepfa.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/parsepfa.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-parsepfa.obj: luatexdir/luafontloader/fontforge/fontforge/parsepfa.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-parsepfa.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsepfa.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-parsepfa.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/parsepfa.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/parsepfa.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/parsepfa.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsepfa.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsepfa.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/parsepfa.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-parsepfa.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-parsepfa.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/parsepfa.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/parsepfa.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/parsepfa.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettf.o: luatexdir/luafontloader/fontforge/fontforge/parsettf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettf.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsettf.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettf.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/parsettf.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/parsettf.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsettf.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsettf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/parsettf.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettf.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettf.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/parsettf.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/parsettf.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettf.obj: luatexdir/luafontloader/fontforge/fontforge/parsettf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettf.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsettf.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettf.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/parsettf.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/parsettf.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/parsettf.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsettf.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsettf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/parsettf.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettf.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettf.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/parsettf.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/parsettf.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/parsettf.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettfatt.o: luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettfatt.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsettfatt.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettfatt.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsettfatt.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsettfatt.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettfatt.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettfatt.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettfatt.obj: luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettfatt.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsettfatt.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettfatt.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsettfatt.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsettfatt.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettfatt.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettfatt.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-psread.o: luatexdir/luafontloader/fontforge/fontforge/psread.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-psread.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-psread.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-psread.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/psread.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/psread.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-psread.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-psread.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/psread.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-psread.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-psread.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/psread.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/psread.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-psread.obj: luatexdir/luafontloader/fontforge/fontforge/psread.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-psread.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-psread.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-psread.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/psread.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/psread.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/psread.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-psread.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-psread.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/psread.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-psread.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-psread.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/psread.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/psread.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/psread.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-pua.o: luatexdir/luafontloader/fontforge/fontforge/pua.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-pua.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-pua.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-pua.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/pua.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/pua.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-pua.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-pua.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/pua.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-pua.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-pua.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/pua.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/pua.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-pua.obj: luatexdir/luafontloader/fontforge/fontforge/pua.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-pua.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-pua.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-pua.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/pua.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/pua.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/pua.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-pua.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-pua.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/pua.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-pua.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-pua.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/pua.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/pua.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/pua.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-python.o: luatexdir/luafontloader/fontforge/fontforge/python.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-python.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-python.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-python.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/python.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/python.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-python.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-python.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/python.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-python.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-python.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/python.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/python.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-python.obj: luatexdir/luafontloader/fontforge/fontforge/python.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-python.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-python.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-python.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/python.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/python.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/python.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-python.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-python.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/python.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-python.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-python.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/python.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/python.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/python.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-sfd1.o: luatexdir/luafontloader/fontforge/fontforge/sfd1.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-sfd1.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-sfd1.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-sfd1.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/sfd1.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/sfd1.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-sfd1.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-sfd1.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/sfd1.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-sfd1.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-sfd1.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/sfd1.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/sfd1.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-sfd1.obj: luatexdir/luafontloader/fontforge/fontforge/sfd1.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-sfd1.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-sfd1.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-sfd1.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/sfd1.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/sfd1.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/sfd1.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-sfd1.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-sfd1.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/sfd1.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-sfd1.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-sfd1.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/sfd1.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/sfd1.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/sfd1.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-splinechar.o: luatexdir/luafontloader/fontforge/fontforge/splinechar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splinechar.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinechar.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinechar.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splinechar.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splinechar.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinechar.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinechar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splinechar.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splinechar.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinechar.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splinechar.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splinechar.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-splinechar.obj: luatexdir/luafontloader/fontforge/fontforge/splinechar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splinechar.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinechar.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinechar.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splinechar.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splinechar.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splinechar.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinechar.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinechar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splinechar.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splinechar.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinechar.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splinechar.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splinechar.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splinechar.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefill.o: luatexdir/luafontloader/fontforge/fontforge/splinefill.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefill.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinefill.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefill.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splinefill.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splinefill.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinefill.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinefill.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splinefill.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefill.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefill.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splinefill.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splinefill.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefill.obj: luatexdir/luafontloader/fontforge/fontforge/splinefill.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefill.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinefill.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefill.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splinefill.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splinefill.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splinefill.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinefill.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinefill.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splinefill.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefill.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefill.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splinefill.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splinefill.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splinefill.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefont.o: luatexdir/luafontloader/fontforge/fontforge/splinefont.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefont.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinefont.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefont.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splinefont.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splinefont.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinefont.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinefont.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splinefont.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefont.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefont.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splinefont.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splinefont.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefont.obj: luatexdir/luafontloader/fontforge/fontforge/splinefont.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefont.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinefont.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefont.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splinefont.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splinefont.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splinefont.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinefont.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinefont.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splinefont.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefont.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefont.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splinefont.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splinefont.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splinefont.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-splineorder2.o: luatexdir/luafontloader/fontforge/fontforge/splineorder2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splineorder2.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineorder2.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splineorder2.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splineorder2.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splineorder2.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineorder2.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineorder2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splineorder2.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splineorder2.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splineorder2.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splineorder2.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splineorder2.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-splineorder2.obj: luatexdir/luafontloader/fontforge/fontforge/splineorder2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splineorder2.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineorder2.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splineorder2.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splineorder2.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splineorder2.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splineorder2.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineorder2.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineorder2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splineorder2.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splineorder2.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splineorder2.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splineorder2.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splineorder2.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splineorder2.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-splineoverlap.o: luatexdir/luafontloader/fontforge/fontforge/splineoverlap.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splineoverlap.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineoverlap.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splineoverlap.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splineoverlap.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splineoverlap.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineoverlap.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineoverlap.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splineoverlap.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splineoverlap.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splineoverlap.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splineoverlap.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splineoverlap.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-splineoverlap.obj: luatexdir/luafontloader/fontforge/fontforge/splineoverlap.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splineoverlap.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineoverlap.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splineoverlap.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splineoverlap.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splineoverlap.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splineoverlap.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineoverlap.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineoverlap.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splineoverlap.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splineoverlap.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splineoverlap.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splineoverlap.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splineoverlap.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splineoverlap.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-splinerefigure.o: luatexdir/luafontloader/fontforge/fontforge/splinerefigure.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splinerefigure.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinerefigure.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinerefigure.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splinerefigure.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splinerefigure.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinerefigure.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinerefigure.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splinerefigure.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splinerefigure.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinerefigure.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splinerefigure.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splinerefigure.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-splinerefigure.obj: luatexdir/luafontloader/fontforge/fontforge/splinerefigure.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splinerefigure.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinerefigure.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinerefigure.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splinerefigure.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splinerefigure.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splinerefigure.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinerefigure.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinerefigure.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splinerefigure.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splinerefigure.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinerefigure.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splinerefigure.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splinerefigure.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splinerefigure.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesave.o: luatexdir/luafontloader/fontforge/fontforge/splinesave.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesave.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinesave.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesave.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splinesave.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splinesave.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinesave.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinesave.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splinesave.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesave.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesave.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splinesave.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splinesave.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesave.obj: luatexdir/luafontloader/fontforge/fontforge/splinesave.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesave.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinesave.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesave.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splinesave.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splinesave.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splinesave.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinesave.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinesave.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splinesave.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesave.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesave.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splinesave.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splinesave.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splinesave.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesaveafm.o: luatexdir/luafontloader/fontforge/fontforge/splinesaveafm.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesaveafm.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinesaveafm.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesaveafm.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splinesaveafm.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splinesaveafm.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinesaveafm.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinesaveafm.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splinesaveafm.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesaveafm.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesaveafm.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splinesaveafm.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splinesaveafm.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesaveafm.obj: luatexdir/luafontloader/fontforge/fontforge/splinesaveafm.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesaveafm.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinesaveafm.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesaveafm.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splinesaveafm.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splinesaveafm.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splinesaveafm.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinesaveafm.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinesaveafm.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splinesaveafm.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesaveafm.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesaveafm.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splinesaveafm.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splinesaveafm.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splinesaveafm.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-splinestroke.o: luatexdir/luafontloader/fontforge/fontforge/splinestroke.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splinestroke.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinestroke.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinestroke.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splinestroke.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splinestroke.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinestroke.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinestroke.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splinestroke.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splinestroke.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinestroke.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splinestroke.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splinestroke.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-splinestroke.obj: luatexdir/luafontloader/fontforge/fontforge/splinestroke.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splinestroke.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinestroke.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinestroke.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splinestroke.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splinestroke.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splinestroke.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinestroke.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinestroke.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splinestroke.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splinestroke.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinestroke.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splinestroke.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splinestroke.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splinestroke.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil.o: luatexdir/luafontloader/fontforge/fontforge/splineutil.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineutil.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splineutil.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splineutil.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineutil.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineutil.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splineutil.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splineutil.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splineutil.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil.obj: luatexdir/luafontloader/fontforge/fontforge/splineutil.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineutil.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splineutil.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splineutil.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splineutil.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineutil.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineutil.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splineutil.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splineutil.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splineutil.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splineutil.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil2.o: luatexdir/luafontloader/fontforge/fontforge/splineutil2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil2.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineutil2.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil2.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splineutil2.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splineutil2.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineutil2.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineutil2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splineutil2.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil2.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil2.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splineutil2.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splineutil2.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil2.obj: luatexdir/luafontloader/fontforge/fontforge/splineutil2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil2.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineutil2.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil2.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splineutil2.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splineutil2.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splineutil2.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineutil2.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineutil2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splineutil2.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil2.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil2.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splineutil2.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splineutil2.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splineutil2.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-start.o: luatexdir/luafontloader/fontforge/fontforge/start.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-start.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-start.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-start.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/start.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/start.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-start.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-start.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/start.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-start.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-start.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/start.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/start.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-start.obj: luatexdir/luafontloader/fontforge/fontforge/start.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-start.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-start.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-start.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/start.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/start.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/start.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-start.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-start.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/start.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-start.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-start.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/start.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/start.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/start.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-stemdb.o: luatexdir/luafontloader/fontforge/fontforge/stemdb.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-stemdb.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-stemdb.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-stemdb.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/stemdb.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/stemdb.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-stemdb.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-stemdb.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/stemdb.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-stemdb.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-stemdb.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/stemdb.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/stemdb.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-stemdb.obj: luatexdir/luafontloader/fontforge/fontforge/stemdb.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-stemdb.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-stemdb.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-stemdb.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/stemdb.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/stemdb.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/stemdb.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-stemdb.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-stemdb.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/stemdb.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-stemdb.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-stemdb.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/stemdb.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/stemdb.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/stemdb.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-tottf.o: luatexdir/luafontloader/fontforge/fontforge/tottf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-tottf.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-tottf.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-tottf.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/tottf.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/tottf.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-tottf.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-tottf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/tottf.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-tottf.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-tottf.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/tottf.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/tottf.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-tottf.obj: luatexdir/luafontloader/fontforge/fontforge/tottf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-tottf.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-tottf.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-tottf.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/tottf.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/tottf.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/tottf.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-tottf.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-tottf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/tottf.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-tottf.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-tottf.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/tottf.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/tottf.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/tottf.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-tottfgpos.o: luatexdir/luafontloader/fontforge/fontforge/tottfgpos.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-tottfgpos.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-tottfgpos.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-tottfgpos.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/tottfgpos.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/tottfgpos.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-tottfgpos.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-tottfgpos.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/tottfgpos.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-tottfgpos.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-tottfgpos.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/tottfgpos.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/tottfgpos.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-tottfgpos.obj: luatexdir/luafontloader/fontforge/fontforge/tottfgpos.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-tottfgpos.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-tottfgpos.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-tottfgpos.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/tottfgpos.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/tottfgpos.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/tottfgpos.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-tottfgpos.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-tottfgpos.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/tottfgpos.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-tottfgpos.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-tottfgpos.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/tottfgpos.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/tottfgpos.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/tottfgpos.c'; fi` - -luatexdir/luafontloader/fontforge/fontforge/libff_a-ttfspecial.o: luatexdir/luafontloader/fontforge/fontforge/ttfspecial.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-ttfspecial.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-ttfspecial.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-ttfspecial.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/ttfspecial.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/ttfspecial.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-ttfspecial.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-ttfspecial.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/ttfspecial.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-ttfspecial.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-ttfspecial.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/ttfspecial.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/ttfspecial.c - -luatexdir/luafontloader/fontforge/fontforge/libff_a-ttfspecial.obj: luatexdir/luafontloader/fontforge/fontforge/ttfspecial.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-ttfspecial.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-ttfspecial.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-ttfspecial.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/ttfspecial.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/ttfspecial.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/ttfspecial.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-ttfspecial.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-ttfspecial.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/ttfspecial.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-ttfspecial.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-ttfspecial.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/ttfspecial.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/ttfspecial.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/ttfspecial.c'; fi` - -luatexdir/luafontloader/fontforge/gutils/libff_a-fsys.o: luatexdir/luafontloader/fontforge/gutils/fsys.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/gutils/libff_a-fsys.o -MD -MP -MF luatexdir/luafontloader/fontforge/gutils/$(DEPDIR)/libff_a-fsys.Tpo -c -o luatexdir/luafontloader/fontforge/gutils/libff_a-fsys.o `test -f 'luatexdir/luafontloader/fontforge/gutils/fsys.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/gutils/fsys.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/gutils/$(DEPDIR)/libff_a-fsys.Tpo luatexdir/luafontloader/fontforge/gutils/$(DEPDIR)/libff_a-fsys.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/gutils/fsys.c' object='luatexdir/luafontloader/fontforge/gutils/libff_a-fsys.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/gutils/libff_a-fsys.o `test -f 'luatexdir/luafontloader/fontforge/gutils/fsys.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/gutils/fsys.c - -luatexdir/luafontloader/fontforge/gutils/libff_a-fsys.obj: luatexdir/luafontloader/fontforge/gutils/fsys.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/gutils/libff_a-fsys.obj -MD -MP -MF luatexdir/luafontloader/fontforge/gutils/$(DEPDIR)/libff_a-fsys.Tpo -c -o luatexdir/luafontloader/fontforge/gutils/libff_a-fsys.obj `if test -f 'luatexdir/luafontloader/fontforge/gutils/fsys.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/gutils/fsys.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/gutils/fsys.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/gutils/$(DEPDIR)/libff_a-fsys.Tpo luatexdir/luafontloader/fontforge/gutils/$(DEPDIR)/libff_a-fsys.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/gutils/fsys.c' object='luatexdir/luafontloader/fontforge/gutils/libff_a-fsys.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/gutils/libff_a-fsys.obj `if test -f 'luatexdir/luafontloader/fontforge/gutils/fsys.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/gutils/fsys.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/gutils/fsys.c'; fi` - -ptexdir/libkanji_a-kanji.o: ptexdir/kanji.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libkanji_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ptexdir/libkanji_a-kanji.o -MD -MP -MF ptexdir/$(DEPDIR)/libkanji_a-kanji.Tpo -c -o ptexdir/libkanji_a-kanji.o `test -f 'ptexdir/kanji.c' || echo '$(srcdir)/'`ptexdir/kanji.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ptexdir/$(DEPDIR)/libkanji_a-kanji.Tpo ptexdir/$(DEPDIR)/libkanji_a-kanji.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ptexdir/kanji.c' object='ptexdir/libkanji_a-kanji.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libkanji_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ptexdir/libkanji_a-kanji.o `test -f 'ptexdir/kanji.c' || echo '$(srcdir)/'`ptexdir/kanji.c - -ptexdir/libkanji_a-kanji.obj: ptexdir/kanji.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libkanji_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ptexdir/libkanji_a-kanji.obj -MD -MP -MF ptexdir/$(DEPDIR)/libkanji_a-kanji.Tpo -c -o ptexdir/libkanji_a-kanji.obj `if test -f 'ptexdir/kanji.c'; then $(CYGPATH_W) 'ptexdir/kanji.c'; else $(CYGPATH_W) '$(srcdir)/ptexdir/kanji.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ptexdir/$(DEPDIR)/libkanji_a-kanji.Tpo ptexdir/$(DEPDIR)/libkanji_a-kanji.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ptexdir/kanji.c' object='ptexdir/libkanji_a-kanji.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libkanji_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ptexdir/libkanji_a-kanji.obj `if test -f 'ptexdir/kanji.c'; then $(CYGPATH_W) 'ptexdir/kanji.c'; else $(CYGPATH_W) '$(srcdir)/ptexdir/kanji.c'; fi` - -luatexdir/luaffi/liblua53ffi_a-call.o: luatexdir/luaffi/call.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53ffi_a_CPPFLAGS) $(CPPFLAGS) $(liblua53ffi_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaffi/liblua53ffi_a-call.o -MD -MP -MF luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-call.Tpo -c -o luatexdir/luaffi/liblua53ffi_a-call.o `test -f 'luatexdir/luaffi/call.c' || echo '$(srcdir)/'`luatexdir/luaffi/call.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-call.Tpo luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-call.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luaffi/call.c' object='luatexdir/luaffi/liblua53ffi_a-call.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53ffi_a_CPPFLAGS) $(CPPFLAGS) $(liblua53ffi_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaffi/liblua53ffi_a-call.o `test -f 'luatexdir/luaffi/call.c' || echo '$(srcdir)/'`luatexdir/luaffi/call.c - -luatexdir/luaffi/liblua53ffi_a-call.obj: luatexdir/luaffi/call.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53ffi_a_CPPFLAGS) $(CPPFLAGS) $(liblua53ffi_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaffi/liblua53ffi_a-call.obj -MD -MP -MF luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-call.Tpo -c -o luatexdir/luaffi/liblua53ffi_a-call.obj `if test -f 'luatexdir/luaffi/call.c'; then $(CYGPATH_W) 'luatexdir/luaffi/call.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaffi/call.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-call.Tpo luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-call.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luaffi/call.c' object='luatexdir/luaffi/liblua53ffi_a-call.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53ffi_a_CPPFLAGS) $(CPPFLAGS) $(liblua53ffi_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaffi/liblua53ffi_a-call.obj `if test -f 'luatexdir/luaffi/call.c'; then $(CYGPATH_W) 'luatexdir/luaffi/call.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaffi/call.c'; fi` - -luatexdir/luaffi/liblua53ffi_a-ctype.o: luatexdir/luaffi/ctype.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53ffi_a_CPPFLAGS) $(CPPFLAGS) $(liblua53ffi_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaffi/liblua53ffi_a-ctype.o -MD -MP -MF luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-ctype.Tpo -c -o luatexdir/luaffi/liblua53ffi_a-ctype.o `test -f 'luatexdir/luaffi/ctype.c' || echo '$(srcdir)/'`luatexdir/luaffi/ctype.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-ctype.Tpo luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-ctype.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luaffi/ctype.c' object='luatexdir/luaffi/liblua53ffi_a-ctype.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53ffi_a_CPPFLAGS) $(CPPFLAGS) $(liblua53ffi_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaffi/liblua53ffi_a-ctype.o `test -f 'luatexdir/luaffi/ctype.c' || echo '$(srcdir)/'`luatexdir/luaffi/ctype.c - -luatexdir/luaffi/liblua53ffi_a-ctype.obj: luatexdir/luaffi/ctype.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53ffi_a_CPPFLAGS) $(CPPFLAGS) $(liblua53ffi_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaffi/liblua53ffi_a-ctype.obj -MD -MP -MF luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-ctype.Tpo -c -o luatexdir/luaffi/liblua53ffi_a-ctype.obj `if test -f 'luatexdir/luaffi/ctype.c'; then $(CYGPATH_W) 'luatexdir/luaffi/ctype.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaffi/ctype.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-ctype.Tpo luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-ctype.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luaffi/ctype.c' object='luatexdir/luaffi/liblua53ffi_a-ctype.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53ffi_a_CPPFLAGS) $(CPPFLAGS) $(liblua53ffi_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaffi/liblua53ffi_a-ctype.obj `if test -f 'luatexdir/luaffi/ctype.c'; then $(CYGPATH_W) 'luatexdir/luaffi/ctype.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaffi/ctype.c'; fi` - -luatexdir/luaffi/liblua53ffi_a-ffi.o: luatexdir/luaffi/ffi.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53ffi_a_CPPFLAGS) $(CPPFLAGS) $(liblua53ffi_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaffi/liblua53ffi_a-ffi.o -MD -MP -MF luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-ffi.Tpo -c -o luatexdir/luaffi/liblua53ffi_a-ffi.o `test -f 'luatexdir/luaffi/ffi.c' || echo '$(srcdir)/'`luatexdir/luaffi/ffi.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-ffi.Tpo luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-ffi.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luaffi/ffi.c' object='luatexdir/luaffi/liblua53ffi_a-ffi.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53ffi_a_CPPFLAGS) $(CPPFLAGS) $(liblua53ffi_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaffi/liblua53ffi_a-ffi.o `test -f 'luatexdir/luaffi/ffi.c' || echo '$(srcdir)/'`luatexdir/luaffi/ffi.c - -luatexdir/luaffi/liblua53ffi_a-ffi.obj: luatexdir/luaffi/ffi.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53ffi_a_CPPFLAGS) $(CPPFLAGS) $(liblua53ffi_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaffi/liblua53ffi_a-ffi.obj -MD -MP -MF luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-ffi.Tpo -c -o luatexdir/luaffi/liblua53ffi_a-ffi.obj `if test -f 'luatexdir/luaffi/ffi.c'; then $(CYGPATH_W) 'luatexdir/luaffi/ffi.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaffi/ffi.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-ffi.Tpo luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-ffi.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luaffi/ffi.c' object='luatexdir/luaffi/liblua53ffi_a-ffi.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53ffi_a_CPPFLAGS) $(CPPFLAGS) $(liblua53ffi_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaffi/liblua53ffi_a-ffi.obj `if test -f 'luatexdir/luaffi/ffi.c'; then $(CYGPATH_W) 'luatexdir/luaffi/ffi.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaffi/ffi.c'; fi` - -luatexdir/luaffi/liblua53ffi_a-parser.o: luatexdir/luaffi/parser.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53ffi_a_CPPFLAGS) $(CPPFLAGS) $(liblua53ffi_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaffi/liblua53ffi_a-parser.o -MD -MP -MF luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-parser.Tpo -c -o luatexdir/luaffi/liblua53ffi_a-parser.o `test -f 'luatexdir/luaffi/parser.c' || echo '$(srcdir)/'`luatexdir/luaffi/parser.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-parser.Tpo luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-parser.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luaffi/parser.c' object='luatexdir/luaffi/liblua53ffi_a-parser.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53ffi_a_CPPFLAGS) $(CPPFLAGS) $(liblua53ffi_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaffi/liblua53ffi_a-parser.o `test -f 'luatexdir/luaffi/parser.c' || echo '$(srcdir)/'`luatexdir/luaffi/parser.c - -luatexdir/luaffi/liblua53ffi_a-parser.obj: luatexdir/luaffi/parser.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53ffi_a_CPPFLAGS) $(CPPFLAGS) $(liblua53ffi_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaffi/liblua53ffi_a-parser.obj -MD -MP -MF luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-parser.Tpo -c -o luatexdir/luaffi/liblua53ffi_a-parser.obj `if test -f 'luatexdir/luaffi/parser.c'; then $(CYGPATH_W) 'luatexdir/luaffi/parser.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaffi/parser.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-parser.Tpo luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-parser.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luaffi/parser.c' object='luatexdir/luaffi/liblua53ffi_a-parser.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53ffi_a_CPPFLAGS) $(CPPFLAGS) $(liblua53ffi_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luaffi/liblua53ffi_a-parser.obj `if test -f 'luatexdir/luaffi/parser.c'; then $(CYGPATH_W) 'luatexdir/luaffi/parser.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luaffi/parser.c'; fi` - -luatexdir/luafilesystem/src/liblua53misc_a-lfs.o: luatexdir/luafilesystem/src/lfs.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53misc_a_CPPFLAGS) $(CPPFLAGS) $(liblua53misc_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafilesystem/src/liblua53misc_a-lfs.o -MD -MP -MF luatexdir/luafilesystem/src/$(DEPDIR)/liblua53misc_a-lfs.Tpo -c -o luatexdir/luafilesystem/src/liblua53misc_a-lfs.o `test -f 'luatexdir/luafilesystem/src/lfs.c' || echo '$(srcdir)/'`luatexdir/luafilesystem/src/lfs.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafilesystem/src/$(DEPDIR)/liblua53misc_a-lfs.Tpo luatexdir/luafilesystem/src/$(DEPDIR)/liblua53misc_a-lfs.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafilesystem/src/lfs.c' object='luatexdir/luafilesystem/src/liblua53misc_a-lfs.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53misc_a_CPPFLAGS) $(CPPFLAGS) $(liblua53misc_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafilesystem/src/liblua53misc_a-lfs.o `test -f 'luatexdir/luafilesystem/src/lfs.c' || echo '$(srcdir)/'`luatexdir/luafilesystem/src/lfs.c - -luatexdir/luafilesystem/src/liblua53misc_a-lfs.obj: luatexdir/luafilesystem/src/lfs.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53misc_a_CPPFLAGS) $(CPPFLAGS) $(liblua53misc_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafilesystem/src/liblua53misc_a-lfs.obj -MD -MP -MF luatexdir/luafilesystem/src/$(DEPDIR)/liblua53misc_a-lfs.Tpo -c -o luatexdir/luafilesystem/src/liblua53misc_a-lfs.obj `if test -f 'luatexdir/luafilesystem/src/lfs.c'; then $(CYGPATH_W) 'luatexdir/luafilesystem/src/lfs.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafilesystem/src/lfs.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafilesystem/src/$(DEPDIR)/liblua53misc_a-lfs.Tpo luatexdir/luafilesystem/src/$(DEPDIR)/liblua53misc_a-lfs.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafilesystem/src/lfs.c' object='luatexdir/luafilesystem/src/liblua53misc_a-lfs.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53misc_a_CPPFLAGS) $(CPPFLAGS) $(liblua53misc_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafilesystem/src/liblua53misc_a-lfs.obj `if test -f 'luatexdir/luafilesystem/src/lfs.c'; then $(CYGPATH_W) 'luatexdir/luafilesystem/src/lfs.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafilesystem/src/lfs.c'; fi` - -luatexdir/luamd5/liblua53misc_a-md5.o: luatexdir/luamd5/md5.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53misc_a_CPPFLAGS) $(CPPFLAGS) $(liblua53misc_a_CFLAGS) $(CFLAGS) -MT luatexdir/luamd5/liblua53misc_a-md5.o -MD -MP -MF luatexdir/luamd5/$(DEPDIR)/liblua53misc_a-md5.Tpo -c -o luatexdir/luamd5/liblua53misc_a-md5.o `test -f 'luatexdir/luamd5/md5.c' || echo '$(srcdir)/'`luatexdir/luamd5/md5.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luamd5/$(DEPDIR)/liblua53misc_a-md5.Tpo luatexdir/luamd5/$(DEPDIR)/liblua53misc_a-md5.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luamd5/md5.c' object='luatexdir/luamd5/liblua53misc_a-md5.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53misc_a_CPPFLAGS) $(CPPFLAGS) $(liblua53misc_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luamd5/liblua53misc_a-md5.o `test -f 'luatexdir/luamd5/md5.c' || echo '$(srcdir)/'`luatexdir/luamd5/md5.c - -luatexdir/luamd5/liblua53misc_a-md5.obj: luatexdir/luamd5/md5.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53misc_a_CPPFLAGS) $(CPPFLAGS) $(liblua53misc_a_CFLAGS) $(CFLAGS) -MT luatexdir/luamd5/liblua53misc_a-md5.obj -MD -MP -MF luatexdir/luamd5/$(DEPDIR)/liblua53misc_a-md5.Tpo -c -o luatexdir/luamd5/liblua53misc_a-md5.obj `if test -f 'luatexdir/luamd5/md5.c'; then $(CYGPATH_W) 'luatexdir/luamd5/md5.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luamd5/md5.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luamd5/$(DEPDIR)/liblua53misc_a-md5.Tpo luatexdir/luamd5/$(DEPDIR)/liblua53misc_a-md5.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luamd5/md5.c' object='luatexdir/luamd5/liblua53misc_a-md5.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53misc_a_CPPFLAGS) $(CPPFLAGS) $(liblua53misc_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luamd5/liblua53misc_a-md5.obj `if test -f 'luatexdir/luamd5/md5.c'; then $(CYGPATH_W) 'luatexdir/luamd5/md5.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luamd5/md5.c'; fi` - -luatexdir/luamd5/liblua53misc_a-md5lib.o: luatexdir/luamd5/md5lib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53misc_a_CPPFLAGS) $(CPPFLAGS) $(liblua53misc_a_CFLAGS) $(CFLAGS) -MT luatexdir/luamd5/liblua53misc_a-md5lib.o -MD -MP -MF luatexdir/luamd5/$(DEPDIR)/liblua53misc_a-md5lib.Tpo -c -o luatexdir/luamd5/liblua53misc_a-md5lib.o `test -f 'luatexdir/luamd5/md5lib.c' || echo '$(srcdir)/'`luatexdir/luamd5/md5lib.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luamd5/$(DEPDIR)/liblua53misc_a-md5lib.Tpo luatexdir/luamd5/$(DEPDIR)/liblua53misc_a-md5lib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luamd5/md5lib.c' object='luatexdir/luamd5/liblua53misc_a-md5lib.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53misc_a_CPPFLAGS) $(CPPFLAGS) $(liblua53misc_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luamd5/liblua53misc_a-md5lib.o `test -f 'luatexdir/luamd5/md5lib.c' || echo '$(srcdir)/'`luatexdir/luamd5/md5lib.c - -luatexdir/luamd5/liblua53misc_a-md5lib.obj: luatexdir/luamd5/md5lib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53misc_a_CPPFLAGS) $(CPPFLAGS) $(liblua53misc_a_CFLAGS) $(CFLAGS) -MT luatexdir/luamd5/liblua53misc_a-md5lib.obj -MD -MP -MF luatexdir/luamd5/$(DEPDIR)/liblua53misc_a-md5lib.Tpo -c -o luatexdir/luamd5/liblua53misc_a-md5lib.obj `if test -f 'luatexdir/luamd5/md5lib.c'; then $(CYGPATH_W) 'luatexdir/luamd5/md5lib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luamd5/md5lib.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luamd5/$(DEPDIR)/liblua53misc_a-md5lib.Tpo luatexdir/luamd5/$(DEPDIR)/liblua53misc_a-md5lib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luamd5/md5lib.c' object='luatexdir/luamd5/liblua53misc_a-md5lib.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53misc_a_CPPFLAGS) $(CPPFLAGS) $(liblua53misc_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luamd5/liblua53misc_a-md5lib.obj `if test -f 'luatexdir/luamd5/md5lib.c'; then $(CYGPATH_W) 'luatexdir/luamd5/md5lib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luamd5/md5lib.c'; fi` - -luatexdir/luapeg/liblua53misc_a-lpeg.o: luatexdir/luapeg/lpeg.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53misc_a_CPPFLAGS) $(CPPFLAGS) $(liblua53misc_a_CFLAGS) $(CFLAGS) -MT luatexdir/luapeg/liblua53misc_a-lpeg.o -MD -MP -MF luatexdir/luapeg/$(DEPDIR)/liblua53misc_a-lpeg.Tpo -c -o luatexdir/luapeg/liblua53misc_a-lpeg.o `test -f 'luatexdir/luapeg/lpeg.c' || echo '$(srcdir)/'`luatexdir/luapeg/lpeg.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapeg/$(DEPDIR)/liblua53misc_a-lpeg.Tpo luatexdir/luapeg/$(DEPDIR)/liblua53misc_a-lpeg.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapeg/lpeg.c' object='luatexdir/luapeg/liblua53misc_a-lpeg.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53misc_a_CPPFLAGS) $(CPPFLAGS) $(liblua53misc_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luapeg/liblua53misc_a-lpeg.o `test -f 'luatexdir/luapeg/lpeg.c' || echo '$(srcdir)/'`luatexdir/luapeg/lpeg.c - -luatexdir/luapeg/liblua53misc_a-lpeg.obj: luatexdir/luapeg/lpeg.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53misc_a_CPPFLAGS) $(CPPFLAGS) $(liblua53misc_a_CFLAGS) $(CFLAGS) -MT luatexdir/luapeg/liblua53misc_a-lpeg.obj -MD -MP -MF luatexdir/luapeg/$(DEPDIR)/liblua53misc_a-lpeg.Tpo -c -o luatexdir/luapeg/liblua53misc_a-lpeg.obj `if test -f 'luatexdir/luapeg/lpeg.c'; then $(CYGPATH_W) 'luatexdir/luapeg/lpeg.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapeg/lpeg.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapeg/$(DEPDIR)/liblua53misc_a-lpeg.Tpo luatexdir/luapeg/$(DEPDIR)/liblua53misc_a-lpeg.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapeg/lpeg.c' object='luatexdir/luapeg/liblua53misc_a-lpeg.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53misc_a_CPPFLAGS) $(CPPFLAGS) $(liblua53misc_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luapeg/liblua53misc_a-lpeg.obj `if test -f 'luatexdir/luapeg/lpeg.c'; then $(CYGPATH_W) 'luatexdir/luapeg/lpeg.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapeg/lpeg.c'; fi` - -luatexdir/luazip/src/liblua53misc_a-luazip.o: luatexdir/luazip/src/luazip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53misc_a_CPPFLAGS) $(CPPFLAGS) $(liblua53misc_a_CFLAGS) $(CFLAGS) -MT luatexdir/luazip/src/liblua53misc_a-luazip.o -MD -MP -MF luatexdir/luazip/src/$(DEPDIR)/liblua53misc_a-luazip.Tpo -c -o luatexdir/luazip/src/liblua53misc_a-luazip.o `test -f 'luatexdir/luazip/src/luazip.c' || echo '$(srcdir)/'`luatexdir/luazip/src/luazip.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luazip/src/$(DEPDIR)/liblua53misc_a-luazip.Tpo luatexdir/luazip/src/$(DEPDIR)/liblua53misc_a-luazip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luazip/src/luazip.c' object='luatexdir/luazip/src/liblua53misc_a-luazip.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53misc_a_CPPFLAGS) $(CPPFLAGS) $(liblua53misc_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luazip/src/liblua53misc_a-luazip.o `test -f 'luatexdir/luazip/src/luazip.c' || echo '$(srcdir)/'`luatexdir/luazip/src/luazip.c - -luatexdir/luazip/src/liblua53misc_a-luazip.obj: luatexdir/luazip/src/luazip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53misc_a_CPPFLAGS) $(CPPFLAGS) $(liblua53misc_a_CFLAGS) $(CFLAGS) -MT luatexdir/luazip/src/liblua53misc_a-luazip.obj -MD -MP -MF luatexdir/luazip/src/$(DEPDIR)/liblua53misc_a-luazip.Tpo -c -o luatexdir/luazip/src/liblua53misc_a-luazip.obj `if test -f 'luatexdir/luazip/src/luazip.c'; then $(CYGPATH_W) 'luatexdir/luazip/src/luazip.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luazip/src/luazip.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luazip/src/$(DEPDIR)/liblua53misc_a-luazip.Tpo luatexdir/luazip/src/$(DEPDIR)/liblua53misc_a-luazip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luazip/src/luazip.c' object='luatexdir/luazip/src/liblua53misc_a-luazip.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53misc_a_CPPFLAGS) $(CPPFLAGS) $(liblua53misc_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luazip/src/liblua53misc_a-luazip.obj `if test -f 'luatexdir/luazip/src/luazip.c'; then $(CYGPATH_W) 'luatexdir/luazip/src/luazip.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luazip/src/luazip.c'; fi` - -luatexdir/luazlib/liblua53misc_a-lgzip.o: luatexdir/luazlib/lgzip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53misc_a_CPPFLAGS) $(CPPFLAGS) $(liblua53misc_a_CFLAGS) $(CFLAGS) -MT luatexdir/luazlib/liblua53misc_a-lgzip.o -MD -MP -MF luatexdir/luazlib/$(DEPDIR)/liblua53misc_a-lgzip.Tpo -c -o luatexdir/luazlib/liblua53misc_a-lgzip.o `test -f 'luatexdir/luazlib/lgzip.c' || echo '$(srcdir)/'`luatexdir/luazlib/lgzip.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luazlib/$(DEPDIR)/liblua53misc_a-lgzip.Tpo luatexdir/luazlib/$(DEPDIR)/liblua53misc_a-lgzip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luazlib/lgzip.c' object='luatexdir/luazlib/liblua53misc_a-lgzip.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53misc_a_CPPFLAGS) $(CPPFLAGS) $(liblua53misc_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luazlib/liblua53misc_a-lgzip.o `test -f 'luatexdir/luazlib/lgzip.c' || echo '$(srcdir)/'`luatexdir/luazlib/lgzip.c - -luatexdir/luazlib/liblua53misc_a-lgzip.obj: luatexdir/luazlib/lgzip.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53misc_a_CPPFLAGS) $(CPPFLAGS) $(liblua53misc_a_CFLAGS) $(CFLAGS) -MT luatexdir/luazlib/liblua53misc_a-lgzip.obj -MD -MP -MF luatexdir/luazlib/$(DEPDIR)/liblua53misc_a-lgzip.Tpo -c -o luatexdir/luazlib/liblua53misc_a-lgzip.obj `if test -f 'luatexdir/luazlib/lgzip.c'; then $(CYGPATH_W) 'luatexdir/luazlib/lgzip.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luazlib/lgzip.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luazlib/$(DEPDIR)/liblua53misc_a-lgzip.Tpo luatexdir/luazlib/$(DEPDIR)/liblua53misc_a-lgzip.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luazlib/lgzip.c' object='luatexdir/luazlib/liblua53misc_a-lgzip.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53misc_a_CPPFLAGS) $(CPPFLAGS) $(liblua53misc_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luazlib/liblua53misc_a-lgzip.obj `if test -f 'luatexdir/luazlib/lgzip.c'; then $(CYGPATH_W) 'luatexdir/luazlib/lgzip.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luazlib/lgzip.c'; fi` - -luatexdir/luazlib/liblua53misc_a-lzlib.o: luatexdir/luazlib/lzlib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53misc_a_CPPFLAGS) $(CPPFLAGS) $(liblua53misc_a_CFLAGS) $(CFLAGS) -MT luatexdir/luazlib/liblua53misc_a-lzlib.o -MD -MP -MF luatexdir/luazlib/$(DEPDIR)/liblua53misc_a-lzlib.Tpo -c -o luatexdir/luazlib/liblua53misc_a-lzlib.o `test -f 'luatexdir/luazlib/lzlib.c' || echo '$(srcdir)/'`luatexdir/luazlib/lzlib.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luazlib/$(DEPDIR)/liblua53misc_a-lzlib.Tpo luatexdir/luazlib/$(DEPDIR)/liblua53misc_a-lzlib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luazlib/lzlib.c' object='luatexdir/luazlib/liblua53misc_a-lzlib.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53misc_a_CPPFLAGS) $(CPPFLAGS) $(liblua53misc_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luazlib/liblua53misc_a-lzlib.o `test -f 'luatexdir/luazlib/lzlib.c' || echo '$(srcdir)/'`luatexdir/luazlib/lzlib.c - -luatexdir/luazlib/liblua53misc_a-lzlib.obj: luatexdir/luazlib/lzlib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53misc_a_CPPFLAGS) $(CPPFLAGS) $(liblua53misc_a_CFLAGS) $(CFLAGS) -MT luatexdir/luazlib/liblua53misc_a-lzlib.obj -MD -MP -MF luatexdir/luazlib/$(DEPDIR)/liblua53misc_a-lzlib.Tpo -c -o luatexdir/luazlib/liblua53misc_a-lzlib.obj `if test -f 'luatexdir/luazlib/lzlib.c'; then $(CYGPATH_W) 'luatexdir/luazlib/lzlib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luazlib/lzlib.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luazlib/$(DEPDIR)/liblua53misc_a-lzlib.Tpo luatexdir/luazlib/$(DEPDIR)/liblua53misc_a-lzlib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luazlib/lzlib.c' object='luatexdir/luazlib/liblua53misc_a-lzlib.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53misc_a_CPPFLAGS) $(CPPFLAGS) $(liblua53misc_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luazlib/liblua53misc_a-lzlib.obj `if test -f 'luatexdir/luazlib/lzlib.c'; then $(CYGPATH_W) 'luatexdir/luazlib/lzlib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luazlib/lzlib.c'; fi` - -luatexdir/slnunicode/liblua53misc_a-slnunico.o: luatexdir/slnunicode/slnunico.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53misc_a_CPPFLAGS) $(CPPFLAGS) $(liblua53misc_a_CFLAGS) $(CFLAGS) -MT luatexdir/slnunicode/liblua53misc_a-slnunico.o -MD -MP -MF luatexdir/slnunicode/$(DEPDIR)/liblua53misc_a-slnunico.Tpo -c -o luatexdir/slnunicode/liblua53misc_a-slnunico.o `test -f 'luatexdir/slnunicode/slnunico.c' || echo '$(srcdir)/'`luatexdir/slnunicode/slnunico.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/slnunicode/$(DEPDIR)/liblua53misc_a-slnunico.Tpo luatexdir/slnunicode/$(DEPDIR)/liblua53misc_a-slnunico.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/slnunicode/slnunico.c' object='luatexdir/slnunicode/liblua53misc_a-slnunico.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53misc_a_CPPFLAGS) $(CPPFLAGS) $(liblua53misc_a_CFLAGS) $(CFLAGS) -c -o luatexdir/slnunicode/liblua53misc_a-slnunico.o `test -f 'luatexdir/slnunicode/slnunico.c' || echo '$(srcdir)/'`luatexdir/slnunicode/slnunico.c - -luatexdir/slnunicode/liblua53misc_a-slnunico.obj: luatexdir/slnunicode/slnunico.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53misc_a_CPPFLAGS) $(CPPFLAGS) $(liblua53misc_a_CFLAGS) $(CFLAGS) -MT luatexdir/slnunicode/liblua53misc_a-slnunico.obj -MD -MP -MF luatexdir/slnunicode/$(DEPDIR)/liblua53misc_a-slnunico.Tpo -c -o luatexdir/slnunicode/liblua53misc_a-slnunico.obj `if test -f 'luatexdir/slnunicode/slnunico.c'; then $(CYGPATH_W) 'luatexdir/slnunicode/slnunico.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/slnunicode/slnunico.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/slnunicode/$(DEPDIR)/liblua53misc_a-slnunico.Tpo luatexdir/slnunicode/$(DEPDIR)/liblua53misc_a-slnunico.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/slnunicode/slnunico.c' object='luatexdir/slnunicode/liblua53misc_a-slnunico.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53misc_a_CPPFLAGS) $(CPPFLAGS) $(liblua53misc_a_CFLAGS) $(CFLAGS) -c -o luatexdir/slnunicode/liblua53misc_a-slnunico.obj `if test -f 'luatexdir/slnunicode/slnunico.c'; then $(CYGPATH_W) 'luatexdir/slnunicode/slnunico.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/slnunicode/slnunico.c'; fi` - -luatexdir/luapplib/liblua53pplib_a-pparray.o: luatexdir/luapplib/pparray.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/liblua53pplib_a-pparray.o -MD -MP -MF luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-pparray.Tpo -c -o luatexdir/luapplib/liblua53pplib_a-pparray.o `test -f 'luatexdir/luapplib/pparray.c' || echo '$(srcdir)/'`luatexdir/luapplib/pparray.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-pparray.Tpo luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-pparray.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/pparray.c' object='luatexdir/luapplib/liblua53pplib_a-pparray.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/liblua53pplib_a-pparray.o `test -f 'luatexdir/luapplib/pparray.c' || echo '$(srcdir)/'`luatexdir/luapplib/pparray.c - -luatexdir/luapplib/liblua53pplib_a-pparray.obj: luatexdir/luapplib/pparray.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/liblua53pplib_a-pparray.obj -MD -MP -MF luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-pparray.Tpo -c -o luatexdir/luapplib/liblua53pplib_a-pparray.obj `if test -f 'luatexdir/luapplib/pparray.c'; then $(CYGPATH_W) 'luatexdir/luapplib/pparray.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/pparray.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-pparray.Tpo luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-pparray.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/pparray.c' object='luatexdir/luapplib/liblua53pplib_a-pparray.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/liblua53pplib_a-pparray.obj `if test -f 'luatexdir/luapplib/pparray.c'; then $(CYGPATH_W) 'luatexdir/luapplib/pparray.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/pparray.c'; fi` - -luatexdir/luapplib/liblua53pplib_a-ppcrypt.o: luatexdir/luapplib/ppcrypt.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/liblua53pplib_a-ppcrypt.o -MD -MP -MF luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppcrypt.Tpo -c -o luatexdir/luapplib/liblua53pplib_a-ppcrypt.o `test -f 'luatexdir/luapplib/ppcrypt.c' || echo '$(srcdir)/'`luatexdir/luapplib/ppcrypt.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppcrypt.Tpo luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppcrypt.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/ppcrypt.c' object='luatexdir/luapplib/liblua53pplib_a-ppcrypt.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/liblua53pplib_a-ppcrypt.o `test -f 'luatexdir/luapplib/ppcrypt.c' || echo '$(srcdir)/'`luatexdir/luapplib/ppcrypt.c - -luatexdir/luapplib/liblua53pplib_a-ppcrypt.obj: luatexdir/luapplib/ppcrypt.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/liblua53pplib_a-ppcrypt.obj -MD -MP -MF luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppcrypt.Tpo -c -o luatexdir/luapplib/liblua53pplib_a-ppcrypt.obj `if test -f 'luatexdir/luapplib/ppcrypt.c'; then $(CYGPATH_W) 'luatexdir/luapplib/ppcrypt.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/ppcrypt.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppcrypt.Tpo luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppcrypt.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/ppcrypt.c' object='luatexdir/luapplib/liblua53pplib_a-ppcrypt.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/liblua53pplib_a-ppcrypt.obj `if test -f 'luatexdir/luapplib/ppcrypt.c'; then $(CYGPATH_W) 'luatexdir/luapplib/ppcrypt.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/ppcrypt.c'; fi` - -luatexdir/luapplib/liblua53pplib_a-ppdict.o: luatexdir/luapplib/ppdict.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/liblua53pplib_a-ppdict.o -MD -MP -MF luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppdict.Tpo -c -o luatexdir/luapplib/liblua53pplib_a-ppdict.o `test -f 'luatexdir/luapplib/ppdict.c' || echo '$(srcdir)/'`luatexdir/luapplib/ppdict.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppdict.Tpo luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppdict.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/ppdict.c' object='luatexdir/luapplib/liblua53pplib_a-ppdict.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/liblua53pplib_a-ppdict.o `test -f 'luatexdir/luapplib/ppdict.c' || echo '$(srcdir)/'`luatexdir/luapplib/ppdict.c - -luatexdir/luapplib/liblua53pplib_a-ppdict.obj: luatexdir/luapplib/ppdict.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/liblua53pplib_a-ppdict.obj -MD -MP -MF luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppdict.Tpo -c -o luatexdir/luapplib/liblua53pplib_a-ppdict.obj `if test -f 'luatexdir/luapplib/ppdict.c'; then $(CYGPATH_W) 'luatexdir/luapplib/ppdict.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/ppdict.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppdict.Tpo luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppdict.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/ppdict.c' object='luatexdir/luapplib/liblua53pplib_a-ppdict.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/liblua53pplib_a-ppdict.obj `if test -f 'luatexdir/luapplib/ppdict.c'; then $(CYGPATH_W) 'luatexdir/luapplib/ppdict.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/ppdict.c'; fi` - -luatexdir/luapplib/liblua53pplib_a-ppheap.o: luatexdir/luapplib/ppheap.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/liblua53pplib_a-ppheap.o -MD -MP -MF luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppheap.Tpo -c -o luatexdir/luapplib/liblua53pplib_a-ppheap.o `test -f 'luatexdir/luapplib/ppheap.c' || echo '$(srcdir)/'`luatexdir/luapplib/ppheap.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppheap.Tpo luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppheap.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/ppheap.c' object='luatexdir/luapplib/liblua53pplib_a-ppheap.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/liblua53pplib_a-ppheap.o `test -f 'luatexdir/luapplib/ppheap.c' || echo '$(srcdir)/'`luatexdir/luapplib/ppheap.c - -luatexdir/luapplib/liblua53pplib_a-ppheap.obj: luatexdir/luapplib/ppheap.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/liblua53pplib_a-ppheap.obj -MD -MP -MF luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppheap.Tpo -c -o luatexdir/luapplib/liblua53pplib_a-ppheap.obj `if test -f 'luatexdir/luapplib/ppheap.c'; then $(CYGPATH_W) 'luatexdir/luapplib/ppheap.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/ppheap.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppheap.Tpo luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppheap.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/ppheap.c' object='luatexdir/luapplib/liblua53pplib_a-ppheap.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/liblua53pplib_a-ppheap.obj `if test -f 'luatexdir/luapplib/ppheap.c'; then $(CYGPATH_W) 'luatexdir/luapplib/ppheap.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/ppheap.c'; fi` - -luatexdir/luapplib/liblua53pplib_a-ppload.o: luatexdir/luapplib/ppload.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/liblua53pplib_a-ppload.o -MD -MP -MF luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppload.Tpo -c -o luatexdir/luapplib/liblua53pplib_a-ppload.o `test -f 'luatexdir/luapplib/ppload.c' || echo '$(srcdir)/'`luatexdir/luapplib/ppload.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppload.Tpo luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppload.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/ppload.c' object='luatexdir/luapplib/liblua53pplib_a-ppload.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/liblua53pplib_a-ppload.o `test -f 'luatexdir/luapplib/ppload.c' || echo '$(srcdir)/'`luatexdir/luapplib/ppload.c - -luatexdir/luapplib/liblua53pplib_a-ppload.obj: luatexdir/luapplib/ppload.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/liblua53pplib_a-ppload.obj -MD -MP -MF luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppload.Tpo -c -o luatexdir/luapplib/liblua53pplib_a-ppload.obj `if test -f 'luatexdir/luapplib/ppload.c'; then $(CYGPATH_W) 'luatexdir/luapplib/ppload.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/ppload.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppload.Tpo luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppload.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/ppload.c' object='luatexdir/luapplib/liblua53pplib_a-ppload.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/liblua53pplib_a-ppload.obj `if test -f 'luatexdir/luapplib/ppload.c'; then $(CYGPATH_W) 'luatexdir/luapplib/ppload.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/ppload.c'; fi` - -luatexdir/luapplib/liblua53pplib_a-ppstream.o: luatexdir/luapplib/ppstream.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/liblua53pplib_a-ppstream.o -MD -MP -MF luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppstream.Tpo -c -o luatexdir/luapplib/liblua53pplib_a-ppstream.o `test -f 'luatexdir/luapplib/ppstream.c' || echo '$(srcdir)/'`luatexdir/luapplib/ppstream.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppstream.Tpo luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppstream.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/ppstream.c' object='luatexdir/luapplib/liblua53pplib_a-ppstream.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/liblua53pplib_a-ppstream.o `test -f 'luatexdir/luapplib/ppstream.c' || echo '$(srcdir)/'`luatexdir/luapplib/ppstream.c - -luatexdir/luapplib/liblua53pplib_a-ppstream.obj: luatexdir/luapplib/ppstream.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/liblua53pplib_a-ppstream.obj -MD -MP -MF luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppstream.Tpo -c -o luatexdir/luapplib/liblua53pplib_a-ppstream.obj `if test -f 'luatexdir/luapplib/ppstream.c'; then $(CYGPATH_W) 'luatexdir/luapplib/ppstream.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/ppstream.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppstream.Tpo luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppstream.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/ppstream.c' object='luatexdir/luapplib/liblua53pplib_a-ppstream.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/liblua53pplib_a-ppstream.obj `if test -f 'luatexdir/luapplib/ppstream.c'; then $(CYGPATH_W) 'luatexdir/luapplib/ppstream.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/ppstream.c'; fi` - -luatexdir/luapplib/liblua53pplib_a-ppxref.o: luatexdir/luapplib/ppxref.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/liblua53pplib_a-ppxref.o -MD -MP -MF luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppxref.Tpo -c -o luatexdir/luapplib/liblua53pplib_a-ppxref.o `test -f 'luatexdir/luapplib/ppxref.c' || echo '$(srcdir)/'`luatexdir/luapplib/ppxref.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppxref.Tpo luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppxref.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/ppxref.c' object='luatexdir/luapplib/liblua53pplib_a-ppxref.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/liblua53pplib_a-ppxref.o `test -f 'luatexdir/luapplib/ppxref.c' || echo '$(srcdir)/'`luatexdir/luapplib/ppxref.c - -luatexdir/luapplib/liblua53pplib_a-ppxref.obj: luatexdir/luapplib/ppxref.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/liblua53pplib_a-ppxref.obj -MD -MP -MF luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppxref.Tpo -c -o luatexdir/luapplib/liblua53pplib_a-ppxref.obj `if test -f 'luatexdir/luapplib/ppxref.c'; then $(CYGPATH_W) 'luatexdir/luapplib/ppxref.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/ppxref.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppxref.Tpo luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppxref.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/ppxref.c' object='luatexdir/luapplib/liblua53pplib_a-ppxref.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/liblua53pplib_a-ppxref.obj `if test -f 'luatexdir/luapplib/ppxref.c'; then $(CYGPATH_W) 'luatexdir/luapplib/ppxref.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/ppxref.c'; fi` - -luatexdir/luapplib/util/liblua53pplib_a-utilbasexx.o: luatexdir/luapplib/util/utilbasexx.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/util/liblua53pplib_a-utilbasexx.o -MD -MP -MF luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilbasexx.Tpo -c -o luatexdir/luapplib/util/liblua53pplib_a-utilbasexx.o `test -f 'luatexdir/luapplib/util/utilbasexx.c' || echo '$(srcdir)/'`luatexdir/luapplib/util/utilbasexx.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilbasexx.Tpo luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilbasexx.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/util/utilbasexx.c' object='luatexdir/luapplib/util/liblua53pplib_a-utilbasexx.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/util/liblua53pplib_a-utilbasexx.o `test -f 'luatexdir/luapplib/util/utilbasexx.c' || echo '$(srcdir)/'`luatexdir/luapplib/util/utilbasexx.c - -luatexdir/luapplib/util/liblua53pplib_a-utilbasexx.obj: luatexdir/luapplib/util/utilbasexx.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/util/liblua53pplib_a-utilbasexx.obj -MD -MP -MF luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilbasexx.Tpo -c -o luatexdir/luapplib/util/liblua53pplib_a-utilbasexx.obj `if test -f 'luatexdir/luapplib/util/utilbasexx.c'; then $(CYGPATH_W) 'luatexdir/luapplib/util/utilbasexx.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/util/utilbasexx.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilbasexx.Tpo luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilbasexx.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/util/utilbasexx.c' object='luatexdir/luapplib/util/liblua53pplib_a-utilbasexx.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/util/liblua53pplib_a-utilbasexx.obj `if test -f 'luatexdir/luapplib/util/utilbasexx.c'; then $(CYGPATH_W) 'luatexdir/luapplib/util/utilbasexx.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/util/utilbasexx.c'; fi` - -luatexdir/luapplib/util/liblua53pplib_a-utilcrypt.o: luatexdir/luapplib/util/utilcrypt.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/util/liblua53pplib_a-utilcrypt.o -MD -MP -MF luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilcrypt.Tpo -c -o luatexdir/luapplib/util/liblua53pplib_a-utilcrypt.o `test -f 'luatexdir/luapplib/util/utilcrypt.c' || echo '$(srcdir)/'`luatexdir/luapplib/util/utilcrypt.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilcrypt.Tpo luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilcrypt.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/util/utilcrypt.c' object='luatexdir/luapplib/util/liblua53pplib_a-utilcrypt.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/util/liblua53pplib_a-utilcrypt.o `test -f 'luatexdir/luapplib/util/utilcrypt.c' || echo '$(srcdir)/'`luatexdir/luapplib/util/utilcrypt.c - -luatexdir/luapplib/util/liblua53pplib_a-utilcrypt.obj: luatexdir/luapplib/util/utilcrypt.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/util/liblua53pplib_a-utilcrypt.obj -MD -MP -MF luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilcrypt.Tpo -c -o luatexdir/luapplib/util/liblua53pplib_a-utilcrypt.obj `if test -f 'luatexdir/luapplib/util/utilcrypt.c'; then $(CYGPATH_W) 'luatexdir/luapplib/util/utilcrypt.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/util/utilcrypt.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilcrypt.Tpo luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilcrypt.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/util/utilcrypt.c' object='luatexdir/luapplib/util/liblua53pplib_a-utilcrypt.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/util/liblua53pplib_a-utilcrypt.obj `if test -f 'luatexdir/luapplib/util/utilcrypt.c'; then $(CYGPATH_W) 'luatexdir/luapplib/util/utilcrypt.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/util/utilcrypt.c'; fi` - -luatexdir/luapplib/util/liblua53pplib_a-utilflate.o: luatexdir/luapplib/util/utilflate.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/util/liblua53pplib_a-utilflate.o -MD -MP -MF luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilflate.Tpo -c -o luatexdir/luapplib/util/liblua53pplib_a-utilflate.o `test -f 'luatexdir/luapplib/util/utilflate.c' || echo '$(srcdir)/'`luatexdir/luapplib/util/utilflate.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilflate.Tpo luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilflate.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/util/utilflate.c' object='luatexdir/luapplib/util/liblua53pplib_a-utilflate.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/util/liblua53pplib_a-utilflate.o `test -f 'luatexdir/luapplib/util/utilflate.c' || echo '$(srcdir)/'`luatexdir/luapplib/util/utilflate.c - -luatexdir/luapplib/util/liblua53pplib_a-utilflate.obj: luatexdir/luapplib/util/utilflate.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/util/liblua53pplib_a-utilflate.obj -MD -MP -MF luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilflate.Tpo -c -o luatexdir/luapplib/util/liblua53pplib_a-utilflate.obj `if test -f 'luatexdir/luapplib/util/utilflate.c'; then $(CYGPATH_W) 'luatexdir/luapplib/util/utilflate.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/util/utilflate.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilflate.Tpo luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilflate.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/util/utilflate.c' object='luatexdir/luapplib/util/liblua53pplib_a-utilflate.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/util/liblua53pplib_a-utilflate.obj `if test -f 'luatexdir/luapplib/util/utilflate.c'; then $(CYGPATH_W) 'luatexdir/luapplib/util/utilflate.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/util/utilflate.c'; fi` - -luatexdir/luapplib/util/liblua53pplib_a-utilfpred.o: luatexdir/luapplib/util/utilfpred.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/util/liblua53pplib_a-utilfpred.o -MD -MP -MF luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilfpred.Tpo -c -o luatexdir/luapplib/util/liblua53pplib_a-utilfpred.o `test -f 'luatexdir/luapplib/util/utilfpred.c' || echo '$(srcdir)/'`luatexdir/luapplib/util/utilfpred.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilfpred.Tpo luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilfpred.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/util/utilfpred.c' object='luatexdir/luapplib/util/liblua53pplib_a-utilfpred.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/util/liblua53pplib_a-utilfpred.o `test -f 'luatexdir/luapplib/util/utilfpred.c' || echo '$(srcdir)/'`luatexdir/luapplib/util/utilfpred.c - -luatexdir/luapplib/util/liblua53pplib_a-utilfpred.obj: luatexdir/luapplib/util/utilfpred.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/util/liblua53pplib_a-utilfpred.obj -MD -MP -MF luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilfpred.Tpo -c -o luatexdir/luapplib/util/liblua53pplib_a-utilfpred.obj `if test -f 'luatexdir/luapplib/util/utilfpred.c'; then $(CYGPATH_W) 'luatexdir/luapplib/util/utilfpred.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/util/utilfpred.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilfpred.Tpo luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilfpred.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/util/utilfpred.c' object='luatexdir/luapplib/util/liblua53pplib_a-utilfpred.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/util/liblua53pplib_a-utilfpred.obj `if test -f 'luatexdir/luapplib/util/utilfpred.c'; then $(CYGPATH_W) 'luatexdir/luapplib/util/utilfpred.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/util/utilfpred.c'; fi` - -luatexdir/luapplib/util/liblua53pplib_a-utiliof.o: luatexdir/luapplib/util/utiliof.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/util/liblua53pplib_a-utiliof.o -MD -MP -MF luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utiliof.Tpo -c -o luatexdir/luapplib/util/liblua53pplib_a-utiliof.o `test -f 'luatexdir/luapplib/util/utiliof.c' || echo '$(srcdir)/'`luatexdir/luapplib/util/utiliof.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utiliof.Tpo luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utiliof.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/util/utiliof.c' object='luatexdir/luapplib/util/liblua53pplib_a-utiliof.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/util/liblua53pplib_a-utiliof.o `test -f 'luatexdir/luapplib/util/utiliof.c' || echo '$(srcdir)/'`luatexdir/luapplib/util/utiliof.c - -luatexdir/luapplib/util/liblua53pplib_a-utiliof.obj: luatexdir/luapplib/util/utiliof.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/util/liblua53pplib_a-utiliof.obj -MD -MP -MF luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utiliof.Tpo -c -o luatexdir/luapplib/util/liblua53pplib_a-utiliof.obj `if test -f 'luatexdir/luapplib/util/utiliof.c'; then $(CYGPATH_W) 'luatexdir/luapplib/util/utiliof.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/util/utiliof.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utiliof.Tpo luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utiliof.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/util/utiliof.c' object='luatexdir/luapplib/util/liblua53pplib_a-utiliof.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/util/liblua53pplib_a-utiliof.obj `if test -f 'luatexdir/luapplib/util/utiliof.c'; then $(CYGPATH_W) 'luatexdir/luapplib/util/utiliof.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/util/utiliof.c'; fi` - -luatexdir/luapplib/util/liblua53pplib_a-utillog.o: luatexdir/luapplib/util/utillog.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/util/liblua53pplib_a-utillog.o -MD -MP -MF luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utillog.Tpo -c -o luatexdir/luapplib/util/liblua53pplib_a-utillog.o `test -f 'luatexdir/luapplib/util/utillog.c' || echo '$(srcdir)/'`luatexdir/luapplib/util/utillog.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utillog.Tpo luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utillog.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/util/utillog.c' object='luatexdir/luapplib/util/liblua53pplib_a-utillog.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/util/liblua53pplib_a-utillog.o `test -f 'luatexdir/luapplib/util/utillog.c' || echo '$(srcdir)/'`luatexdir/luapplib/util/utillog.c - -luatexdir/luapplib/util/liblua53pplib_a-utillog.obj: luatexdir/luapplib/util/utillog.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/util/liblua53pplib_a-utillog.obj -MD -MP -MF luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utillog.Tpo -c -o luatexdir/luapplib/util/liblua53pplib_a-utillog.obj `if test -f 'luatexdir/luapplib/util/utillog.c'; then $(CYGPATH_W) 'luatexdir/luapplib/util/utillog.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/util/utillog.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utillog.Tpo luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utillog.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/util/utillog.c' object='luatexdir/luapplib/util/liblua53pplib_a-utillog.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/util/liblua53pplib_a-utillog.obj `if test -f 'luatexdir/luapplib/util/utillog.c'; then $(CYGPATH_W) 'luatexdir/luapplib/util/utillog.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/util/utillog.c'; fi` - -luatexdir/luapplib/util/liblua53pplib_a-utillzw.o: luatexdir/luapplib/util/utillzw.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/util/liblua53pplib_a-utillzw.o -MD -MP -MF luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utillzw.Tpo -c -o luatexdir/luapplib/util/liblua53pplib_a-utillzw.o `test -f 'luatexdir/luapplib/util/utillzw.c' || echo '$(srcdir)/'`luatexdir/luapplib/util/utillzw.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utillzw.Tpo luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utillzw.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/util/utillzw.c' object='luatexdir/luapplib/util/liblua53pplib_a-utillzw.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/util/liblua53pplib_a-utillzw.o `test -f 'luatexdir/luapplib/util/utillzw.c' || echo '$(srcdir)/'`luatexdir/luapplib/util/utillzw.c - -luatexdir/luapplib/util/liblua53pplib_a-utillzw.obj: luatexdir/luapplib/util/utillzw.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/util/liblua53pplib_a-utillzw.obj -MD -MP -MF luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utillzw.Tpo -c -o luatexdir/luapplib/util/liblua53pplib_a-utillzw.obj `if test -f 'luatexdir/luapplib/util/utillzw.c'; then $(CYGPATH_W) 'luatexdir/luapplib/util/utillzw.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/util/utillzw.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utillzw.Tpo luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utillzw.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/util/utillzw.c' object='luatexdir/luapplib/util/liblua53pplib_a-utillzw.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/util/liblua53pplib_a-utillzw.obj `if test -f 'luatexdir/luapplib/util/utillzw.c'; then $(CYGPATH_W) 'luatexdir/luapplib/util/utillzw.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/util/utillzw.c'; fi` - -luatexdir/luapplib/util/liblua53pplib_a-utilmd5.o: luatexdir/luapplib/util/utilmd5.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/util/liblua53pplib_a-utilmd5.o -MD -MP -MF luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilmd5.Tpo -c -o luatexdir/luapplib/util/liblua53pplib_a-utilmd5.o `test -f 'luatexdir/luapplib/util/utilmd5.c' || echo '$(srcdir)/'`luatexdir/luapplib/util/utilmd5.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilmd5.Tpo luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilmd5.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/util/utilmd5.c' object='luatexdir/luapplib/util/liblua53pplib_a-utilmd5.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/util/liblua53pplib_a-utilmd5.o `test -f 'luatexdir/luapplib/util/utilmd5.c' || echo '$(srcdir)/'`luatexdir/luapplib/util/utilmd5.c - -luatexdir/luapplib/util/liblua53pplib_a-utilmd5.obj: luatexdir/luapplib/util/utilmd5.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/util/liblua53pplib_a-utilmd5.obj -MD -MP -MF luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilmd5.Tpo -c -o luatexdir/luapplib/util/liblua53pplib_a-utilmd5.obj `if test -f 'luatexdir/luapplib/util/utilmd5.c'; then $(CYGPATH_W) 'luatexdir/luapplib/util/utilmd5.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/util/utilmd5.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilmd5.Tpo luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilmd5.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/util/utilmd5.c' object='luatexdir/luapplib/util/liblua53pplib_a-utilmd5.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/util/liblua53pplib_a-utilmd5.obj `if test -f 'luatexdir/luapplib/util/utilmd5.c'; then $(CYGPATH_W) 'luatexdir/luapplib/util/utilmd5.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/util/utilmd5.c'; fi` - -luatexdir/luapplib/util/liblua53pplib_a-utilmem.o: luatexdir/luapplib/util/utilmem.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/util/liblua53pplib_a-utilmem.o -MD -MP -MF luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilmem.Tpo -c -o luatexdir/luapplib/util/liblua53pplib_a-utilmem.o `test -f 'luatexdir/luapplib/util/utilmem.c' || echo '$(srcdir)/'`luatexdir/luapplib/util/utilmem.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilmem.Tpo luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilmem.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/util/utilmem.c' object='luatexdir/luapplib/util/liblua53pplib_a-utilmem.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/util/liblua53pplib_a-utilmem.o `test -f 'luatexdir/luapplib/util/utilmem.c' || echo '$(srcdir)/'`luatexdir/luapplib/util/utilmem.c - -luatexdir/luapplib/util/liblua53pplib_a-utilmem.obj: luatexdir/luapplib/util/utilmem.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/util/liblua53pplib_a-utilmem.obj -MD -MP -MF luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilmem.Tpo -c -o luatexdir/luapplib/util/liblua53pplib_a-utilmem.obj `if test -f 'luatexdir/luapplib/util/utilmem.c'; then $(CYGPATH_W) 'luatexdir/luapplib/util/utilmem.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/util/utilmem.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilmem.Tpo luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilmem.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/util/utilmem.c' object='luatexdir/luapplib/util/liblua53pplib_a-utilmem.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/util/liblua53pplib_a-utilmem.obj `if test -f 'luatexdir/luapplib/util/utilmem.c'; then $(CYGPATH_W) 'luatexdir/luapplib/util/utilmem.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/util/utilmem.c'; fi` - -luatexdir/luapplib/util/liblua53pplib_a-utilnumber.o: luatexdir/luapplib/util/utilnumber.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/util/liblua53pplib_a-utilnumber.o -MD -MP -MF luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilnumber.Tpo -c -o luatexdir/luapplib/util/liblua53pplib_a-utilnumber.o `test -f 'luatexdir/luapplib/util/utilnumber.c' || echo '$(srcdir)/'`luatexdir/luapplib/util/utilnumber.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilnumber.Tpo luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilnumber.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/util/utilnumber.c' object='luatexdir/luapplib/util/liblua53pplib_a-utilnumber.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/util/liblua53pplib_a-utilnumber.o `test -f 'luatexdir/luapplib/util/utilnumber.c' || echo '$(srcdir)/'`luatexdir/luapplib/util/utilnumber.c - -luatexdir/luapplib/util/liblua53pplib_a-utilnumber.obj: luatexdir/luapplib/util/utilnumber.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/util/liblua53pplib_a-utilnumber.obj -MD -MP -MF luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilnumber.Tpo -c -o luatexdir/luapplib/util/liblua53pplib_a-utilnumber.obj `if test -f 'luatexdir/luapplib/util/utilnumber.c'; then $(CYGPATH_W) 'luatexdir/luapplib/util/utilnumber.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/util/utilnumber.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilnumber.Tpo luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilnumber.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/util/utilnumber.c' object='luatexdir/luapplib/util/liblua53pplib_a-utilnumber.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/util/liblua53pplib_a-utilnumber.obj `if test -f 'luatexdir/luapplib/util/utilnumber.c'; then $(CYGPATH_W) 'luatexdir/luapplib/util/utilnumber.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/util/utilnumber.c'; fi` - -luatexdir/luapplib/util/liblua53pplib_a-utilsha.o: luatexdir/luapplib/util/utilsha.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/util/liblua53pplib_a-utilsha.o -MD -MP -MF luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilsha.Tpo -c -o luatexdir/luapplib/util/liblua53pplib_a-utilsha.o `test -f 'luatexdir/luapplib/util/utilsha.c' || echo '$(srcdir)/'`luatexdir/luapplib/util/utilsha.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilsha.Tpo luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilsha.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/util/utilsha.c' object='luatexdir/luapplib/util/liblua53pplib_a-utilsha.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/util/liblua53pplib_a-utilsha.o `test -f 'luatexdir/luapplib/util/utilsha.c' || echo '$(srcdir)/'`luatexdir/luapplib/util/utilsha.c - -luatexdir/luapplib/util/liblua53pplib_a-utilsha.obj: luatexdir/luapplib/util/utilsha.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/util/liblua53pplib_a-utilsha.obj -MD -MP -MF luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilsha.Tpo -c -o luatexdir/luapplib/util/liblua53pplib_a-utilsha.obj `if test -f 'luatexdir/luapplib/util/utilsha.c'; then $(CYGPATH_W) 'luatexdir/luapplib/util/utilsha.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/util/utilsha.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilsha.Tpo luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilsha.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/util/utilsha.c' object='luatexdir/luapplib/util/liblua53pplib_a-utilsha.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53pplib_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/util/liblua53pplib_a-utilsha.obj `if test -f 'luatexdir/luapplib/util/utilsha.c'; then $(CYGPATH_W) 'luatexdir/luapplib/util/utilsha.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/util/utilsha.c'; fi` - -luatexdir/luasocket/src/liblua53socket_a-auxiliar.o: luatexdir/luasocket/src/auxiliar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luasocket/src/liblua53socket_a-auxiliar.o -MD -MP -MF luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-auxiliar.Tpo -c -o luatexdir/luasocket/src/liblua53socket_a-auxiliar.o `test -f 'luatexdir/luasocket/src/auxiliar.c' || echo '$(srcdir)/'`luatexdir/luasocket/src/auxiliar.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-auxiliar.Tpo luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-auxiliar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luasocket/src/auxiliar.c' object='luatexdir/luasocket/src/liblua53socket_a-auxiliar.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luasocket/src/liblua53socket_a-auxiliar.o `test -f 'luatexdir/luasocket/src/auxiliar.c' || echo '$(srcdir)/'`luatexdir/luasocket/src/auxiliar.c - -luatexdir/luasocket/src/liblua53socket_a-auxiliar.obj: luatexdir/luasocket/src/auxiliar.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luasocket/src/liblua53socket_a-auxiliar.obj -MD -MP -MF luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-auxiliar.Tpo -c -o luatexdir/luasocket/src/liblua53socket_a-auxiliar.obj `if test -f 'luatexdir/luasocket/src/auxiliar.c'; then $(CYGPATH_W) 'luatexdir/luasocket/src/auxiliar.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luasocket/src/auxiliar.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-auxiliar.Tpo luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-auxiliar.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luasocket/src/auxiliar.c' object='luatexdir/luasocket/src/liblua53socket_a-auxiliar.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luasocket/src/liblua53socket_a-auxiliar.obj `if test -f 'luatexdir/luasocket/src/auxiliar.c'; then $(CYGPATH_W) 'luatexdir/luasocket/src/auxiliar.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luasocket/src/auxiliar.c'; fi` - -luatexdir/luasocket/src/liblua53socket_a-buffer.o: luatexdir/luasocket/src/buffer.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luasocket/src/liblua53socket_a-buffer.o -MD -MP -MF luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-buffer.Tpo -c -o luatexdir/luasocket/src/liblua53socket_a-buffer.o `test -f 'luatexdir/luasocket/src/buffer.c' || echo '$(srcdir)/'`luatexdir/luasocket/src/buffer.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-buffer.Tpo luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-buffer.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luasocket/src/buffer.c' object='luatexdir/luasocket/src/liblua53socket_a-buffer.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luasocket/src/liblua53socket_a-buffer.o `test -f 'luatexdir/luasocket/src/buffer.c' || echo '$(srcdir)/'`luatexdir/luasocket/src/buffer.c - -luatexdir/luasocket/src/liblua53socket_a-buffer.obj: luatexdir/luasocket/src/buffer.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luasocket/src/liblua53socket_a-buffer.obj -MD -MP -MF luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-buffer.Tpo -c -o luatexdir/luasocket/src/liblua53socket_a-buffer.obj `if test -f 'luatexdir/luasocket/src/buffer.c'; then $(CYGPATH_W) 'luatexdir/luasocket/src/buffer.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luasocket/src/buffer.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-buffer.Tpo luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-buffer.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luasocket/src/buffer.c' object='luatexdir/luasocket/src/liblua53socket_a-buffer.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luasocket/src/liblua53socket_a-buffer.obj `if test -f 'luatexdir/luasocket/src/buffer.c'; then $(CYGPATH_W) 'luatexdir/luasocket/src/buffer.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luasocket/src/buffer.c'; fi` - -luatexdir/luasocket/src/liblua53socket_a-compat.o: luatexdir/luasocket/src/compat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luasocket/src/liblua53socket_a-compat.o -MD -MP -MF luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-compat.Tpo -c -o luatexdir/luasocket/src/liblua53socket_a-compat.o `test -f 'luatexdir/luasocket/src/compat.c' || echo '$(srcdir)/'`luatexdir/luasocket/src/compat.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-compat.Tpo luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-compat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luasocket/src/compat.c' object='luatexdir/luasocket/src/liblua53socket_a-compat.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luasocket/src/liblua53socket_a-compat.o `test -f 'luatexdir/luasocket/src/compat.c' || echo '$(srcdir)/'`luatexdir/luasocket/src/compat.c - -luatexdir/luasocket/src/liblua53socket_a-compat.obj: luatexdir/luasocket/src/compat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luasocket/src/liblua53socket_a-compat.obj -MD -MP -MF luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-compat.Tpo -c -o luatexdir/luasocket/src/liblua53socket_a-compat.obj `if test -f 'luatexdir/luasocket/src/compat.c'; then $(CYGPATH_W) 'luatexdir/luasocket/src/compat.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luasocket/src/compat.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-compat.Tpo luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-compat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luasocket/src/compat.c' object='luatexdir/luasocket/src/liblua53socket_a-compat.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luasocket/src/liblua53socket_a-compat.obj `if test -f 'luatexdir/luasocket/src/compat.c'; then $(CYGPATH_W) 'luatexdir/luasocket/src/compat.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luasocket/src/compat.c'; fi` - -luatexdir/luasocket/src/liblua53socket_a-except.o: luatexdir/luasocket/src/except.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luasocket/src/liblua53socket_a-except.o -MD -MP -MF luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-except.Tpo -c -o luatexdir/luasocket/src/liblua53socket_a-except.o `test -f 'luatexdir/luasocket/src/except.c' || echo '$(srcdir)/'`luatexdir/luasocket/src/except.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-except.Tpo luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-except.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luasocket/src/except.c' object='luatexdir/luasocket/src/liblua53socket_a-except.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luasocket/src/liblua53socket_a-except.o `test -f 'luatexdir/luasocket/src/except.c' || echo '$(srcdir)/'`luatexdir/luasocket/src/except.c - -luatexdir/luasocket/src/liblua53socket_a-except.obj: luatexdir/luasocket/src/except.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luasocket/src/liblua53socket_a-except.obj -MD -MP -MF luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-except.Tpo -c -o luatexdir/luasocket/src/liblua53socket_a-except.obj `if test -f 'luatexdir/luasocket/src/except.c'; then $(CYGPATH_W) 'luatexdir/luasocket/src/except.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luasocket/src/except.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-except.Tpo luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-except.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luasocket/src/except.c' object='luatexdir/luasocket/src/liblua53socket_a-except.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luasocket/src/liblua53socket_a-except.obj `if test -f 'luatexdir/luasocket/src/except.c'; then $(CYGPATH_W) 'luatexdir/luasocket/src/except.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luasocket/src/except.c'; fi` - -luatexdir/luasocket/src/liblua53socket_a-inet.o: luatexdir/luasocket/src/inet.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luasocket/src/liblua53socket_a-inet.o -MD -MP -MF luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-inet.Tpo -c -o luatexdir/luasocket/src/liblua53socket_a-inet.o `test -f 'luatexdir/luasocket/src/inet.c' || echo '$(srcdir)/'`luatexdir/luasocket/src/inet.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-inet.Tpo luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-inet.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luasocket/src/inet.c' object='luatexdir/luasocket/src/liblua53socket_a-inet.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luasocket/src/liblua53socket_a-inet.o `test -f 'luatexdir/luasocket/src/inet.c' || echo '$(srcdir)/'`luatexdir/luasocket/src/inet.c - -luatexdir/luasocket/src/liblua53socket_a-inet.obj: luatexdir/luasocket/src/inet.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luasocket/src/liblua53socket_a-inet.obj -MD -MP -MF luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-inet.Tpo -c -o luatexdir/luasocket/src/liblua53socket_a-inet.obj `if test -f 'luatexdir/luasocket/src/inet.c'; then $(CYGPATH_W) 'luatexdir/luasocket/src/inet.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luasocket/src/inet.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-inet.Tpo luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-inet.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luasocket/src/inet.c' object='luatexdir/luasocket/src/liblua53socket_a-inet.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luasocket/src/liblua53socket_a-inet.obj `if test -f 'luatexdir/luasocket/src/inet.c'; then $(CYGPATH_W) 'luatexdir/luasocket/src/inet.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luasocket/src/inet.c'; fi` - -luatexdir/luasocket/src/liblua53socket_a-io.o: luatexdir/luasocket/src/io.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luasocket/src/liblua53socket_a-io.o -MD -MP -MF luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-io.Tpo -c -o luatexdir/luasocket/src/liblua53socket_a-io.o `test -f 'luatexdir/luasocket/src/io.c' || echo '$(srcdir)/'`luatexdir/luasocket/src/io.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-io.Tpo luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-io.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luasocket/src/io.c' object='luatexdir/luasocket/src/liblua53socket_a-io.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luasocket/src/liblua53socket_a-io.o `test -f 'luatexdir/luasocket/src/io.c' || echo '$(srcdir)/'`luatexdir/luasocket/src/io.c - -luatexdir/luasocket/src/liblua53socket_a-io.obj: luatexdir/luasocket/src/io.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luasocket/src/liblua53socket_a-io.obj -MD -MP -MF luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-io.Tpo -c -o luatexdir/luasocket/src/liblua53socket_a-io.obj `if test -f 'luatexdir/luasocket/src/io.c'; then $(CYGPATH_W) 'luatexdir/luasocket/src/io.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luasocket/src/io.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-io.Tpo luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-io.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luasocket/src/io.c' object='luatexdir/luasocket/src/liblua53socket_a-io.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luasocket/src/liblua53socket_a-io.obj `if test -f 'luatexdir/luasocket/src/io.c'; then $(CYGPATH_W) 'luatexdir/luasocket/src/io.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luasocket/src/io.c'; fi` - -luatexdir/luasocket/src/liblua53socket_a-lua_preload.o: luatexdir/luasocket/src/lua_preload.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luasocket/src/liblua53socket_a-lua_preload.o -MD -MP -MF luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-lua_preload.Tpo -c -o luatexdir/luasocket/src/liblua53socket_a-lua_preload.o `test -f 'luatexdir/luasocket/src/lua_preload.c' || echo '$(srcdir)/'`luatexdir/luasocket/src/lua_preload.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-lua_preload.Tpo luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-lua_preload.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luasocket/src/lua_preload.c' object='luatexdir/luasocket/src/liblua53socket_a-lua_preload.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luasocket/src/liblua53socket_a-lua_preload.o `test -f 'luatexdir/luasocket/src/lua_preload.c' || echo '$(srcdir)/'`luatexdir/luasocket/src/lua_preload.c - -luatexdir/luasocket/src/liblua53socket_a-lua_preload.obj: luatexdir/luasocket/src/lua_preload.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luasocket/src/liblua53socket_a-lua_preload.obj -MD -MP -MF luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-lua_preload.Tpo -c -o luatexdir/luasocket/src/liblua53socket_a-lua_preload.obj `if test -f 'luatexdir/luasocket/src/lua_preload.c'; then $(CYGPATH_W) 'luatexdir/luasocket/src/lua_preload.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luasocket/src/lua_preload.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-lua_preload.Tpo luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-lua_preload.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luasocket/src/lua_preload.c' object='luatexdir/luasocket/src/liblua53socket_a-lua_preload.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luasocket/src/liblua53socket_a-lua_preload.obj `if test -f 'luatexdir/luasocket/src/lua_preload.c'; then $(CYGPATH_W) 'luatexdir/luasocket/src/lua_preload.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luasocket/src/lua_preload.c'; fi` - -luatexdir/luasocket/src/liblua53socket_a-luasocket.o: luatexdir/luasocket/src/luasocket.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luasocket/src/liblua53socket_a-luasocket.o -MD -MP -MF luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-luasocket.Tpo -c -o luatexdir/luasocket/src/liblua53socket_a-luasocket.o `test -f 'luatexdir/luasocket/src/luasocket.c' || echo '$(srcdir)/'`luatexdir/luasocket/src/luasocket.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-luasocket.Tpo luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-luasocket.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luasocket/src/luasocket.c' object='luatexdir/luasocket/src/liblua53socket_a-luasocket.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luasocket/src/liblua53socket_a-luasocket.o `test -f 'luatexdir/luasocket/src/luasocket.c' || echo '$(srcdir)/'`luatexdir/luasocket/src/luasocket.c - -luatexdir/luasocket/src/liblua53socket_a-luasocket.obj: luatexdir/luasocket/src/luasocket.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luasocket/src/liblua53socket_a-luasocket.obj -MD -MP -MF luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-luasocket.Tpo -c -o luatexdir/luasocket/src/liblua53socket_a-luasocket.obj `if test -f 'luatexdir/luasocket/src/luasocket.c'; then $(CYGPATH_W) 'luatexdir/luasocket/src/luasocket.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luasocket/src/luasocket.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-luasocket.Tpo luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-luasocket.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luasocket/src/luasocket.c' object='luatexdir/luasocket/src/liblua53socket_a-luasocket.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luasocket/src/liblua53socket_a-luasocket.obj `if test -f 'luatexdir/luasocket/src/luasocket.c'; then $(CYGPATH_W) 'luatexdir/luasocket/src/luasocket.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luasocket/src/luasocket.c'; fi` - -luatexdir/luasocket/src/liblua53socket_a-mime.o: luatexdir/luasocket/src/mime.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luasocket/src/liblua53socket_a-mime.o -MD -MP -MF luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-mime.Tpo -c -o luatexdir/luasocket/src/liblua53socket_a-mime.o `test -f 'luatexdir/luasocket/src/mime.c' || echo '$(srcdir)/'`luatexdir/luasocket/src/mime.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-mime.Tpo luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-mime.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luasocket/src/mime.c' object='luatexdir/luasocket/src/liblua53socket_a-mime.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luasocket/src/liblua53socket_a-mime.o `test -f 'luatexdir/luasocket/src/mime.c' || echo '$(srcdir)/'`luatexdir/luasocket/src/mime.c - -luatexdir/luasocket/src/liblua53socket_a-mime.obj: luatexdir/luasocket/src/mime.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luasocket/src/liblua53socket_a-mime.obj -MD -MP -MF luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-mime.Tpo -c -o luatexdir/luasocket/src/liblua53socket_a-mime.obj `if test -f 'luatexdir/luasocket/src/mime.c'; then $(CYGPATH_W) 'luatexdir/luasocket/src/mime.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luasocket/src/mime.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-mime.Tpo luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-mime.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luasocket/src/mime.c' object='luatexdir/luasocket/src/liblua53socket_a-mime.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luasocket/src/liblua53socket_a-mime.obj `if test -f 'luatexdir/luasocket/src/mime.c'; then $(CYGPATH_W) 'luatexdir/luasocket/src/mime.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luasocket/src/mime.c'; fi` - -luatexdir/luasocket/src/liblua53socket_a-options.o: luatexdir/luasocket/src/options.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luasocket/src/liblua53socket_a-options.o -MD -MP -MF luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-options.Tpo -c -o luatexdir/luasocket/src/liblua53socket_a-options.o `test -f 'luatexdir/luasocket/src/options.c' || echo '$(srcdir)/'`luatexdir/luasocket/src/options.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-options.Tpo luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-options.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luasocket/src/options.c' object='luatexdir/luasocket/src/liblua53socket_a-options.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luasocket/src/liblua53socket_a-options.o `test -f 'luatexdir/luasocket/src/options.c' || echo '$(srcdir)/'`luatexdir/luasocket/src/options.c - -luatexdir/luasocket/src/liblua53socket_a-options.obj: luatexdir/luasocket/src/options.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luasocket/src/liblua53socket_a-options.obj -MD -MP -MF luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-options.Tpo -c -o luatexdir/luasocket/src/liblua53socket_a-options.obj `if test -f 'luatexdir/luasocket/src/options.c'; then $(CYGPATH_W) 'luatexdir/luasocket/src/options.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luasocket/src/options.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-options.Tpo luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-options.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luasocket/src/options.c' object='luatexdir/luasocket/src/liblua53socket_a-options.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luasocket/src/liblua53socket_a-options.obj `if test -f 'luatexdir/luasocket/src/options.c'; then $(CYGPATH_W) 'luatexdir/luasocket/src/options.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luasocket/src/options.c'; fi` - -luatexdir/luasocket/src/liblua53socket_a-select.o: luatexdir/luasocket/src/select.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luasocket/src/liblua53socket_a-select.o -MD -MP -MF luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-select.Tpo -c -o luatexdir/luasocket/src/liblua53socket_a-select.o `test -f 'luatexdir/luasocket/src/select.c' || echo '$(srcdir)/'`luatexdir/luasocket/src/select.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-select.Tpo luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-select.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luasocket/src/select.c' object='luatexdir/luasocket/src/liblua53socket_a-select.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luasocket/src/liblua53socket_a-select.o `test -f 'luatexdir/luasocket/src/select.c' || echo '$(srcdir)/'`luatexdir/luasocket/src/select.c - -luatexdir/luasocket/src/liblua53socket_a-select.obj: luatexdir/luasocket/src/select.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luasocket/src/liblua53socket_a-select.obj -MD -MP -MF luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-select.Tpo -c -o luatexdir/luasocket/src/liblua53socket_a-select.obj `if test -f 'luatexdir/luasocket/src/select.c'; then $(CYGPATH_W) 'luatexdir/luasocket/src/select.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luasocket/src/select.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-select.Tpo luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-select.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luasocket/src/select.c' object='luatexdir/luasocket/src/liblua53socket_a-select.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luasocket/src/liblua53socket_a-select.obj `if test -f 'luatexdir/luasocket/src/select.c'; then $(CYGPATH_W) 'luatexdir/luasocket/src/select.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luasocket/src/select.c'; fi` - -luatexdir/luasocket/src/liblua53socket_a-serial.o: luatexdir/luasocket/src/serial.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luasocket/src/liblua53socket_a-serial.o -MD -MP -MF luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-serial.Tpo -c -o luatexdir/luasocket/src/liblua53socket_a-serial.o `test -f 'luatexdir/luasocket/src/serial.c' || echo '$(srcdir)/'`luatexdir/luasocket/src/serial.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-serial.Tpo luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-serial.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luasocket/src/serial.c' object='luatexdir/luasocket/src/liblua53socket_a-serial.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luasocket/src/liblua53socket_a-serial.o `test -f 'luatexdir/luasocket/src/serial.c' || echo '$(srcdir)/'`luatexdir/luasocket/src/serial.c - -luatexdir/luasocket/src/liblua53socket_a-serial.obj: luatexdir/luasocket/src/serial.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luasocket/src/liblua53socket_a-serial.obj -MD -MP -MF luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-serial.Tpo -c -o luatexdir/luasocket/src/liblua53socket_a-serial.obj `if test -f 'luatexdir/luasocket/src/serial.c'; then $(CYGPATH_W) 'luatexdir/luasocket/src/serial.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luasocket/src/serial.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-serial.Tpo luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-serial.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luasocket/src/serial.c' object='luatexdir/luasocket/src/liblua53socket_a-serial.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luasocket/src/liblua53socket_a-serial.obj `if test -f 'luatexdir/luasocket/src/serial.c'; then $(CYGPATH_W) 'luatexdir/luasocket/src/serial.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luasocket/src/serial.c'; fi` - -luatexdir/luasocket/src/liblua53socket_a-socket.o: luatexdir/luasocket/src/socket.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luasocket/src/liblua53socket_a-socket.o -MD -MP -MF luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-socket.Tpo -c -o luatexdir/luasocket/src/liblua53socket_a-socket.o `test -f 'luatexdir/luasocket/src/socket.c' || echo '$(srcdir)/'`luatexdir/luasocket/src/socket.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-socket.Tpo luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-socket.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luasocket/src/socket.c' object='luatexdir/luasocket/src/liblua53socket_a-socket.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luasocket/src/liblua53socket_a-socket.o `test -f 'luatexdir/luasocket/src/socket.c' || echo '$(srcdir)/'`luatexdir/luasocket/src/socket.c - -luatexdir/luasocket/src/liblua53socket_a-socket.obj: luatexdir/luasocket/src/socket.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luasocket/src/liblua53socket_a-socket.obj -MD -MP -MF luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-socket.Tpo -c -o luatexdir/luasocket/src/liblua53socket_a-socket.obj `if test -f 'luatexdir/luasocket/src/socket.c'; then $(CYGPATH_W) 'luatexdir/luasocket/src/socket.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luasocket/src/socket.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-socket.Tpo luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-socket.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luasocket/src/socket.c' object='luatexdir/luasocket/src/liblua53socket_a-socket.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luasocket/src/liblua53socket_a-socket.obj `if test -f 'luatexdir/luasocket/src/socket.c'; then $(CYGPATH_W) 'luatexdir/luasocket/src/socket.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luasocket/src/socket.c'; fi` - -luatexdir/luasocket/src/liblua53socket_a-tcp.o: luatexdir/luasocket/src/tcp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luasocket/src/liblua53socket_a-tcp.o -MD -MP -MF luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-tcp.Tpo -c -o luatexdir/luasocket/src/liblua53socket_a-tcp.o `test -f 'luatexdir/luasocket/src/tcp.c' || echo '$(srcdir)/'`luatexdir/luasocket/src/tcp.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-tcp.Tpo luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-tcp.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luasocket/src/tcp.c' object='luatexdir/luasocket/src/liblua53socket_a-tcp.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luasocket/src/liblua53socket_a-tcp.o `test -f 'luatexdir/luasocket/src/tcp.c' || echo '$(srcdir)/'`luatexdir/luasocket/src/tcp.c - -luatexdir/luasocket/src/liblua53socket_a-tcp.obj: luatexdir/luasocket/src/tcp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luasocket/src/liblua53socket_a-tcp.obj -MD -MP -MF luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-tcp.Tpo -c -o luatexdir/luasocket/src/liblua53socket_a-tcp.obj `if test -f 'luatexdir/luasocket/src/tcp.c'; then $(CYGPATH_W) 'luatexdir/luasocket/src/tcp.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luasocket/src/tcp.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-tcp.Tpo luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-tcp.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luasocket/src/tcp.c' object='luatexdir/luasocket/src/liblua53socket_a-tcp.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luasocket/src/liblua53socket_a-tcp.obj `if test -f 'luatexdir/luasocket/src/tcp.c'; then $(CYGPATH_W) 'luatexdir/luasocket/src/tcp.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luasocket/src/tcp.c'; fi` - -luatexdir/luasocket/src/liblua53socket_a-timeout.o: luatexdir/luasocket/src/timeout.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luasocket/src/liblua53socket_a-timeout.o -MD -MP -MF luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-timeout.Tpo -c -o luatexdir/luasocket/src/liblua53socket_a-timeout.o `test -f 'luatexdir/luasocket/src/timeout.c' || echo '$(srcdir)/'`luatexdir/luasocket/src/timeout.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-timeout.Tpo luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-timeout.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luasocket/src/timeout.c' object='luatexdir/luasocket/src/liblua53socket_a-timeout.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luasocket/src/liblua53socket_a-timeout.o `test -f 'luatexdir/luasocket/src/timeout.c' || echo '$(srcdir)/'`luatexdir/luasocket/src/timeout.c - -luatexdir/luasocket/src/liblua53socket_a-timeout.obj: luatexdir/luasocket/src/timeout.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luasocket/src/liblua53socket_a-timeout.obj -MD -MP -MF luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-timeout.Tpo -c -o luatexdir/luasocket/src/liblua53socket_a-timeout.obj `if test -f 'luatexdir/luasocket/src/timeout.c'; then $(CYGPATH_W) 'luatexdir/luasocket/src/timeout.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luasocket/src/timeout.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-timeout.Tpo luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-timeout.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luasocket/src/timeout.c' object='luatexdir/luasocket/src/liblua53socket_a-timeout.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luasocket/src/liblua53socket_a-timeout.obj `if test -f 'luatexdir/luasocket/src/timeout.c'; then $(CYGPATH_W) 'luatexdir/luasocket/src/timeout.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luasocket/src/timeout.c'; fi` - -luatexdir/luasocket/src/liblua53socket_a-udp.o: luatexdir/luasocket/src/udp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luasocket/src/liblua53socket_a-udp.o -MD -MP -MF luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-udp.Tpo -c -o luatexdir/luasocket/src/liblua53socket_a-udp.o `test -f 'luatexdir/luasocket/src/udp.c' || echo '$(srcdir)/'`luatexdir/luasocket/src/udp.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-udp.Tpo luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-udp.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luasocket/src/udp.c' object='luatexdir/luasocket/src/liblua53socket_a-udp.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luasocket/src/liblua53socket_a-udp.o `test -f 'luatexdir/luasocket/src/udp.c' || echo '$(srcdir)/'`luatexdir/luasocket/src/udp.c - -luatexdir/luasocket/src/liblua53socket_a-udp.obj: luatexdir/luasocket/src/udp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luasocket/src/liblua53socket_a-udp.obj -MD -MP -MF luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-udp.Tpo -c -o luatexdir/luasocket/src/liblua53socket_a-udp.obj `if test -f 'luatexdir/luasocket/src/udp.c'; then $(CYGPATH_W) 'luatexdir/luasocket/src/udp.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luasocket/src/udp.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-udp.Tpo luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-udp.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luasocket/src/udp.c' object='luatexdir/luasocket/src/liblua53socket_a-udp.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53socket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luasocket/src/liblua53socket_a-udp.obj `if test -f 'luatexdir/luasocket/src/udp.c'; then $(CYGPATH_W) 'luatexdir/luasocket/src/udp.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luasocket/src/udp.c'; fi` - -luatexdir/lua/liblua53tex_a-lstrlibext.o: luatexdir/lua/lstrlibext.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-lstrlibext.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-lstrlibext.Tpo -c -o luatexdir/lua/liblua53tex_a-lstrlibext.o `test -f 'luatexdir/lua/lstrlibext.c' || echo '$(srcdir)/'`luatexdir/lua/lstrlibext.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-lstrlibext.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-lstrlibext.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/lstrlibext.c' object='luatexdir/lua/liblua53tex_a-lstrlibext.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-lstrlibext.o `test -f 'luatexdir/lua/lstrlibext.c' || echo '$(srcdir)/'`luatexdir/lua/lstrlibext.c - -luatexdir/lua/liblua53tex_a-lstrlibext.obj: luatexdir/lua/lstrlibext.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-lstrlibext.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-lstrlibext.Tpo -c -o luatexdir/lua/liblua53tex_a-lstrlibext.obj `if test -f 'luatexdir/lua/lstrlibext.c'; then $(CYGPATH_W) 'luatexdir/lua/lstrlibext.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/lstrlibext.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-lstrlibext.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-lstrlibext.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/lstrlibext.c' object='luatexdir/lua/liblua53tex_a-lstrlibext.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-lstrlibext.obj `if test -f 'luatexdir/lua/lstrlibext.c'; then $(CYGPATH_W) 'luatexdir/lua/lstrlibext.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/lstrlibext.c'; fi` - -luatexdir/lua/liblua53tex_a-helpers.o: luatexdir/lua/helpers.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-helpers.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-helpers.Tpo -c -o luatexdir/lua/liblua53tex_a-helpers.o `test -f 'luatexdir/lua/helpers.c' || echo '$(srcdir)/'`luatexdir/lua/helpers.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-helpers.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-helpers.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/helpers.c' object='luatexdir/lua/liblua53tex_a-helpers.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-helpers.o `test -f 'luatexdir/lua/helpers.c' || echo '$(srcdir)/'`luatexdir/lua/helpers.c - -luatexdir/lua/liblua53tex_a-helpers.obj: luatexdir/lua/helpers.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-helpers.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-helpers.Tpo -c -o luatexdir/lua/liblua53tex_a-helpers.obj `if test -f 'luatexdir/lua/helpers.c'; then $(CYGPATH_W) 'luatexdir/lua/helpers.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/helpers.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-helpers.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-helpers.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/helpers.c' object='luatexdir/lua/liblua53tex_a-helpers.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-helpers.obj `if test -f 'luatexdir/lua/helpers.c'; then $(CYGPATH_W) 'luatexdir/lua/helpers.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/helpers.c'; fi` - -luatexdir/lua/liblua53tex_a-texluac.o: luatexdir/lua/texluac.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-texluac.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-texluac.Tpo -c -o luatexdir/lua/liblua53tex_a-texluac.o `test -f 'luatexdir/lua/texluac.c' || echo '$(srcdir)/'`luatexdir/lua/texluac.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-texluac.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-texluac.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/texluac.c' object='luatexdir/lua/liblua53tex_a-texluac.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-texluac.o `test -f 'luatexdir/lua/texluac.c' || echo '$(srcdir)/'`luatexdir/lua/texluac.c - -luatexdir/lua/liblua53tex_a-texluac.obj: luatexdir/lua/texluac.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-texluac.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-texluac.Tpo -c -o luatexdir/lua/liblua53tex_a-texluac.obj `if test -f 'luatexdir/lua/texluac.c'; then $(CYGPATH_W) 'luatexdir/lua/texluac.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/texluac.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-texluac.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-texluac.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/texluac.c' object='luatexdir/lua/liblua53tex_a-texluac.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-texluac.obj `if test -f 'luatexdir/lua/texluac.c'; then $(CYGPATH_W) 'luatexdir/lua/texluac.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/texluac.c'; fi` - -luatexdir/luafontloader/src/liblua53tex_a-ffdummies.o: luatexdir/luafontloader/src/ffdummies.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/src/liblua53tex_a-ffdummies.o -MD -MP -MF luatexdir/luafontloader/src/$(DEPDIR)/liblua53tex_a-ffdummies.Tpo -c -o luatexdir/luafontloader/src/liblua53tex_a-ffdummies.o `test -f 'luatexdir/luafontloader/src/ffdummies.c' || echo '$(srcdir)/'`luatexdir/luafontloader/src/ffdummies.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/src/$(DEPDIR)/liblua53tex_a-ffdummies.Tpo luatexdir/luafontloader/src/$(DEPDIR)/liblua53tex_a-ffdummies.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/src/ffdummies.c' object='luatexdir/luafontloader/src/liblua53tex_a-ffdummies.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/src/liblua53tex_a-ffdummies.o `test -f 'luatexdir/luafontloader/src/ffdummies.c' || echo '$(srcdir)/'`luatexdir/luafontloader/src/ffdummies.c - -luatexdir/luafontloader/src/liblua53tex_a-ffdummies.obj: luatexdir/luafontloader/src/ffdummies.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/src/liblua53tex_a-ffdummies.obj -MD -MP -MF luatexdir/luafontloader/src/$(DEPDIR)/liblua53tex_a-ffdummies.Tpo -c -o luatexdir/luafontloader/src/liblua53tex_a-ffdummies.obj `if test -f 'luatexdir/luafontloader/src/ffdummies.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/src/ffdummies.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/src/ffdummies.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/src/$(DEPDIR)/liblua53tex_a-ffdummies.Tpo luatexdir/luafontloader/src/$(DEPDIR)/liblua53tex_a-ffdummies.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/src/ffdummies.c' object='luatexdir/luafontloader/src/liblua53tex_a-ffdummies.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/src/liblua53tex_a-ffdummies.obj `if test -f 'luatexdir/luafontloader/src/ffdummies.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/src/ffdummies.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/src/ffdummies.c'; fi` - -luatexdir/luafontloader/src/liblua53tex_a-luafflib.o: luatexdir/luafontloader/src/luafflib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/src/liblua53tex_a-luafflib.o -MD -MP -MF luatexdir/luafontloader/src/$(DEPDIR)/liblua53tex_a-luafflib.Tpo -c -o luatexdir/luafontloader/src/liblua53tex_a-luafflib.o `test -f 'luatexdir/luafontloader/src/luafflib.c' || echo '$(srcdir)/'`luatexdir/luafontloader/src/luafflib.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/src/$(DEPDIR)/liblua53tex_a-luafflib.Tpo luatexdir/luafontloader/src/$(DEPDIR)/liblua53tex_a-luafflib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/src/luafflib.c' object='luatexdir/luafontloader/src/liblua53tex_a-luafflib.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/src/liblua53tex_a-luafflib.o `test -f 'luatexdir/luafontloader/src/luafflib.c' || echo '$(srcdir)/'`luatexdir/luafontloader/src/luafflib.c - -luatexdir/luafontloader/src/liblua53tex_a-luafflib.obj: luatexdir/luafontloader/src/luafflib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/src/liblua53tex_a-luafflib.obj -MD -MP -MF luatexdir/luafontloader/src/$(DEPDIR)/liblua53tex_a-luafflib.Tpo -c -o luatexdir/luafontloader/src/liblua53tex_a-luafflib.obj `if test -f 'luatexdir/luafontloader/src/luafflib.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/src/luafflib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/src/luafflib.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/src/$(DEPDIR)/liblua53tex_a-luafflib.Tpo luatexdir/luafontloader/src/$(DEPDIR)/liblua53tex_a-luafflib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/src/luafflib.c' object='luatexdir/luafontloader/src/liblua53tex_a-luafflib.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/src/liblua53tex_a-luafflib.obj `if test -f 'luatexdir/luafontloader/src/luafflib.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/src/luafflib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/src/luafflib.c'; fi` - -luatexdir/dvi/liblua53tex_a-dvigen.o: luatexdir/dvi/dvigen.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/dvi/liblua53tex_a-dvigen.o -MD -MP -MF luatexdir/dvi/$(DEPDIR)/liblua53tex_a-dvigen.Tpo -c -o luatexdir/dvi/liblua53tex_a-dvigen.o `test -f 'luatexdir/dvi/dvigen.c' || echo '$(srcdir)/'`luatexdir/dvi/dvigen.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/dvi/$(DEPDIR)/liblua53tex_a-dvigen.Tpo luatexdir/dvi/$(DEPDIR)/liblua53tex_a-dvigen.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/dvi/dvigen.c' object='luatexdir/dvi/liblua53tex_a-dvigen.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/dvi/liblua53tex_a-dvigen.o `test -f 'luatexdir/dvi/dvigen.c' || echo '$(srcdir)/'`luatexdir/dvi/dvigen.c - -luatexdir/dvi/liblua53tex_a-dvigen.obj: luatexdir/dvi/dvigen.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/dvi/liblua53tex_a-dvigen.obj -MD -MP -MF luatexdir/dvi/$(DEPDIR)/liblua53tex_a-dvigen.Tpo -c -o luatexdir/dvi/liblua53tex_a-dvigen.obj `if test -f 'luatexdir/dvi/dvigen.c'; then $(CYGPATH_W) 'luatexdir/dvi/dvigen.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/dvi/dvigen.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/dvi/$(DEPDIR)/liblua53tex_a-dvigen.Tpo luatexdir/dvi/$(DEPDIR)/liblua53tex_a-dvigen.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/dvi/dvigen.c' object='luatexdir/dvi/liblua53tex_a-dvigen.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/dvi/liblua53tex_a-dvigen.obj `if test -f 'luatexdir/dvi/dvigen.c'; then $(CYGPATH_W) 'luatexdir/dvi/dvigen.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/dvi/dvigen.c'; fi` - -luatexdir/font/liblua53tex_a-dofont.o: luatexdir/font/dofont.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-dofont.o -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-dofont.Tpo -c -o luatexdir/font/liblua53tex_a-dofont.o `test -f 'luatexdir/font/dofont.c' || echo '$(srcdir)/'`luatexdir/font/dofont.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-dofont.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-dofont.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/dofont.c' object='luatexdir/font/liblua53tex_a-dofont.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-dofont.o `test -f 'luatexdir/font/dofont.c' || echo '$(srcdir)/'`luatexdir/font/dofont.c - -luatexdir/font/liblua53tex_a-dofont.obj: luatexdir/font/dofont.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-dofont.obj -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-dofont.Tpo -c -o luatexdir/font/liblua53tex_a-dofont.obj `if test -f 'luatexdir/font/dofont.c'; then $(CYGPATH_W) 'luatexdir/font/dofont.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/dofont.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-dofont.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-dofont.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/dofont.c' object='luatexdir/font/liblua53tex_a-dofont.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-dofont.obj `if test -f 'luatexdir/font/dofont.c'; then $(CYGPATH_W) 'luatexdir/font/dofont.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/dofont.c'; fi` - -luatexdir/font/liblua53tex_a-luafont.o: luatexdir/font/luafont.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-luafont.o -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-luafont.Tpo -c -o luatexdir/font/liblua53tex_a-luafont.o `test -f 'luatexdir/font/luafont.c' || echo '$(srcdir)/'`luatexdir/font/luafont.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-luafont.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-luafont.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/luafont.c' object='luatexdir/font/liblua53tex_a-luafont.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-luafont.o `test -f 'luatexdir/font/luafont.c' || echo '$(srcdir)/'`luatexdir/font/luafont.c - -luatexdir/font/liblua53tex_a-luafont.obj: luatexdir/font/luafont.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-luafont.obj -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-luafont.Tpo -c -o luatexdir/font/liblua53tex_a-luafont.obj `if test -f 'luatexdir/font/luafont.c'; then $(CYGPATH_W) 'luatexdir/font/luafont.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/luafont.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-luafont.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-luafont.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/luafont.c' object='luatexdir/font/liblua53tex_a-luafont.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-luafont.obj `if test -f 'luatexdir/font/luafont.c'; then $(CYGPATH_W) 'luatexdir/font/luafont.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/luafont.c'; fi` - -luatexdir/font/liblua53tex_a-mapfile.o: luatexdir/font/mapfile.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-mapfile.o -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-mapfile.Tpo -c -o luatexdir/font/liblua53tex_a-mapfile.o `test -f 'luatexdir/font/mapfile.c' || echo '$(srcdir)/'`luatexdir/font/mapfile.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-mapfile.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-mapfile.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/mapfile.c' object='luatexdir/font/liblua53tex_a-mapfile.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-mapfile.o `test -f 'luatexdir/font/mapfile.c' || echo '$(srcdir)/'`luatexdir/font/mapfile.c - -luatexdir/font/liblua53tex_a-mapfile.obj: luatexdir/font/mapfile.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-mapfile.obj -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-mapfile.Tpo -c -o luatexdir/font/liblua53tex_a-mapfile.obj `if test -f 'luatexdir/font/mapfile.c'; then $(CYGPATH_W) 'luatexdir/font/mapfile.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/mapfile.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-mapfile.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-mapfile.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/mapfile.c' object='luatexdir/font/liblua53tex_a-mapfile.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-mapfile.obj `if test -f 'luatexdir/font/mapfile.c'; then $(CYGPATH_W) 'luatexdir/font/mapfile.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/mapfile.c'; fi` - -luatexdir/font/liblua53tex_a-pkin.o: luatexdir/font/pkin.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-pkin.o -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-pkin.Tpo -c -o luatexdir/font/liblua53tex_a-pkin.o `test -f 'luatexdir/font/pkin.c' || echo '$(srcdir)/'`luatexdir/font/pkin.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-pkin.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-pkin.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/pkin.c' object='luatexdir/font/liblua53tex_a-pkin.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-pkin.o `test -f 'luatexdir/font/pkin.c' || echo '$(srcdir)/'`luatexdir/font/pkin.c - -luatexdir/font/liblua53tex_a-pkin.obj: luatexdir/font/pkin.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-pkin.obj -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-pkin.Tpo -c -o luatexdir/font/liblua53tex_a-pkin.obj `if test -f 'luatexdir/font/pkin.c'; then $(CYGPATH_W) 'luatexdir/font/pkin.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/pkin.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-pkin.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-pkin.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/pkin.c' object='luatexdir/font/liblua53tex_a-pkin.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-pkin.obj `if test -f 'luatexdir/font/pkin.c'; then $(CYGPATH_W) 'luatexdir/font/pkin.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/pkin.c'; fi` - -luatexdir/font/liblua53tex_a-sfnt.o: luatexdir/font/sfnt.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-sfnt.o -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-sfnt.Tpo -c -o luatexdir/font/liblua53tex_a-sfnt.o `test -f 'luatexdir/font/sfnt.c' || echo '$(srcdir)/'`luatexdir/font/sfnt.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-sfnt.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-sfnt.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/sfnt.c' object='luatexdir/font/liblua53tex_a-sfnt.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-sfnt.o `test -f 'luatexdir/font/sfnt.c' || echo '$(srcdir)/'`luatexdir/font/sfnt.c - -luatexdir/font/liblua53tex_a-sfnt.obj: luatexdir/font/sfnt.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-sfnt.obj -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-sfnt.Tpo -c -o luatexdir/font/liblua53tex_a-sfnt.obj `if test -f 'luatexdir/font/sfnt.c'; then $(CYGPATH_W) 'luatexdir/font/sfnt.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/sfnt.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-sfnt.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-sfnt.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/sfnt.c' object='luatexdir/font/liblua53tex_a-sfnt.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-sfnt.obj `if test -f 'luatexdir/font/sfnt.c'; then $(CYGPATH_W) 'luatexdir/font/sfnt.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/sfnt.c'; fi` - -luatexdir/font/liblua53tex_a-texfont.o: luatexdir/font/texfont.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-texfont.o -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-texfont.Tpo -c -o luatexdir/font/liblua53tex_a-texfont.o `test -f 'luatexdir/font/texfont.c' || echo '$(srcdir)/'`luatexdir/font/texfont.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-texfont.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-texfont.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/texfont.c' object='luatexdir/font/liblua53tex_a-texfont.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-texfont.o `test -f 'luatexdir/font/texfont.c' || echo '$(srcdir)/'`luatexdir/font/texfont.c - -luatexdir/font/liblua53tex_a-texfont.obj: luatexdir/font/texfont.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-texfont.obj -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-texfont.Tpo -c -o luatexdir/font/liblua53tex_a-texfont.obj `if test -f 'luatexdir/font/texfont.c'; then $(CYGPATH_W) 'luatexdir/font/texfont.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/texfont.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-texfont.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-texfont.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/texfont.c' object='luatexdir/font/liblua53tex_a-texfont.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-texfont.obj `if test -f 'luatexdir/font/texfont.c'; then $(CYGPATH_W) 'luatexdir/font/texfont.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/texfont.c'; fi` - -luatexdir/font/liblua53tex_a-tfmofm.o: luatexdir/font/tfmofm.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-tfmofm.o -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-tfmofm.Tpo -c -o luatexdir/font/liblua53tex_a-tfmofm.o `test -f 'luatexdir/font/tfmofm.c' || echo '$(srcdir)/'`luatexdir/font/tfmofm.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-tfmofm.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-tfmofm.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/tfmofm.c' object='luatexdir/font/liblua53tex_a-tfmofm.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-tfmofm.o `test -f 'luatexdir/font/tfmofm.c' || echo '$(srcdir)/'`luatexdir/font/tfmofm.c - -luatexdir/font/liblua53tex_a-tfmofm.obj: luatexdir/font/tfmofm.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-tfmofm.obj -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-tfmofm.Tpo -c -o luatexdir/font/liblua53tex_a-tfmofm.obj `if test -f 'luatexdir/font/tfmofm.c'; then $(CYGPATH_W) 'luatexdir/font/tfmofm.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/tfmofm.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-tfmofm.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-tfmofm.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/tfmofm.c' object='luatexdir/font/liblua53tex_a-tfmofm.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-tfmofm.obj `if test -f 'luatexdir/font/tfmofm.c'; then $(CYGPATH_W) 'luatexdir/font/tfmofm.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/tfmofm.c'; fi` - -luatexdir/font/liblua53tex_a-tounicode.o: luatexdir/font/tounicode.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-tounicode.o -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-tounicode.Tpo -c -o luatexdir/font/liblua53tex_a-tounicode.o `test -f 'luatexdir/font/tounicode.c' || echo '$(srcdir)/'`luatexdir/font/tounicode.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-tounicode.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-tounicode.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/tounicode.c' object='luatexdir/font/liblua53tex_a-tounicode.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-tounicode.o `test -f 'luatexdir/font/tounicode.c' || echo '$(srcdir)/'`luatexdir/font/tounicode.c - -luatexdir/font/liblua53tex_a-tounicode.obj: luatexdir/font/tounicode.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-tounicode.obj -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-tounicode.Tpo -c -o luatexdir/font/liblua53tex_a-tounicode.obj `if test -f 'luatexdir/font/tounicode.c'; then $(CYGPATH_W) 'luatexdir/font/tounicode.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/tounicode.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-tounicode.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-tounicode.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/tounicode.c' object='luatexdir/font/liblua53tex_a-tounicode.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-tounicode.obj `if test -f 'luatexdir/font/tounicode.c'; then $(CYGPATH_W) 'luatexdir/font/tounicode.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/tounicode.c'; fi` - -luatexdir/font/liblua53tex_a-tt_glyf.o: luatexdir/font/tt_glyf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-tt_glyf.o -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-tt_glyf.Tpo -c -o luatexdir/font/liblua53tex_a-tt_glyf.o `test -f 'luatexdir/font/tt_glyf.c' || echo '$(srcdir)/'`luatexdir/font/tt_glyf.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-tt_glyf.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-tt_glyf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/tt_glyf.c' object='luatexdir/font/liblua53tex_a-tt_glyf.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-tt_glyf.o `test -f 'luatexdir/font/tt_glyf.c' || echo '$(srcdir)/'`luatexdir/font/tt_glyf.c - -luatexdir/font/liblua53tex_a-tt_glyf.obj: luatexdir/font/tt_glyf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-tt_glyf.obj -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-tt_glyf.Tpo -c -o luatexdir/font/liblua53tex_a-tt_glyf.obj `if test -f 'luatexdir/font/tt_glyf.c'; then $(CYGPATH_W) 'luatexdir/font/tt_glyf.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/tt_glyf.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-tt_glyf.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-tt_glyf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/tt_glyf.c' object='luatexdir/font/liblua53tex_a-tt_glyf.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-tt_glyf.obj `if test -f 'luatexdir/font/tt_glyf.c'; then $(CYGPATH_W) 'luatexdir/font/tt_glyf.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/tt_glyf.c'; fi` - -luatexdir/font/liblua53tex_a-tt_table.o: luatexdir/font/tt_table.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-tt_table.o -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-tt_table.Tpo -c -o luatexdir/font/liblua53tex_a-tt_table.o `test -f 'luatexdir/font/tt_table.c' || echo '$(srcdir)/'`luatexdir/font/tt_table.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-tt_table.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-tt_table.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/tt_table.c' object='luatexdir/font/liblua53tex_a-tt_table.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-tt_table.o `test -f 'luatexdir/font/tt_table.c' || echo '$(srcdir)/'`luatexdir/font/tt_table.c - -luatexdir/font/liblua53tex_a-tt_table.obj: luatexdir/font/tt_table.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-tt_table.obj -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-tt_table.Tpo -c -o luatexdir/font/liblua53tex_a-tt_table.obj `if test -f 'luatexdir/font/tt_table.c'; then $(CYGPATH_W) 'luatexdir/font/tt_table.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/tt_table.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-tt_table.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-tt_table.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/tt_table.c' object='luatexdir/font/liblua53tex_a-tt_table.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-tt_table.obj `if test -f 'luatexdir/font/tt_table.c'; then $(CYGPATH_W) 'luatexdir/font/tt_table.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/tt_table.c'; fi` - -luatexdir/font/liblua53tex_a-vfovf.o: luatexdir/font/vfovf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-vfovf.o -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-vfovf.Tpo -c -o luatexdir/font/liblua53tex_a-vfovf.o `test -f 'luatexdir/font/vfovf.c' || echo '$(srcdir)/'`luatexdir/font/vfovf.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-vfovf.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-vfovf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/vfovf.c' object='luatexdir/font/liblua53tex_a-vfovf.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-vfovf.o `test -f 'luatexdir/font/vfovf.c' || echo '$(srcdir)/'`luatexdir/font/vfovf.c - -luatexdir/font/liblua53tex_a-vfovf.obj: luatexdir/font/vfovf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-vfovf.obj -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-vfovf.Tpo -c -o luatexdir/font/liblua53tex_a-vfovf.obj `if test -f 'luatexdir/font/vfovf.c'; then $(CYGPATH_W) 'luatexdir/font/vfovf.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/vfovf.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-vfovf.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-vfovf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/vfovf.c' object='luatexdir/font/liblua53tex_a-vfovf.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-vfovf.obj `if test -f 'luatexdir/font/vfovf.c'; then $(CYGPATH_W) 'luatexdir/font/vfovf.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/vfovf.c'; fi` - -luatexdir/font/liblua53tex_a-vfpacket.o: luatexdir/font/vfpacket.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-vfpacket.o -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-vfpacket.Tpo -c -o luatexdir/font/liblua53tex_a-vfpacket.o `test -f 'luatexdir/font/vfpacket.c' || echo '$(srcdir)/'`luatexdir/font/vfpacket.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-vfpacket.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-vfpacket.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/vfpacket.c' object='luatexdir/font/liblua53tex_a-vfpacket.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-vfpacket.o `test -f 'luatexdir/font/vfpacket.c' || echo '$(srcdir)/'`luatexdir/font/vfpacket.c - -luatexdir/font/liblua53tex_a-vfpacket.obj: luatexdir/font/vfpacket.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-vfpacket.obj -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-vfpacket.Tpo -c -o luatexdir/font/liblua53tex_a-vfpacket.obj `if test -f 'luatexdir/font/vfpacket.c'; then $(CYGPATH_W) 'luatexdir/font/vfpacket.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/vfpacket.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-vfpacket.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-vfpacket.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/vfpacket.c' object='luatexdir/font/liblua53tex_a-vfpacket.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-vfpacket.obj `if test -f 'luatexdir/font/vfpacket.c'; then $(CYGPATH_W) 'luatexdir/font/vfpacket.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/vfpacket.c'; fi` - -luatexdir/font/liblua53tex_a-writecff.o: luatexdir/font/writecff.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-writecff.o -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-writecff.Tpo -c -o luatexdir/font/liblua53tex_a-writecff.o `test -f 'luatexdir/font/writecff.c' || echo '$(srcdir)/'`luatexdir/font/writecff.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-writecff.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-writecff.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/writecff.c' object='luatexdir/font/liblua53tex_a-writecff.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-writecff.o `test -f 'luatexdir/font/writecff.c' || echo '$(srcdir)/'`luatexdir/font/writecff.c - -luatexdir/font/liblua53tex_a-writecff.obj: luatexdir/font/writecff.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-writecff.obj -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-writecff.Tpo -c -o luatexdir/font/liblua53tex_a-writecff.obj `if test -f 'luatexdir/font/writecff.c'; then $(CYGPATH_W) 'luatexdir/font/writecff.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/writecff.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-writecff.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-writecff.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/writecff.c' object='luatexdir/font/liblua53tex_a-writecff.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-writecff.obj `if test -f 'luatexdir/font/writecff.c'; then $(CYGPATH_W) 'luatexdir/font/writecff.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/writecff.c'; fi` - -luatexdir/font/liblua53tex_a-writeenc.o: luatexdir/font/writeenc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-writeenc.o -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-writeenc.Tpo -c -o luatexdir/font/liblua53tex_a-writeenc.o `test -f 'luatexdir/font/writeenc.c' || echo '$(srcdir)/'`luatexdir/font/writeenc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-writeenc.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-writeenc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/writeenc.c' object='luatexdir/font/liblua53tex_a-writeenc.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-writeenc.o `test -f 'luatexdir/font/writeenc.c' || echo '$(srcdir)/'`luatexdir/font/writeenc.c - -luatexdir/font/liblua53tex_a-writeenc.obj: luatexdir/font/writeenc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-writeenc.obj -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-writeenc.Tpo -c -o luatexdir/font/liblua53tex_a-writeenc.obj `if test -f 'luatexdir/font/writeenc.c'; then $(CYGPATH_W) 'luatexdir/font/writeenc.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/writeenc.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-writeenc.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-writeenc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/writeenc.c' object='luatexdir/font/liblua53tex_a-writeenc.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-writeenc.obj `if test -f 'luatexdir/font/writeenc.c'; then $(CYGPATH_W) 'luatexdir/font/writeenc.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/writeenc.c'; fi` - -luatexdir/font/liblua53tex_a-writefont.o: luatexdir/font/writefont.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-writefont.o -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-writefont.Tpo -c -o luatexdir/font/liblua53tex_a-writefont.o `test -f 'luatexdir/font/writefont.c' || echo '$(srcdir)/'`luatexdir/font/writefont.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-writefont.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-writefont.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/writefont.c' object='luatexdir/font/liblua53tex_a-writefont.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-writefont.o `test -f 'luatexdir/font/writefont.c' || echo '$(srcdir)/'`luatexdir/font/writefont.c - -luatexdir/font/liblua53tex_a-writefont.obj: luatexdir/font/writefont.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-writefont.obj -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-writefont.Tpo -c -o luatexdir/font/liblua53tex_a-writefont.obj `if test -f 'luatexdir/font/writefont.c'; then $(CYGPATH_W) 'luatexdir/font/writefont.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/writefont.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-writefont.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-writefont.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/writefont.c' object='luatexdir/font/liblua53tex_a-writefont.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-writefont.obj `if test -f 'luatexdir/font/writefont.c'; then $(CYGPATH_W) 'luatexdir/font/writefont.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/writefont.c'; fi` - -luatexdir/font/liblua53tex_a-writet1.o: luatexdir/font/writet1.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-writet1.o -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-writet1.Tpo -c -o luatexdir/font/liblua53tex_a-writet1.o `test -f 'luatexdir/font/writet1.c' || echo '$(srcdir)/'`luatexdir/font/writet1.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-writet1.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-writet1.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/writet1.c' object='luatexdir/font/liblua53tex_a-writet1.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-writet1.o `test -f 'luatexdir/font/writet1.c' || echo '$(srcdir)/'`luatexdir/font/writet1.c - -luatexdir/font/liblua53tex_a-writet1.obj: luatexdir/font/writet1.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-writet1.obj -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-writet1.Tpo -c -o luatexdir/font/liblua53tex_a-writet1.obj `if test -f 'luatexdir/font/writet1.c'; then $(CYGPATH_W) 'luatexdir/font/writet1.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/writet1.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-writet1.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-writet1.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/writet1.c' object='luatexdir/font/liblua53tex_a-writet1.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-writet1.obj `if test -f 'luatexdir/font/writet1.c'; then $(CYGPATH_W) 'luatexdir/font/writet1.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/writet1.c'; fi` - -luatexdir/font/liblua53tex_a-writet3.o: luatexdir/font/writet3.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-writet3.o -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-writet3.Tpo -c -o luatexdir/font/liblua53tex_a-writet3.o `test -f 'luatexdir/font/writet3.c' || echo '$(srcdir)/'`luatexdir/font/writet3.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-writet3.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-writet3.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/writet3.c' object='luatexdir/font/liblua53tex_a-writet3.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-writet3.o `test -f 'luatexdir/font/writet3.c' || echo '$(srcdir)/'`luatexdir/font/writet3.c - -luatexdir/font/liblua53tex_a-writet3.obj: luatexdir/font/writet3.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-writet3.obj -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-writet3.Tpo -c -o luatexdir/font/liblua53tex_a-writet3.obj `if test -f 'luatexdir/font/writet3.c'; then $(CYGPATH_W) 'luatexdir/font/writet3.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/writet3.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-writet3.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-writet3.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/writet3.c' object='luatexdir/font/liblua53tex_a-writet3.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-writet3.obj `if test -f 'luatexdir/font/writet3.c'; then $(CYGPATH_W) 'luatexdir/font/writet3.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/writet3.c'; fi` - -luatexdir/font/liblua53tex_a-writettf.o: luatexdir/font/writettf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-writettf.o -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-writettf.Tpo -c -o luatexdir/font/liblua53tex_a-writettf.o `test -f 'luatexdir/font/writettf.c' || echo '$(srcdir)/'`luatexdir/font/writettf.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-writettf.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-writettf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/writettf.c' object='luatexdir/font/liblua53tex_a-writettf.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-writettf.o `test -f 'luatexdir/font/writettf.c' || echo '$(srcdir)/'`luatexdir/font/writettf.c - -luatexdir/font/liblua53tex_a-writettf.obj: luatexdir/font/writettf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-writettf.obj -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-writettf.Tpo -c -o luatexdir/font/liblua53tex_a-writettf.obj `if test -f 'luatexdir/font/writettf.c'; then $(CYGPATH_W) 'luatexdir/font/writettf.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/writettf.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-writettf.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-writettf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/writettf.c' object='luatexdir/font/liblua53tex_a-writettf.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-writettf.obj `if test -f 'luatexdir/font/writettf.c'; then $(CYGPATH_W) 'luatexdir/font/writettf.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/writettf.c'; fi` - -luatexdir/font/liblua53tex_a-writetype0.o: luatexdir/font/writetype0.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-writetype0.o -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-writetype0.Tpo -c -o luatexdir/font/liblua53tex_a-writetype0.o `test -f 'luatexdir/font/writetype0.c' || echo '$(srcdir)/'`luatexdir/font/writetype0.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-writetype0.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-writetype0.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/writetype0.c' object='luatexdir/font/liblua53tex_a-writetype0.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-writetype0.o `test -f 'luatexdir/font/writetype0.c' || echo '$(srcdir)/'`luatexdir/font/writetype0.c - -luatexdir/font/liblua53tex_a-writetype0.obj: luatexdir/font/writetype0.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-writetype0.obj -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-writetype0.Tpo -c -o luatexdir/font/liblua53tex_a-writetype0.obj `if test -f 'luatexdir/font/writetype0.c'; then $(CYGPATH_W) 'luatexdir/font/writetype0.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/writetype0.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-writetype0.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-writetype0.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/writetype0.c' object='luatexdir/font/liblua53tex_a-writetype0.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-writetype0.obj `if test -f 'luatexdir/font/writetype0.c'; then $(CYGPATH_W) 'luatexdir/font/writetype0.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/writetype0.c'; fi` - -luatexdir/font/liblua53tex_a-writetype2.o: luatexdir/font/writetype2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-writetype2.o -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-writetype2.Tpo -c -o luatexdir/font/liblua53tex_a-writetype2.o `test -f 'luatexdir/font/writetype2.c' || echo '$(srcdir)/'`luatexdir/font/writetype2.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-writetype2.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-writetype2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/writetype2.c' object='luatexdir/font/liblua53tex_a-writetype2.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-writetype2.o `test -f 'luatexdir/font/writetype2.c' || echo '$(srcdir)/'`luatexdir/font/writetype2.c - -luatexdir/font/liblua53tex_a-writetype2.obj: luatexdir/font/writetype2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/font/liblua53tex_a-writetype2.obj -MD -MP -MF luatexdir/font/$(DEPDIR)/liblua53tex_a-writetype2.Tpo -c -o luatexdir/font/liblua53tex_a-writetype2.obj `if test -f 'luatexdir/font/writetype2.c'; then $(CYGPATH_W) 'luatexdir/font/writetype2.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/writetype2.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/font/$(DEPDIR)/liblua53tex_a-writetype2.Tpo luatexdir/font/$(DEPDIR)/liblua53tex_a-writetype2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/font/writetype2.c' object='luatexdir/font/liblua53tex_a-writetype2.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/font/liblua53tex_a-writetype2.obj `if test -f 'luatexdir/font/writetype2.c'; then $(CYGPATH_W) 'luatexdir/font/writetype2.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/font/writetype2.c'; fi` - -luatexdir/image/liblua53tex_a-pdftoepdf.o: luatexdir/image/pdftoepdf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/image/liblua53tex_a-pdftoepdf.o -MD -MP -MF luatexdir/image/$(DEPDIR)/liblua53tex_a-pdftoepdf.Tpo -c -o luatexdir/image/liblua53tex_a-pdftoepdf.o `test -f 'luatexdir/image/pdftoepdf.c' || echo '$(srcdir)/'`luatexdir/image/pdftoepdf.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/image/$(DEPDIR)/liblua53tex_a-pdftoepdf.Tpo luatexdir/image/$(DEPDIR)/liblua53tex_a-pdftoepdf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/image/pdftoepdf.c' object='luatexdir/image/liblua53tex_a-pdftoepdf.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/image/liblua53tex_a-pdftoepdf.o `test -f 'luatexdir/image/pdftoepdf.c' || echo '$(srcdir)/'`luatexdir/image/pdftoepdf.c - -luatexdir/image/liblua53tex_a-pdftoepdf.obj: luatexdir/image/pdftoepdf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/image/liblua53tex_a-pdftoepdf.obj -MD -MP -MF luatexdir/image/$(DEPDIR)/liblua53tex_a-pdftoepdf.Tpo -c -o luatexdir/image/liblua53tex_a-pdftoepdf.obj `if test -f 'luatexdir/image/pdftoepdf.c'; then $(CYGPATH_W) 'luatexdir/image/pdftoepdf.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/image/pdftoepdf.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/image/$(DEPDIR)/liblua53tex_a-pdftoepdf.Tpo luatexdir/image/$(DEPDIR)/liblua53tex_a-pdftoepdf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/image/pdftoepdf.c' object='luatexdir/image/liblua53tex_a-pdftoepdf.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/image/liblua53tex_a-pdftoepdf.obj `if test -f 'luatexdir/image/pdftoepdf.c'; then $(CYGPATH_W) 'luatexdir/image/pdftoepdf.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/image/pdftoepdf.c'; fi` - -luatexdir/image/liblua53tex_a-writeimg.o: luatexdir/image/writeimg.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/image/liblua53tex_a-writeimg.o -MD -MP -MF luatexdir/image/$(DEPDIR)/liblua53tex_a-writeimg.Tpo -c -o luatexdir/image/liblua53tex_a-writeimg.o `test -f 'luatexdir/image/writeimg.c' || echo '$(srcdir)/'`luatexdir/image/writeimg.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/image/$(DEPDIR)/liblua53tex_a-writeimg.Tpo luatexdir/image/$(DEPDIR)/liblua53tex_a-writeimg.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/image/writeimg.c' object='luatexdir/image/liblua53tex_a-writeimg.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/image/liblua53tex_a-writeimg.o `test -f 'luatexdir/image/writeimg.c' || echo '$(srcdir)/'`luatexdir/image/writeimg.c - -luatexdir/image/liblua53tex_a-writeimg.obj: luatexdir/image/writeimg.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/image/liblua53tex_a-writeimg.obj -MD -MP -MF luatexdir/image/$(DEPDIR)/liblua53tex_a-writeimg.Tpo -c -o luatexdir/image/liblua53tex_a-writeimg.obj `if test -f 'luatexdir/image/writeimg.c'; then $(CYGPATH_W) 'luatexdir/image/writeimg.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/image/writeimg.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/image/$(DEPDIR)/liblua53tex_a-writeimg.Tpo luatexdir/image/$(DEPDIR)/liblua53tex_a-writeimg.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/image/writeimg.c' object='luatexdir/image/liblua53tex_a-writeimg.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/image/liblua53tex_a-writeimg.obj `if test -f 'luatexdir/image/writeimg.c'; then $(CYGPATH_W) 'luatexdir/image/writeimg.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/image/writeimg.c'; fi` - -luatexdir/image/liblua53tex_a-writejbig2.o: luatexdir/image/writejbig2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/image/liblua53tex_a-writejbig2.o -MD -MP -MF luatexdir/image/$(DEPDIR)/liblua53tex_a-writejbig2.Tpo -c -o luatexdir/image/liblua53tex_a-writejbig2.o `test -f 'luatexdir/image/writejbig2.c' || echo '$(srcdir)/'`luatexdir/image/writejbig2.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/image/$(DEPDIR)/liblua53tex_a-writejbig2.Tpo luatexdir/image/$(DEPDIR)/liblua53tex_a-writejbig2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/image/writejbig2.c' object='luatexdir/image/liblua53tex_a-writejbig2.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/image/liblua53tex_a-writejbig2.o `test -f 'luatexdir/image/writejbig2.c' || echo '$(srcdir)/'`luatexdir/image/writejbig2.c - -luatexdir/image/liblua53tex_a-writejbig2.obj: luatexdir/image/writejbig2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/image/liblua53tex_a-writejbig2.obj -MD -MP -MF luatexdir/image/$(DEPDIR)/liblua53tex_a-writejbig2.Tpo -c -o luatexdir/image/liblua53tex_a-writejbig2.obj `if test -f 'luatexdir/image/writejbig2.c'; then $(CYGPATH_W) 'luatexdir/image/writejbig2.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/image/writejbig2.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/image/$(DEPDIR)/liblua53tex_a-writejbig2.Tpo luatexdir/image/$(DEPDIR)/liblua53tex_a-writejbig2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/image/writejbig2.c' object='luatexdir/image/liblua53tex_a-writejbig2.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/image/liblua53tex_a-writejbig2.obj `if test -f 'luatexdir/image/writejbig2.c'; then $(CYGPATH_W) 'luatexdir/image/writejbig2.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/image/writejbig2.c'; fi` - -luatexdir/image/liblua53tex_a-writejp2.o: luatexdir/image/writejp2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/image/liblua53tex_a-writejp2.o -MD -MP -MF luatexdir/image/$(DEPDIR)/liblua53tex_a-writejp2.Tpo -c -o luatexdir/image/liblua53tex_a-writejp2.o `test -f 'luatexdir/image/writejp2.c' || echo '$(srcdir)/'`luatexdir/image/writejp2.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/image/$(DEPDIR)/liblua53tex_a-writejp2.Tpo luatexdir/image/$(DEPDIR)/liblua53tex_a-writejp2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/image/writejp2.c' object='luatexdir/image/liblua53tex_a-writejp2.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/image/liblua53tex_a-writejp2.o `test -f 'luatexdir/image/writejp2.c' || echo '$(srcdir)/'`luatexdir/image/writejp2.c - -luatexdir/image/liblua53tex_a-writejp2.obj: luatexdir/image/writejp2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/image/liblua53tex_a-writejp2.obj -MD -MP -MF luatexdir/image/$(DEPDIR)/liblua53tex_a-writejp2.Tpo -c -o luatexdir/image/liblua53tex_a-writejp2.obj `if test -f 'luatexdir/image/writejp2.c'; then $(CYGPATH_W) 'luatexdir/image/writejp2.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/image/writejp2.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/image/$(DEPDIR)/liblua53tex_a-writejp2.Tpo luatexdir/image/$(DEPDIR)/liblua53tex_a-writejp2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/image/writejp2.c' object='luatexdir/image/liblua53tex_a-writejp2.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/image/liblua53tex_a-writejp2.obj `if test -f 'luatexdir/image/writejp2.c'; then $(CYGPATH_W) 'luatexdir/image/writejp2.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/image/writejp2.c'; fi` - -luatexdir/image/liblua53tex_a-writejpg.o: luatexdir/image/writejpg.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/image/liblua53tex_a-writejpg.o -MD -MP -MF luatexdir/image/$(DEPDIR)/liblua53tex_a-writejpg.Tpo -c -o luatexdir/image/liblua53tex_a-writejpg.o `test -f 'luatexdir/image/writejpg.c' || echo '$(srcdir)/'`luatexdir/image/writejpg.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/image/$(DEPDIR)/liblua53tex_a-writejpg.Tpo luatexdir/image/$(DEPDIR)/liblua53tex_a-writejpg.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/image/writejpg.c' object='luatexdir/image/liblua53tex_a-writejpg.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/image/liblua53tex_a-writejpg.o `test -f 'luatexdir/image/writejpg.c' || echo '$(srcdir)/'`luatexdir/image/writejpg.c - -luatexdir/image/liblua53tex_a-writejpg.obj: luatexdir/image/writejpg.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/image/liblua53tex_a-writejpg.obj -MD -MP -MF luatexdir/image/$(DEPDIR)/liblua53tex_a-writejpg.Tpo -c -o luatexdir/image/liblua53tex_a-writejpg.obj `if test -f 'luatexdir/image/writejpg.c'; then $(CYGPATH_W) 'luatexdir/image/writejpg.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/image/writejpg.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/image/$(DEPDIR)/liblua53tex_a-writejpg.Tpo luatexdir/image/$(DEPDIR)/liblua53tex_a-writejpg.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/image/writejpg.c' object='luatexdir/image/liblua53tex_a-writejpg.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/image/liblua53tex_a-writejpg.obj `if test -f 'luatexdir/image/writejpg.c'; then $(CYGPATH_W) 'luatexdir/image/writejpg.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/image/writejpg.c'; fi` - -luatexdir/image/liblua53tex_a-writepng.o: luatexdir/image/writepng.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/image/liblua53tex_a-writepng.o -MD -MP -MF luatexdir/image/$(DEPDIR)/liblua53tex_a-writepng.Tpo -c -o luatexdir/image/liblua53tex_a-writepng.o `test -f 'luatexdir/image/writepng.c' || echo '$(srcdir)/'`luatexdir/image/writepng.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/image/$(DEPDIR)/liblua53tex_a-writepng.Tpo luatexdir/image/$(DEPDIR)/liblua53tex_a-writepng.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/image/writepng.c' object='luatexdir/image/liblua53tex_a-writepng.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/image/liblua53tex_a-writepng.o `test -f 'luatexdir/image/writepng.c' || echo '$(srcdir)/'`luatexdir/image/writepng.c - -luatexdir/image/liblua53tex_a-writepng.obj: luatexdir/image/writepng.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/image/liblua53tex_a-writepng.obj -MD -MP -MF luatexdir/image/$(DEPDIR)/liblua53tex_a-writepng.Tpo -c -o luatexdir/image/liblua53tex_a-writepng.obj `if test -f 'luatexdir/image/writepng.c'; then $(CYGPATH_W) 'luatexdir/image/writepng.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/image/writepng.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/image/$(DEPDIR)/liblua53tex_a-writepng.Tpo luatexdir/image/$(DEPDIR)/liblua53tex_a-writepng.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/image/writepng.c' object='luatexdir/image/liblua53tex_a-writepng.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/image/liblua53tex_a-writepng.obj `if test -f 'luatexdir/image/writepng.c'; then $(CYGPATH_W) 'luatexdir/image/writepng.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/image/writepng.c'; fi` - -luatexdir/lang/liblua53tex_a-hnjalloc.o: luatexdir/lang/hnjalloc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lang/liblua53tex_a-hnjalloc.o -MD -MP -MF luatexdir/lang/$(DEPDIR)/liblua53tex_a-hnjalloc.Tpo -c -o luatexdir/lang/liblua53tex_a-hnjalloc.o `test -f 'luatexdir/lang/hnjalloc.c' || echo '$(srcdir)/'`luatexdir/lang/hnjalloc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lang/$(DEPDIR)/liblua53tex_a-hnjalloc.Tpo luatexdir/lang/$(DEPDIR)/liblua53tex_a-hnjalloc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lang/hnjalloc.c' object='luatexdir/lang/liblua53tex_a-hnjalloc.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lang/liblua53tex_a-hnjalloc.o `test -f 'luatexdir/lang/hnjalloc.c' || echo '$(srcdir)/'`luatexdir/lang/hnjalloc.c - -luatexdir/lang/liblua53tex_a-hnjalloc.obj: luatexdir/lang/hnjalloc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lang/liblua53tex_a-hnjalloc.obj -MD -MP -MF luatexdir/lang/$(DEPDIR)/liblua53tex_a-hnjalloc.Tpo -c -o luatexdir/lang/liblua53tex_a-hnjalloc.obj `if test -f 'luatexdir/lang/hnjalloc.c'; then $(CYGPATH_W) 'luatexdir/lang/hnjalloc.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lang/hnjalloc.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lang/$(DEPDIR)/liblua53tex_a-hnjalloc.Tpo luatexdir/lang/$(DEPDIR)/liblua53tex_a-hnjalloc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lang/hnjalloc.c' object='luatexdir/lang/liblua53tex_a-hnjalloc.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lang/liblua53tex_a-hnjalloc.obj `if test -f 'luatexdir/lang/hnjalloc.c'; then $(CYGPATH_W) 'luatexdir/lang/hnjalloc.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lang/hnjalloc.c'; fi` - -luatexdir/lang/liblua53tex_a-hyphen.o: luatexdir/lang/hyphen.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lang/liblua53tex_a-hyphen.o -MD -MP -MF luatexdir/lang/$(DEPDIR)/liblua53tex_a-hyphen.Tpo -c -o luatexdir/lang/liblua53tex_a-hyphen.o `test -f 'luatexdir/lang/hyphen.c' || echo '$(srcdir)/'`luatexdir/lang/hyphen.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lang/$(DEPDIR)/liblua53tex_a-hyphen.Tpo luatexdir/lang/$(DEPDIR)/liblua53tex_a-hyphen.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lang/hyphen.c' object='luatexdir/lang/liblua53tex_a-hyphen.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lang/liblua53tex_a-hyphen.o `test -f 'luatexdir/lang/hyphen.c' || echo '$(srcdir)/'`luatexdir/lang/hyphen.c - -luatexdir/lang/liblua53tex_a-hyphen.obj: luatexdir/lang/hyphen.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lang/liblua53tex_a-hyphen.obj -MD -MP -MF luatexdir/lang/$(DEPDIR)/liblua53tex_a-hyphen.Tpo -c -o luatexdir/lang/liblua53tex_a-hyphen.obj `if test -f 'luatexdir/lang/hyphen.c'; then $(CYGPATH_W) 'luatexdir/lang/hyphen.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lang/hyphen.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lang/$(DEPDIR)/liblua53tex_a-hyphen.Tpo luatexdir/lang/$(DEPDIR)/liblua53tex_a-hyphen.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lang/hyphen.c' object='luatexdir/lang/liblua53tex_a-hyphen.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lang/liblua53tex_a-hyphen.obj `if test -f 'luatexdir/lang/hyphen.c'; then $(CYGPATH_W) 'luatexdir/lang/hyphen.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lang/hyphen.c'; fi` - -luatexdir/lang/liblua53tex_a-texlang.o: luatexdir/lang/texlang.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lang/liblua53tex_a-texlang.o -MD -MP -MF luatexdir/lang/$(DEPDIR)/liblua53tex_a-texlang.Tpo -c -o luatexdir/lang/liblua53tex_a-texlang.o `test -f 'luatexdir/lang/texlang.c' || echo '$(srcdir)/'`luatexdir/lang/texlang.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lang/$(DEPDIR)/liblua53tex_a-texlang.Tpo luatexdir/lang/$(DEPDIR)/liblua53tex_a-texlang.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lang/texlang.c' object='luatexdir/lang/liblua53tex_a-texlang.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lang/liblua53tex_a-texlang.o `test -f 'luatexdir/lang/texlang.c' || echo '$(srcdir)/'`luatexdir/lang/texlang.c - -luatexdir/lang/liblua53tex_a-texlang.obj: luatexdir/lang/texlang.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lang/liblua53tex_a-texlang.obj -MD -MP -MF luatexdir/lang/$(DEPDIR)/liblua53tex_a-texlang.Tpo -c -o luatexdir/lang/liblua53tex_a-texlang.obj `if test -f 'luatexdir/lang/texlang.c'; then $(CYGPATH_W) 'luatexdir/lang/texlang.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lang/texlang.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lang/$(DEPDIR)/liblua53tex_a-texlang.Tpo luatexdir/lang/$(DEPDIR)/liblua53tex_a-texlang.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lang/texlang.c' object='luatexdir/lang/liblua53tex_a-texlang.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lang/liblua53tex_a-texlang.obj `if test -f 'luatexdir/lang/texlang.c'; then $(CYGPATH_W) 'luatexdir/lang/texlang.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lang/texlang.c'; fi` - -luatexdir/lua/liblua53tex_a-lcallbacklib.o: luatexdir/lua/lcallbacklib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-lcallbacklib.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-lcallbacklib.Tpo -c -o luatexdir/lua/liblua53tex_a-lcallbacklib.o `test -f 'luatexdir/lua/lcallbacklib.c' || echo '$(srcdir)/'`luatexdir/lua/lcallbacklib.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-lcallbacklib.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-lcallbacklib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/lcallbacklib.c' object='luatexdir/lua/liblua53tex_a-lcallbacklib.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-lcallbacklib.o `test -f 'luatexdir/lua/lcallbacklib.c' || echo '$(srcdir)/'`luatexdir/lua/lcallbacklib.c - -luatexdir/lua/liblua53tex_a-lcallbacklib.obj: luatexdir/lua/lcallbacklib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-lcallbacklib.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-lcallbacklib.Tpo -c -o luatexdir/lua/liblua53tex_a-lcallbacklib.obj `if test -f 'luatexdir/lua/lcallbacklib.c'; then $(CYGPATH_W) 'luatexdir/lua/lcallbacklib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/lcallbacklib.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-lcallbacklib.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-lcallbacklib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/lcallbacklib.c' object='luatexdir/lua/liblua53tex_a-lcallbacklib.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-lcallbacklib.obj `if test -f 'luatexdir/lua/lcallbacklib.c'; then $(CYGPATH_W) 'luatexdir/lua/lcallbacklib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/lcallbacklib.c'; fi` - -luatexdir/lua/liblua53tex_a-lfontlib.o: luatexdir/lua/lfontlib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-lfontlib.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-lfontlib.Tpo -c -o luatexdir/lua/liblua53tex_a-lfontlib.o `test -f 'luatexdir/lua/lfontlib.c' || echo '$(srcdir)/'`luatexdir/lua/lfontlib.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-lfontlib.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-lfontlib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/lfontlib.c' object='luatexdir/lua/liblua53tex_a-lfontlib.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-lfontlib.o `test -f 'luatexdir/lua/lfontlib.c' || echo '$(srcdir)/'`luatexdir/lua/lfontlib.c - -luatexdir/lua/liblua53tex_a-lfontlib.obj: luatexdir/lua/lfontlib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-lfontlib.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-lfontlib.Tpo -c -o luatexdir/lua/liblua53tex_a-lfontlib.obj `if test -f 'luatexdir/lua/lfontlib.c'; then $(CYGPATH_W) 'luatexdir/lua/lfontlib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/lfontlib.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-lfontlib.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-lfontlib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/lfontlib.c' object='luatexdir/lua/liblua53tex_a-lfontlib.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-lfontlib.obj `if test -f 'luatexdir/lua/lfontlib.c'; then $(CYGPATH_W) 'luatexdir/lua/lfontlib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/lfontlib.c'; fi` - -luatexdir/lua/liblua53tex_a-limglib.o: luatexdir/lua/limglib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-limglib.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-limglib.Tpo -c -o luatexdir/lua/liblua53tex_a-limglib.o `test -f 'luatexdir/lua/limglib.c' || echo '$(srcdir)/'`luatexdir/lua/limglib.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-limglib.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-limglib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/limglib.c' object='luatexdir/lua/liblua53tex_a-limglib.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-limglib.o `test -f 'luatexdir/lua/limglib.c' || echo '$(srcdir)/'`luatexdir/lua/limglib.c - -luatexdir/lua/liblua53tex_a-limglib.obj: luatexdir/lua/limglib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-limglib.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-limglib.Tpo -c -o luatexdir/lua/liblua53tex_a-limglib.obj `if test -f 'luatexdir/lua/limglib.c'; then $(CYGPATH_W) 'luatexdir/lua/limglib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/limglib.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-limglib.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-limglib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/limglib.c' object='luatexdir/lua/liblua53tex_a-limglib.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-limglib.obj `if test -f 'luatexdir/lua/limglib.c'; then $(CYGPATH_W) 'luatexdir/lua/limglib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/limglib.c'; fi` - -luatexdir/lua/liblua53tex_a-lpdfelib.o: luatexdir/lua/lpdfelib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-lpdfelib.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-lpdfelib.Tpo -c -o luatexdir/lua/liblua53tex_a-lpdfelib.o `test -f 'luatexdir/lua/lpdfelib.c' || echo '$(srcdir)/'`luatexdir/lua/lpdfelib.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-lpdfelib.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-lpdfelib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/lpdfelib.c' object='luatexdir/lua/liblua53tex_a-lpdfelib.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-lpdfelib.o `test -f 'luatexdir/lua/lpdfelib.c' || echo '$(srcdir)/'`luatexdir/lua/lpdfelib.c - -luatexdir/lua/liblua53tex_a-lpdfelib.obj: luatexdir/lua/lpdfelib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-lpdfelib.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-lpdfelib.Tpo -c -o luatexdir/lua/liblua53tex_a-lpdfelib.obj `if test -f 'luatexdir/lua/lpdfelib.c'; then $(CYGPATH_W) 'luatexdir/lua/lpdfelib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/lpdfelib.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-lpdfelib.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-lpdfelib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/lpdfelib.c' object='luatexdir/lua/liblua53tex_a-lpdfelib.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-lpdfelib.obj `if test -f 'luatexdir/lua/lpdfelib.c'; then $(CYGPATH_W) 'luatexdir/lua/lpdfelib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/lpdfelib.c'; fi` - -luatexdir/lua/liblua53tex_a-lpdfscannerlib.o: luatexdir/lua/lpdfscannerlib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-lpdfscannerlib.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-lpdfscannerlib.Tpo -c -o luatexdir/lua/liblua53tex_a-lpdfscannerlib.o `test -f 'luatexdir/lua/lpdfscannerlib.c' || echo '$(srcdir)/'`luatexdir/lua/lpdfscannerlib.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-lpdfscannerlib.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-lpdfscannerlib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/lpdfscannerlib.c' object='luatexdir/lua/liblua53tex_a-lpdfscannerlib.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-lpdfscannerlib.o `test -f 'luatexdir/lua/lpdfscannerlib.c' || echo '$(srcdir)/'`luatexdir/lua/lpdfscannerlib.c - -luatexdir/lua/liblua53tex_a-lpdfscannerlib.obj: luatexdir/lua/lpdfscannerlib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-lpdfscannerlib.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-lpdfscannerlib.Tpo -c -o luatexdir/lua/liblua53tex_a-lpdfscannerlib.obj `if test -f 'luatexdir/lua/lpdfscannerlib.c'; then $(CYGPATH_W) 'luatexdir/lua/lpdfscannerlib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/lpdfscannerlib.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-lpdfscannerlib.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-lpdfscannerlib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/lpdfscannerlib.c' object='luatexdir/lua/liblua53tex_a-lpdfscannerlib.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-lpdfscannerlib.obj `if test -f 'luatexdir/lua/lpdfscannerlib.c'; then $(CYGPATH_W) 'luatexdir/lua/lpdfscannerlib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/lpdfscannerlib.c'; fi` - -luatexdir/lua/liblua53tex_a-lkpselib.o: luatexdir/lua/lkpselib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-lkpselib.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-lkpselib.Tpo -c -o luatexdir/lua/liblua53tex_a-lkpselib.o `test -f 'luatexdir/lua/lkpselib.c' || echo '$(srcdir)/'`luatexdir/lua/lkpselib.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-lkpselib.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-lkpselib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/lkpselib.c' object='luatexdir/lua/liblua53tex_a-lkpselib.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-lkpselib.o `test -f 'luatexdir/lua/lkpselib.c' || echo '$(srcdir)/'`luatexdir/lua/lkpselib.c - -luatexdir/lua/liblua53tex_a-lkpselib.obj: luatexdir/lua/lkpselib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-lkpselib.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-lkpselib.Tpo -c -o luatexdir/lua/liblua53tex_a-lkpselib.obj `if test -f 'luatexdir/lua/lkpselib.c'; then $(CYGPATH_W) 'luatexdir/lua/lkpselib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/lkpselib.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-lkpselib.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-lkpselib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/lkpselib.c' object='luatexdir/lua/liblua53tex_a-lkpselib.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-lkpselib.obj `if test -f 'luatexdir/lua/lkpselib.c'; then $(CYGPATH_W) 'luatexdir/lua/lkpselib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/lkpselib.c'; fi` - -luatexdir/lua/liblua53tex_a-llanglib.o: luatexdir/lua/llanglib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-llanglib.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-llanglib.Tpo -c -o luatexdir/lua/liblua53tex_a-llanglib.o `test -f 'luatexdir/lua/llanglib.c' || echo '$(srcdir)/'`luatexdir/lua/llanglib.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-llanglib.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-llanglib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/llanglib.c' object='luatexdir/lua/liblua53tex_a-llanglib.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-llanglib.o `test -f 'luatexdir/lua/llanglib.c' || echo '$(srcdir)/'`luatexdir/lua/llanglib.c - -luatexdir/lua/liblua53tex_a-llanglib.obj: luatexdir/lua/llanglib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-llanglib.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-llanglib.Tpo -c -o luatexdir/lua/liblua53tex_a-llanglib.obj `if test -f 'luatexdir/lua/llanglib.c'; then $(CYGPATH_W) 'luatexdir/lua/llanglib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/llanglib.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-llanglib.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-llanglib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/llanglib.c' object='luatexdir/lua/liblua53tex_a-llanglib.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-llanglib.obj `if test -f 'luatexdir/lua/llanglib.c'; then $(CYGPATH_W) 'luatexdir/lua/llanglib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/llanglib.c'; fi` - -luatexdir/lua/liblua53tex_a-llualib.o: luatexdir/lua/llualib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-llualib.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-llualib.Tpo -c -o luatexdir/lua/liblua53tex_a-llualib.o `test -f 'luatexdir/lua/llualib.c' || echo '$(srcdir)/'`luatexdir/lua/llualib.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-llualib.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-llualib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/llualib.c' object='luatexdir/lua/liblua53tex_a-llualib.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-llualib.o `test -f 'luatexdir/lua/llualib.c' || echo '$(srcdir)/'`luatexdir/lua/llualib.c - -luatexdir/lua/liblua53tex_a-llualib.obj: luatexdir/lua/llualib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-llualib.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-llualib.Tpo -c -o luatexdir/lua/liblua53tex_a-llualib.obj `if test -f 'luatexdir/lua/llualib.c'; then $(CYGPATH_W) 'luatexdir/lua/llualib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/llualib.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-llualib.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-llualib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/llualib.c' object='luatexdir/lua/liblua53tex_a-llualib.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-llualib.obj `if test -f 'luatexdir/lua/llualib.c'; then $(CYGPATH_W) 'luatexdir/lua/llualib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/llualib.c'; fi` - -luatexdir/lua/liblua53tex_a-lnodelib.o: luatexdir/lua/lnodelib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-lnodelib.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-lnodelib.Tpo -c -o luatexdir/lua/liblua53tex_a-lnodelib.o `test -f 'luatexdir/lua/lnodelib.c' || echo '$(srcdir)/'`luatexdir/lua/lnodelib.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-lnodelib.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-lnodelib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/lnodelib.c' object='luatexdir/lua/liblua53tex_a-lnodelib.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-lnodelib.o `test -f 'luatexdir/lua/lnodelib.c' || echo '$(srcdir)/'`luatexdir/lua/lnodelib.c - -luatexdir/lua/liblua53tex_a-lnodelib.obj: luatexdir/lua/lnodelib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-lnodelib.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-lnodelib.Tpo -c -o luatexdir/lua/liblua53tex_a-lnodelib.obj `if test -f 'luatexdir/lua/lnodelib.c'; then $(CYGPATH_W) 'luatexdir/lua/lnodelib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/lnodelib.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-lnodelib.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-lnodelib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/lnodelib.c' object='luatexdir/lua/liblua53tex_a-lnodelib.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-lnodelib.obj `if test -f 'luatexdir/lua/lnodelib.c'; then $(CYGPATH_W) 'luatexdir/lua/lnodelib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/lnodelib.c'; fi` - -luatexdir/lua/liblua53tex_a-liolibext.o: luatexdir/lua/liolibext.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-liolibext.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-liolibext.Tpo -c -o luatexdir/lua/liblua53tex_a-liolibext.o `test -f 'luatexdir/lua/liolibext.c' || echo '$(srcdir)/'`luatexdir/lua/liolibext.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-liolibext.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-liolibext.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/liolibext.c' object='luatexdir/lua/liblua53tex_a-liolibext.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-liolibext.o `test -f 'luatexdir/lua/liolibext.c' || echo '$(srcdir)/'`luatexdir/lua/liolibext.c - -luatexdir/lua/liblua53tex_a-liolibext.obj: luatexdir/lua/liolibext.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-liolibext.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-liolibext.Tpo -c -o luatexdir/lua/liblua53tex_a-liolibext.obj `if test -f 'luatexdir/lua/liolibext.c'; then $(CYGPATH_W) 'luatexdir/lua/liolibext.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/liolibext.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-liolibext.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-liolibext.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/liolibext.c' object='luatexdir/lua/liblua53tex_a-liolibext.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-liolibext.obj `if test -f 'luatexdir/lua/liolibext.c'; then $(CYGPATH_W) 'luatexdir/lua/liolibext.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/liolibext.c'; fi` - -luatexdir/lua/liblua53tex_a-loslibext.o: luatexdir/lua/loslibext.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-loslibext.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-loslibext.Tpo -c -o luatexdir/lua/liblua53tex_a-loslibext.o `test -f 'luatexdir/lua/loslibext.c' || echo '$(srcdir)/'`luatexdir/lua/loslibext.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-loslibext.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-loslibext.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/loslibext.c' object='luatexdir/lua/liblua53tex_a-loslibext.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-loslibext.o `test -f 'luatexdir/lua/loslibext.c' || echo '$(srcdir)/'`luatexdir/lua/loslibext.c - -luatexdir/lua/liblua53tex_a-loslibext.obj: luatexdir/lua/loslibext.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-loslibext.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-loslibext.Tpo -c -o luatexdir/lua/liblua53tex_a-loslibext.obj `if test -f 'luatexdir/lua/loslibext.c'; then $(CYGPATH_W) 'luatexdir/lua/loslibext.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/loslibext.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-loslibext.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-loslibext.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/loslibext.c' object='luatexdir/lua/liblua53tex_a-loslibext.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-loslibext.obj `if test -f 'luatexdir/lua/loslibext.c'; then $(CYGPATH_W) 'luatexdir/lua/loslibext.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/loslibext.c'; fi` - -luatexdir/lua/liblua53tex_a-lpdflib.o: luatexdir/lua/lpdflib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-lpdflib.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-lpdflib.Tpo -c -o luatexdir/lua/liblua53tex_a-lpdflib.o `test -f 'luatexdir/lua/lpdflib.c' || echo '$(srcdir)/'`luatexdir/lua/lpdflib.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-lpdflib.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-lpdflib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/lpdflib.c' object='luatexdir/lua/liblua53tex_a-lpdflib.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-lpdflib.o `test -f 'luatexdir/lua/lpdflib.c' || echo '$(srcdir)/'`luatexdir/lua/lpdflib.c - -luatexdir/lua/liblua53tex_a-lpdflib.obj: luatexdir/lua/lpdflib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-lpdflib.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-lpdflib.Tpo -c -o luatexdir/lua/liblua53tex_a-lpdflib.obj `if test -f 'luatexdir/lua/lpdflib.c'; then $(CYGPATH_W) 'luatexdir/lua/lpdflib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/lpdflib.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-lpdflib.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-lpdflib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/lpdflib.c' object='luatexdir/lua/liblua53tex_a-lpdflib.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-lpdflib.obj `if test -f 'luatexdir/lua/lpdflib.c'; then $(CYGPATH_W) 'luatexdir/lua/lpdflib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/lpdflib.c'; fi` - -luatexdir/lua/liblua53tex_a-lstatslib.o: luatexdir/lua/lstatslib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-lstatslib.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-lstatslib.Tpo -c -o luatexdir/lua/liblua53tex_a-lstatslib.o `test -f 'luatexdir/lua/lstatslib.c' || echo '$(srcdir)/'`luatexdir/lua/lstatslib.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-lstatslib.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-lstatslib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/lstatslib.c' object='luatexdir/lua/liblua53tex_a-lstatslib.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-lstatslib.o `test -f 'luatexdir/lua/lstatslib.c' || echo '$(srcdir)/'`luatexdir/lua/lstatslib.c - -luatexdir/lua/liblua53tex_a-lstatslib.obj: luatexdir/lua/lstatslib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-lstatslib.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-lstatslib.Tpo -c -o luatexdir/lua/liblua53tex_a-lstatslib.obj `if test -f 'luatexdir/lua/lstatslib.c'; then $(CYGPATH_W) 'luatexdir/lua/lstatslib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/lstatslib.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-lstatslib.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-lstatslib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/lstatslib.c' object='luatexdir/lua/liblua53tex_a-lstatslib.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-lstatslib.obj `if test -f 'luatexdir/lua/lstatslib.c'; then $(CYGPATH_W) 'luatexdir/lua/lstatslib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/lstatslib.c'; fi` - -luatexdir/lua/liblua53tex_a-ltexiolib.o: luatexdir/lua/ltexiolib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-ltexiolib.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-ltexiolib.Tpo -c -o luatexdir/lua/liblua53tex_a-ltexiolib.o `test -f 'luatexdir/lua/ltexiolib.c' || echo '$(srcdir)/'`luatexdir/lua/ltexiolib.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-ltexiolib.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-ltexiolib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/ltexiolib.c' object='luatexdir/lua/liblua53tex_a-ltexiolib.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-ltexiolib.o `test -f 'luatexdir/lua/ltexiolib.c' || echo '$(srcdir)/'`luatexdir/lua/ltexiolib.c - -luatexdir/lua/liblua53tex_a-ltexiolib.obj: luatexdir/lua/ltexiolib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-ltexiolib.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-ltexiolib.Tpo -c -o luatexdir/lua/liblua53tex_a-ltexiolib.obj `if test -f 'luatexdir/lua/ltexiolib.c'; then $(CYGPATH_W) 'luatexdir/lua/ltexiolib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/ltexiolib.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-ltexiolib.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-ltexiolib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/ltexiolib.c' object='luatexdir/lua/liblua53tex_a-ltexiolib.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-ltexiolib.obj `if test -f 'luatexdir/lua/ltexiolib.c'; then $(CYGPATH_W) 'luatexdir/lua/ltexiolib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/ltexiolib.c'; fi` - -luatexdir/lua/liblua53tex_a-ltexlib.o: luatexdir/lua/ltexlib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-ltexlib.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-ltexlib.Tpo -c -o luatexdir/lua/liblua53tex_a-ltexlib.o `test -f 'luatexdir/lua/ltexlib.c' || echo '$(srcdir)/'`luatexdir/lua/ltexlib.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-ltexlib.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-ltexlib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/ltexlib.c' object='luatexdir/lua/liblua53tex_a-ltexlib.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-ltexlib.o `test -f 'luatexdir/lua/ltexlib.c' || echo '$(srcdir)/'`luatexdir/lua/ltexlib.c - -luatexdir/lua/liblua53tex_a-ltexlib.obj: luatexdir/lua/ltexlib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-ltexlib.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-ltexlib.Tpo -c -o luatexdir/lua/liblua53tex_a-ltexlib.obj `if test -f 'luatexdir/lua/ltexlib.c'; then $(CYGPATH_W) 'luatexdir/lua/ltexlib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/ltexlib.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-ltexlib.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-ltexlib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/ltexlib.c' object='luatexdir/lua/liblua53tex_a-ltexlib.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-ltexlib.obj `if test -f 'luatexdir/lua/ltexlib.c'; then $(CYGPATH_W) 'luatexdir/lua/ltexlib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/ltexlib.c'; fi` - -luatexdir/lua/liblua53tex_a-lnewtokenlib.o: luatexdir/lua/lnewtokenlib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-lnewtokenlib.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-lnewtokenlib.Tpo -c -o luatexdir/lua/liblua53tex_a-lnewtokenlib.o `test -f 'luatexdir/lua/lnewtokenlib.c' || echo '$(srcdir)/'`luatexdir/lua/lnewtokenlib.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-lnewtokenlib.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-lnewtokenlib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/lnewtokenlib.c' object='luatexdir/lua/liblua53tex_a-lnewtokenlib.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-lnewtokenlib.o `test -f 'luatexdir/lua/lnewtokenlib.c' || echo '$(srcdir)/'`luatexdir/lua/lnewtokenlib.c - -luatexdir/lua/liblua53tex_a-lnewtokenlib.obj: luatexdir/lua/lnewtokenlib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-lnewtokenlib.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-lnewtokenlib.Tpo -c -o luatexdir/lua/liblua53tex_a-lnewtokenlib.obj `if test -f 'luatexdir/lua/lnewtokenlib.c'; then $(CYGPATH_W) 'luatexdir/lua/lnewtokenlib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/lnewtokenlib.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-lnewtokenlib.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-lnewtokenlib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/lnewtokenlib.c' object='luatexdir/lua/liblua53tex_a-lnewtokenlib.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-lnewtokenlib.obj `if test -f 'luatexdir/lua/lnewtokenlib.c'; then $(CYGPATH_W) 'luatexdir/lua/lnewtokenlib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/lnewtokenlib.c'; fi` - -luatexdir/lua/liblua53tex_a-luatex-core.o: luatexdir/lua/luatex-core.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-luatex-core.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-luatex-core.Tpo -c -o luatexdir/lua/liblua53tex_a-luatex-core.o `test -f 'luatexdir/lua/luatex-core.c' || echo '$(srcdir)/'`luatexdir/lua/luatex-core.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-luatex-core.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-luatex-core.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/luatex-core.c' object='luatexdir/lua/liblua53tex_a-luatex-core.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-luatex-core.o `test -f 'luatexdir/lua/luatex-core.c' || echo '$(srcdir)/'`luatexdir/lua/luatex-core.c - -luatexdir/lua/liblua53tex_a-luatex-core.obj: luatexdir/lua/luatex-core.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-luatex-core.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-luatex-core.Tpo -c -o luatexdir/lua/liblua53tex_a-luatex-core.obj `if test -f 'luatexdir/lua/luatex-core.c'; then $(CYGPATH_W) 'luatexdir/lua/luatex-core.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/luatex-core.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-luatex-core.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-luatex-core.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/luatex-core.c' object='luatexdir/lua/liblua53tex_a-luatex-core.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-luatex-core.obj `if test -f 'luatexdir/lua/luatex-core.c'; then $(CYGPATH_W) 'luatexdir/lua/luatex-core.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/luatex-core.c'; fi` - -luatexdir/lua/liblua53tex_a-luainit.o: luatexdir/lua/luainit.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-luainit.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-luainit.Tpo -c -o luatexdir/lua/liblua53tex_a-luainit.o `test -f 'luatexdir/lua/luainit.c' || echo '$(srcdir)/'`luatexdir/lua/luainit.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-luainit.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-luainit.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/luainit.c' object='luatexdir/lua/liblua53tex_a-luainit.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-luainit.o `test -f 'luatexdir/lua/luainit.c' || echo '$(srcdir)/'`luatexdir/lua/luainit.c - -luatexdir/lua/liblua53tex_a-luainit.obj: luatexdir/lua/luainit.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-luainit.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-luainit.Tpo -c -o luatexdir/lua/liblua53tex_a-luainit.obj `if test -f 'luatexdir/lua/luainit.c'; then $(CYGPATH_W) 'luatexdir/lua/luainit.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/luainit.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-luainit.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-luainit.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/luainit.c' object='luatexdir/lua/liblua53tex_a-luainit.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-luainit.obj `if test -f 'luatexdir/lua/luainit.c'; then $(CYGPATH_W) 'luatexdir/lua/luainit.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/luainit.c'; fi` - -luatexdir/lua/liblua53tex_a-luanode.o: luatexdir/lua/luanode.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-luanode.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-luanode.Tpo -c -o luatexdir/lua/liblua53tex_a-luanode.o `test -f 'luatexdir/lua/luanode.c' || echo '$(srcdir)/'`luatexdir/lua/luanode.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-luanode.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-luanode.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/luanode.c' object='luatexdir/lua/liblua53tex_a-luanode.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-luanode.o `test -f 'luatexdir/lua/luanode.c' || echo '$(srcdir)/'`luatexdir/lua/luanode.c - -luatexdir/lua/liblua53tex_a-luanode.obj: luatexdir/lua/luanode.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-luanode.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-luanode.Tpo -c -o luatexdir/lua/liblua53tex_a-luanode.obj `if test -f 'luatexdir/lua/luanode.c'; then $(CYGPATH_W) 'luatexdir/lua/luanode.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/luanode.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-luanode.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-luanode.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/luanode.c' object='luatexdir/lua/liblua53tex_a-luanode.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-luanode.obj `if test -f 'luatexdir/lua/luanode.c'; then $(CYGPATH_W) 'luatexdir/lua/luanode.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/luanode.c'; fi` - -luatexdir/lua/liblua53tex_a-luastuff.o: luatexdir/lua/luastuff.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-luastuff.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-luastuff.Tpo -c -o luatexdir/lua/liblua53tex_a-luastuff.o `test -f 'luatexdir/lua/luastuff.c' || echo '$(srcdir)/'`luatexdir/lua/luastuff.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-luastuff.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-luastuff.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/luastuff.c' object='luatexdir/lua/liblua53tex_a-luastuff.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-luastuff.o `test -f 'luatexdir/lua/luastuff.c' || echo '$(srcdir)/'`luatexdir/lua/luastuff.c - -luatexdir/lua/liblua53tex_a-luastuff.obj: luatexdir/lua/luastuff.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-luastuff.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-luastuff.Tpo -c -o luatexdir/lua/liblua53tex_a-luastuff.obj `if test -f 'luatexdir/lua/luastuff.c'; then $(CYGPATH_W) 'luatexdir/lua/luastuff.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/luastuff.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-luastuff.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-luastuff.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/luastuff.c' object='luatexdir/lua/liblua53tex_a-luastuff.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-luastuff.obj `if test -f 'luatexdir/lua/luastuff.c'; then $(CYGPATH_W) 'luatexdir/lua/luastuff.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/luastuff.c'; fi` - -luatexdir/lua/liblua53tex_a-luatoken.o: luatexdir/lua/luatoken.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-luatoken.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-luatoken.Tpo -c -o luatexdir/lua/liblua53tex_a-luatoken.o `test -f 'luatexdir/lua/luatoken.c' || echo '$(srcdir)/'`luatexdir/lua/luatoken.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-luatoken.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-luatoken.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/luatoken.c' object='luatexdir/lua/liblua53tex_a-luatoken.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-luatoken.o `test -f 'luatexdir/lua/luatoken.c' || echo '$(srcdir)/'`luatexdir/lua/luatoken.c - -luatexdir/lua/liblua53tex_a-luatoken.obj: luatexdir/lua/luatoken.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-luatoken.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-luatoken.Tpo -c -o luatexdir/lua/liblua53tex_a-luatoken.obj `if test -f 'luatexdir/lua/luatoken.c'; then $(CYGPATH_W) 'luatexdir/lua/luatoken.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/luatoken.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-luatoken.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-luatoken.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/luatoken.c' object='luatexdir/lua/liblua53tex_a-luatoken.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-luatoken.obj `if test -f 'luatexdir/lua/luatoken.c'; then $(CYGPATH_W) 'luatexdir/lua/luatoken.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/luatoken.c'; fi` - -luatexdir/lua/liblua53tex_a-mplibstuff.o: luatexdir/lua/mplibstuff.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-mplibstuff.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-mplibstuff.Tpo -c -o luatexdir/lua/liblua53tex_a-mplibstuff.o `test -f 'luatexdir/lua/mplibstuff.c' || echo '$(srcdir)/'`luatexdir/lua/mplibstuff.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-mplibstuff.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-mplibstuff.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/mplibstuff.c' object='luatexdir/lua/liblua53tex_a-mplibstuff.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-mplibstuff.o `test -f 'luatexdir/lua/mplibstuff.c' || echo '$(srcdir)/'`luatexdir/lua/mplibstuff.c - -luatexdir/lua/liblua53tex_a-mplibstuff.obj: luatexdir/lua/mplibstuff.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/liblua53tex_a-mplibstuff.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/liblua53tex_a-mplibstuff.Tpo -c -o luatexdir/lua/liblua53tex_a-mplibstuff.obj `if test -f 'luatexdir/lua/mplibstuff.c'; then $(CYGPATH_W) 'luatexdir/lua/mplibstuff.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/mplibstuff.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/liblua53tex_a-mplibstuff.Tpo luatexdir/lua/$(DEPDIR)/liblua53tex_a-mplibstuff.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/mplibstuff.c' object='luatexdir/lua/liblua53tex_a-mplibstuff.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/liblua53tex_a-mplibstuff.obj `if test -f 'luatexdir/lua/mplibstuff.c'; then $(CYGPATH_W) 'luatexdir/lua/mplibstuff.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/mplibstuff.c'; fi` - -luatexdir/pdf/liblua53tex_a-pdfaction.o: luatexdir/pdf/pdfaction.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfaction.o -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfaction.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfaction.o `test -f 'luatexdir/pdf/pdfaction.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfaction.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfaction.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfaction.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfaction.c' object='luatexdir/pdf/liblua53tex_a-pdfaction.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfaction.o `test -f 'luatexdir/pdf/pdfaction.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfaction.c - -luatexdir/pdf/liblua53tex_a-pdfaction.obj: luatexdir/pdf/pdfaction.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfaction.obj -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfaction.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfaction.obj `if test -f 'luatexdir/pdf/pdfaction.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfaction.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfaction.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfaction.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfaction.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfaction.c' object='luatexdir/pdf/liblua53tex_a-pdfaction.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfaction.obj `if test -f 'luatexdir/pdf/pdfaction.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfaction.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfaction.c'; fi` - -luatexdir/pdf/liblua53tex_a-pdfannot.o: luatexdir/pdf/pdfannot.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfannot.o -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfannot.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfannot.o `test -f 'luatexdir/pdf/pdfannot.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfannot.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfannot.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfannot.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfannot.c' object='luatexdir/pdf/liblua53tex_a-pdfannot.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfannot.o `test -f 'luatexdir/pdf/pdfannot.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfannot.c - -luatexdir/pdf/liblua53tex_a-pdfannot.obj: luatexdir/pdf/pdfannot.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfannot.obj -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfannot.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfannot.obj `if test -f 'luatexdir/pdf/pdfannot.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfannot.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfannot.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfannot.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfannot.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfannot.c' object='luatexdir/pdf/liblua53tex_a-pdfannot.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfannot.obj `if test -f 'luatexdir/pdf/pdfannot.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfannot.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfannot.c'; fi` - -luatexdir/pdf/liblua53tex_a-pdfcolorstack.o: luatexdir/pdf/pdfcolorstack.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfcolorstack.o -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfcolorstack.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfcolorstack.o `test -f 'luatexdir/pdf/pdfcolorstack.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfcolorstack.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfcolorstack.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfcolorstack.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfcolorstack.c' object='luatexdir/pdf/liblua53tex_a-pdfcolorstack.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfcolorstack.o `test -f 'luatexdir/pdf/pdfcolorstack.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfcolorstack.c - -luatexdir/pdf/liblua53tex_a-pdfcolorstack.obj: luatexdir/pdf/pdfcolorstack.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfcolorstack.obj -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfcolorstack.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfcolorstack.obj `if test -f 'luatexdir/pdf/pdfcolorstack.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfcolorstack.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfcolorstack.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfcolorstack.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfcolorstack.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfcolorstack.c' object='luatexdir/pdf/liblua53tex_a-pdfcolorstack.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfcolorstack.obj `if test -f 'luatexdir/pdf/pdfcolorstack.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfcolorstack.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfcolorstack.c'; fi` - -luatexdir/pdf/liblua53tex_a-pdfdest.o: luatexdir/pdf/pdfdest.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfdest.o -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfdest.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfdest.o `test -f 'luatexdir/pdf/pdfdest.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfdest.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfdest.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfdest.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfdest.c' object='luatexdir/pdf/liblua53tex_a-pdfdest.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfdest.o `test -f 'luatexdir/pdf/pdfdest.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfdest.c - -luatexdir/pdf/liblua53tex_a-pdfdest.obj: luatexdir/pdf/pdfdest.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfdest.obj -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfdest.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfdest.obj `if test -f 'luatexdir/pdf/pdfdest.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfdest.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfdest.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfdest.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfdest.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfdest.c' object='luatexdir/pdf/liblua53tex_a-pdfdest.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfdest.obj `if test -f 'luatexdir/pdf/pdfdest.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfdest.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfdest.c'; fi` - -luatexdir/pdf/liblua53tex_a-pdffont.o: luatexdir/pdf/pdffont.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdffont.o -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdffont.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdffont.o `test -f 'luatexdir/pdf/pdffont.c' || echo '$(srcdir)/'`luatexdir/pdf/pdffont.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdffont.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdffont.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdffont.c' object='luatexdir/pdf/liblua53tex_a-pdffont.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdffont.o `test -f 'luatexdir/pdf/pdffont.c' || echo '$(srcdir)/'`luatexdir/pdf/pdffont.c - -luatexdir/pdf/liblua53tex_a-pdffont.obj: luatexdir/pdf/pdffont.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdffont.obj -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdffont.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdffont.obj `if test -f 'luatexdir/pdf/pdffont.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdffont.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdffont.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdffont.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdffont.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdffont.c' object='luatexdir/pdf/liblua53tex_a-pdffont.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdffont.obj `if test -f 'luatexdir/pdf/pdffont.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdffont.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdffont.c'; fi` - -luatexdir/pdf/liblua53tex_a-pdfgen.o: luatexdir/pdf/pdfgen.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfgen.o -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfgen.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfgen.o `test -f 'luatexdir/pdf/pdfgen.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfgen.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfgen.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfgen.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfgen.c' object='luatexdir/pdf/liblua53tex_a-pdfgen.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfgen.o `test -f 'luatexdir/pdf/pdfgen.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfgen.c - -luatexdir/pdf/liblua53tex_a-pdfgen.obj: luatexdir/pdf/pdfgen.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfgen.obj -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfgen.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfgen.obj `if test -f 'luatexdir/pdf/pdfgen.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfgen.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfgen.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfgen.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfgen.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfgen.c' object='luatexdir/pdf/liblua53tex_a-pdfgen.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfgen.obj `if test -f 'luatexdir/pdf/pdfgen.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfgen.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfgen.c'; fi` - -luatexdir/pdf/liblua53tex_a-pdfglyph.o: luatexdir/pdf/pdfglyph.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfglyph.o -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfglyph.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfglyph.o `test -f 'luatexdir/pdf/pdfglyph.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfglyph.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfglyph.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfglyph.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfglyph.c' object='luatexdir/pdf/liblua53tex_a-pdfglyph.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfglyph.o `test -f 'luatexdir/pdf/pdfglyph.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfglyph.c - -luatexdir/pdf/liblua53tex_a-pdfglyph.obj: luatexdir/pdf/pdfglyph.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfglyph.obj -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfglyph.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfglyph.obj `if test -f 'luatexdir/pdf/pdfglyph.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfglyph.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfglyph.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfglyph.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfglyph.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfglyph.c' object='luatexdir/pdf/liblua53tex_a-pdfglyph.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfglyph.obj `if test -f 'luatexdir/pdf/pdfglyph.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfglyph.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfglyph.c'; fi` - -luatexdir/pdf/liblua53tex_a-pdfimage.o: luatexdir/pdf/pdfimage.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfimage.o -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfimage.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfimage.o `test -f 'luatexdir/pdf/pdfimage.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfimage.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfimage.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfimage.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfimage.c' object='luatexdir/pdf/liblua53tex_a-pdfimage.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfimage.o `test -f 'luatexdir/pdf/pdfimage.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfimage.c - -luatexdir/pdf/liblua53tex_a-pdfimage.obj: luatexdir/pdf/pdfimage.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfimage.obj -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfimage.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfimage.obj `if test -f 'luatexdir/pdf/pdfimage.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfimage.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfimage.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfimage.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfimage.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfimage.c' object='luatexdir/pdf/liblua53tex_a-pdfimage.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfimage.obj `if test -f 'luatexdir/pdf/pdfimage.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfimage.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfimage.c'; fi` - -luatexdir/pdf/liblua53tex_a-pdflink.o: luatexdir/pdf/pdflink.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdflink.o -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdflink.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdflink.o `test -f 'luatexdir/pdf/pdflink.c' || echo '$(srcdir)/'`luatexdir/pdf/pdflink.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdflink.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdflink.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdflink.c' object='luatexdir/pdf/liblua53tex_a-pdflink.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdflink.o `test -f 'luatexdir/pdf/pdflink.c' || echo '$(srcdir)/'`luatexdir/pdf/pdflink.c - -luatexdir/pdf/liblua53tex_a-pdflink.obj: luatexdir/pdf/pdflink.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdflink.obj -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdflink.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdflink.obj `if test -f 'luatexdir/pdf/pdflink.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdflink.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdflink.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdflink.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdflink.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdflink.c' object='luatexdir/pdf/liblua53tex_a-pdflink.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdflink.obj `if test -f 'luatexdir/pdf/pdflink.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdflink.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdflink.c'; fi` - -luatexdir/pdf/liblua53tex_a-pdflistout.o: luatexdir/pdf/pdflistout.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdflistout.o -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdflistout.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdflistout.o `test -f 'luatexdir/pdf/pdflistout.c' || echo '$(srcdir)/'`luatexdir/pdf/pdflistout.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdflistout.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdflistout.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdflistout.c' object='luatexdir/pdf/liblua53tex_a-pdflistout.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdflistout.o `test -f 'luatexdir/pdf/pdflistout.c' || echo '$(srcdir)/'`luatexdir/pdf/pdflistout.c - -luatexdir/pdf/liblua53tex_a-pdflistout.obj: luatexdir/pdf/pdflistout.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdflistout.obj -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdflistout.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdflistout.obj `if test -f 'luatexdir/pdf/pdflistout.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdflistout.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdflistout.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdflistout.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdflistout.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdflistout.c' object='luatexdir/pdf/liblua53tex_a-pdflistout.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdflistout.obj `if test -f 'luatexdir/pdf/pdflistout.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdflistout.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdflistout.c'; fi` - -luatexdir/pdf/liblua53tex_a-pdfliteral.o: luatexdir/pdf/pdfliteral.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfliteral.o -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfliteral.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfliteral.o `test -f 'luatexdir/pdf/pdfliteral.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfliteral.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfliteral.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfliteral.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfliteral.c' object='luatexdir/pdf/liblua53tex_a-pdfliteral.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfliteral.o `test -f 'luatexdir/pdf/pdfliteral.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfliteral.c - -luatexdir/pdf/liblua53tex_a-pdfliteral.obj: luatexdir/pdf/pdfliteral.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfliteral.obj -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfliteral.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfliteral.obj `if test -f 'luatexdir/pdf/pdfliteral.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfliteral.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfliteral.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfliteral.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfliteral.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfliteral.c' object='luatexdir/pdf/liblua53tex_a-pdfliteral.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfliteral.obj `if test -f 'luatexdir/pdf/pdfliteral.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfliteral.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfliteral.c'; fi` - -luatexdir/pdf/liblua53tex_a-pdfobj.o: luatexdir/pdf/pdfobj.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfobj.o -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfobj.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfobj.o `test -f 'luatexdir/pdf/pdfobj.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfobj.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfobj.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfobj.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfobj.c' object='luatexdir/pdf/liblua53tex_a-pdfobj.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfobj.o `test -f 'luatexdir/pdf/pdfobj.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfobj.c - -luatexdir/pdf/liblua53tex_a-pdfobj.obj: luatexdir/pdf/pdfobj.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfobj.obj -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfobj.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfobj.obj `if test -f 'luatexdir/pdf/pdfobj.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfobj.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfobj.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfobj.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfobj.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfobj.c' object='luatexdir/pdf/liblua53tex_a-pdfobj.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfobj.obj `if test -f 'luatexdir/pdf/pdfobj.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfobj.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfobj.c'; fi` - -luatexdir/pdf/liblua53tex_a-pdfoutline.o: luatexdir/pdf/pdfoutline.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfoutline.o -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfoutline.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfoutline.o `test -f 'luatexdir/pdf/pdfoutline.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfoutline.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfoutline.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfoutline.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfoutline.c' object='luatexdir/pdf/liblua53tex_a-pdfoutline.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfoutline.o `test -f 'luatexdir/pdf/pdfoutline.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfoutline.c - -luatexdir/pdf/liblua53tex_a-pdfoutline.obj: luatexdir/pdf/pdfoutline.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfoutline.obj -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfoutline.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfoutline.obj `if test -f 'luatexdir/pdf/pdfoutline.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfoutline.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfoutline.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfoutline.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfoutline.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfoutline.c' object='luatexdir/pdf/liblua53tex_a-pdfoutline.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfoutline.obj `if test -f 'luatexdir/pdf/pdfoutline.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfoutline.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfoutline.c'; fi` - -luatexdir/pdf/liblua53tex_a-pdfpage.o: luatexdir/pdf/pdfpage.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfpage.o -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfpage.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfpage.o `test -f 'luatexdir/pdf/pdfpage.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfpage.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfpage.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfpage.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfpage.c' object='luatexdir/pdf/liblua53tex_a-pdfpage.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfpage.o `test -f 'luatexdir/pdf/pdfpage.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfpage.c - -luatexdir/pdf/liblua53tex_a-pdfpage.obj: luatexdir/pdf/pdfpage.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfpage.obj -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfpage.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfpage.obj `if test -f 'luatexdir/pdf/pdfpage.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfpage.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfpage.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfpage.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfpage.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfpage.c' object='luatexdir/pdf/liblua53tex_a-pdfpage.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfpage.obj `if test -f 'luatexdir/pdf/pdfpage.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfpage.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfpage.c'; fi` - -luatexdir/pdf/liblua53tex_a-pdfpagetree.o: luatexdir/pdf/pdfpagetree.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfpagetree.o -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfpagetree.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfpagetree.o `test -f 'luatexdir/pdf/pdfpagetree.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfpagetree.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfpagetree.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfpagetree.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfpagetree.c' object='luatexdir/pdf/liblua53tex_a-pdfpagetree.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfpagetree.o `test -f 'luatexdir/pdf/pdfpagetree.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfpagetree.c - -luatexdir/pdf/liblua53tex_a-pdfpagetree.obj: luatexdir/pdf/pdfpagetree.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfpagetree.obj -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfpagetree.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfpagetree.obj `if test -f 'luatexdir/pdf/pdfpagetree.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfpagetree.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfpagetree.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfpagetree.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfpagetree.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfpagetree.c' object='luatexdir/pdf/liblua53tex_a-pdfpagetree.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfpagetree.obj `if test -f 'luatexdir/pdf/pdfpagetree.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfpagetree.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfpagetree.c'; fi` - -luatexdir/pdf/liblua53tex_a-pdfrule.o: luatexdir/pdf/pdfrule.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfrule.o -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfrule.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfrule.o `test -f 'luatexdir/pdf/pdfrule.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfrule.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfrule.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfrule.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfrule.c' object='luatexdir/pdf/liblua53tex_a-pdfrule.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfrule.o `test -f 'luatexdir/pdf/pdfrule.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfrule.c +@AMDEP_TRUE@@am__include@ @am__quote@uptexdir/$(DEPDIR)/libukanji_a-kanji_dump.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@uptexdir/$(DEPDIR)/uptex-uptexextra.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/$(DEPDIR)/libxetex_a-XeTeXFontInst.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/$(DEPDIR)/libxetex_a-XeTeXFontInst_Mac.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/$(DEPDIR)/libxetex_a-XeTeXFontMgr.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/$(DEPDIR)/libxetex_a-XeTeXFontMgr_FC.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/$(DEPDIR)/libxetex_a-XeTeXFontMgr_Mac.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/$(DEPDIR)/libxetex_a-XeTeXLayoutInterface.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/$(DEPDIR)/libxetex_a-XeTeXOTMath.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/$(DEPDIR)/libxetex_a-XeTeX_ext.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/$(DEPDIR)/libxetex_a-XeTeX_mac.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/$(DEPDIR)/libxetex_a-XeTeX_pic.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/$(DEPDIR)/libxetex_a-hz.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/$(DEPDIR)/libxetex_a-pdfimage.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/$(DEPDIR)/libxetex_a-trans.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/$(DEPDIR)/xetex-xetexextra.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/image/$(DEPDIR)/libxetex_a-bmpimage.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/image/$(DEPDIR)/libxetex_a-jpegimage.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/image/$(DEPDIR)/libxetex_a-mfileio.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/image/$(DEPDIR)/libxetex_a-numbers.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@xetexdir/image/$(DEPDIR)/libxetex_a-pngimage.Po@am__quote@ # am--include-marker -luatexdir/pdf/liblua53tex_a-pdfrule.obj: luatexdir/pdf/pdfrule.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfrule.obj -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfrule.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfrule.obj `if test -f 'luatexdir/pdf/pdfrule.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfrule.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfrule.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfrule.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfrule.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfrule.c' object='luatexdir/pdf/liblua53tex_a-pdfrule.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfrule.obj `if test -f 'luatexdir/pdf/pdfrule.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfrule.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfrule.c'; fi` +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ -luatexdir/pdf/liblua53tex_a-pdfsaverestore.o: luatexdir/pdf/pdfsaverestore.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfsaverestore.o -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfsaverestore.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfsaverestore.o `test -f 'luatexdir/pdf/pdfsaverestore.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfsaverestore.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfsaverestore.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfsaverestore.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfsaverestore.c' object='luatexdir/pdf/liblua53tex_a-pdfsaverestore.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfsaverestore.o `test -f 'luatexdir/pdf/pdfsaverestore.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfsaverestore.c +am--depfiles: $(am__depfiles_remade) -luatexdir/pdf/liblua53tex_a-pdfsaverestore.obj: luatexdir/pdf/pdfsaverestore.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfsaverestore.obj -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfsaverestore.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfsaverestore.obj `if test -f 'luatexdir/pdf/pdfsaverestore.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfsaverestore.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfsaverestore.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfsaverestore.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfsaverestore.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfsaverestore.c' object='luatexdir/pdf/liblua53tex_a-pdfsaverestore.obj' libtool=no @AMDEPBACKSLASH@ +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.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@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfsaverestore.obj `if test -f 'luatexdir/pdf/pdfsaverestore.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfsaverestore.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfsaverestore.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< -luatexdir/pdf/liblua53tex_a-pdfsetmatrix.o: luatexdir/pdf/pdfsetmatrix.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfsetmatrix.o -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfsetmatrix.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfsetmatrix.o `test -f 'luatexdir/pdf/pdfsetmatrix.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfsetmatrix.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfsetmatrix.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfsetmatrix.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfsetmatrix.c' object='luatexdir/pdf/liblua53tex_a-pdfsetmatrix.o' libtool=no @AMDEPBACKSLASH@ +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.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@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfsetmatrix.o `test -f 'luatexdir/pdf/pdfsetmatrix.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfsetmatrix.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` -luatexdir/pdf/liblua53tex_a-pdfsetmatrix.obj: luatexdir/pdf/pdfsetmatrix.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfsetmatrix.obj -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfsetmatrix.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfsetmatrix.obj `if test -f 'luatexdir/pdf/pdfsetmatrix.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfsetmatrix.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfsetmatrix.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfsetmatrix.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfsetmatrix.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfsetmatrix.c' object='luatexdir/pdf/liblua53tex_a-pdfsetmatrix.obj' libtool=no @AMDEPBACKSLASH@ +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfsetmatrix.obj `if test -f 'luatexdir/pdf/pdfsetmatrix.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfsetmatrix.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfsetmatrix.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< -luatexdir/pdf/liblua53tex_a-pdfshipout.o: luatexdir/pdf/pdfshipout.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfshipout.o -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfshipout.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfshipout.o `test -f 'luatexdir/pdf/pdfshipout.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfshipout.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfshipout.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfshipout.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfshipout.c' object='luatexdir/pdf/liblua53tex_a-pdfshipout.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-autohint.o: luatexdir/luafontloader/fontforge/fontforge/autohint.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-autohint.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-autohint.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-autohint.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/autohint.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/autohint.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-autohint.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-autohint.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/autohint.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-autohint.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfshipout.o `test -f 'luatexdir/pdf/pdfshipout.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfshipout.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-autohint.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/autohint.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/autohint.c -luatexdir/pdf/liblua53tex_a-pdfshipout.obj: luatexdir/pdf/pdfshipout.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfshipout.obj -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfshipout.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfshipout.obj `if test -f 'luatexdir/pdf/pdfshipout.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfshipout.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfshipout.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfshipout.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfshipout.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfshipout.c' object='luatexdir/pdf/liblua53tex_a-pdfshipout.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-autohint.obj: luatexdir/luafontloader/fontforge/fontforge/autohint.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-autohint.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-autohint.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-autohint.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/autohint.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/autohint.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/autohint.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-autohint.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-autohint.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/autohint.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-autohint.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfshipout.obj `if test -f 'luatexdir/pdf/pdfshipout.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfshipout.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfshipout.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-autohint.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/autohint.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/autohint.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/autohint.c'; fi` -luatexdir/pdf/liblua53tex_a-pdftables.o: luatexdir/pdf/pdftables.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdftables.o -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdftables.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdftables.o `test -f 'luatexdir/pdf/pdftables.c' || echo '$(srcdir)/'`luatexdir/pdf/pdftables.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdftables.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdftables.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdftables.c' object='luatexdir/pdf/liblua53tex_a-pdftables.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-clipnoui.o: luatexdir/luafontloader/fontforge/fontforge/clipnoui.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-clipnoui.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-clipnoui.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-clipnoui.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/clipnoui.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/clipnoui.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-clipnoui.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-clipnoui.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/clipnoui.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-clipnoui.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdftables.o `test -f 'luatexdir/pdf/pdftables.c' || echo '$(srcdir)/'`luatexdir/pdf/pdftables.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-clipnoui.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/clipnoui.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/clipnoui.c -luatexdir/pdf/liblua53tex_a-pdftables.obj: luatexdir/pdf/pdftables.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdftables.obj -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdftables.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdftables.obj `if test -f 'luatexdir/pdf/pdftables.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdftables.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdftables.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdftables.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdftables.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdftables.c' object='luatexdir/pdf/liblua53tex_a-pdftables.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-clipnoui.obj: luatexdir/luafontloader/fontforge/fontforge/clipnoui.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-clipnoui.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-clipnoui.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-clipnoui.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/clipnoui.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/clipnoui.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/clipnoui.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-clipnoui.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-clipnoui.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/clipnoui.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-clipnoui.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdftables.obj `if test -f 'luatexdir/pdf/pdftables.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdftables.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdftables.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-clipnoui.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/clipnoui.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/clipnoui.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/clipnoui.c'; fi` -luatexdir/pdf/liblua53tex_a-pdfthread.o: luatexdir/pdf/pdfthread.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfthread.o -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfthread.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfthread.o `test -f 'luatexdir/pdf/pdfthread.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfthread.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfthread.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfthread.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfthread.c' object='luatexdir/pdf/liblua53tex_a-pdfthread.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-cvundoes.o: luatexdir/luafontloader/fontforge/fontforge/cvundoes.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-cvundoes.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-cvundoes.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-cvundoes.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/cvundoes.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/cvundoes.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-cvundoes.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-cvundoes.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/cvundoes.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-cvundoes.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfthread.o `test -f 'luatexdir/pdf/pdfthread.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfthread.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-cvundoes.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/cvundoes.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/cvundoes.c -luatexdir/pdf/liblua53tex_a-pdfthread.obj: luatexdir/pdf/pdfthread.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfthread.obj -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfthread.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfthread.obj `if test -f 'luatexdir/pdf/pdfthread.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfthread.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfthread.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfthread.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfthread.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfthread.c' object='luatexdir/pdf/liblua53tex_a-pdfthread.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-cvundoes.obj: luatexdir/luafontloader/fontforge/fontforge/cvundoes.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-cvundoes.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-cvundoes.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-cvundoes.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/cvundoes.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/cvundoes.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/cvundoes.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-cvundoes.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-cvundoes.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/cvundoes.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-cvundoes.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfthread.obj `if test -f 'luatexdir/pdf/pdfthread.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfthread.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfthread.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-cvundoes.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/cvundoes.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/cvundoes.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/cvundoes.c'; fi` -luatexdir/pdf/liblua53tex_a-pdfxform.o: luatexdir/pdf/pdfxform.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfxform.o -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfxform.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfxform.o `test -f 'luatexdir/pdf/pdfxform.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfxform.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfxform.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfxform.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfxform.c' object='luatexdir/pdf/liblua53tex_a-pdfxform.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-dumppfa.o: luatexdir/luafontloader/fontforge/fontforge/dumppfa.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-dumppfa.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-dumppfa.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-dumppfa.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/dumppfa.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/dumppfa.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-dumppfa.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-dumppfa.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/dumppfa.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-dumppfa.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfxform.o `test -f 'luatexdir/pdf/pdfxform.c' || echo '$(srcdir)/'`luatexdir/pdf/pdfxform.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-dumppfa.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/dumppfa.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/dumppfa.c -luatexdir/pdf/liblua53tex_a-pdfxform.obj: luatexdir/pdf/pdfxform.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/pdf/liblua53tex_a-pdfxform.obj -MD -MP -MF luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfxform.Tpo -c -o luatexdir/pdf/liblua53tex_a-pdfxform.obj `if test -f 'luatexdir/pdf/pdfxform.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfxform.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfxform.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfxform.Tpo luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfxform.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/pdf/pdfxform.c' object='luatexdir/pdf/liblua53tex_a-pdfxform.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-dumppfa.obj: luatexdir/luafontloader/fontforge/fontforge/dumppfa.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-dumppfa.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-dumppfa.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-dumppfa.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/dumppfa.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/dumppfa.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/dumppfa.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-dumppfa.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-dumppfa.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/dumppfa.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-dumppfa.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/pdf/liblua53tex_a-pdfxform.obj `if test -f 'luatexdir/pdf/pdfxform.c'; then $(CYGPATH_W) 'luatexdir/pdf/pdfxform.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/pdf/pdfxform.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-dumppfa.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/dumppfa.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/dumppfa.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/dumppfa.c'; fi` -luatexdir/tex/liblua53tex_a-backend.o: luatexdir/tex/backend.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-backend.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-backend.Tpo -c -o luatexdir/tex/liblua53tex_a-backend.o `test -f 'luatexdir/tex/backend.c' || echo '$(srcdir)/'`luatexdir/tex/backend.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-backend.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-backend.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/backend.c' object='luatexdir/tex/liblua53tex_a-backend.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-encoding.o: luatexdir/luafontloader/fontforge/fontforge/encoding.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-encoding.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-encoding.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-encoding.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/encoding.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/encoding.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-encoding.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-encoding.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/encoding.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-encoding.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-backend.o `test -f 'luatexdir/tex/backend.c' || echo '$(srcdir)/'`luatexdir/tex/backend.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-encoding.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/encoding.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/encoding.c -luatexdir/tex/liblua53tex_a-backend.obj: luatexdir/tex/backend.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-backend.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-backend.Tpo -c -o luatexdir/tex/liblua53tex_a-backend.obj `if test -f 'luatexdir/tex/backend.c'; then $(CYGPATH_W) 'luatexdir/tex/backend.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/backend.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-backend.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-backend.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/backend.c' object='luatexdir/tex/liblua53tex_a-backend.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-encoding.obj: luatexdir/luafontloader/fontforge/fontforge/encoding.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-encoding.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-encoding.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-encoding.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/encoding.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/encoding.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/encoding.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-encoding.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-encoding.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/encoding.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-encoding.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-backend.obj `if test -f 'luatexdir/tex/backend.c'; then $(CYGPATH_W) 'luatexdir/tex/backend.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/backend.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-encoding.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/encoding.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/encoding.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/encoding.c'; fi` -luatexdir/tex/liblua53tex_a-align.o: luatexdir/tex/align.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-align.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-align.Tpo -c -o luatexdir/tex/liblua53tex_a-align.o `test -f 'luatexdir/tex/align.c' || echo '$(srcdir)/'`luatexdir/tex/align.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-align.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-align.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/align.c' object='luatexdir/tex/liblua53tex_a-align.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-featurefile.o: luatexdir/luafontloader/fontforge/fontforge/featurefile.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-featurefile.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-featurefile.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-featurefile.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/featurefile.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/featurefile.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-featurefile.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-featurefile.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/featurefile.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-featurefile.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-align.o `test -f 'luatexdir/tex/align.c' || echo '$(srcdir)/'`luatexdir/tex/align.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-featurefile.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/featurefile.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/featurefile.c -luatexdir/tex/liblua53tex_a-align.obj: luatexdir/tex/align.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-align.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-align.Tpo -c -o luatexdir/tex/liblua53tex_a-align.obj `if test -f 'luatexdir/tex/align.c'; then $(CYGPATH_W) 'luatexdir/tex/align.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/align.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-align.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-align.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/align.c' object='luatexdir/tex/liblua53tex_a-align.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-featurefile.obj: luatexdir/luafontloader/fontforge/fontforge/featurefile.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-featurefile.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-featurefile.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-featurefile.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/featurefile.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/featurefile.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/featurefile.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-featurefile.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-featurefile.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/featurefile.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-featurefile.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-align.obj `if test -f 'luatexdir/tex/align.c'; then $(CYGPATH_W) 'luatexdir/tex/align.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/align.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-featurefile.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/featurefile.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/featurefile.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/featurefile.c'; fi` -luatexdir/tex/liblua53tex_a-arithmetic.o: luatexdir/tex/arithmetic.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-arithmetic.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-arithmetic.Tpo -c -o luatexdir/tex/liblua53tex_a-arithmetic.o `test -f 'luatexdir/tex/arithmetic.c' || echo '$(srcdir)/'`luatexdir/tex/arithmetic.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-arithmetic.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-arithmetic.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/arithmetic.c' object='luatexdir/tex/liblua53tex_a-arithmetic.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-fontviewbase.o: luatexdir/luafontloader/fontforge/fontforge/fontviewbase.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-fontviewbase.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fontviewbase.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-fontviewbase.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/fontviewbase.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/fontviewbase.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fontviewbase.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fontviewbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/fontviewbase.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-fontviewbase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-arithmetic.o `test -f 'luatexdir/tex/arithmetic.c' || echo '$(srcdir)/'`luatexdir/tex/arithmetic.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-fontviewbase.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/fontviewbase.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/fontviewbase.c -luatexdir/tex/liblua53tex_a-arithmetic.obj: luatexdir/tex/arithmetic.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-arithmetic.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-arithmetic.Tpo -c -o luatexdir/tex/liblua53tex_a-arithmetic.obj `if test -f 'luatexdir/tex/arithmetic.c'; then $(CYGPATH_W) 'luatexdir/tex/arithmetic.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/arithmetic.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-arithmetic.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-arithmetic.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/arithmetic.c' object='luatexdir/tex/liblua53tex_a-arithmetic.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-fontviewbase.obj: luatexdir/luafontloader/fontforge/fontforge/fontviewbase.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-fontviewbase.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fontviewbase.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-fontviewbase.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/fontviewbase.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/fontviewbase.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/fontviewbase.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fontviewbase.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fontviewbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/fontviewbase.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-fontviewbase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-arithmetic.obj `if test -f 'luatexdir/tex/arithmetic.c'; then $(CYGPATH_W) 'luatexdir/tex/arithmetic.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/arithmetic.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-fontviewbase.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/fontviewbase.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/fontviewbase.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/fontviewbase.c'; fi` -luatexdir/tex/liblua53tex_a-buildpage.o: luatexdir/tex/buildpage.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-buildpage.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-buildpage.Tpo -c -o luatexdir/tex/liblua53tex_a-buildpage.o `test -f 'luatexdir/tex/buildpage.c' || echo '$(srcdir)/'`luatexdir/tex/buildpage.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-buildpage.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-buildpage.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/buildpage.c' object='luatexdir/tex/liblua53tex_a-buildpage.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-fvcomposit.o: luatexdir/luafontloader/fontforge/fontforge/fvcomposit.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-fvcomposit.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fvcomposit.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-fvcomposit.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/fvcomposit.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/fvcomposit.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fvcomposit.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fvcomposit.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/fvcomposit.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-fvcomposit.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-buildpage.o `test -f 'luatexdir/tex/buildpage.c' || echo '$(srcdir)/'`luatexdir/tex/buildpage.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-fvcomposit.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/fvcomposit.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/fvcomposit.c -luatexdir/tex/liblua53tex_a-buildpage.obj: luatexdir/tex/buildpage.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-buildpage.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-buildpage.Tpo -c -o luatexdir/tex/liblua53tex_a-buildpage.obj `if test -f 'luatexdir/tex/buildpage.c'; then $(CYGPATH_W) 'luatexdir/tex/buildpage.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/buildpage.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-buildpage.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-buildpage.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/buildpage.c' object='luatexdir/tex/liblua53tex_a-buildpage.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-fvcomposit.obj: luatexdir/luafontloader/fontforge/fontforge/fvcomposit.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-fvcomposit.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fvcomposit.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-fvcomposit.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/fvcomposit.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/fvcomposit.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/fvcomposit.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fvcomposit.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fvcomposit.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/fvcomposit.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-fvcomposit.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-buildpage.obj `if test -f 'luatexdir/tex/buildpage.c'; then $(CYGPATH_W) 'luatexdir/tex/buildpage.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/buildpage.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-fvcomposit.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/fvcomposit.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/fvcomposit.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/fvcomposit.c'; fi` -luatexdir/tex/liblua53tex_a-commands.o: luatexdir/tex/commands.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-commands.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-commands.Tpo -c -o luatexdir/tex/liblua53tex_a-commands.o `test -f 'luatexdir/tex/commands.c' || echo '$(srcdir)/'`luatexdir/tex/commands.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-commands.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-commands.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/commands.c' object='luatexdir/tex/liblua53tex_a-commands.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-fvfonts.o: luatexdir/luafontloader/fontforge/fontforge/fvfonts.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-fvfonts.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fvfonts.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-fvfonts.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/fvfonts.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/fvfonts.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fvfonts.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fvfonts.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/fvfonts.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-fvfonts.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-commands.o `test -f 'luatexdir/tex/commands.c' || echo '$(srcdir)/'`luatexdir/tex/commands.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-fvfonts.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/fvfonts.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/fvfonts.c -luatexdir/tex/liblua53tex_a-commands.obj: luatexdir/tex/commands.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-commands.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-commands.Tpo -c -o luatexdir/tex/liblua53tex_a-commands.obj `if test -f 'luatexdir/tex/commands.c'; then $(CYGPATH_W) 'luatexdir/tex/commands.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/commands.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-commands.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-commands.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/commands.c' object='luatexdir/tex/liblua53tex_a-commands.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-fvfonts.obj: luatexdir/luafontloader/fontforge/fontforge/fvfonts.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-fvfonts.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fvfonts.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-fvfonts.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/fvfonts.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/fvfonts.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/fvfonts.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fvfonts.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-fvfonts.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/fvfonts.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-fvfonts.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-commands.obj `if test -f 'luatexdir/tex/commands.c'; then $(CYGPATH_W) 'luatexdir/tex/commands.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/commands.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-fvfonts.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/fvfonts.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/fvfonts.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/fvfonts.c'; fi` -luatexdir/tex/liblua53tex_a-conditional.o: luatexdir/tex/conditional.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-conditional.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-conditional.Tpo -c -o luatexdir/tex/liblua53tex_a-conditional.o `test -f 'luatexdir/tex/conditional.c' || echo '$(srcdir)/'`luatexdir/tex/conditional.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-conditional.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-conditional.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/conditional.c' object='luatexdir/tex/liblua53tex_a-conditional.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-lookups.o: luatexdir/luafontloader/fontforge/fontforge/lookups.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-lookups.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-lookups.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-lookups.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/lookups.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/lookups.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-lookups.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-lookups.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/lookups.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-lookups.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-conditional.o `test -f 'luatexdir/tex/conditional.c' || echo '$(srcdir)/'`luatexdir/tex/conditional.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-lookups.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/lookups.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/lookups.c -luatexdir/tex/liblua53tex_a-conditional.obj: luatexdir/tex/conditional.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-conditional.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-conditional.Tpo -c -o luatexdir/tex/liblua53tex_a-conditional.obj `if test -f 'luatexdir/tex/conditional.c'; then $(CYGPATH_W) 'luatexdir/tex/conditional.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/conditional.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-conditional.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-conditional.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/conditional.c' object='luatexdir/tex/liblua53tex_a-conditional.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-lookups.obj: luatexdir/luafontloader/fontforge/fontforge/lookups.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-lookups.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-lookups.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-lookups.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/lookups.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/lookups.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/lookups.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-lookups.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-lookups.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/lookups.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-lookups.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-conditional.obj `if test -f 'luatexdir/tex/conditional.c'; then $(CYGPATH_W) 'luatexdir/tex/conditional.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/conditional.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-lookups.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/lookups.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/lookups.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/lookups.c'; fi` -luatexdir/tex/liblua53tex_a-directions.o: luatexdir/tex/directions.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-directions.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-directions.Tpo -c -o luatexdir/tex/liblua53tex_a-directions.o `test -f 'luatexdir/tex/directions.c' || echo '$(srcdir)/'`luatexdir/tex/directions.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-directions.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-directions.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/directions.c' object='luatexdir/tex/liblua53tex_a-directions.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-macbinary.o: luatexdir/luafontloader/fontforge/fontforge/macbinary.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-macbinary.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-macbinary.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-macbinary.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/macbinary.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/macbinary.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-macbinary.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-macbinary.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/macbinary.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-macbinary.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-directions.o `test -f 'luatexdir/tex/directions.c' || echo '$(srcdir)/'`luatexdir/tex/directions.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-macbinary.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/macbinary.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/macbinary.c -luatexdir/tex/liblua53tex_a-directions.obj: luatexdir/tex/directions.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-directions.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-directions.Tpo -c -o luatexdir/tex/liblua53tex_a-directions.obj `if test -f 'luatexdir/tex/directions.c'; then $(CYGPATH_W) 'luatexdir/tex/directions.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/directions.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-directions.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-directions.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/directions.c' object='luatexdir/tex/liblua53tex_a-directions.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-macbinary.obj: luatexdir/luafontloader/fontforge/fontforge/macbinary.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-macbinary.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-macbinary.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-macbinary.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/macbinary.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/macbinary.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/macbinary.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-macbinary.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-macbinary.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/macbinary.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-macbinary.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-directions.obj `if test -f 'luatexdir/tex/directions.c'; then $(CYGPATH_W) 'luatexdir/tex/directions.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/directions.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-macbinary.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/macbinary.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/macbinary.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/macbinary.c'; fi` -luatexdir/tex/liblua53tex_a-dumpdata.o: luatexdir/tex/dumpdata.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-dumpdata.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-dumpdata.Tpo -c -o luatexdir/tex/liblua53tex_a-dumpdata.o `test -f 'luatexdir/tex/dumpdata.c' || echo '$(srcdir)/'`luatexdir/tex/dumpdata.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-dumpdata.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-dumpdata.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/dumpdata.c' object='luatexdir/tex/liblua53tex_a-dumpdata.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-macenc.o: luatexdir/luafontloader/fontforge/fontforge/macenc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-macenc.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-macenc.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-macenc.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/macenc.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/macenc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-macenc.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-macenc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/macenc.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-macenc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-dumpdata.o `test -f 'luatexdir/tex/dumpdata.c' || echo '$(srcdir)/'`luatexdir/tex/dumpdata.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-macenc.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/macenc.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/macenc.c -luatexdir/tex/liblua53tex_a-dumpdata.obj: luatexdir/tex/dumpdata.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-dumpdata.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-dumpdata.Tpo -c -o luatexdir/tex/liblua53tex_a-dumpdata.obj `if test -f 'luatexdir/tex/dumpdata.c'; then $(CYGPATH_W) 'luatexdir/tex/dumpdata.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/dumpdata.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-dumpdata.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-dumpdata.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/dumpdata.c' object='luatexdir/tex/liblua53tex_a-dumpdata.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-macenc.obj: luatexdir/luafontloader/fontforge/fontforge/macenc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-macenc.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-macenc.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-macenc.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/macenc.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/macenc.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/macenc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-macenc.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-macenc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/macenc.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-macenc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-dumpdata.obj `if test -f 'luatexdir/tex/dumpdata.c'; then $(CYGPATH_W) 'luatexdir/tex/dumpdata.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/dumpdata.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-macenc.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/macenc.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/macenc.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/macenc.c'; fi` -luatexdir/tex/liblua53tex_a-equivalents.o: luatexdir/tex/equivalents.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-equivalents.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-equivalents.Tpo -c -o luatexdir/tex/liblua53tex_a-equivalents.o `test -f 'luatexdir/tex/equivalents.c' || echo '$(srcdir)/'`luatexdir/tex/equivalents.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-equivalents.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-equivalents.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/equivalents.c' object='luatexdir/tex/liblua53tex_a-equivalents.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-mathconstants.o: luatexdir/luafontloader/fontforge/fontforge/mathconstants.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-mathconstants.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-mathconstants.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-mathconstants.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/mathconstants.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/mathconstants.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-mathconstants.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-mathconstants.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/mathconstants.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-mathconstants.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-equivalents.o `test -f 'luatexdir/tex/equivalents.c' || echo '$(srcdir)/'`luatexdir/tex/equivalents.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-mathconstants.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/mathconstants.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/mathconstants.c -luatexdir/tex/liblua53tex_a-equivalents.obj: luatexdir/tex/equivalents.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-equivalents.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-equivalents.Tpo -c -o luatexdir/tex/liblua53tex_a-equivalents.obj `if test -f 'luatexdir/tex/equivalents.c'; then $(CYGPATH_W) 'luatexdir/tex/equivalents.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/equivalents.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-equivalents.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-equivalents.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/equivalents.c' object='luatexdir/tex/liblua53tex_a-equivalents.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-mathconstants.obj: luatexdir/luafontloader/fontforge/fontforge/mathconstants.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-mathconstants.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-mathconstants.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-mathconstants.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/mathconstants.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/mathconstants.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/mathconstants.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-mathconstants.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-mathconstants.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/mathconstants.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-mathconstants.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-equivalents.obj `if test -f 'luatexdir/tex/equivalents.c'; then $(CYGPATH_W) 'luatexdir/tex/equivalents.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/equivalents.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-mathconstants.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/mathconstants.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/mathconstants.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/mathconstants.c'; fi` -luatexdir/tex/liblua53tex_a-errors.o: luatexdir/tex/errors.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-errors.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-errors.Tpo -c -o luatexdir/tex/liblua53tex_a-errors.o `test -f 'luatexdir/tex/errors.c' || echo '$(srcdir)/'`luatexdir/tex/errors.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-errors.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-errors.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/errors.c' object='luatexdir/tex/liblua53tex_a-errors.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-memory.o: luatexdir/luafontloader/fontforge/fontforge/memory.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-memory.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-memory.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-memory.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/memory.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/memory.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-memory.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-memory.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/memory.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-memory.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-errors.o `test -f 'luatexdir/tex/errors.c' || echo '$(srcdir)/'`luatexdir/tex/errors.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-memory.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/memory.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/memory.c -luatexdir/tex/liblua53tex_a-errors.obj: luatexdir/tex/errors.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-errors.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-errors.Tpo -c -o luatexdir/tex/liblua53tex_a-errors.obj `if test -f 'luatexdir/tex/errors.c'; then $(CYGPATH_W) 'luatexdir/tex/errors.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/errors.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-errors.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-errors.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/errors.c' object='luatexdir/tex/liblua53tex_a-errors.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-memory.obj: luatexdir/luafontloader/fontforge/fontforge/memory.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-memory.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-memory.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-memory.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/memory.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/memory.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/memory.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-memory.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-memory.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/memory.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-memory.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-errors.obj `if test -f 'luatexdir/tex/errors.c'; then $(CYGPATH_W) 'luatexdir/tex/errors.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/errors.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-memory.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/memory.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/memory.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/memory.c'; fi` -luatexdir/tex/liblua53tex_a-expand.o: luatexdir/tex/expand.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-expand.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-expand.Tpo -c -o luatexdir/tex/liblua53tex_a-expand.o `test -f 'luatexdir/tex/expand.c' || echo '$(srcdir)/'`luatexdir/tex/expand.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-expand.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-expand.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/expand.c' object='luatexdir/tex/liblua53tex_a-expand.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-mm.o: luatexdir/luafontloader/fontforge/fontforge/mm.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-mm.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-mm.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-mm.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/mm.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/mm.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-mm.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-mm.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/mm.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-mm.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-expand.o `test -f 'luatexdir/tex/expand.c' || echo '$(srcdir)/'`luatexdir/tex/expand.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-mm.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/mm.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/mm.c -luatexdir/tex/liblua53tex_a-expand.obj: luatexdir/tex/expand.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-expand.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-expand.Tpo -c -o luatexdir/tex/liblua53tex_a-expand.obj `if test -f 'luatexdir/tex/expand.c'; then $(CYGPATH_W) 'luatexdir/tex/expand.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/expand.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-expand.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-expand.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/expand.c' object='luatexdir/tex/liblua53tex_a-expand.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-mm.obj: luatexdir/luafontloader/fontforge/fontforge/mm.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-mm.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-mm.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-mm.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/mm.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/mm.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/mm.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-mm.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-mm.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/mm.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-mm.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-expand.obj `if test -f 'luatexdir/tex/expand.c'; then $(CYGPATH_W) 'luatexdir/tex/expand.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/expand.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-mm.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/mm.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/mm.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/mm.c'; fi` -luatexdir/tex/liblua53tex_a-extensions.o: luatexdir/tex/extensions.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-extensions.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-extensions.Tpo -c -o luatexdir/tex/liblua53tex_a-extensions.o `test -f 'luatexdir/tex/extensions.c' || echo '$(srcdir)/'`luatexdir/tex/extensions.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-extensions.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-extensions.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/extensions.c' object='luatexdir/tex/liblua53tex_a-extensions.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-namelist.o: luatexdir/luafontloader/fontforge/fontforge/namelist.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-namelist.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-namelist.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-namelist.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/namelist.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/namelist.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-namelist.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-namelist.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/namelist.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-namelist.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-extensions.o `test -f 'luatexdir/tex/extensions.c' || echo '$(srcdir)/'`luatexdir/tex/extensions.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-namelist.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/namelist.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/namelist.c -luatexdir/tex/liblua53tex_a-extensions.obj: luatexdir/tex/extensions.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-extensions.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-extensions.Tpo -c -o luatexdir/tex/liblua53tex_a-extensions.obj `if test -f 'luatexdir/tex/extensions.c'; then $(CYGPATH_W) 'luatexdir/tex/extensions.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/extensions.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-extensions.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-extensions.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/extensions.c' object='luatexdir/tex/liblua53tex_a-extensions.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-namelist.obj: luatexdir/luafontloader/fontforge/fontforge/namelist.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-namelist.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-namelist.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-namelist.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/namelist.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/namelist.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/namelist.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-namelist.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-namelist.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/namelist.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-namelist.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-extensions.obj `if test -f 'luatexdir/tex/extensions.c'; then $(CYGPATH_W) 'luatexdir/tex/extensions.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/extensions.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-namelist.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/namelist.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/namelist.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/namelist.c'; fi` -luatexdir/tex/liblua53tex_a-filename.o: luatexdir/tex/filename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-filename.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-filename.Tpo -c -o luatexdir/tex/liblua53tex_a-filename.o `test -f 'luatexdir/tex/filename.c' || echo '$(srcdir)/'`luatexdir/tex/filename.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-filename.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-filename.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/filename.c' object='luatexdir/tex/liblua53tex_a-filename.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-noprefs.o: luatexdir/luafontloader/fontforge/fontforge/noprefs.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-noprefs.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-noprefs.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-noprefs.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/noprefs.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/noprefs.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-noprefs.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-noprefs.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/noprefs.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-noprefs.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-filename.o `test -f 'luatexdir/tex/filename.c' || echo '$(srcdir)/'`luatexdir/tex/filename.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-noprefs.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/noprefs.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/noprefs.c -luatexdir/tex/liblua53tex_a-filename.obj: luatexdir/tex/filename.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-filename.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-filename.Tpo -c -o luatexdir/tex/liblua53tex_a-filename.obj `if test -f 'luatexdir/tex/filename.c'; then $(CYGPATH_W) 'luatexdir/tex/filename.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/filename.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-filename.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-filename.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/filename.c' object='luatexdir/tex/liblua53tex_a-filename.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-noprefs.obj: luatexdir/luafontloader/fontforge/fontforge/noprefs.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-noprefs.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-noprefs.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-noprefs.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/noprefs.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/noprefs.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/noprefs.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-noprefs.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-noprefs.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/noprefs.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-noprefs.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-filename.obj `if test -f 'luatexdir/tex/filename.c'; then $(CYGPATH_W) 'luatexdir/tex/filename.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/filename.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-noprefs.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/noprefs.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/noprefs.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/noprefs.c'; fi` -luatexdir/tex/liblua53tex_a-inputstack.o: luatexdir/tex/inputstack.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-inputstack.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-inputstack.Tpo -c -o luatexdir/tex/liblua53tex_a-inputstack.o `test -f 'luatexdir/tex/inputstack.c' || echo '$(srcdir)/'`luatexdir/tex/inputstack.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-inputstack.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-inputstack.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/inputstack.c' object='luatexdir/tex/liblua53tex_a-inputstack.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-nouiutil.o: luatexdir/luafontloader/fontforge/fontforge/nouiutil.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-nouiutil.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-nouiutil.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-nouiutil.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/nouiutil.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/nouiutil.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-nouiutil.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-nouiutil.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/nouiutil.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-nouiutil.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-inputstack.o `test -f 'luatexdir/tex/inputstack.c' || echo '$(srcdir)/'`luatexdir/tex/inputstack.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-nouiutil.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/nouiutil.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/nouiutil.c -luatexdir/tex/liblua53tex_a-inputstack.obj: luatexdir/tex/inputstack.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-inputstack.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-inputstack.Tpo -c -o luatexdir/tex/liblua53tex_a-inputstack.obj `if test -f 'luatexdir/tex/inputstack.c'; then $(CYGPATH_W) 'luatexdir/tex/inputstack.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/inputstack.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-inputstack.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-inputstack.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/inputstack.c' object='luatexdir/tex/liblua53tex_a-inputstack.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-nouiutil.obj: luatexdir/luafontloader/fontforge/fontforge/nouiutil.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-nouiutil.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-nouiutil.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-nouiutil.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/nouiutil.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/nouiutil.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/nouiutil.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-nouiutil.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-nouiutil.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/nouiutil.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-nouiutil.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-inputstack.obj `if test -f 'luatexdir/tex/inputstack.c'; then $(CYGPATH_W) 'luatexdir/tex/inputstack.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/inputstack.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-nouiutil.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/nouiutil.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/nouiutil.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/nouiutil.c'; fi` -luatexdir/tex/liblua53tex_a-linebreak.o: luatexdir/tex/linebreak.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-linebreak.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-linebreak.Tpo -c -o luatexdir/tex/liblua53tex_a-linebreak.o `test -f 'luatexdir/tex/linebreak.c' || echo '$(srcdir)/'`luatexdir/tex/linebreak.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-linebreak.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-linebreak.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/linebreak.c' object='luatexdir/tex/liblua53tex_a-linebreak.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-parsepfa.o: luatexdir/luafontloader/fontforge/fontforge/parsepfa.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-parsepfa.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsepfa.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-parsepfa.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/parsepfa.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/parsepfa.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsepfa.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsepfa.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/parsepfa.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-parsepfa.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-linebreak.o `test -f 'luatexdir/tex/linebreak.c' || echo '$(srcdir)/'`luatexdir/tex/linebreak.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-parsepfa.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/parsepfa.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/parsepfa.c -luatexdir/tex/liblua53tex_a-linebreak.obj: luatexdir/tex/linebreak.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-linebreak.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-linebreak.Tpo -c -o luatexdir/tex/liblua53tex_a-linebreak.obj `if test -f 'luatexdir/tex/linebreak.c'; then $(CYGPATH_W) 'luatexdir/tex/linebreak.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/linebreak.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-linebreak.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-linebreak.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/linebreak.c' object='luatexdir/tex/liblua53tex_a-linebreak.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-parsepfa.obj: luatexdir/luafontloader/fontforge/fontforge/parsepfa.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-parsepfa.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsepfa.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-parsepfa.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/parsepfa.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/parsepfa.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/parsepfa.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsepfa.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsepfa.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/parsepfa.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-parsepfa.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-linebreak.obj `if test -f 'luatexdir/tex/linebreak.c'; then $(CYGPATH_W) 'luatexdir/tex/linebreak.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/linebreak.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-parsepfa.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/parsepfa.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/parsepfa.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/parsepfa.c'; fi` -luatexdir/tex/liblua53tex_a-mainbody.o: luatexdir/tex/mainbody.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-mainbody.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-mainbody.Tpo -c -o luatexdir/tex/liblua53tex_a-mainbody.o `test -f 'luatexdir/tex/mainbody.c' || echo '$(srcdir)/'`luatexdir/tex/mainbody.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-mainbody.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-mainbody.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/mainbody.c' object='luatexdir/tex/liblua53tex_a-mainbody.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettf.o: luatexdir/luafontloader/fontforge/fontforge/parsettf.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettf.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsettf.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettf.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/parsettf.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/parsettf.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsettf.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsettf.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/parsettf.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettf.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-mainbody.o `test -f 'luatexdir/tex/mainbody.c' || echo '$(srcdir)/'`luatexdir/tex/mainbody.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettf.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/parsettf.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/parsettf.c -luatexdir/tex/liblua53tex_a-mainbody.obj: luatexdir/tex/mainbody.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-mainbody.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-mainbody.Tpo -c -o luatexdir/tex/liblua53tex_a-mainbody.obj `if test -f 'luatexdir/tex/mainbody.c'; then $(CYGPATH_W) 'luatexdir/tex/mainbody.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/mainbody.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-mainbody.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-mainbody.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/mainbody.c' object='luatexdir/tex/liblua53tex_a-mainbody.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettf.obj: luatexdir/luafontloader/fontforge/fontforge/parsettf.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettf.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsettf.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettf.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/parsettf.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/parsettf.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/parsettf.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsettf.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsettf.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/parsettf.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettf.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-mainbody.obj `if test -f 'luatexdir/tex/mainbody.c'; then $(CYGPATH_W) 'luatexdir/tex/mainbody.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/mainbody.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettf.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/parsettf.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/parsettf.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/parsettf.c'; fi` -luatexdir/tex/liblua53tex_a-maincontrol.o: luatexdir/tex/maincontrol.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-maincontrol.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-maincontrol.Tpo -c -o luatexdir/tex/liblua53tex_a-maincontrol.o `test -f 'luatexdir/tex/maincontrol.c' || echo '$(srcdir)/'`luatexdir/tex/maincontrol.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-maincontrol.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-maincontrol.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/maincontrol.c' object='luatexdir/tex/liblua53tex_a-maincontrol.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettfatt.o: luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettfatt.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsettfatt.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettfatt.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsettfatt.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsettfatt.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettfatt.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-maincontrol.o `test -f 'luatexdir/tex/maincontrol.c' || echo '$(srcdir)/'`luatexdir/tex/maincontrol.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettfatt.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c -luatexdir/tex/liblua53tex_a-maincontrol.obj: luatexdir/tex/maincontrol.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-maincontrol.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-maincontrol.Tpo -c -o luatexdir/tex/liblua53tex_a-maincontrol.obj `if test -f 'luatexdir/tex/maincontrol.c'; then $(CYGPATH_W) 'luatexdir/tex/maincontrol.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/maincontrol.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-maincontrol.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-maincontrol.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/maincontrol.c' object='luatexdir/tex/liblua53tex_a-maincontrol.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettfatt.obj: luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettfatt.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsettfatt.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettfatt.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsettfatt.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-parsettfatt.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettfatt.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-maincontrol.obj `if test -f 'luatexdir/tex/maincontrol.c'; then $(CYGPATH_W) 'luatexdir/tex/maincontrol.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/maincontrol.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-parsettfatt.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/parsettfatt.c'; fi` -luatexdir/tex/liblua53tex_a-mathcodes.o: luatexdir/tex/mathcodes.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-mathcodes.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-mathcodes.Tpo -c -o luatexdir/tex/liblua53tex_a-mathcodes.o `test -f 'luatexdir/tex/mathcodes.c' || echo '$(srcdir)/'`luatexdir/tex/mathcodes.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-mathcodes.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-mathcodes.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/mathcodes.c' object='luatexdir/tex/liblua53tex_a-mathcodes.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-psread.o: luatexdir/luafontloader/fontforge/fontforge/psread.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-psread.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-psread.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-psread.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/psread.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/psread.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-psread.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-psread.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/psread.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-psread.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-mathcodes.o `test -f 'luatexdir/tex/mathcodes.c' || echo '$(srcdir)/'`luatexdir/tex/mathcodes.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-psread.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/psread.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/psread.c -luatexdir/tex/liblua53tex_a-mathcodes.obj: luatexdir/tex/mathcodes.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-mathcodes.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-mathcodes.Tpo -c -o luatexdir/tex/liblua53tex_a-mathcodes.obj `if test -f 'luatexdir/tex/mathcodes.c'; then $(CYGPATH_W) 'luatexdir/tex/mathcodes.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/mathcodes.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-mathcodes.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-mathcodes.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/mathcodes.c' object='luatexdir/tex/liblua53tex_a-mathcodes.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-psread.obj: luatexdir/luafontloader/fontforge/fontforge/psread.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-psread.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-psread.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-psread.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/psread.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/psread.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/psread.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-psread.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-psread.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/psread.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-psread.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-mathcodes.obj `if test -f 'luatexdir/tex/mathcodes.c'; then $(CYGPATH_W) 'luatexdir/tex/mathcodes.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/mathcodes.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-psread.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/psread.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/psread.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/psread.c'; fi` -luatexdir/tex/liblua53tex_a-memoryword.o: luatexdir/tex/memoryword.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-memoryword.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-memoryword.Tpo -c -o luatexdir/tex/liblua53tex_a-memoryword.o `test -f 'luatexdir/tex/memoryword.c' || echo '$(srcdir)/'`luatexdir/tex/memoryword.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-memoryword.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-memoryword.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/memoryword.c' object='luatexdir/tex/liblua53tex_a-memoryword.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-pua.o: luatexdir/luafontloader/fontforge/fontforge/pua.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-pua.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-pua.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-pua.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/pua.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/pua.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-pua.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-pua.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/pua.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-pua.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-memoryword.o `test -f 'luatexdir/tex/memoryword.c' || echo '$(srcdir)/'`luatexdir/tex/memoryword.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-pua.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/pua.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/pua.c -luatexdir/tex/liblua53tex_a-memoryword.obj: luatexdir/tex/memoryword.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-memoryword.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-memoryword.Tpo -c -o luatexdir/tex/liblua53tex_a-memoryword.obj `if test -f 'luatexdir/tex/memoryword.c'; then $(CYGPATH_W) 'luatexdir/tex/memoryword.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/memoryword.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-memoryword.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-memoryword.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/memoryword.c' object='luatexdir/tex/liblua53tex_a-memoryword.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-pua.obj: luatexdir/luafontloader/fontforge/fontforge/pua.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-pua.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-pua.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-pua.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/pua.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/pua.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/pua.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-pua.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-pua.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/pua.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-pua.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-memoryword.obj `if test -f 'luatexdir/tex/memoryword.c'; then $(CYGPATH_W) 'luatexdir/tex/memoryword.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/memoryword.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-pua.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/pua.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/pua.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/pua.c'; fi` -luatexdir/tex/liblua53tex_a-mlist.o: luatexdir/tex/mlist.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-mlist.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-mlist.Tpo -c -o luatexdir/tex/liblua53tex_a-mlist.o `test -f 'luatexdir/tex/mlist.c' || echo '$(srcdir)/'`luatexdir/tex/mlist.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-mlist.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-mlist.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/mlist.c' object='luatexdir/tex/liblua53tex_a-mlist.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-python.o: luatexdir/luafontloader/fontforge/fontforge/python.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-python.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-python.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-python.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/python.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/python.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-python.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-python.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/python.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-python.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-mlist.o `test -f 'luatexdir/tex/mlist.c' || echo '$(srcdir)/'`luatexdir/tex/mlist.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-python.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/python.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/python.c -luatexdir/tex/liblua53tex_a-mlist.obj: luatexdir/tex/mlist.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-mlist.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-mlist.Tpo -c -o luatexdir/tex/liblua53tex_a-mlist.obj `if test -f 'luatexdir/tex/mlist.c'; then $(CYGPATH_W) 'luatexdir/tex/mlist.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/mlist.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-mlist.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-mlist.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/mlist.c' object='luatexdir/tex/liblua53tex_a-mlist.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-python.obj: luatexdir/luafontloader/fontforge/fontforge/python.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-python.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-python.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-python.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/python.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/python.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/python.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-python.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-python.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/python.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-python.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-mlist.obj `if test -f 'luatexdir/tex/mlist.c'; then $(CYGPATH_W) 'luatexdir/tex/mlist.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/mlist.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-python.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/python.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/python.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/python.c'; fi` -luatexdir/tex/liblua53tex_a-nesting.o: luatexdir/tex/nesting.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-nesting.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-nesting.Tpo -c -o luatexdir/tex/liblua53tex_a-nesting.o `test -f 'luatexdir/tex/nesting.c' || echo '$(srcdir)/'`luatexdir/tex/nesting.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-nesting.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-nesting.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/nesting.c' object='luatexdir/tex/liblua53tex_a-nesting.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-sfd1.o: luatexdir/luafontloader/fontforge/fontforge/sfd1.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-sfd1.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-sfd1.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-sfd1.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/sfd1.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/sfd1.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-sfd1.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-sfd1.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/sfd1.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-sfd1.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-nesting.o `test -f 'luatexdir/tex/nesting.c' || echo '$(srcdir)/'`luatexdir/tex/nesting.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-sfd1.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/sfd1.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/sfd1.c -luatexdir/tex/liblua53tex_a-nesting.obj: luatexdir/tex/nesting.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-nesting.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-nesting.Tpo -c -o luatexdir/tex/liblua53tex_a-nesting.obj `if test -f 'luatexdir/tex/nesting.c'; then $(CYGPATH_W) 'luatexdir/tex/nesting.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/nesting.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-nesting.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-nesting.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/nesting.c' object='luatexdir/tex/liblua53tex_a-nesting.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-sfd1.obj: luatexdir/luafontloader/fontforge/fontforge/sfd1.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-sfd1.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-sfd1.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-sfd1.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/sfd1.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/sfd1.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/sfd1.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-sfd1.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-sfd1.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/sfd1.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-sfd1.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-nesting.obj `if test -f 'luatexdir/tex/nesting.c'; then $(CYGPATH_W) 'luatexdir/tex/nesting.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/nesting.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-sfd1.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/sfd1.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/sfd1.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/sfd1.c'; fi` -luatexdir/tex/liblua53tex_a-packaging.o: luatexdir/tex/packaging.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-packaging.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-packaging.Tpo -c -o luatexdir/tex/liblua53tex_a-packaging.o `test -f 'luatexdir/tex/packaging.c' || echo '$(srcdir)/'`luatexdir/tex/packaging.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-packaging.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-packaging.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/packaging.c' object='luatexdir/tex/liblua53tex_a-packaging.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-splinechar.o: luatexdir/luafontloader/fontforge/fontforge/splinechar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splinechar.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinechar.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinechar.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splinechar.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splinechar.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinechar.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinechar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splinechar.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splinechar.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-packaging.o `test -f 'luatexdir/tex/packaging.c' || echo '$(srcdir)/'`luatexdir/tex/packaging.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinechar.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splinechar.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splinechar.c -luatexdir/tex/liblua53tex_a-packaging.obj: luatexdir/tex/packaging.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-packaging.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-packaging.Tpo -c -o luatexdir/tex/liblua53tex_a-packaging.obj `if test -f 'luatexdir/tex/packaging.c'; then $(CYGPATH_W) 'luatexdir/tex/packaging.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/packaging.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-packaging.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-packaging.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/packaging.c' object='luatexdir/tex/liblua53tex_a-packaging.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-splinechar.obj: luatexdir/luafontloader/fontforge/fontforge/splinechar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splinechar.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinechar.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinechar.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splinechar.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splinechar.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splinechar.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinechar.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinechar.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splinechar.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splinechar.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-packaging.obj `if test -f 'luatexdir/tex/packaging.c'; then $(CYGPATH_W) 'luatexdir/tex/packaging.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/packaging.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinechar.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splinechar.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splinechar.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splinechar.c'; fi` -luatexdir/tex/liblua53tex_a-postlinebreak.o: luatexdir/tex/postlinebreak.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-postlinebreak.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-postlinebreak.Tpo -c -o luatexdir/tex/liblua53tex_a-postlinebreak.o `test -f 'luatexdir/tex/postlinebreak.c' || echo '$(srcdir)/'`luatexdir/tex/postlinebreak.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-postlinebreak.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-postlinebreak.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/postlinebreak.c' object='luatexdir/tex/liblua53tex_a-postlinebreak.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefill.o: luatexdir/luafontloader/fontforge/fontforge/splinefill.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefill.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinefill.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefill.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splinefill.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splinefill.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinefill.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinefill.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splinefill.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefill.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-postlinebreak.o `test -f 'luatexdir/tex/postlinebreak.c' || echo '$(srcdir)/'`luatexdir/tex/postlinebreak.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefill.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splinefill.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splinefill.c -luatexdir/tex/liblua53tex_a-postlinebreak.obj: luatexdir/tex/postlinebreak.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-postlinebreak.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-postlinebreak.Tpo -c -o luatexdir/tex/liblua53tex_a-postlinebreak.obj `if test -f 'luatexdir/tex/postlinebreak.c'; then $(CYGPATH_W) 'luatexdir/tex/postlinebreak.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/postlinebreak.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-postlinebreak.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-postlinebreak.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/postlinebreak.c' object='luatexdir/tex/liblua53tex_a-postlinebreak.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefill.obj: luatexdir/luafontloader/fontforge/fontforge/splinefill.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefill.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinefill.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefill.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splinefill.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splinefill.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splinefill.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinefill.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinefill.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splinefill.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefill.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-postlinebreak.obj `if test -f 'luatexdir/tex/postlinebreak.c'; then $(CYGPATH_W) 'luatexdir/tex/postlinebreak.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/postlinebreak.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefill.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splinefill.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splinefill.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splinefill.c'; fi` -luatexdir/tex/liblua53tex_a-primitive.o: luatexdir/tex/primitive.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-primitive.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-primitive.Tpo -c -o luatexdir/tex/liblua53tex_a-primitive.o `test -f 'luatexdir/tex/primitive.c' || echo '$(srcdir)/'`luatexdir/tex/primitive.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-primitive.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-primitive.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/primitive.c' object='luatexdir/tex/liblua53tex_a-primitive.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefont.o: luatexdir/luafontloader/fontforge/fontforge/splinefont.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefont.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinefont.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefont.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splinefont.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splinefont.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinefont.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinefont.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splinefont.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefont.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-primitive.o `test -f 'luatexdir/tex/primitive.c' || echo '$(srcdir)/'`luatexdir/tex/primitive.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefont.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splinefont.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splinefont.c -luatexdir/tex/liblua53tex_a-primitive.obj: luatexdir/tex/primitive.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-primitive.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-primitive.Tpo -c -o luatexdir/tex/liblua53tex_a-primitive.obj `if test -f 'luatexdir/tex/primitive.c'; then $(CYGPATH_W) 'luatexdir/tex/primitive.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/primitive.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-primitive.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-primitive.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/primitive.c' object='luatexdir/tex/liblua53tex_a-primitive.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefont.obj: luatexdir/luafontloader/fontforge/fontforge/splinefont.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefont.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinefont.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefont.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splinefont.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splinefont.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splinefont.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinefont.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinefont.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splinefont.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefont.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-primitive.obj `if test -f 'luatexdir/tex/primitive.c'; then $(CYGPATH_W) 'luatexdir/tex/primitive.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/primitive.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinefont.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splinefont.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splinefont.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splinefont.c'; fi` -luatexdir/tex/liblua53tex_a-printing.o: luatexdir/tex/printing.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-printing.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-printing.Tpo -c -o luatexdir/tex/liblua53tex_a-printing.o `test -f 'luatexdir/tex/printing.c' || echo '$(srcdir)/'`luatexdir/tex/printing.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-printing.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-printing.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/printing.c' object='luatexdir/tex/liblua53tex_a-printing.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-splineorder2.o: luatexdir/luafontloader/fontforge/fontforge/splineorder2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splineorder2.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineorder2.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splineorder2.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splineorder2.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splineorder2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineorder2.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineorder2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splineorder2.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splineorder2.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-printing.o `test -f 'luatexdir/tex/printing.c' || echo '$(srcdir)/'`luatexdir/tex/printing.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splineorder2.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splineorder2.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splineorder2.c -luatexdir/tex/liblua53tex_a-printing.obj: luatexdir/tex/printing.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-printing.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-printing.Tpo -c -o luatexdir/tex/liblua53tex_a-printing.obj `if test -f 'luatexdir/tex/printing.c'; then $(CYGPATH_W) 'luatexdir/tex/printing.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/printing.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-printing.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-printing.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/printing.c' object='luatexdir/tex/liblua53tex_a-printing.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-splineorder2.obj: luatexdir/luafontloader/fontforge/fontforge/splineorder2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splineorder2.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineorder2.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splineorder2.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splineorder2.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splineorder2.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splineorder2.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineorder2.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineorder2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splineorder2.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splineorder2.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-printing.obj `if test -f 'luatexdir/tex/printing.c'; then $(CYGPATH_W) 'luatexdir/tex/printing.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/printing.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splineorder2.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splineorder2.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splineorder2.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splineorder2.c'; fi` -luatexdir/tex/liblua53tex_a-scanning.o: luatexdir/tex/scanning.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-scanning.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-scanning.Tpo -c -o luatexdir/tex/liblua53tex_a-scanning.o `test -f 'luatexdir/tex/scanning.c' || echo '$(srcdir)/'`luatexdir/tex/scanning.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-scanning.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-scanning.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/scanning.c' object='luatexdir/tex/liblua53tex_a-scanning.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-splineoverlap.o: luatexdir/luafontloader/fontforge/fontforge/splineoverlap.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splineoverlap.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineoverlap.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splineoverlap.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splineoverlap.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splineoverlap.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineoverlap.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineoverlap.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splineoverlap.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splineoverlap.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-scanning.o `test -f 'luatexdir/tex/scanning.c' || echo '$(srcdir)/'`luatexdir/tex/scanning.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splineoverlap.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splineoverlap.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splineoverlap.c -luatexdir/tex/liblua53tex_a-scanning.obj: luatexdir/tex/scanning.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-scanning.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-scanning.Tpo -c -o luatexdir/tex/liblua53tex_a-scanning.obj `if test -f 'luatexdir/tex/scanning.c'; then $(CYGPATH_W) 'luatexdir/tex/scanning.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/scanning.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-scanning.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-scanning.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/scanning.c' object='luatexdir/tex/liblua53tex_a-scanning.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-splineoverlap.obj: luatexdir/luafontloader/fontforge/fontforge/splineoverlap.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splineoverlap.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineoverlap.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splineoverlap.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splineoverlap.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splineoverlap.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splineoverlap.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineoverlap.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineoverlap.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splineoverlap.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splineoverlap.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-scanning.obj `if test -f 'luatexdir/tex/scanning.c'; then $(CYGPATH_W) 'luatexdir/tex/scanning.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/scanning.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splineoverlap.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splineoverlap.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splineoverlap.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splineoverlap.c'; fi` -luatexdir/tex/liblua53tex_a-stringpool.o: luatexdir/tex/stringpool.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-stringpool.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-stringpool.Tpo -c -o luatexdir/tex/liblua53tex_a-stringpool.o `test -f 'luatexdir/tex/stringpool.c' || echo '$(srcdir)/'`luatexdir/tex/stringpool.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-stringpool.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-stringpool.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/stringpool.c' object='luatexdir/tex/liblua53tex_a-stringpool.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-splinerefigure.o: luatexdir/luafontloader/fontforge/fontforge/splinerefigure.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splinerefigure.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinerefigure.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinerefigure.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splinerefigure.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splinerefigure.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinerefigure.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinerefigure.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splinerefigure.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splinerefigure.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-stringpool.o `test -f 'luatexdir/tex/stringpool.c' || echo '$(srcdir)/'`luatexdir/tex/stringpool.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinerefigure.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splinerefigure.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splinerefigure.c -luatexdir/tex/liblua53tex_a-stringpool.obj: luatexdir/tex/stringpool.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-stringpool.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-stringpool.Tpo -c -o luatexdir/tex/liblua53tex_a-stringpool.obj `if test -f 'luatexdir/tex/stringpool.c'; then $(CYGPATH_W) 'luatexdir/tex/stringpool.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/stringpool.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-stringpool.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-stringpool.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/stringpool.c' object='luatexdir/tex/liblua53tex_a-stringpool.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-splinerefigure.obj: luatexdir/luafontloader/fontforge/fontforge/splinerefigure.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splinerefigure.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinerefigure.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinerefigure.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splinerefigure.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splinerefigure.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splinerefigure.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinerefigure.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinerefigure.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splinerefigure.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splinerefigure.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-stringpool.obj `if test -f 'luatexdir/tex/stringpool.c'; then $(CYGPATH_W) 'luatexdir/tex/stringpool.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/stringpool.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinerefigure.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splinerefigure.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splinerefigure.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splinerefigure.c'; fi` -luatexdir/tex/liblua53tex_a-texdeffont.o: luatexdir/tex/texdeffont.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-texdeffont.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-texdeffont.Tpo -c -o luatexdir/tex/liblua53tex_a-texdeffont.o `test -f 'luatexdir/tex/texdeffont.c' || echo '$(srcdir)/'`luatexdir/tex/texdeffont.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-texdeffont.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-texdeffont.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/texdeffont.c' object='luatexdir/tex/liblua53tex_a-texdeffont.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesave.o: luatexdir/luafontloader/fontforge/fontforge/splinesave.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesave.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinesave.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesave.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splinesave.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splinesave.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinesave.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinesave.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splinesave.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesave.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-texdeffont.o `test -f 'luatexdir/tex/texdeffont.c' || echo '$(srcdir)/'`luatexdir/tex/texdeffont.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesave.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splinesave.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splinesave.c -luatexdir/tex/liblua53tex_a-texdeffont.obj: luatexdir/tex/texdeffont.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-texdeffont.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-texdeffont.Tpo -c -o luatexdir/tex/liblua53tex_a-texdeffont.obj `if test -f 'luatexdir/tex/texdeffont.c'; then $(CYGPATH_W) 'luatexdir/tex/texdeffont.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/texdeffont.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-texdeffont.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-texdeffont.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/texdeffont.c' object='luatexdir/tex/liblua53tex_a-texdeffont.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesave.obj: luatexdir/luafontloader/fontforge/fontforge/splinesave.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesave.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinesave.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesave.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splinesave.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splinesave.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splinesave.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinesave.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinesave.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splinesave.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesave.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-texdeffont.obj `if test -f 'luatexdir/tex/texdeffont.c'; then $(CYGPATH_W) 'luatexdir/tex/texdeffont.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/texdeffont.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesave.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splinesave.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splinesave.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splinesave.c'; fi` -luatexdir/tex/liblua53tex_a-texfileio.o: luatexdir/tex/texfileio.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-texfileio.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-texfileio.Tpo -c -o luatexdir/tex/liblua53tex_a-texfileio.o `test -f 'luatexdir/tex/texfileio.c' || echo '$(srcdir)/'`luatexdir/tex/texfileio.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-texfileio.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-texfileio.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/texfileio.c' object='luatexdir/tex/liblua53tex_a-texfileio.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesaveafm.o: luatexdir/luafontloader/fontforge/fontforge/splinesaveafm.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesaveafm.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinesaveafm.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesaveafm.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splinesaveafm.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splinesaveafm.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinesaveafm.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinesaveafm.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splinesaveafm.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesaveafm.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-texfileio.o `test -f 'luatexdir/tex/texfileio.c' || echo '$(srcdir)/'`luatexdir/tex/texfileio.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesaveafm.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splinesaveafm.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splinesaveafm.c -luatexdir/tex/liblua53tex_a-texfileio.obj: luatexdir/tex/texfileio.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-texfileio.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-texfileio.Tpo -c -o luatexdir/tex/liblua53tex_a-texfileio.obj `if test -f 'luatexdir/tex/texfileio.c'; then $(CYGPATH_W) 'luatexdir/tex/texfileio.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/texfileio.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-texfileio.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-texfileio.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/texfileio.c' object='luatexdir/tex/liblua53tex_a-texfileio.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesaveafm.obj: luatexdir/luafontloader/fontforge/fontforge/splinesaveafm.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesaveafm.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinesaveafm.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesaveafm.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splinesaveafm.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splinesaveafm.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splinesaveafm.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinesaveafm.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinesaveafm.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splinesaveafm.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesaveafm.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-texfileio.obj `if test -f 'luatexdir/tex/texfileio.c'; then $(CYGPATH_W) 'luatexdir/tex/texfileio.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/texfileio.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinesaveafm.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splinesaveafm.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splinesaveafm.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splinesaveafm.c'; fi` -luatexdir/tex/liblua53tex_a-texmath.o: luatexdir/tex/texmath.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-texmath.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-texmath.Tpo -c -o luatexdir/tex/liblua53tex_a-texmath.o `test -f 'luatexdir/tex/texmath.c' || echo '$(srcdir)/'`luatexdir/tex/texmath.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-texmath.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-texmath.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/texmath.c' object='luatexdir/tex/liblua53tex_a-texmath.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-splinestroke.o: luatexdir/luafontloader/fontforge/fontforge/splinestroke.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splinestroke.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinestroke.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinestroke.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splinestroke.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splinestroke.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinestroke.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinestroke.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splinestroke.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splinestroke.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-texmath.o `test -f 'luatexdir/tex/texmath.c' || echo '$(srcdir)/'`luatexdir/tex/texmath.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinestroke.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splinestroke.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splinestroke.c -luatexdir/tex/liblua53tex_a-texmath.obj: luatexdir/tex/texmath.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-texmath.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-texmath.Tpo -c -o luatexdir/tex/liblua53tex_a-texmath.obj `if test -f 'luatexdir/tex/texmath.c'; then $(CYGPATH_W) 'luatexdir/tex/texmath.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/texmath.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-texmath.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-texmath.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/texmath.c' object='luatexdir/tex/liblua53tex_a-texmath.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-splinestroke.obj: luatexdir/luafontloader/fontforge/fontforge/splinestroke.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splinestroke.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinestroke.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinestroke.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splinestroke.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splinestroke.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splinestroke.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinestroke.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splinestroke.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splinestroke.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splinestroke.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-texmath.obj `if test -f 'luatexdir/tex/texmath.c'; then $(CYGPATH_W) 'luatexdir/tex/texmath.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/texmath.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splinestroke.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splinestroke.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splinestroke.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splinestroke.c'; fi` -luatexdir/tex/liblua53tex_a-texnodes.o: luatexdir/tex/texnodes.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-texnodes.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-texnodes.Tpo -c -o luatexdir/tex/liblua53tex_a-texnodes.o `test -f 'luatexdir/tex/texnodes.c' || echo '$(srcdir)/'`luatexdir/tex/texnodes.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-texnodes.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-texnodes.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/texnodes.c' object='luatexdir/tex/liblua53tex_a-texnodes.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil.o: luatexdir/luafontloader/fontforge/fontforge/splineutil.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineutil.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splineutil.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splineutil.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineutil.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineutil.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splineutil.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-texnodes.o `test -f 'luatexdir/tex/texnodes.c' || echo '$(srcdir)/'`luatexdir/tex/texnodes.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splineutil.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splineutil.c -luatexdir/tex/liblua53tex_a-texnodes.obj: luatexdir/tex/texnodes.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-texnodes.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-texnodes.Tpo -c -o luatexdir/tex/liblua53tex_a-texnodes.obj `if test -f 'luatexdir/tex/texnodes.c'; then $(CYGPATH_W) 'luatexdir/tex/texnodes.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/texnodes.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-texnodes.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-texnodes.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/texnodes.c' object='luatexdir/tex/liblua53tex_a-texnodes.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil.obj: luatexdir/luafontloader/fontforge/fontforge/splineutil.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineutil.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splineutil.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splineutil.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splineutil.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineutil.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineutil.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splineutil.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-texnodes.obj `if test -f 'luatexdir/tex/texnodes.c'; then $(CYGPATH_W) 'luatexdir/tex/texnodes.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/texnodes.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splineutil.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splineutil.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splineutil.c'; fi` -luatexdir/tex/liblua53tex_a-textcodes.o: luatexdir/tex/textcodes.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-textcodes.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-textcodes.Tpo -c -o luatexdir/tex/liblua53tex_a-textcodes.o `test -f 'luatexdir/tex/textcodes.c' || echo '$(srcdir)/'`luatexdir/tex/textcodes.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-textcodes.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-textcodes.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/textcodes.c' object='luatexdir/tex/liblua53tex_a-textcodes.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil2.o: luatexdir/luafontloader/fontforge/fontforge/splineutil2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil2.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineutil2.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil2.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splineutil2.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splineutil2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineutil2.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineutil2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splineutil2.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil2.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-textcodes.o `test -f 'luatexdir/tex/textcodes.c' || echo '$(srcdir)/'`luatexdir/tex/textcodes.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil2.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/splineutil2.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/splineutil2.c -luatexdir/tex/liblua53tex_a-textcodes.obj: luatexdir/tex/textcodes.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-textcodes.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-textcodes.Tpo -c -o luatexdir/tex/liblua53tex_a-textcodes.obj `if test -f 'luatexdir/tex/textcodes.c'; then $(CYGPATH_W) 'luatexdir/tex/textcodes.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/textcodes.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-textcodes.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-textcodes.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/textcodes.c' object='luatexdir/tex/liblua53tex_a-textcodes.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil2.obj: luatexdir/luafontloader/fontforge/fontforge/splineutil2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil2.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineutil2.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil2.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splineutil2.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splineutil2.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splineutil2.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineutil2.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-splineutil2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/splineutil2.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil2.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-textcodes.obj `if test -f 'luatexdir/tex/textcodes.c'; then $(CYGPATH_W) 'luatexdir/tex/textcodes.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/textcodes.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-splineutil2.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/splineutil2.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/splineutil2.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/splineutil2.c'; fi` -luatexdir/tex/liblua53tex_a-textoken.o: luatexdir/tex/textoken.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-textoken.o -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-textoken.Tpo -c -o luatexdir/tex/liblua53tex_a-textoken.o `test -f 'luatexdir/tex/textoken.c' || echo '$(srcdir)/'`luatexdir/tex/textoken.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-textoken.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-textoken.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/textoken.c' object='luatexdir/tex/liblua53tex_a-textoken.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-start.o: luatexdir/luafontloader/fontforge/fontforge/start.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-start.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-start.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-start.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/start.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/start.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-start.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-start.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/start.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-start.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-textoken.o `test -f 'luatexdir/tex/textoken.c' || echo '$(srcdir)/'`luatexdir/tex/textoken.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-start.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/start.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/start.c -luatexdir/tex/liblua53tex_a-textoken.obj: luatexdir/tex/textoken.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/tex/liblua53tex_a-textoken.obj -MD -MP -MF luatexdir/tex/$(DEPDIR)/liblua53tex_a-textoken.Tpo -c -o luatexdir/tex/liblua53tex_a-textoken.obj `if test -f 'luatexdir/tex/textoken.c'; then $(CYGPATH_W) 'luatexdir/tex/textoken.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/textoken.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/tex/$(DEPDIR)/liblua53tex_a-textoken.Tpo luatexdir/tex/$(DEPDIR)/liblua53tex_a-textoken.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/tex/textoken.c' object='luatexdir/tex/liblua53tex_a-textoken.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-start.obj: luatexdir/luafontloader/fontforge/fontforge/start.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-start.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-start.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-start.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/start.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/start.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/start.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-start.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-start.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/start.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-start.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/tex/liblua53tex_a-textoken.obj `if test -f 'luatexdir/tex/textoken.c'; then $(CYGPATH_W) 'luatexdir/tex/textoken.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/tex/textoken.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-start.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/start.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/start.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/start.c'; fi` -luatexdir/utils/liblua53tex_a-avl.o: luatexdir/utils/avl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/utils/liblua53tex_a-avl.o -MD -MP -MF luatexdir/utils/$(DEPDIR)/liblua53tex_a-avl.Tpo -c -o luatexdir/utils/liblua53tex_a-avl.o `test -f 'luatexdir/utils/avl.c' || echo '$(srcdir)/'`luatexdir/utils/avl.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/utils/$(DEPDIR)/liblua53tex_a-avl.Tpo luatexdir/utils/$(DEPDIR)/liblua53tex_a-avl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/utils/avl.c' object='luatexdir/utils/liblua53tex_a-avl.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-stemdb.o: luatexdir/luafontloader/fontforge/fontforge/stemdb.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-stemdb.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-stemdb.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-stemdb.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/stemdb.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/stemdb.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-stemdb.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-stemdb.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/stemdb.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-stemdb.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/utils/liblua53tex_a-avl.o `test -f 'luatexdir/utils/avl.c' || echo '$(srcdir)/'`luatexdir/utils/avl.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-stemdb.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/stemdb.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/stemdb.c -luatexdir/utils/liblua53tex_a-avl.obj: luatexdir/utils/avl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/utils/liblua53tex_a-avl.obj -MD -MP -MF luatexdir/utils/$(DEPDIR)/liblua53tex_a-avl.Tpo -c -o luatexdir/utils/liblua53tex_a-avl.obj `if test -f 'luatexdir/utils/avl.c'; then $(CYGPATH_W) 'luatexdir/utils/avl.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/utils/avl.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/utils/$(DEPDIR)/liblua53tex_a-avl.Tpo luatexdir/utils/$(DEPDIR)/liblua53tex_a-avl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/utils/avl.c' object='luatexdir/utils/liblua53tex_a-avl.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-stemdb.obj: luatexdir/luafontloader/fontforge/fontforge/stemdb.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-stemdb.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-stemdb.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-stemdb.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/stemdb.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/stemdb.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/stemdb.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-stemdb.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-stemdb.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/stemdb.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-stemdb.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/utils/liblua53tex_a-avl.obj `if test -f 'luatexdir/utils/avl.c'; then $(CYGPATH_W) 'luatexdir/utils/avl.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/utils/avl.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-stemdb.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/stemdb.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/stemdb.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/stemdb.c'; fi` -luatexdir/utils/liblua53tex_a-avlstuff.o: luatexdir/utils/avlstuff.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/utils/liblua53tex_a-avlstuff.o -MD -MP -MF luatexdir/utils/$(DEPDIR)/liblua53tex_a-avlstuff.Tpo -c -o luatexdir/utils/liblua53tex_a-avlstuff.o `test -f 'luatexdir/utils/avlstuff.c' || echo '$(srcdir)/'`luatexdir/utils/avlstuff.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/utils/$(DEPDIR)/liblua53tex_a-avlstuff.Tpo luatexdir/utils/$(DEPDIR)/liblua53tex_a-avlstuff.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/utils/avlstuff.c' object='luatexdir/utils/liblua53tex_a-avlstuff.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-tottf.o: luatexdir/luafontloader/fontforge/fontforge/tottf.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-tottf.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-tottf.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-tottf.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/tottf.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/tottf.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-tottf.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-tottf.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/tottf.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-tottf.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/utils/liblua53tex_a-avlstuff.o `test -f 'luatexdir/utils/avlstuff.c' || echo '$(srcdir)/'`luatexdir/utils/avlstuff.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-tottf.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/tottf.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/tottf.c -luatexdir/utils/liblua53tex_a-avlstuff.obj: luatexdir/utils/avlstuff.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/utils/liblua53tex_a-avlstuff.obj -MD -MP -MF luatexdir/utils/$(DEPDIR)/liblua53tex_a-avlstuff.Tpo -c -o luatexdir/utils/liblua53tex_a-avlstuff.obj `if test -f 'luatexdir/utils/avlstuff.c'; then $(CYGPATH_W) 'luatexdir/utils/avlstuff.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/utils/avlstuff.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/utils/$(DEPDIR)/liblua53tex_a-avlstuff.Tpo luatexdir/utils/$(DEPDIR)/liblua53tex_a-avlstuff.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/utils/avlstuff.c' object='luatexdir/utils/liblua53tex_a-avlstuff.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-tottf.obj: luatexdir/luafontloader/fontforge/fontforge/tottf.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-tottf.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-tottf.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-tottf.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/tottf.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/tottf.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/tottf.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-tottf.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-tottf.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/tottf.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-tottf.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/utils/liblua53tex_a-avlstuff.obj `if test -f 'luatexdir/utils/avlstuff.c'; then $(CYGPATH_W) 'luatexdir/utils/avlstuff.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/utils/avlstuff.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-tottf.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/tottf.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/tottf.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/tottf.c'; fi` -luatexdir/utils/liblua53tex_a-managed-sa.o: luatexdir/utils/managed-sa.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/utils/liblua53tex_a-managed-sa.o -MD -MP -MF luatexdir/utils/$(DEPDIR)/liblua53tex_a-managed-sa.Tpo -c -o luatexdir/utils/liblua53tex_a-managed-sa.o `test -f 'luatexdir/utils/managed-sa.c' || echo '$(srcdir)/'`luatexdir/utils/managed-sa.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/utils/$(DEPDIR)/liblua53tex_a-managed-sa.Tpo luatexdir/utils/$(DEPDIR)/liblua53tex_a-managed-sa.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/utils/managed-sa.c' object='luatexdir/utils/liblua53tex_a-managed-sa.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-tottfgpos.o: luatexdir/luafontloader/fontforge/fontforge/tottfgpos.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-tottfgpos.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-tottfgpos.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-tottfgpos.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/tottfgpos.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/tottfgpos.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-tottfgpos.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-tottfgpos.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/tottfgpos.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-tottfgpos.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/utils/liblua53tex_a-managed-sa.o `test -f 'luatexdir/utils/managed-sa.c' || echo '$(srcdir)/'`luatexdir/utils/managed-sa.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-tottfgpos.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/tottfgpos.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/tottfgpos.c -luatexdir/utils/liblua53tex_a-managed-sa.obj: luatexdir/utils/managed-sa.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/utils/liblua53tex_a-managed-sa.obj -MD -MP -MF luatexdir/utils/$(DEPDIR)/liblua53tex_a-managed-sa.Tpo -c -o luatexdir/utils/liblua53tex_a-managed-sa.obj `if test -f 'luatexdir/utils/managed-sa.c'; then $(CYGPATH_W) 'luatexdir/utils/managed-sa.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/utils/managed-sa.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/utils/$(DEPDIR)/liblua53tex_a-managed-sa.Tpo luatexdir/utils/$(DEPDIR)/liblua53tex_a-managed-sa.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/utils/managed-sa.c' object='luatexdir/utils/liblua53tex_a-managed-sa.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-tottfgpos.obj: luatexdir/luafontloader/fontforge/fontforge/tottfgpos.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-tottfgpos.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-tottfgpos.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-tottfgpos.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/tottfgpos.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/tottfgpos.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/tottfgpos.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-tottfgpos.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-tottfgpos.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/tottfgpos.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-tottfgpos.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/utils/liblua53tex_a-managed-sa.obj `if test -f 'luatexdir/utils/managed-sa.c'; then $(CYGPATH_W) 'luatexdir/utils/managed-sa.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/utils/managed-sa.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-tottfgpos.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/tottfgpos.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/tottfgpos.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/tottfgpos.c'; fi` -luatexdir/utils/liblua53tex_a-unistring.o: luatexdir/utils/unistring.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/utils/liblua53tex_a-unistring.o -MD -MP -MF luatexdir/utils/$(DEPDIR)/liblua53tex_a-unistring.Tpo -c -o luatexdir/utils/liblua53tex_a-unistring.o `test -f 'luatexdir/utils/unistring.c' || echo '$(srcdir)/'`luatexdir/utils/unistring.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/utils/$(DEPDIR)/liblua53tex_a-unistring.Tpo luatexdir/utils/$(DEPDIR)/liblua53tex_a-unistring.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/utils/unistring.c' object='luatexdir/utils/liblua53tex_a-unistring.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-ttfspecial.o: luatexdir/luafontloader/fontforge/fontforge/ttfspecial.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-ttfspecial.o -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-ttfspecial.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-ttfspecial.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/ttfspecial.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/ttfspecial.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-ttfspecial.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-ttfspecial.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/ttfspecial.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-ttfspecial.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/utils/liblua53tex_a-unistring.o `test -f 'luatexdir/utils/unistring.c' || echo '$(srcdir)/'`luatexdir/utils/unistring.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-ttfspecial.o `test -f 'luatexdir/luafontloader/fontforge/fontforge/ttfspecial.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/fontforge/ttfspecial.c -luatexdir/utils/liblua53tex_a-unistring.obj: luatexdir/utils/unistring.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/utils/liblua53tex_a-unistring.obj -MD -MP -MF luatexdir/utils/$(DEPDIR)/liblua53tex_a-unistring.Tpo -c -o luatexdir/utils/liblua53tex_a-unistring.obj `if test -f 'luatexdir/utils/unistring.c'; then $(CYGPATH_W) 'luatexdir/utils/unistring.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/utils/unistring.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/utils/$(DEPDIR)/liblua53tex_a-unistring.Tpo luatexdir/utils/$(DEPDIR)/liblua53tex_a-unistring.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/utils/unistring.c' object='luatexdir/utils/liblua53tex_a-unistring.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/fontforge/libff_a-ttfspecial.obj: luatexdir/luafontloader/fontforge/fontforge/ttfspecial.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/fontforge/libff_a-ttfspecial.obj -MD -MP -MF luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-ttfspecial.Tpo -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-ttfspecial.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/ttfspecial.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/ttfspecial.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/ttfspecial.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-ttfspecial.Tpo luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-ttfspecial.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/fontforge/ttfspecial.c' object='luatexdir/luafontloader/fontforge/fontforge/libff_a-ttfspecial.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/utils/liblua53tex_a-unistring.obj `if test -f 'luatexdir/utils/unistring.c'; then $(CYGPATH_W) 'luatexdir/utils/unistring.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/utils/unistring.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/fontforge/libff_a-ttfspecial.obj `if test -f 'luatexdir/luafontloader/fontforge/fontforge/ttfspecial.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/fontforge/ttfspecial.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/fontforge/ttfspecial.c'; fi` -luatexdir/utils/liblua53tex_a-utils.o: luatexdir/utils/utils.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/utils/liblua53tex_a-utils.o -MD -MP -MF luatexdir/utils/$(DEPDIR)/liblua53tex_a-utils.Tpo -c -o luatexdir/utils/liblua53tex_a-utils.o `test -f 'luatexdir/utils/utils.c' || echo '$(srcdir)/'`luatexdir/utils/utils.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/utils/$(DEPDIR)/liblua53tex_a-utils.Tpo luatexdir/utils/$(DEPDIR)/liblua53tex_a-utils.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/utils/utils.c' object='luatexdir/utils/liblua53tex_a-utils.o' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/gutils/libff_a-fsys.o: luatexdir/luafontloader/fontforge/gutils/fsys.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/gutils/libff_a-fsys.o -MD -MP -MF luatexdir/luafontloader/fontforge/gutils/$(DEPDIR)/libff_a-fsys.Tpo -c -o luatexdir/luafontloader/fontforge/gutils/libff_a-fsys.o `test -f 'luatexdir/luafontloader/fontforge/gutils/fsys.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/gutils/fsys.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/gutils/$(DEPDIR)/libff_a-fsys.Tpo luatexdir/luafontloader/fontforge/gutils/$(DEPDIR)/libff_a-fsys.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/gutils/fsys.c' object='luatexdir/luafontloader/fontforge/gutils/libff_a-fsys.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/utils/liblua53tex_a-utils.o `test -f 'luatexdir/utils/utils.c' || echo '$(srcdir)/'`luatexdir/utils/utils.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/gutils/libff_a-fsys.o `test -f 'luatexdir/luafontloader/fontforge/gutils/fsys.c' || echo '$(srcdir)/'`luatexdir/luafontloader/fontforge/gutils/fsys.c -luatexdir/utils/liblua53tex_a-utils.obj: luatexdir/utils/utils.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/utils/liblua53tex_a-utils.obj -MD -MP -MF luatexdir/utils/$(DEPDIR)/liblua53tex_a-utils.Tpo -c -o luatexdir/utils/liblua53tex_a-utils.obj `if test -f 'luatexdir/utils/utils.c'; then $(CYGPATH_W) 'luatexdir/utils/utils.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/utils/utils.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/utils/$(DEPDIR)/liblua53tex_a-utils.Tpo luatexdir/utils/$(DEPDIR)/liblua53tex_a-utils.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/utils/utils.c' object='luatexdir/utils/liblua53tex_a-utils.obj' libtool=no @AMDEPBACKSLASH@ +luatexdir/luafontloader/fontforge/gutils/libff_a-fsys.obj: luatexdir/luafontloader/fontforge/gutils/fsys.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -MT luatexdir/luafontloader/fontforge/gutils/libff_a-fsys.obj -MD -MP -MF luatexdir/luafontloader/fontforge/gutils/$(DEPDIR)/libff_a-fsys.Tpo -c -o luatexdir/luafontloader/fontforge/gutils/libff_a-fsys.obj `if test -f 'luatexdir/luafontloader/fontforge/gutils/fsys.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/gutils/fsys.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/gutils/fsys.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luafontloader/fontforge/gutils/$(DEPDIR)/libff_a-fsys.Tpo luatexdir/luafontloader/fontforge/gutils/$(DEPDIR)/libff_a-fsys.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luafontloader/fontforge/gutils/fsys.c' object='luatexdir/luafontloader/fontforge/gutils/libff_a-fsys.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/utils/liblua53tex_a-utils.obj `if test -f 'luatexdir/utils/utils.c'; then $(CYGPATH_W) 'luatexdir/utils/utils.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/utils/utils.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/gutils/libff_a-fsys.obj `if test -f 'luatexdir/luafontloader/fontforge/gutils/fsys.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/gutils/fsys.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/gutils/fsys.c'; fi` -synctexdir/liblua53tex_a-synctex.o: synctexdir/synctex.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT synctexdir/liblua53tex_a-synctex.o -MD -MP -MF synctexdir/$(DEPDIR)/liblua53tex_a-synctex.Tpo -c -o synctexdir/liblua53tex_a-synctex.o `test -f 'synctexdir/synctex.c' || echo '$(srcdir)/'`synctexdir/synctex.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) synctexdir/$(DEPDIR)/liblua53tex_a-synctex.Tpo synctexdir/$(DEPDIR)/liblua53tex_a-synctex.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='synctexdir/synctex.c' object='synctexdir/liblua53tex_a-synctex.o' libtool=no @AMDEPBACKSLASH@ +ptexdir/libkanji_a-kanji.o: ptexdir/kanji.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libkanji_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ptexdir/libkanji_a-kanji.o -MD -MP -MF ptexdir/$(DEPDIR)/libkanji_a-kanji.Tpo -c -o ptexdir/libkanji_a-kanji.o `test -f 'ptexdir/kanji.c' || echo '$(srcdir)/'`ptexdir/kanji.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ptexdir/$(DEPDIR)/libkanji_a-kanji.Tpo ptexdir/$(DEPDIR)/libkanji_a-kanji.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ptexdir/kanji.c' object='ptexdir/libkanji_a-kanji.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o synctexdir/liblua53tex_a-synctex.o `test -f 'synctexdir/synctex.c' || echo '$(srcdir)/'`synctexdir/synctex.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libkanji_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ptexdir/libkanji_a-kanji.o `test -f 'ptexdir/kanji.c' || echo '$(srcdir)/'`ptexdir/kanji.c -synctexdir/liblua53tex_a-synctex.obj: synctexdir/synctex.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT synctexdir/liblua53tex_a-synctex.obj -MD -MP -MF synctexdir/$(DEPDIR)/liblua53tex_a-synctex.Tpo -c -o synctexdir/liblua53tex_a-synctex.obj `if test -f 'synctexdir/synctex.c'; then $(CYGPATH_W) 'synctexdir/synctex.c'; else $(CYGPATH_W) '$(srcdir)/synctexdir/synctex.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) synctexdir/$(DEPDIR)/liblua53tex_a-synctex.Tpo synctexdir/$(DEPDIR)/liblua53tex_a-synctex.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='synctexdir/synctex.c' object='synctexdir/liblua53tex_a-synctex.obj' libtool=no @AMDEPBACKSLASH@ +ptexdir/libkanji_a-kanji.obj: ptexdir/kanji.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libkanji_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ptexdir/libkanji_a-kanji.obj -MD -MP -MF ptexdir/$(DEPDIR)/libkanji_a-kanji.Tpo -c -o ptexdir/libkanji_a-kanji.obj `if test -f 'ptexdir/kanji.c'; then $(CYGPATH_W) 'ptexdir/kanji.c'; else $(CYGPATH_W) '$(srcdir)/ptexdir/kanji.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ptexdir/$(DEPDIR)/libkanji_a-kanji.Tpo ptexdir/$(DEPDIR)/libkanji_a-kanji.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ptexdir/kanji.c' object='ptexdir/libkanji_a-kanji.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblua53tex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o synctexdir/liblua53tex_a-synctex.obj `if test -f 'synctexdir/synctex.c'; then $(CYGPATH_W) 'synctexdir/synctex.c'; else $(CYGPATH_W) '$(srcdir)/synctexdir/synctex.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libkanji_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ptexdir/libkanji_a-kanji.obj `if test -f 'ptexdir/kanji.c'; then $(CYGPATH_W) 'ptexdir/kanji.c'; else $(CYGPATH_W) '$(srcdir)/ptexdir/kanji.c'; fi` luatexdir/luaffi/libluaffi_a-call.o: luatexdir/luaffi/call.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaffi_a_CPPFLAGS) $(CPPFLAGS) $(libluaffi_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaffi/libluaffi_a-call.o -MD -MP -MF luatexdir/luaffi/$(DEPDIR)/libluaffi_a-call.Tpo -c -o luatexdir/luaffi/libluaffi_a-call.o `test -f 'luatexdir/luaffi/call.c' || echo '$(srcdir)/'`luatexdir/luaffi/call.c @@ -11941,6 +8636,48 @@ luatexdir/luapplib/libluajitpplib_a-ppstream.obj: luatexdir/luapplib/ppstream.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitpplib_a_CPPFLAGS) $(CPPFLAGS) $(libluajitpplib_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/libluajitpplib_a-ppstream.obj `if test -f 'luatexdir/luapplib/ppstream.c'; then $(CYGPATH_W) 'luatexdir/luapplib/ppstream.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/ppstream.c'; fi` +luatexdir/luapplib/libluajitpplib_a-pptest1.o: luatexdir/luapplib/pptest1.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitpplib_a_CPPFLAGS) $(CPPFLAGS) $(libluajitpplib_a_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/libluajitpplib_a-pptest1.o -MD -MP -MF luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pptest1.Tpo -c -o luatexdir/luapplib/libluajitpplib_a-pptest1.o `test -f 'luatexdir/luapplib/pptest1.c' || echo '$(srcdir)/'`luatexdir/luapplib/pptest1.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pptest1.Tpo luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pptest1.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/pptest1.c' object='luatexdir/luapplib/libluajitpplib_a-pptest1.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitpplib_a_CPPFLAGS) $(CPPFLAGS) $(libluajitpplib_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/libluajitpplib_a-pptest1.o `test -f 'luatexdir/luapplib/pptest1.c' || echo '$(srcdir)/'`luatexdir/luapplib/pptest1.c + +luatexdir/luapplib/libluajitpplib_a-pptest1.obj: luatexdir/luapplib/pptest1.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitpplib_a_CPPFLAGS) $(CPPFLAGS) $(libluajitpplib_a_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/libluajitpplib_a-pptest1.obj -MD -MP -MF luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pptest1.Tpo -c -o luatexdir/luapplib/libluajitpplib_a-pptest1.obj `if test -f 'luatexdir/luapplib/pptest1.c'; then $(CYGPATH_W) 'luatexdir/luapplib/pptest1.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/pptest1.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pptest1.Tpo luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pptest1.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/pptest1.c' object='luatexdir/luapplib/libluajitpplib_a-pptest1.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitpplib_a_CPPFLAGS) $(CPPFLAGS) $(libluajitpplib_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/libluajitpplib_a-pptest1.obj `if test -f 'luatexdir/luapplib/pptest1.c'; then $(CYGPATH_W) 'luatexdir/luapplib/pptest1.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/pptest1.c'; fi` + +luatexdir/luapplib/libluajitpplib_a-pptest2.o: luatexdir/luapplib/pptest2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitpplib_a_CPPFLAGS) $(CPPFLAGS) $(libluajitpplib_a_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/libluajitpplib_a-pptest2.o -MD -MP -MF luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pptest2.Tpo -c -o luatexdir/luapplib/libluajitpplib_a-pptest2.o `test -f 'luatexdir/luapplib/pptest2.c' || echo '$(srcdir)/'`luatexdir/luapplib/pptest2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pptest2.Tpo luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pptest2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/pptest2.c' object='luatexdir/luapplib/libluajitpplib_a-pptest2.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitpplib_a_CPPFLAGS) $(CPPFLAGS) $(libluajitpplib_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/libluajitpplib_a-pptest2.o `test -f 'luatexdir/luapplib/pptest2.c' || echo '$(srcdir)/'`luatexdir/luapplib/pptest2.c + +luatexdir/luapplib/libluajitpplib_a-pptest2.obj: luatexdir/luapplib/pptest2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitpplib_a_CPPFLAGS) $(CPPFLAGS) $(libluajitpplib_a_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/libluajitpplib_a-pptest2.obj -MD -MP -MF luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pptest2.Tpo -c -o luatexdir/luapplib/libluajitpplib_a-pptest2.obj `if test -f 'luatexdir/luapplib/pptest2.c'; then $(CYGPATH_W) 'luatexdir/luapplib/pptest2.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/pptest2.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pptest2.Tpo luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pptest2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/pptest2.c' object='luatexdir/luapplib/libluajitpplib_a-pptest2.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitpplib_a_CPPFLAGS) $(CPPFLAGS) $(libluajitpplib_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/libluajitpplib_a-pptest2.obj `if test -f 'luatexdir/luapplib/pptest2.c'; then $(CYGPATH_W) 'luatexdir/luapplib/pptest2.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/pptest2.c'; fi` + +luatexdir/luapplib/libluajitpplib_a-pptest3.o: luatexdir/luapplib/pptest3.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitpplib_a_CPPFLAGS) $(CPPFLAGS) $(libluajitpplib_a_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/libluajitpplib_a-pptest3.o -MD -MP -MF luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pptest3.Tpo -c -o luatexdir/luapplib/libluajitpplib_a-pptest3.o `test -f 'luatexdir/luapplib/pptest3.c' || echo '$(srcdir)/'`luatexdir/luapplib/pptest3.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pptest3.Tpo luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pptest3.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/pptest3.c' object='luatexdir/luapplib/libluajitpplib_a-pptest3.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitpplib_a_CPPFLAGS) $(CPPFLAGS) $(libluajitpplib_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/libluajitpplib_a-pptest3.o `test -f 'luatexdir/luapplib/pptest3.c' || echo '$(srcdir)/'`luatexdir/luapplib/pptest3.c + +luatexdir/luapplib/libluajitpplib_a-pptest3.obj: luatexdir/luapplib/pptest3.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitpplib_a_CPPFLAGS) $(CPPFLAGS) $(libluajitpplib_a_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/libluajitpplib_a-pptest3.obj -MD -MP -MF luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pptest3.Tpo -c -o luatexdir/luapplib/libluajitpplib_a-pptest3.obj `if test -f 'luatexdir/luapplib/pptest3.c'; then $(CYGPATH_W) 'luatexdir/luapplib/pptest3.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/pptest3.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pptest3.Tpo luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pptest3.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/pptest3.c' object='luatexdir/luapplib/libluajitpplib_a-pptest3.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitpplib_a_CPPFLAGS) $(CPPFLAGS) $(libluajitpplib_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/libluajitpplib_a-pptest3.obj `if test -f 'luatexdir/luapplib/pptest3.c'; then $(CYGPATH_W) 'luatexdir/luapplib/pptest3.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/pptest3.c'; fi` + luatexdir/luapplib/libluajitpplib_a-ppxref.o: luatexdir/luapplib/ppxref.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajitpplib_a_CPPFLAGS) $(CPPFLAGS) $(libluajitpplib_a_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/libluajitpplib_a-ppxref.o -MD -MP -MF luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-ppxref.Tpo -c -o luatexdir/luapplib/libluajitpplib_a-ppxref.o `test -f 'luatexdir/luapplib/ppxref.c' || echo '$(srcdir)/'`luatexdir/luapplib/ppxref.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-ppxref.Tpo luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-ppxref.Po @@ -14181,6 +10918,48 @@ luatexdir/luapplib/libluapplib_a-ppstream.obj: luatexdir/luapplib/ppstream.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluapplib_a_CPPFLAGS) $(CPPFLAGS) $(libluapplib_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/libluapplib_a-ppstream.obj `if test -f 'luatexdir/luapplib/ppstream.c'; then $(CYGPATH_W) 'luatexdir/luapplib/ppstream.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/ppstream.c'; fi` +luatexdir/luapplib/libluapplib_a-pptest1.o: luatexdir/luapplib/pptest1.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluapplib_a_CPPFLAGS) $(CPPFLAGS) $(libluapplib_a_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/libluapplib_a-pptest1.o -MD -MP -MF luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pptest1.Tpo -c -o luatexdir/luapplib/libluapplib_a-pptest1.o `test -f 'luatexdir/luapplib/pptest1.c' || echo '$(srcdir)/'`luatexdir/luapplib/pptest1.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pptest1.Tpo luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pptest1.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/pptest1.c' object='luatexdir/luapplib/libluapplib_a-pptest1.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluapplib_a_CPPFLAGS) $(CPPFLAGS) $(libluapplib_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/libluapplib_a-pptest1.o `test -f 'luatexdir/luapplib/pptest1.c' || echo '$(srcdir)/'`luatexdir/luapplib/pptest1.c + +luatexdir/luapplib/libluapplib_a-pptest1.obj: luatexdir/luapplib/pptest1.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluapplib_a_CPPFLAGS) $(CPPFLAGS) $(libluapplib_a_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/libluapplib_a-pptest1.obj -MD -MP -MF luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pptest1.Tpo -c -o luatexdir/luapplib/libluapplib_a-pptest1.obj `if test -f 'luatexdir/luapplib/pptest1.c'; then $(CYGPATH_W) 'luatexdir/luapplib/pptest1.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/pptest1.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pptest1.Tpo luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pptest1.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/pptest1.c' object='luatexdir/luapplib/libluapplib_a-pptest1.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluapplib_a_CPPFLAGS) $(CPPFLAGS) $(libluapplib_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/libluapplib_a-pptest1.obj `if test -f 'luatexdir/luapplib/pptest1.c'; then $(CYGPATH_W) 'luatexdir/luapplib/pptest1.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/pptest1.c'; fi` + +luatexdir/luapplib/libluapplib_a-pptest2.o: luatexdir/luapplib/pptest2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluapplib_a_CPPFLAGS) $(CPPFLAGS) $(libluapplib_a_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/libluapplib_a-pptest2.o -MD -MP -MF luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pptest2.Tpo -c -o luatexdir/luapplib/libluapplib_a-pptest2.o `test -f 'luatexdir/luapplib/pptest2.c' || echo '$(srcdir)/'`luatexdir/luapplib/pptest2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pptest2.Tpo luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pptest2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/pptest2.c' object='luatexdir/luapplib/libluapplib_a-pptest2.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluapplib_a_CPPFLAGS) $(CPPFLAGS) $(libluapplib_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/libluapplib_a-pptest2.o `test -f 'luatexdir/luapplib/pptest2.c' || echo '$(srcdir)/'`luatexdir/luapplib/pptest2.c + +luatexdir/luapplib/libluapplib_a-pptest2.obj: luatexdir/luapplib/pptest2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluapplib_a_CPPFLAGS) $(CPPFLAGS) $(libluapplib_a_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/libluapplib_a-pptest2.obj -MD -MP -MF luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pptest2.Tpo -c -o luatexdir/luapplib/libluapplib_a-pptest2.obj `if test -f 'luatexdir/luapplib/pptest2.c'; then $(CYGPATH_W) 'luatexdir/luapplib/pptest2.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/pptest2.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pptest2.Tpo luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pptest2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/pptest2.c' object='luatexdir/luapplib/libluapplib_a-pptest2.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluapplib_a_CPPFLAGS) $(CPPFLAGS) $(libluapplib_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/libluapplib_a-pptest2.obj `if test -f 'luatexdir/luapplib/pptest2.c'; then $(CYGPATH_W) 'luatexdir/luapplib/pptest2.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/pptest2.c'; fi` + +luatexdir/luapplib/libluapplib_a-pptest3.o: luatexdir/luapplib/pptest3.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluapplib_a_CPPFLAGS) $(CPPFLAGS) $(libluapplib_a_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/libluapplib_a-pptest3.o -MD -MP -MF luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pptest3.Tpo -c -o luatexdir/luapplib/libluapplib_a-pptest3.o `test -f 'luatexdir/luapplib/pptest3.c' || echo '$(srcdir)/'`luatexdir/luapplib/pptest3.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pptest3.Tpo luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pptest3.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/pptest3.c' object='luatexdir/luapplib/libluapplib_a-pptest3.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluapplib_a_CPPFLAGS) $(CPPFLAGS) $(libluapplib_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/libluapplib_a-pptest3.o `test -f 'luatexdir/luapplib/pptest3.c' || echo '$(srcdir)/'`luatexdir/luapplib/pptest3.c + +luatexdir/luapplib/libluapplib_a-pptest3.obj: luatexdir/luapplib/pptest3.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluapplib_a_CPPFLAGS) $(CPPFLAGS) $(libluapplib_a_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/libluapplib_a-pptest3.obj -MD -MP -MF luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pptest3.Tpo -c -o luatexdir/luapplib/libluapplib_a-pptest3.obj `if test -f 'luatexdir/luapplib/pptest3.c'; then $(CYGPATH_W) 'luatexdir/luapplib/pptest3.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/pptest3.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pptest3.Tpo luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pptest3.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luapplib/pptest3.c' object='luatexdir/luapplib/libluapplib_a-pptest3.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluapplib_a_CPPFLAGS) $(CPPFLAGS) $(libluapplib_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luapplib/libluapplib_a-pptest3.obj `if test -f 'luatexdir/luapplib/pptest3.c'; then $(CYGPATH_W) 'luatexdir/luapplib/pptest3.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luapplib/pptest3.c'; fi` + luatexdir/luapplib/libluapplib_a-ppxref.o: luatexdir/luapplib/ppxref.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluapplib_a_CPPFLAGS) $(CPPFLAGS) $(libluapplib_a_CFLAGS) $(CFLAGS) -MT luatexdir/luapplib/libluapplib_a-ppxref.o -MD -MP -MF luatexdir/luapplib/$(DEPDIR)/libluapplib_a-ppxref.Tpo -c -o luatexdir/luapplib/libluapplib_a-ppxref.o `test -f 'luatexdir/luapplib/ppxref.c' || echo '$(srcdir)/'`luatexdir/luapplib/ppxref.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/luapplib/$(DEPDIR)/libluapplib_a-ppxref.Tpo luatexdir/luapplib/$(DEPDIR)/libluapplib_a-ppxref.Po @@ -17345,20 +14124,6 @@ call_luatex-callexe.obj: callexe.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(call_luatex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o call_luatex-callexe.obj `if test -f 'callexe.c'; then $(CYGPATH_W) 'callexe.c'; else $(CYGPATH_W) '$(srcdir)/callexe.c'; fi` -call_luatex53-callexe.o: callexe.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(call_luatex53_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT call_luatex53-callexe.o -MD -MP -MF $(DEPDIR)/call_luatex53-callexe.Tpo -c -o call_luatex53-callexe.o `test -f 'callexe.c' || echo '$(srcdir)/'`callexe.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/call_luatex53-callexe.Tpo $(DEPDIR)/call_luatex53-callexe.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='callexe.c' object='call_luatex53-callexe.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(call_luatex53_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o call_luatex53-callexe.o `test -f 'callexe.c' || echo '$(srcdir)/'`callexe.c - -call_luatex53-callexe.obj: callexe.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(call_luatex53_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT call_luatex53-callexe.obj -MD -MP -MF $(DEPDIR)/call_luatex53-callexe.Tpo -c -o call_luatex53-callexe.obj `if test -f 'callexe.c'; then $(CYGPATH_W) 'callexe.c'; else $(CYGPATH_W) '$(srcdir)/callexe.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/call_luatex53-callexe.Tpo $(DEPDIR)/call_luatex53-callexe.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='callexe.c' object='call_luatex53-callexe.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(call_luatex53_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o call_luatex53-callexe.obj `if test -f 'callexe.c'; then $(CYGPATH_W) 'callexe.c'; else $(CYGPATH_W) '$(srcdir)/callexe.c'; fi` - call_mf-callexe.o: callexe.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(call_mf_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT call_mf-callexe.o -MD -MP -MF $(DEPDIR)/call_mf-callexe.Tpo -c -o call_mf-callexe.o `test -f 'callexe.c' || echo '$(srcdir)/'`callexe.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/call_mf-callexe.Tpo $(DEPDIR)/call_mf-callexe.Po @@ -17723,34 +14488,6 @@ mplibdir/luatex-lmplib.obj: mplibdir/lmplib.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luatex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mplibdir/luatex-lmplib.obj `if test -f 'mplibdir/lmplib.c'; then $(CYGPATH_W) 'mplibdir/lmplib.c'; else $(CYGPATH_W) '$(srcdir)/mplibdir/lmplib.c'; fi` -luatexdir/luatex53-luatex.o: luatexdir/luatex.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luatex53_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luatex53-luatex.o -MD -MP -MF luatexdir/$(DEPDIR)/luatex53-luatex.Tpo -c -o luatexdir/luatex53-luatex.o `test -f 'luatexdir/luatex.c' || echo '$(srcdir)/'`luatexdir/luatex.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/$(DEPDIR)/luatex53-luatex.Tpo luatexdir/$(DEPDIR)/luatex53-luatex.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luatex.c' object='luatexdir/luatex53-luatex.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luatex53_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luatex53-luatex.o `test -f 'luatexdir/luatex.c' || echo '$(srcdir)/'`luatexdir/luatex.c - -luatexdir/luatex53-luatex.obj: luatexdir/luatex.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luatex53_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/luatex53-luatex.obj -MD -MP -MF luatexdir/$(DEPDIR)/luatex53-luatex.Tpo -c -o luatexdir/luatex53-luatex.obj `if test -f 'luatexdir/luatex.c'; then $(CYGPATH_W) 'luatexdir/luatex.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luatex.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/$(DEPDIR)/luatex53-luatex.Tpo luatexdir/$(DEPDIR)/luatex53-luatex.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/luatex.c' object='luatexdir/luatex53-luatex.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luatex53_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/luatex53-luatex.obj `if test -f 'luatexdir/luatex.c'; then $(CYGPATH_W) 'luatexdir/luatex.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luatex.c'; fi` - -mplibdir/luatex53-lmplib.o: mplibdir/lmplib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luatex53_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mplibdir/luatex53-lmplib.o -MD -MP -MF mplibdir/$(DEPDIR)/luatex53-lmplib.Tpo -c -o mplibdir/luatex53-lmplib.o `test -f 'mplibdir/lmplib.c' || echo '$(srcdir)/'`mplibdir/lmplib.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) mplibdir/$(DEPDIR)/luatex53-lmplib.Tpo mplibdir/$(DEPDIR)/luatex53-lmplib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mplibdir/lmplib.c' object='mplibdir/luatex53-lmplib.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luatex53_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mplibdir/luatex53-lmplib.o `test -f 'mplibdir/lmplib.c' || echo '$(srcdir)/'`mplibdir/lmplib.c - -mplibdir/luatex53-lmplib.obj: mplibdir/lmplib.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luatex53_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mplibdir/luatex53-lmplib.obj -MD -MP -MF mplibdir/$(DEPDIR)/luatex53-lmplib.Tpo -c -o mplibdir/luatex53-lmplib.obj `if test -f 'mplibdir/lmplib.c'; then $(CYGPATH_W) 'mplibdir/lmplib.c'; else $(CYGPATH_W) '$(srcdir)/mplibdir/lmplib.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) mplibdir/$(DEPDIR)/luatex53-lmplib.Tpo mplibdir/$(DEPDIR)/luatex53-lmplib.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mplibdir/lmplib.c' object='mplibdir/luatex53-lmplib.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(luatex53_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mplibdir/luatex53-lmplib.obj `if test -f 'mplibdir/lmplib.c'; then $(CYGPATH_W) 'mplibdir/lmplib.c'; else $(CYGPATH_W) '$(srcdir)/mplibdir/lmplib.c'; fi` - libmd5/md5main-md5main.o: libmd5/md5main.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(md5main_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmd5/md5main-md5main.o -MD -MP -MF libmd5/$(DEPDIR)/md5main-md5main.Tpo -c -o libmd5/md5main-md5main.o `test -f 'libmd5/md5main.c' || echo '$(srcdir)/'`libmd5/md5main.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libmd5/$(DEPDIR)/md5main-md5main.Tpo libmd5/$(DEPDIR)/md5main-md5main.Po @@ -19768,7 +16505,6 @@ distclean: distclean-recursive -rm -f ./$(DEPDIR)/bibtex.Po -rm -f ./$(DEPDIR)/call_luajittex-callexe.Po -rm -f ./$(DEPDIR)/call_luatex-callexe.Po - -rm -f ./$(DEPDIR)/call_luatex53-callexe.Po -rm -f ./$(DEPDIR)/call_mf-callexe.Po -rm -f ./$(DEPDIR)/call_mflua-callexe.Po -rm -f ./$(DEPDIR)/call_mfluajit-callexe.Po @@ -19900,30 +16636,8 @@ distclean: distclean-recursive -rm -f libmd5/$(DEPDIR)/md5main-md5main.Po -rm -f luatexdir/$(DEPDIR)/luajittex-luatex.Po -rm -f luatexdir/$(DEPDIR)/luatex-luatex.Po - -rm -f luatexdir/$(DEPDIR)/luatex53-luatex.Po - -rm -f luatexdir/dvi/$(DEPDIR)/liblua53tex_a-dvigen.Po -rm -f luatexdir/dvi/$(DEPDIR)/libluajittex_a-dvigen.Po -rm -f luatexdir/dvi/$(DEPDIR)/libluatex_a-dvigen.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-dofont.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-luafont.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-mapfile.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-pkin.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-sfnt.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-texfont.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-tfmofm.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-tounicode.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-tt_glyf.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-tt_table.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-vfovf.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-vfpacket.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-writecff.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-writeenc.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-writefont.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-writet1.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-writet3.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-writettf.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-writetype0.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-writetype2.Po -rm -f luatexdir/font/$(DEPDIR)/libluajittex_a-dofont.Po -rm -f luatexdir/font/$(DEPDIR)/libluajittex_a-luafont.Po -rm -f luatexdir/font/$(DEPDIR)/libluajittex_a-mapfile.Po @@ -19964,12 +16678,6 @@ distclean: distclean-recursive -rm -f luatexdir/font/$(DEPDIR)/libluatex_a-writettf.Po -rm -f luatexdir/font/$(DEPDIR)/libluatex_a-writetype0.Po -rm -f luatexdir/font/$(DEPDIR)/libluatex_a-writetype2.Po - -rm -f luatexdir/image/$(DEPDIR)/liblua53tex_a-pdftoepdf.Po - -rm -f luatexdir/image/$(DEPDIR)/liblua53tex_a-writeimg.Po - -rm -f luatexdir/image/$(DEPDIR)/liblua53tex_a-writejbig2.Po - -rm -f luatexdir/image/$(DEPDIR)/liblua53tex_a-writejp2.Po - -rm -f luatexdir/image/$(DEPDIR)/liblua53tex_a-writejpg.Po - -rm -f luatexdir/image/$(DEPDIR)/liblua53tex_a-writepng.Po -rm -f luatexdir/image/$(DEPDIR)/libluajittex_a-pdftoepdf.Po -rm -f luatexdir/image/$(DEPDIR)/libluajittex_a-writeimg.Po -rm -f luatexdir/image/$(DEPDIR)/libluajittex_a-writejbig2.Po @@ -19982,40 +16690,12 @@ distclean: distclean-recursive -rm -f luatexdir/image/$(DEPDIR)/libluatex_a-writejp2.Po -rm -f luatexdir/image/$(DEPDIR)/libluatex_a-writejpg.Po -rm -f luatexdir/image/$(DEPDIR)/libluatex_a-writepng.Po - -rm -f luatexdir/lang/$(DEPDIR)/liblua53tex_a-hnjalloc.Po - -rm -f luatexdir/lang/$(DEPDIR)/liblua53tex_a-hyphen.Po - -rm -f luatexdir/lang/$(DEPDIR)/liblua53tex_a-texlang.Po -rm -f luatexdir/lang/$(DEPDIR)/libluajittex_a-hnjalloc.Po -rm -f luatexdir/lang/$(DEPDIR)/libluajittex_a-hyphen.Po -rm -f luatexdir/lang/$(DEPDIR)/libluajittex_a-texlang.Po -rm -f luatexdir/lang/$(DEPDIR)/libluatex_a-hnjalloc.Po -rm -f luatexdir/lang/$(DEPDIR)/libluatex_a-hyphen.Po -rm -f luatexdir/lang/$(DEPDIR)/libluatex_a-texlang.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-helpers.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-lcallbacklib.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-lfontlib.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-limglib.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-liolibext.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-lkpselib.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-llanglib.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-llualib.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-lnewtokenlib.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-lnodelib.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-loslibext.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-lpdfelib.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-lpdflib.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-lpdfscannerlib.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-lstatslib.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-lstrlibext.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-ltexiolib.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-ltexlib.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-luainit.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-luanode.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-luastuff.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-luatex-core.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-luatoken.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-mplibstuff.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-texluac.Po -rm -f luatexdir/lua/$(DEPDIR)/libluajittex_a-helpers.Po -rm -f luatexdir/lua/$(DEPDIR)/libluajittex_a-lcallbacklib.Po -rm -f luatexdir/lua/$(DEPDIR)/libluajittex_a-lfontlib.Po @@ -20068,15 +16748,10 @@ distclean: distclean-recursive -rm -f luatexdir/lua/$(DEPDIR)/libluatex_a-texluac.Po -rm -f luatexdir/lua/$(DEPDIR)/libmflua_a-lkpselib.Po -rm -f luatexdir/lua/$(DEPDIR)/libmfluajit_a-lkpselib.Po - -rm -f luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-call.Po - -rm -f luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-ctype.Po - -rm -f luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-ffi.Po - -rm -f luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-parser.Po -rm -f luatexdir/luaffi/$(DEPDIR)/libluaffi_a-call.Po -rm -f luatexdir/luaffi/$(DEPDIR)/libluaffi_a-ctype.Po -rm -f luatexdir/luaffi/$(DEPDIR)/libluaffi_a-ffi.Po -rm -f luatexdir/luaffi/$(DEPDIR)/libluaffi_a-parser.Po - -rm -f luatexdir/luafilesystem/src/$(DEPDIR)/liblua53misc_a-lfs.Po -rm -f luatexdir/luafilesystem/src/$(DEPDIR)/libluajitmisc_a-lfs.Po -rm -f luatexdir/luafilesystem/src/$(DEPDIR)/libluamisc_a-lfs.Po -rm -f luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-autohint.Po @@ -20121,34 +16796,25 @@ distclean: distclean-recursive -rm -f luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-tottfgpos.Po -rm -f luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-ttfspecial.Po -rm -f luatexdir/luafontloader/fontforge/gutils/$(DEPDIR)/libff_a-fsys.Po - -rm -f luatexdir/luafontloader/src/$(DEPDIR)/liblua53tex_a-ffdummies.Po - -rm -f luatexdir/luafontloader/src/$(DEPDIR)/liblua53tex_a-luafflib.Po -rm -f luatexdir/luafontloader/src/$(DEPDIR)/libluajittex_a-ffdummies.Po -rm -f luatexdir/luafontloader/src/$(DEPDIR)/libluajittex_a-luafflib.Po -rm -f luatexdir/luafontloader/src/$(DEPDIR)/libluatex_a-ffdummies.Po -rm -f luatexdir/luafontloader/src/$(DEPDIR)/libluatex_a-luafflib.Po - -rm -f luatexdir/luamd5/$(DEPDIR)/liblua53misc_a-md5.Po - -rm -f luatexdir/luamd5/$(DEPDIR)/liblua53misc_a-md5lib.Po -rm -f luatexdir/luamd5/$(DEPDIR)/libluajitmisc_a-md5.Po -rm -f luatexdir/luamd5/$(DEPDIR)/libluajitmisc_a-md5lib.Po -rm -f luatexdir/luamd5/$(DEPDIR)/libluamisc_a-md5.Po -rm -f luatexdir/luamd5/$(DEPDIR)/libluamisc_a-md5lib.Po - -rm -f luatexdir/luapeg/$(DEPDIR)/liblua53misc_a-lpeg.Po -rm -f luatexdir/luapeg/$(DEPDIR)/libluajitmisc_a-lpeg.Po -rm -f luatexdir/luapeg/$(DEPDIR)/libluamisc_a-lpeg.Po - -rm -f luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-pparray.Po - -rm -f luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppcrypt.Po - -rm -f luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppdict.Po - -rm -f luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppheap.Po - -rm -f luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppload.Po - -rm -f luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppstream.Po - -rm -f luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppxref.Po -rm -f luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pparray.Po -rm -f luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-ppcrypt.Po -rm -f luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-ppdict.Po -rm -f luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-ppheap.Po -rm -f luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-ppload.Po -rm -f luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-ppstream.Po + -rm -f luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pptest1.Po + -rm -f luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pptest2.Po + -rm -f luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pptest3.Po -rm -f luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-ppxref.Po -rm -f luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pparray.Po -rm -f luatexdir/luapplib/$(DEPDIR)/libluapplib_a-ppcrypt.Po @@ -20156,18 +16822,10 @@ distclean: distclean-recursive -rm -f luatexdir/luapplib/$(DEPDIR)/libluapplib_a-ppheap.Po -rm -f luatexdir/luapplib/$(DEPDIR)/libluapplib_a-ppload.Po -rm -f luatexdir/luapplib/$(DEPDIR)/libluapplib_a-ppstream.Po + -rm -f luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pptest1.Po + -rm -f luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pptest2.Po + -rm -f luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pptest3.Po -rm -f luatexdir/luapplib/$(DEPDIR)/libluapplib_a-ppxref.Po - -rm -f luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilbasexx.Po - -rm -f luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilcrypt.Po - -rm -f luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilflate.Po - -rm -f luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilfpred.Po - -rm -f luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utiliof.Po - -rm -f luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utillog.Po - -rm -f luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utillzw.Po - -rm -f luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilmd5.Po - -rm -f luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilmem.Po - -rm -f luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilnumber.Po - -rm -f luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilsha.Po -rm -f luatexdir/luapplib/util/$(DEPDIR)/libluajitpplib_a-utilbasexx.Po -rm -f luatexdir/luapplib/util/$(DEPDIR)/libluajitpplib_a-utilcrypt.Po -rm -f luatexdir/luapplib/util/$(DEPDIR)/libluajitpplib_a-utilflate.Po @@ -20190,22 +16848,6 @@ distclean: distclean-recursive -rm -f luatexdir/luapplib/util/$(DEPDIR)/libluapplib_a-utilmem.Po -rm -f luatexdir/luapplib/util/$(DEPDIR)/libluapplib_a-utilnumber.Po -rm -f luatexdir/luapplib/util/$(DEPDIR)/libluapplib_a-utilsha.Po - -rm -f luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-auxiliar.Po - -rm -f luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-buffer.Po - -rm -f luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-compat.Po - -rm -f luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-except.Po - -rm -f luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-inet.Po - -rm -f luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-io.Po - -rm -f luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-lua_preload.Po - -rm -f luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-luasocket.Po - -rm -f luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-mime.Po - -rm -f luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-options.Po - -rm -f luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-select.Po - -rm -f luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-serial.Po - -rm -f luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-socket.Po - -rm -f luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-tcp.Po - -rm -f luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-timeout.Po - -rm -f luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-udp.Po -rm -f luatexdir/luasocket/src/$(DEPDIR)/libluajitsocket_a-auxiliar.Po -rm -f luatexdir/luasocket/src/$(DEPDIR)/libluajitsocket_a-buffer.Po -rm -f luatexdir/luasocket/src/$(DEPDIR)/libluajitsocket_a-compat.Po @@ -20238,37 +16880,12 @@ distclean: distclean-recursive -rm -f luatexdir/luasocket/src/$(DEPDIR)/libluasocket_a-tcp.Po -rm -f luatexdir/luasocket/src/$(DEPDIR)/libluasocket_a-timeout.Po -rm -f luatexdir/luasocket/src/$(DEPDIR)/libluasocket_a-udp.Po - -rm -f luatexdir/luazip/src/$(DEPDIR)/liblua53misc_a-luazip.Po -rm -f luatexdir/luazip/src/$(DEPDIR)/libluajitmisc_a-luazip.Po -rm -f luatexdir/luazip/src/$(DEPDIR)/libluamisc_a-luazip.Po - -rm -f luatexdir/luazlib/$(DEPDIR)/liblua53misc_a-lgzip.Po - -rm -f luatexdir/luazlib/$(DEPDIR)/liblua53misc_a-lzlib.Po -rm -f luatexdir/luazlib/$(DEPDIR)/libluajitmisc_a-lgzip.Po -rm -f luatexdir/luazlib/$(DEPDIR)/libluajitmisc_a-lzlib.Po -rm -f luatexdir/luazlib/$(DEPDIR)/libluamisc_a-lgzip.Po -rm -f luatexdir/luazlib/$(DEPDIR)/libluamisc_a-lzlib.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfaction.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfannot.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfcolorstack.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfdest.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdffont.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfgen.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfglyph.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfimage.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdflink.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdflistout.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfliteral.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfobj.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfoutline.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfpage.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfpagetree.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfrule.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfsaverestore.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfsetmatrix.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfshipout.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdftables.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfthread.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfxform.Po -rm -f luatexdir/pdf/$(DEPDIR)/libluajittex_a-pdfaction.Po -rm -f luatexdir/pdf/$(DEPDIR)/libluajittex_a-pdfannot.Po -rm -f luatexdir/pdf/$(DEPDIR)/libluajittex_a-pdfcolorstack.Po @@ -20313,42 +16930,8 @@ distclean: distclean-recursive -rm -f luatexdir/pdf/$(DEPDIR)/libluatex_a-pdftables.Po -rm -f luatexdir/pdf/$(DEPDIR)/libluatex_a-pdfthread.Po -rm -f luatexdir/pdf/$(DEPDIR)/libluatex_a-pdfxform.Po - -rm -f luatexdir/slnunicode/$(DEPDIR)/liblua53misc_a-slnunico.Po -rm -f luatexdir/slnunicode/$(DEPDIR)/libluajitmisc_a-slnunico.Po -rm -f luatexdir/slnunicode/$(DEPDIR)/libluamisc_a-slnunico.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-align.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-arithmetic.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-backend.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-buildpage.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-commands.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-conditional.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-directions.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-dumpdata.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-equivalents.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-errors.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-expand.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-extensions.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-filename.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-inputstack.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-linebreak.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-mainbody.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-maincontrol.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-mathcodes.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-memoryword.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-mlist.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-nesting.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-packaging.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-postlinebreak.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-primitive.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-printing.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-scanning.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-stringpool.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-texdeffont.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-texfileio.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-texmath.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-texnodes.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-textcodes.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-textoken.Po -rm -f luatexdir/tex/$(DEPDIR)/libluajittex_a-align.Po -rm -f luatexdir/tex/$(DEPDIR)/libluajittex_a-arithmetic.Po -rm -f luatexdir/tex/$(DEPDIR)/libluajittex_a-backend.Po @@ -20425,11 +17008,6 @@ distclean: distclean-recursive -rm -f luatexdir/unilib/$(DEPDIR)/libunilib_a-usprintf.Po -rm -f luatexdir/unilib/$(DEPDIR)/libunilib_a-ustring.Po -rm -f luatexdir/unilib/$(DEPDIR)/libunilib_a-utype.Po - -rm -f luatexdir/utils/$(DEPDIR)/liblua53tex_a-avl.Po - -rm -f luatexdir/utils/$(DEPDIR)/liblua53tex_a-avlstuff.Po - -rm -f luatexdir/utils/$(DEPDIR)/liblua53tex_a-managed-sa.Po - -rm -f luatexdir/utils/$(DEPDIR)/liblua53tex_a-unistring.Po - -rm -f luatexdir/utils/$(DEPDIR)/liblua53tex_a-utils.Po -rm -f luatexdir/utils/$(DEPDIR)/libluajittex_a-avl.Po -rm -f luatexdir/utils/$(DEPDIR)/libluajittex_a-avlstuff.Po -rm -f luatexdir/utils/$(DEPDIR)/libluajittex_a-managed-sa.Po @@ -20451,7 +17029,6 @@ distclean: distclean-recursive -rm -f mplibdir/$(DEPDIR)/libmputil_a-decNumber.Po -rm -f mplibdir/$(DEPDIR)/luajittex-lmplib.Po -rm -f mplibdir/$(DEPDIR)/luatex-lmplib.Po - -rm -f mplibdir/$(DEPDIR)/luatex53-lmplib.Po -rm -f pdftexdir/$(DEPDIR)/libpdftex_a-avl.Po -rm -f pdftexdir/$(DEPDIR)/libpdftex_a-avlstuff.Po -rm -f pdftexdir/$(DEPDIR)/libpdftex_a-epdf.Po @@ -20486,7 +17063,6 @@ distclean: distclean-recursive -rm -f synctexdir/$(DEPDIR)/eptex-synctex.Po -rm -f synctexdir/$(DEPDIR)/etex-synctex.Po -rm -f synctexdir/$(DEPDIR)/euptex-synctex.Po - -rm -f synctexdir/$(DEPDIR)/liblua53tex_a-synctex.Po -rm -f synctexdir/$(DEPDIR)/libluajittex_a-synctex.Po -rm -f synctexdir/$(DEPDIR)/libluatex_a-synctex.Po -rm -f synctexdir/$(DEPDIR)/libsynctex_a-synctex_parser.Po @@ -20577,7 +17153,6 @@ maintainer-clean: maintainer-clean-recursive -rm -f ./$(DEPDIR)/bibtex.Po -rm -f ./$(DEPDIR)/call_luajittex-callexe.Po -rm -f ./$(DEPDIR)/call_luatex-callexe.Po - -rm -f ./$(DEPDIR)/call_luatex53-callexe.Po -rm -f ./$(DEPDIR)/call_mf-callexe.Po -rm -f ./$(DEPDIR)/call_mflua-callexe.Po -rm -f ./$(DEPDIR)/call_mfluajit-callexe.Po @@ -20709,30 +17284,8 @@ maintainer-clean: maintainer-clean-recursive -rm -f libmd5/$(DEPDIR)/md5main-md5main.Po -rm -f luatexdir/$(DEPDIR)/luajittex-luatex.Po -rm -f luatexdir/$(DEPDIR)/luatex-luatex.Po - -rm -f luatexdir/$(DEPDIR)/luatex53-luatex.Po - -rm -f luatexdir/dvi/$(DEPDIR)/liblua53tex_a-dvigen.Po -rm -f luatexdir/dvi/$(DEPDIR)/libluajittex_a-dvigen.Po -rm -f luatexdir/dvi/$(DEPDIR)/libluatex_a-dvigen.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-dofont.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-luafont.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-mapfile.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-pkin.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-sfnt.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-texfont.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-tfmofm.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-tounicode.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-tt_glyf.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-tt_table.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-vfovf.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-vfpacket.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-writecff.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-writeenc.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-writefont.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-writet1.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-writet3.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-writettf.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-writetype0.Po - -rm -f luatexdir/font/$(DEPDIR)/liblua53tex_a-writetype2.Po -rm -f luatexdir/font/$(DEPDIR)/libluajittex_a-dofont.Po -rm -f luatexdir/font/$(DEPDIR)/libluajittex_a-luafont.Po -rm -f luatexdir/font/$(DEPDIR)/libluajittex_a-mapfile.Po @@ -20773,12 +17326,6 @@ maintainer-clean: maintainer-clean-recursive -rm -f luatexdir/font/$(DEPDIR)/libluatex_a-writettf.Po -rm -f luatexdir/font/$(DEPDIR)/libluatex_a-writetype0.Po -rm -f luatexdir/font/$(DEPDIR)/libluatex_a-writetype2.Po - -rm -f luatexdir/image/$(DEPDIR)/liblua53tex_a-pdftoepdf.Po - -rm -f luatexdir/image/$(DEPDIR)/liblua53tex_a-writeimg.Po - -rm -f luatexdir/image/$(DEPDIR)/liblua53tex_a-writejbig2.Po - -rm -f luatexdir/image/$(DEPDIR)/liblua53tex_a-writejp2.Po - -rm -f luatexdir/image/$(DEPDIR)/liblua53tex_a-writejpg.Po - -rm -f luatexdir/image/$(DEPDIR)/liblua53tex_a-writepng.Po -rm -f luatexdir/image/$(DEPDIR)/libluajittex_a-pdftoepdf.Po -rm -f luatexdir/image/$(DEPDIR)/libluajittex_a-writeimg.Po -rm -f luatexdir/image/$(DEPDIR)/libluajittex_a-writejbig2.Po @@ -20791,40 +17338,12 @@ maintainer-clean: maintainer-clean-recursive -rm -f luatexdir/image/$(DEPDIR)/libluatex_a-writejp2.Po -rm -f luatexdir/image/$(DEPDIR)/libluatex_a-writejpg.Po -rm -f luatexdir/image/$(DEPDIR)/libluatex_a-writepng.Po - -rm -f luatexdir/lang/$(DEPDIR)/liblua53tex_a-hnjalloc.Po - -rm -f luatexdir/lang/$(DEPDIR)/liblua53tex_a-hyphen.Po - -rm -f luatexdir/lang/$(DEPDIR)/liblua53tex_a-texlang.Po -rm -f luatexdir/lang/$(DEPDIR)/libluajittex_a-hnjalloc.Po -rm -f luatexdir/lang/$(DEPDIR)/libluajittex_a-hyphen.Po -rm -f luatexdir/lang/$(DEPDIR)/libluajittex_a-texlang.Po -rm -f luatexdir/lang/$(DEPDIR)/libluatex_a-hnjalloc.Po -rm -f luatexdir/lang/$(DEPDIR)/libluatex_a-hyphen.Po -rm -f luatexdir/lang/$(DEPDIR)/libluatex_a-texlang.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-helpers.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-lcallbacklib.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-lfontlib.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-limglib.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-liolibext.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-lkpselib.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-llanglib.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-llualib.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-lnewtokenlib.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-lnodelib.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-loslibext.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-lpdfelib.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-lpdflib.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-lpdfscannerlib.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-lstatslib.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-lstrlibext.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-ltexiolib.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-ltexlib.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-luainit.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-luanode.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-luastuff.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-luatex-core.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-luatoken.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-mplibstuff.Po - -rm -f luatexdir/lua/$(DEPDIR)/liblua53tex_a-texluac.Po -rm -f luatexdir/lua/$(DEPDIR)/libluajittex_a-helpers.Po -rm -f luatexdir/lua/$(DEPDIR)/libluajittex_a-lcallbacklib.Po -rm -f luatexdir/lua/$(DEPDIR)/libluajittex_a-lfontlib.Po @@ -20877,15 +17396,10 @@ maintainer-clean: maintainer-clean-recursive -rm -f luatexdir/lua/$(DEPDIR)/libluatex_a-texluac.Po -rm -f luatexdir/lua/$(DEPDIR)/libmflua_a-lkpselib.Po -rm -f luatexdir/lua/$(DEPDIR)/libmfluajit_a-lkpselib.Po - -rm -f luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-call.Po - -rm -f luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-ctype.Po - -rm -f luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-ffi.Po - -rm -f luatexdir/luaffi/$(DEPDIR)/liblua53ffi_a-parser.Po -rm -f luatexdir/luaffi/$(DEPDIR)/libluaffi_a-call.Po -rm -f luatexdir/luaffi/$(DEPDIR)/libluaffi_a-ctype.Po -rm -f luatexdir/luaffi/$(DEPDIR)/libluaffi_a-ffi.Po -rm -f luatexdir/luaffi/$(DEPDIR)/libluaffi_a-parser.Po - -rm -f luatexdir/luafilesystem/src/$(DEPDIR)/liblua53misc_a-lfs.Po -rm -f luatexdir/luafilesystem/src/$(DEPDIR)/libluajitmisc_a-lfs.Po -rm -f luatexdir/luafilesystem/src/$(DEPDIR)/libluamisc_a-lfs.Po -rm -f luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-autohint.Po @@ -20930,34 +17444,25 @@ maintainer-clean: maintainer-clean-recursive -rm -f luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-tottfgpos.Po -rm -f luatexdir/luafontloader/fontforge/fontforge/$(DEPDIR)/libff_a-ttfspecial.Po -rm -f luatexdir/luafontloader/fontforge/gutils/$(DEPDIR)/libff_a-fsys.Po - -rm -f luatexdir/luafontloader/src/$(DEPDIR)/liblua53tex_a-ffdummies.Po - -rm -f luatexdir/luafontloader/src/$(DEPDIR)/liblua53tex_a-luafflib.Po -rm -f luatexdir/luafontloader/src/$(DEPDIR)/libluajittex_a-ffdummies.Po -rm -f luatexdir/luafontloader/src/$(DEPDIR)/libluajittex_a-luafflib.Po -rm -f luatexdir/luafontloader/src/$(DEPDIR)/libluatex_a-ffdummies.Po -rm -f luatexdir/luafontloader/src/$(DEPDIR)/libluatex_a-luafflib.Po - -rm -f luatexdir/luamd5/$(DEPDIR)/liblua53misc_a-md5.Po - -rm -f luatexdir/luamd5/$(DEPDIR)/liblua53misc_a-md5lib.Po -rm -f luatexdir/luamd5/$(DEPDIR)/libluajitmisc_a-md5.Po -rm -f luatexdir/luamd5/$(DEPDIR)/libluajitmisc_a-md5lib.Po -rm -f luatexdir/luamd5/$(DEPDIR)/libluamisc_a-md5.Po -rm -f luatexdir/luamd5/$(DEPDIR)/libluamisc_a-md5lib.Po - -rm -f luatexdir/luapeg/$(DEPDIR)/liblua53misc_a-lpeg.Po -rm -f luatexdir/luapeg/$(DEPDIR)/libluajitmisc_a-lpeg.Po -rm -f luatexdir/luapeg/$(DEPDIR)/libluamisc_a-lpeg.Po - -rm -f luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-pparray.Po - -rm -f luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppcrypt.Po - -rm -f luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppdict.Po - -rm -f luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppheap.Po - -rm -f luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppload.Po - -rm -f luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppstream.Po - -rm -f luatexdir/luapplib/$(DEPDIR)/liblua53pplib_a-ppxref.Po -rm -f luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pparray.Po -rm -f luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-ppcrypt.Po -rm -f luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-ppdict.Po -rm -f luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-ppheap.Po -rm -f luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-ppload.Po -rm -f luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-ppstream.Po + -rm -f luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pptest1.Po + -rm -f luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pptest2.Po + -rm -f luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-pptest3.Po -rm -f luatexdir/luapplib/$(DEPDIR)/libluajitpplib_a-ppxref.Po -rm -f luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pparray.Po -rm -f luatexdir/luapplib/$(DEPDIR)/libluapplib_a-ppcrypt.Po @@ -20965,18 +17470,10 @@ maintainer-clean: maintainer-clean-recursive -rm -f luatexdir/luapplib/$(DEPDIR)/libluapplib_a-ppheap.Po -rm -f luatexdir/luapplib/$(DEPDIR)/libluapplib_a-ppload.Po -rm -f luatexdir/luapplib/$(DEPDIR)/libluapplib_a-ppstream.Po + -rm -f luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pptest1.Po + -rm -f luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pptest2.Po + -rm -f luatexdir/luapplib/$(DEPDIR)/libluapplib_a-pptest3.Po -rm -f luatexdir/luapplib/$(DEPDIR)/libluapplib_a-ppxref.Po - -rm -f luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilbasexx.Po - -rm -f luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilcrypt.Po - -rm -f luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilflate.Po - -rm -f luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilfpred.Po - -rm -f luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utiliof.Po - -rm -f luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utillog.Po - -rm -f luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utillzw.Po - -rm -f luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilmd5.Po - -rm -f luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilmem.Po - -rm -f luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilnumber.Po - -rm -f luatexdir/luapplib/util/$(DEPDIR)/liblua53pplib_a-utilsha.Po -rm -f luatexdir/luapplib/util/$(DEPDIR)/libluajitpplib_a-utilbasexx.Po -rm -f luatexdir/luapplib/util/$(DEPDIR)/libluajitpplib_a-utilcrypt.Po -rm -f luatexdir/luapplib/util/$(DEPDIR)/libluajitpplib_a-utilflate.Po @@ -20999,22 +17496,6 @@ maintainer-clean: maintainer-clean-recursive -rm -f luatexdir/luapplib/util/$(DEPDIR)/libluapplib_a-utilmem.Po -rm -f luatexdir/luapplib/util/$(DEPDIR)/libluapplib_a-utilnumber.Po -rm -f luatexdir/luapplib/util/$(DEPDIR)/libluapplib_a-utilsha.Po - -rm -f luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-auxiliar.Po - -rm -f luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-buffer.Po - -rm -f luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-compat.Po - -rm -f luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-except.Po - -rm -f luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-inet.Po - -rm -f luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-io.Po - -rm -f luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-lua_preload.Po - -rm -f luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-luasocket.Po - -rm -f luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-mime.Po - -rm -f luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-options.Po - -rm -f luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-select.Po - -rm -f luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-serial.Po - -rm -f luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-socket.Po - -rm -f luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-tcp.Po - -rm -f luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-timeout.Po - -rm -f luatexdir/luasocket/src/$(DEPDIR)/liblua53socket_a-udp.Po -rm -f luatexdir/luasocket/src/$(DEPDIR)/libluajitsocket_a-auxiliar.Po -rm -f luatexdir/luasocket/src/$(DEPDIR)/libluajitsocket_a-buffer.Po -rm -f luatexdir/luasocket/src/$(DEPDIR)/libluajitsocket_a-compat.Po @@ -21047,37 +17528,12 @@ maintainer-clean: maintainer-clean-recursive -rm -f luatexdir/luasocket/src/$(DEPDIR)/libluasocket_a-tcp.Po -rm -f luatexdir/luasocket/src/$(DEPDIR)/libluasocket_a-timeout.Po -rm -f luatexdir/luasocket/src/$(DEPDIR)/libluasocket_a-udp.Po - -rm -f luatexdir/luazip/src/$(DEPDIR)/liblua53misc_a-luazip.Po -rm -f luatexdir/luazip/src/$(DEPDIR)/libluajitmisc_a-luazip.Po -rm -f luatexdir/luazip/src/$(DEPDIR)/libluamisc_a-luazip.Po - -rm -f luatexdir/luazlib/$(DEPDIR)/liblua53misc_a-lgzip.Po - -rm -f luatexdir/luazlib/$(DEPDIR)/liblua53misc_a-lzlib.Po -rm -f luatexdir/luazlib/$(DEPDIR)/libluajitmisc_a-lgzip.Po -rm -f luatexdir/luazlib/$(DEPDIR)/libluajitmisc_a-lzlib.Po -rm -f luatexdir/luazlib/$(DEPDIR)/libluamisc_a-lgzip.Po -rm -f luatexdir/luazlib/$(DEPDIR)/libluamisc_a-lzlib.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfaction.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfannot.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfcolorstack.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfdest.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdffont.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfgen.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfglyph.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfimage.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdflink.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdflistout.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfliteral.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfobj.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfoutline.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfpage.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfpagetree.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfrule.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfsaverestore.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfsetmatrix.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfshipout.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdftables.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfthread.Po - -rm -f luatexdir/pdf/$(DEPDIR)/liblua53tex_a-pdfxform.Po -rm -f luatexdir/pdf/$(DEPDIR)/libluajittex_a-pdfaction.Po -rm -f luatexdir/pdf/$(DEPDIR)/libluajittex_a-pdfannot.Po -rm -f luatexdir/pdf/$(DEPDIR)/libluajittex_a-pdfcolorstack.Po @@ -21122,42 +17578,8 @@ maintainer-clean: maintainer-clean-recursive -rm -f luatexdir/pdf/$(DEPDIR)/libluatex_a-pdftables.Po -rm -f luatexdir/pdf/$(DEPDIR)/libluatex_a-pdfthread.Po -rm -f luatexdir/pdf/$(DEPDIR)/libluatex_a-pdfxform.Po - -rm -f luatexdir/slnunicode/$(DEPDIR)/liblua53misc_a-slnunico.Po -rm -f luatexdir/slnunicode/$(DEPDIR)/libluajitmisc_a-slnunico.Po -rm -f luatexdir/slnunicode/$(DEPDIR)/libluamisc_a-slnunico.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-align.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-arithmetic.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-backend.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-buildpage.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-commands.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-conditional.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-directions.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-dumpdata.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-equivalents.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-errors.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-expand.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-extensions.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-filename.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-inputstack.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-linebreak.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-mainbody.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-maincontrol.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-mathcodes.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-memoryword.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-mlist.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-nesting.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-packaging.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-postlinebreak.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-primitive.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-printing.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-scanning.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-stringpool.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-texdeffont.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-texfileio.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-texmath.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-texnodes.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-textcodes.Po - -rm -f luatexdir/tex/$(DEPDIR)/liblua53tex_a-textoken.Po -rm -f luatexdir/tex/$(DEPDIR)/libluajittex_a-align.Po -rm -f luatexdir/tex/$(DEPDIR)/libluajittex_a-arithmetic.Po -rm -f luatexdir/tex/$(DEPDIR)/libluajittex_a-backend.Po @@ -21234,11 +17656,6 @@ maintainer-clean: maintainer-clean-recursive -rm -f luatexdir/unilib/$(DEPDIR)/libunilib_a-usprintf.Po -rm -f luatexdir/unilib/$(DEPDIR)/libunilib_a-ustring.Po -rm -f luatexdir/unilib/$(DEPDIR)/libunilib_a-utype.Po - -rm -f luatexdir/utils/$(DEPDIR)/liblua53tex_a-avl.Po - -rm -f luatexdir/utils/$(DEPDIR)/liblua53tex_a-avlstuff.Po - -rm -f luatexdir/utils/$(DEPDIR)/liblua53tex_a-managed-sa.Po - -rm -f luatexdir/utils/$(DEPDIR)/liblua53tex_a-unistring.Po - -rm -f luatexdir/utils/$(DEPDIR)/liblua53tex_a-utils.Po -rm -f luatexdir/utils/$(DEPDIR)/libluajittex_a-avl.Po -rm -f luatexdir/utils/$(DEPDIR)/libluajittex_a-avlstuff.Po -rm -f luatexdir/utils/$(DEPDIR)/libluajittex_a-managed-sa.Po @@ -21260,7 +17677,6 @@ maintainer-clean: maintainer-clean-recursive -rm -f mplibdir/$(DEPDIR)/libmputil_a-decNumber.Po -rm -f mplibdir/$(DEPDIR)/luajittex-lmplib.Po -rm -f mplibdir/$(DEPDIR)/luatex-lmplib.Po - -rm -f mplibdir/$(DEPDIR)/luatex53-lmplib.Po -rm -f pdftexdir/$(DEPDIR)/libpdftex_a-avl.Po -rm -f pdftexdir/$(DEPDIR)/libpdftex_a-avlstuff.Po -rm -f pdftexdir/$(DEPDIR)/libpdftex_a-epdf.Po @@ -21295,7 +17711,6 @@ maintainer-clean: maintainer-clean-recursive -rm -f synctexdir/$(DEPDIR)/eptex-synctex.Po -rm -f synctexdir/$(DEPDIR)/etex-synctex.Po -rm -f synctexdir/$(DEPDIR)/euptex-synctex.Po - -rm -f synctexdir/$(DEPDIR)/liblua53tex_a-synctex.Po -rm -f synctexdir/$(DEPDIR)/libluajittex_a-synctex.Po -rm -f synctexdir/$(DEPDIR)/libluatex_a-synctex.Po -rm -f synctexdir/$(DEPDIR)/libsynctex_a-synctex_parser.Po @@ -22215,31 +18630,32 @@ $(pdftosrc_OBJECTS): $(ZLIB_DEPEND) $(LIBPNG_DEPEND) $(XPDF_DEPEND) pdftexdir/pdftosrc.log: pdftosrc$(EXEEXT) $(libluasocket_a_OBJECTS): $(LUA_DEPEND) -$(liblua53socket_a_OBJECTS): $(LUA_DEPEND) +#$(liblua53socket_a_OBJECTS): $(LUA_DEPEND) $(libluajitsocket_a_OBJECTS): $(LUAJIT_DEPEND) $(libluamisc_a_OBJECTS): $(libluamisc_a_DEPENDENCIES) -$(liblua53misc_a_OBJECTS): $(liblua53misc_a_DEPENDENCIES) +#$(liblua53misc_a_OBJECTS): $(liblua53misc_a_DEPENDENCIES) $(libluajitmisc_a_OBJECTS): $(libluajitmisc_a_DEPENDENCIES) $(libff_a_OBJECTS): libunilib.a $(libluatex_a_OBJECTS): libff.a libmplibcore.a libluamisc.a -$(liblua53tex_a_OBJECTS): libff.a libmplibcore.a liblua53misc.a +#$(liblua53tex_a_OBJECTS): libff.a libmplibcore.a liblua53misc.a $(libluajittex_a_OBJECTS): libff.a libmplibcore.a libluajitmisc.a #libluaffi_a_DEPENDENCIES = $(ZLIB_DEPEND) $(libluaffi_a_OBJECTS): $(LUA_DEPEND) -$(liblua53ffi_a_OBJECTS): $(LUA_LUA53_DEPEND) + +#liblua53ffi_sources = $(libluaffi_sources) #EXTRA_DIST $(libluapplib_a_OBJECTS): $(LUA_DEPEND) -$(liblua53pplib_a_OBJECTS): $(LUA_DEPEND) +#$(liblua53pplib_a_OBJECTS): $(LUA_DEPEND) $(libluajitpplib_a_OBJECTS): $(LUAJIT_DEPEND) $(luatex_OBJECTS): libluatex.a -$(luatex53_OBJECTS): liblua53tex.a +#$(luatex53_OBJECTS): liblua53tex.a $(luajittex_OBJECTS): libluajittex.a .PHONY: install-luatex-links uninstall-luatex-links @@ -22257,7 +18673,6 @@ $(luajittex_OBJECTS): libluajittex.a @WIN32_TRUE@ rm -f $(DESTDIR)$(bindir)/texluajit$(EXEEXT) @WIN32_TRUE@ rm -f $(DESTDIR)$(bindir)/texluajitc$(EXEEXT) luatexdir/luatex.log luatexdir/luaimage.log: luatex$(EXEEXT) -luatexdir/luatex53.log luatexdir/luaimage53.log: luatex53$(EXEEXT) luatexdir/luajittex.log luatexdir/luajitimage.log: luajittex$(EXEEXT) $(xetex_OBJECTS): $(xetex_prereq) diff --git a/source/texk/web2c/configure b/source/texk/web2c/configure index d0f95e3081ac7f122646873790f0191e811e9cb3..a8308b3a4003bc120bd077321213e99ae2338217 100755 --- a/source/texk/web2c/configure +++ b/source/texk/web2c/configure @@ -8667,6 +8667,8 @@ fi done +##tldbg KPSE_COMMON: web2c programs (). +##tldbg KPSE_BASIC: Remember web2c programs () as Kpse_Package (for future messages). if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output @@ -23236,11 +23238,11 @@ _ACEOF kpse_save_CPPFLAGS=$CPPFLAGS kpse_save_LIBS=$LIBS -## _KPSE_INIT: Initialize TL infrastructure +##tldbg _KPSE_INIT: Initialize TL infrastructure. kpse_BLD=`(cd "./../../." && pwd)` kpse_SRC=`(cd "$srcdir/../../." && pwd)` -## _KPSE_USE_LIBTOOL: Generate a libtool script for use in configure tests +##tldbg _KPSE_USE_LIBTOOL: Generate a libtool script for use in configure tests. : ${CONFIG_LT=./config.lt} { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_LT" >&5 $as_echo "$as_me: creating $CONFIG_LT" >&6;} @@ -24816,7 +24818,9 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_link="./libtool --mode=link --tag=CC $ac_link" -## _KPSE_LIB_FLAGS: Setup kpathsea (-lkpathsea) flags +##tldbg _KPSE_LIB_FLAGS: Setup kpathsea (-lkpathsea) flags. +echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=kpathsea, libname=kpathsea, options=lt, tlincl=-IBLD/texk -ISRC/texk, tllib=BLD/texk/kpathsea/libkpathsea.la, tlextra=, rebuildsrcdeps=${top_srcdir}/../kpathsea/*.[ch], rebuildblddeps=${top_builddir}/../kpathsea/paths.h.' >&5 +##tldbg _KPSE_LIB_FLAGS_TL: kpathsea (kpathsea) lt. # Check whether --with-system-kpathsea was given. if test "${with_system_kpathsea+set}" = set; then : @@ -24876,7 +24880,9 @@ if test "x$kpse_cv_kpse_debug" != xyes; then : KPATHSEA_INCLUDES="$KPATHSEA_INCLUDES -DNO_DEBUG" fi -## _KPSE_LIB_FLAGS: Setup ptexenc (-lptexenc) flags +##tldbg _KPSE_LIB_FLAGS: Setup ptexenc (-lptexenc) flags. +echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=ptexenc, libname=ptexenc, options=lt, tlincl=-IBLD/texk/ptexenc -ISRC/texk/ptexenc, tllib=BLD/texk/ptexenc/libptexenc.la, tlextra=, rebuildsrcdeps=${top_srcdir}/../ptexenc/*.c ${top_srcdir}/../ptexenc/ptexenc/*.h, rebuildblddeps=.' >&5 +##tldbg _KPSE_LIB_FLAGS_TL: ptexenc (ptexenc) lt. # Check whether --with-system-ptexenc was given. if test "${with_system_ptexenc+set}" = set; then : @@ -24898,7 +24904,9 @@ $(PTEXENC_DEPEND): ${top_srcdir}/../ptexenc/*.c ${top_srcdir}/../ptexenc/ptexenc cd ${top_builddir}/../ptexenc && $(MAKE) $(AM_MAKEFLAGS) rebuild' fi -## _KPSE_LIB_FLAGS: Setup zlib (-lz) flags +##tldbg _KPSE_LIB_FLAGS: Setup zlib (-lz) flags. +echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=zlib, libname=z, options=, tlincl=-IBLD/libs/zlib/include, tllib=BLD/libs/zlib/libz.a, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/zlib/include/zconf.h.' >&5 +##tldbg _KPSE_LIB_FLAGS_TL: zlib (z) . # Check whether --with-system-zlib was given. if test "${with_system_zlib+set}" = set; then : @@ -24915,7 +24923,8 @@ if test "${with_zlib_libdir+set}" = set; then : withval=$with_zlib_libdir; fi if test "x$with_system_zlib" = xyes; then - if test "x$with_zlib_includes" != x && test "x$with_zlib_includes" != xyes; then + ##tldbg _KPSE_LIB_FLAGS_SYSTEM: zlib (z). +if test "x$with_zlib_includes" != x && test "x$with_zlib_includes" != xyes; then ZLIB_INCLUDES="-I$with_zlib_includes" fi ZLIB_LIBS="-lz" @@ -24974,7 +24983,9 @@ $as_echo "#define z_const /**/" >>confdefs.h ;; esac -## _KPSE_LIB_FLAGS: Setup lua53 (-ltexlua53) flags +##tldbg _KPSE_LIB_FLAGS: Setup lua53 (-ltexlua53) flags. +echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=lua53, libname=texlua53, options=lt tree, tlincl=-IBLD/libs/lua53/include, tllib=BLD/libs/lua53/libtexlua53.la, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/lua53/include/lua.h.' >&5 +##tldbg _KPSE_LIB_FLAGS_TL: lua53 (texlua53) lt tree. LUA53_INCLUDES="-I$kpse_BLD/libs/lua53/include" LUA53_LIBS="$kpse_BLD/libs/lua53/libtexlua53.la" LUA53_DEPEND='${top_builddir}/../../libs/lua53/libtexlua53.la' @@ -24984,7 +24995,9 @@ $(LUA53_DEPEND): ${top_builddir}/../../libs/lua53/include/lua.h ${top_builddir}/../../libs/lua53/include/lua.h: cd ${top_builddir}/../../libs/lua53 && $(MAKE) $(AM_MAKEFLAGS) rebuild' -## _KPSE_LIB_FLAGS: Setup lua52 (-ltexlua52) flags +##tldbg _KPSE_LIB_FLAGS: Setup lua52 (-ltexlua52) flags. +echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=lua52, libname=texlua52, options=lt tree, tlincl=-IBLD/libs/lua52/include, tllib=BLD/libs/lua52/libtexlua52.la, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/lua52/include/lua.h.' >&5 +##tldbg _KPSE_LIB_FLAGS_TL: lua52 (texlua52) lt tree. LUA52_INCLUDES="-I$kpse_BLD/libs/lua52/include" LUA52_LIBS="$kpse_BLD/libs/lua52/libtexlua52.la" LUA52_DEPEND='${top_builddir}/../../libs/lua52/libtexlua52.la' @@ -24994,7 +25007,9 @@ $(LUA52_DEPEND): ${top_builddir}/../../libs/lua52/include/lua.h ${top_builddir}/../../libs/lua52/include/lua.h: cd ${top_builddir}/../../libs/lua52 && $(MAKE) $(AM_MAKEFLAGS) rebuild' -## _KPSE_LIB_FLAGS: Setup luajit (-ltexluajit) flags +##tldbg _KPSE_LIB_FLAGS: Setup luajit (-ltexluajit) flags. +echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=luajit, libname=texluajit, options=lt tree, tlincl=-IBLD/libs/luajit/include, tllib=BLD/libs/luajit/libtexluajit.la, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/luajit/include/luajit.h.' >&5 +##tldbg _KPSE_LIB_FLAGS_TL: luajit (texluajit) lt tree. LUAJIT_INCLUDES="-I$kpse_BLD/libs/luajit/include" LUAJIT_LIBS="$kpse_BLD/libs/luajit/libtexluajit.la" LUAJIT_DEPEND='${top_builddir}/../../libs/luajit/libtexluajit.la' @@ -25004,7 +25019,9 @@ $(LUAJIT_DEPEND): ${top_builddir}/../../libs/luajit/include/luajit.h ${top_builddir}/../../libs/luajit/include/luajit.h: cd ${top_builddir}/../../libs/luajit && $(MAKE) $(AM_MAKEFLAGS) rebuild' -## _KPSE_LIB_FLAGS: Setup libpng (-lpng) flags +##tldbg _KPSE_LIB_FLAGS: Setup libpng (-lpng) flags. +echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=libpng, libname=png, options=, tlincl=-IBLD/libs/libpng/include, tllib=BLD/libs/libpng/libpng.a, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/libpng/include/png.h.' >&5 +##tldbg _KPSE_LIB_FLAGS_TL: libpng (png) . # Check whether --with-system-libpng was given. if test "${with_system_libpng+set}" = set; then : @@ -25028,7 +25045,9 @@ ${top_builddir}/../../libs/libpng/include/png.h: cd ${top_builddir}/../../libs/libpng && $(MAKE) $(AM_MAKEFLAGS) rebuild' fi -## _KPSE_LIB_FLAGS: Setup freetype2 (-lfreetype) flags +##tldbg _KPSE_LIB_FLAGS: Setup freetype2 (-lfreetype) flags. +echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=freetype2, libname=freetype, options=, tlincl=-IBLD/libs/freetype2/freetype2, tllib=BLD/libs/freetype2/libfreetype.a, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/freetype2/freetype2/ft2build.h.' >&5 +##tldbg _KPSE_LIB_FLAGS_TL: freetype2 (freetype) . # Check whether --with-system-freetype2 was given. if test "${with_system_freetype2+set}" = set; then : @@ -25143,7 +25162,9 @@ ${top_builddir}/../../libs/freetype2/freetype2/ft2build.h: cd ${top_builddir}/../../libs/freetype2 && $(MAKE) $(AM_MAKEFLAGS) rebuild' fi -## _KPSE_LIB_FLAGS: Setup pixman (-lpixman) flags +##tldbg _KPSE_LIB_FLAGS: Setup pixman (-lpixman) flags. +echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=pixman, libname=pixman, options=, tlincl=-IBLD/libs/pixman/include, tllib=BLD/libs/pixman/libpixman.a, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/pixman/include/pixman.h.' >&5 +##tldbg _KPSE_LIB_FLAGS_TL: pixman (pixman) . # Check whether --with-system-pixman was given. if test "${with_system_pixman+set}" = set; then : @@ -25167,7 +25188,9 @@ ${top_builddir}/../../libs/pixman/include/pixman.h: cd ${top_builddir}/../../libs/pixman && $(MAKE) $(AM_MAKEFLAGS) rebuild' fi -## _KPSE_LIB_FLAGS: Setup cairo (-lcairo) flags +##tldbg _KPSE_LIB_FLAGS: Setup cairo (-lcairo) flags. +echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=cairo, libname=cairo, options=, tlincl=-IBLD/libs/cairo/cairo, tllib=BLD/libs/cairo/libcairo.a, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/cairo/cairo/cairo.h.' >&5 +##tldbg _KPSE_LIB_FLAGS_TL: cairo (cairo) . # Check whether --with-system-cairo was given. if test "${with_system_cairo+set}" = set; then : @@ -25191,7 +25214,9 @@ ${top_builddir}/../../libs/cairo/cairo/cairo.h: cd ${top_builddir}/../../libs/cairo && $(MAKE) $(AM_MAKEFLAGS) rebuild' fi -## _KPSE_LIB_FLAGS: Setup gmp (-lgmp) flags +##tldbg _KPSE_LIB_FLAGS: Setup gmp (-lgmp) flags. +echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=gmp, libname=gmp, options=, tlincl=-IBLD/libs/gmp/include, tllib=BLD/libs/gmp/libgmp.a, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/gmp/include/gmp.h.' >&5 +##tldbg _KPSE_LIB_FLAGS_TL: gmp (gmp) . # Check whether --with-system-gmp was given. if test "${with_system_gmp+set}" = set; then : @@ -25208,7 +25233,8 @@ if test "${with_gmp_libdir+set}" = set; then : withval=$with_gmp_libdir; fi if test "x$with_system_gmp" = xyes; then - if test "x$with_gmp_includes" != x && test "x$with_gmp_includes" != xyes; then + ##tldbg _KPSE_LIB_FLAGS_SYSTEM: gmp (gmp). +if test "x$with_gmp_includes" != x && test "x$with_gmp_includes" != xyes; then GMP_INCLUDES="-I$with_gmp_includes" fi GMP_LIBS="-lgmp" @@ -25226,7 +25252,9 @@ ${top_builddir}/../../libs/gmp/include/gmp.h: cd ${top_builddir}/../../libs/gmp && $(MAKE) $(AM_MAKEFLAGS) rebuild' fi -## _KPSE_LIB_FLAGS: Setup mpfr (-lmpfr) flags +##tldbg _KPSE_LIB_FLAGS: Setup mpfr (-lmpfr) flags. +echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=mpfr, libname=mpfr, options=, tlincl=-IBLD/libs/mpfr/include, tllib=BLD/libs/mpfr/libmpfr.a, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/mpfr/include/mpfr.h.' >&5 +##tldbg _KPSE_LIB_FLAGS_TL: mpfr (mpfr) . # Check whether --with-system-mpfr was given. if test "${with_system_mpfr+set}" = set; then : @@ -25243,7 +25271,8 @@ if test "${with_mpfr_libdir+set}" = set; then : withval=$with_mpfr_libdir; fi if test "x$with_system_mpfr" = xyes; then - if test "x$with_mpfr_includes" != x && test "x$with_mpfr_includes" != xyes; then + ##tldbg _KPSE_LIB_FLAGS_SYSTEM: mpfr (mpfr). +if test "x$with_mpfr_includes" != x && test "x$with_mpfr_includes" != xyes; then MPFR_INCLUDES="-I$with_mpfr_includes" fi MPFR_LIBS="-lmpfr" @@ -25261,7 +25290,9 @@ ${top_builddir}/../../libs/mpfr/include/mpfr.h: cd ${top_builddir}/../../libs/mpfr && $(MAKE) $(AM_MAKEFLAGS) rebuild' fi -## _KPSE_LIB_FLAGS: Setup poppler (-lpoppler) flags +##tldbg _KPSE_LIB_FLAGS: Setup poppler (-lpoppler) flags. +echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=poppler, libname=poppler, options=, tlincl=-IBLD/libs/poppler/include, tllib=BLD/libs/poppler/libpoppler.a, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/poppler/include/Stream.h.' >&5 +##tldbg _KPSE_LIB_FLAGS_TL: poppler (poppler) . # Check whether --with-system-poppler was given. if test "${with_system_poppler+set}" = set; then : @@ -25289,7 +25320,9 @@ ${top_builddir}/../../libs/poppler/include/Stream.h: fi test "x$kpse_cv_have_win32" = xno || POPPLER_LIBS="$POPPLER_LIBS -lgdi32" -## _KPSE_LIB_FLAGS: Setup xpdf (-lxpdf) flags +##tldbg _KPSE_LIB_FLAGS: Setup xpdf (-lxpdf) flags. +echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=xpdf, libname=xpdf, options=, tlincl=-DPDF_PARSER_ONLY -IBLD/libs/xpdf -IBLD/libs/xpdf/goo -IBLD/libs/xpdf/xpdf, tllib=BLD/libs/xpdf/libxpdf.a, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/xpdf/xpdf/Stream.h.' >&5 +##tldbg _KPSE_LIB_FLAGS_TL: xpdf (xpdf) . # Check whether --with-system-xpdf was given. if test "${with_system_xpdf+set}" = set; then : @@ -25317,7 +25350,9 @@ ${top_builddir}/../../libs/xpdf/xpdf/Stream.h: fi test "x$kpse_cv_have_win32" = xno || XPDF_LIBS="$XPDF_LIBS -lgdi32" -## _KPSE_LIB_FLAGS: Setup zziplib (-lzzip) flags +##tldbg _KPSE_LIB_FLAGS: Setup zziplib (-lzzip) flags. +echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=zziplib, libname=zzip, options=, tlincl=-IBLD/libs/zziplib/include, tllib=BLD/libs/zziplib/libzzip.a, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/zziplib/include/zzip/zzip.h.' >&5 +##tldbg _KPSE_LIB_FLAGS_TL: zziplib (zzip) . # Check whether --with-system-zziplib was given. if test "${with_system_zziplib+set}" = set; then : @@ -25341,7 +25376,9 @@ ${top_builddir}/../../libs/zziplib/include/zzip/zzip.h: cd ${top_builddir}/../../libs/zziplib && $(MAKE) $(AM_MAKEFLAGS) rebuild' fi -## _KPSE_LIB_FLAGS: Setup teckit (-lTECkit) flags +##tldbg _KPSE_LIB_FLAGS: Setup teckit (-lTECkit) flags. +echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=teckit, libname=TECkit, options=, tlincl=-IBLD/libs/teckit/include, tllib=BLD/libs/teckit/libTECkit.a, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/teckit/include/teckit/TECkit_Common.h.' >&5 +##tldbg _KPSE_LIB_FLAGS_TL: teckit (TECkit) . # Check whether --with-system-teckit was given. if test "${with_system_teckit+set}" = set; then : @@ -25365,14 +25402,17 @@ ${top_builddir}/../../libs/teckit/include/teckit/TECkit_Common.h: cd ${top_builddir}/../../libs/teckit && $(MAKE) $(AM_MAKEFLAGS) rebuild' fi -## _KPSE_LIB_FLAGS: Setup icu (-licuxxx) flags +echo 'tldbg:KPSE_ICU_FLAGS called: more-icu-libs=, icu-config-args=.' >&5 +##tldbg _KPSE_LIB_FLAGS: Setup icu (-licuxxx) flags. +echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=icu, libname=icuxxx, options=, tlincl=-DU_STATIC_IMPLEMENTATION -IBLD/libs/icu/include, tllib= BLD/libs/icu/icu-build/lib/libicuuc.a BLD/libs/icu/icu-build/lib/libicudata.a, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/icu/include/unicode/uversion.h.' >&5 +##tldbg _KPSE_LIB_FLAGS_TL: icu (icuxxx) . # Check whether --with-system-icu was given. if test "${with_system_icu+set}" = set; then : withval=$with_system_icu; fi if test "x$with_system_icu" = xyes; then - echo 'dbg:_KPSE_ICU_SYSTEM_FLAGS called.' >&5 + echo 'tldbg:KPSE_ICU_SYSTEM_FLAGS called.' >&5 if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}icu-config", so it can be a program name with args. set dummy ${ac_tool_prefix}icu-config; ac_word=$2 @@ -25574,8 +25614,16 @@ $(ICU_DEPEND): ${top_builddir}/../../libs/icu/include/unicode/uversion.h ${top_builddir}/../../libs/icu/include/unicode/uversion.h: cd ${top_builddir}/../../libs/icu && $(MAKE) $(AM_MAKEFLAGS) rebuild' fi +# checking for openbsd to add -lpthread for icu. +case $build_os in +openbsd*) + eval ICUXXX_LIBS=\"$ICUXXX_LIBS -lpthread\" + ;; +esac -## _KPSE_LIB_FLAGS: Setup graphite2 (-lgraphite2) flags +##tldbg _KPSE_LIB_FLAGS: Setup graphite2 (-lgraphite2) flags. +echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=graphite2, libname=graphite2, options=, tlincl=-IBLD/libs/graphite2/include -DGRAPHITE2_STATIC, tllib=BLD/libs/graphite2/libgraphite2.a, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/graphite2/include/graphite2/Font.h.' >&5 +##tldbg _KPSE_LIB_FLAGS_TL: graphite2 (graphite2) . # Check whether --with-system-graphite2 was given. if test "${with_system_graphite2+set}" = set; then : @@ -25599,7 +25647,9 @@ ${top_builddir}/../../libs/graphite2/include/graphite2/Font.h: cd ${top_builddir}/../../libs/graphite2 && $(MAKE) $(AM_MAKEFLAGS) rebuild' fi -## _KPSE_LIB_FLAGS: Setup harfbuzz (-lharfbuzz) flags +##tldbg _KPSE_LIB_FLAGS: Setup harfbuzz (-lharfbuzz) flags. +echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=harfbuzz, libname=harfbuzz, options=, tlincl=-IBLD/libs/harfbuzz/include, tllib=BLD/libs/harfbuzz/libharfbuzz.a, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/harfbuzz/include/hb.h.' >&5 +##tldbg _KPSE_LIB_FLAGS_TL: harfbuzz (harfbuzz) . # Check whether --with-system-harfbuzz was given. if test "${with_system_harfbuzz+set}" = set; then : @@ -25623,7 +25673,9 @@ ${top_builddir}/../../libs/harfbuzz/include/hb.h: cd ${top_builddir}/../../libs/harfbuzz && $(MAKE) $(AM_MAKEFLAGS) rebuild' fi -## _KPSE_LIB_FLAGS: Setup graphite2 (-lgraphite2) flags +##tldbg _KPSE_LIB_FLAGS: Setup graphite2 (-lgraphite2) flags. +echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=graphite2, libname=graphite2, options=, tlincl=-IBLD/libs/graphite2/include -DGRAPHITE2_STATIC, tllib=BLD/libs/graphite2/libgraphite2.a, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/graphite2/include/graphite2/Font.h.' >&5 +##tldbg _KPSE_LIB_FLAGS_TL: graphite2 (graphite2) . # Check whether --with-system-graphite2 was given. if test "${with_system_graphite2+set}" = set; then : diff --git a/source/texk/web2c/configure.ac b/source/texk/web2c/configure.ac index 6d35f5d341a984c0504b789330375104d6400d9e..10aa5be8b1b35806393a82aee7fd067484703931 100644 --- a/source/texk/web2c/configure.ac +++ b/source/texk/web2c/configure.ac @@ -1,4 +1,4 @@ -dnl $Id: configure.ac 48318 2018-07-31 20:52:36Z karl $ +dnl $Id: configure.ac 48591 2018-09-05 21:30:41Z lscarso $ dnl Process this file with Autoconf to produce a configure script for Web2c. dnl dnl Copyright 2018 Karl Berry <tex-live@tug.org> diff --git a/source/texk/web2c/ctangleboot.cin b/source/texk/web2c/ctangleboot.cin index 83e0a3a59e3eaec7192bd73213d3bc8f65e01156..0a4e286176ad4b148335040a1eaa8ae44156ad60 100644 --- a/source/texk/web2c/ctangleboot.cin +++ b/source/texk/web2c/ctangleboot.cin @@ -216,11 +216,11 @@ extern char scn_file_name[]; extern char file_name[][max_file_name_length]; extern char change_file_name[]; -#line 180 "cwebdir/ctang-w2c.ch" +#line 181 "cwebdir/ctang-w2c.ch" extern int line[]; extern int change_line; -#line 150 "cwebdir/common.h" -extern change_depth; +extern int change_depth; +#line 151 "cwebdir/common.h" extern boolean input_has_ended; extern boolean changing; extern boolean web_file_open; @@ -369,35 +369,35 @@ extern sixteen_bits section_count; /*40:*/ #line 533 "cwebdir/ctangle.w" -#line 282 "cwebdir/ctang-w2c.ch" +#line 284 "cwebdir/ctang-w2c.ch" static void phase_two(void); #line 535 "cwebdir/ctangle.w" /*:40*//*45:*/ #line 602 "cwebdir/ctangle.w" -#line 308 "cwebdir/ctang-w2c.ch" +#line 310 "cwebdir/ctang-w2c.ch" static void output_defs(void); #line 604 "cwebdir/ctangle.w" /*:45*//*47:*/ #line 648 "cwebdir/ctangle.w" -#line 326 "cwebdir/ctang-w2c.ch" +#line 328 "cwebdir/ctang-w2c.ch" static void out_char(eight_bits); #line 650 "cwebdir/ctangle.w" /*:47*//*89:*/ #line 1460 "cwebdir/ctangle.w" -#line 440 "cwebdir/ctang-w2c.ch" +#line 442 "cwebdir/ctang-w2c.ch" static void phase_one(void); #line 1462 "cwebdir/ctangle.w" /*:89*//*91:*/ #line 1478 "cwebdir/ctangle.w" -#line 458 "cwebdir/ctang-w2c.ch" +#line 460 "cwebdir/ctang-w2c.ch" static void skip_limbo(void); #line 1480 "cwebdir/ctangle.w" @@ -486,7 +486,7 @@ return wrap_up(); /*:2*//*20:*/ #line 183 "cwebdir/ctangle.w" -#line 206 "cwebdir/ctang-w2c.ch" +#line 208 "cwebdir/ctang-w2c.ch" int names_match(name_pointer p,const char*first,int l,char t) #line 188 "cwebdir/ctangle.w" { @@ -498,21 +498,21 @@ return!strncmp(first,p->byte_start,l); #line 198 "cwebdir/ctangle.w" void -#line 215 "cwebdir/ctang-w2c.ch" +#line 217 "cwebdir/ctang-w2c.ch" init_node(name_pointer node) #line 202 "cwebdir/ctangle.w" { node->equiv= (char*)text_info; } void -#line 221 "cwebdir/ctang-w2c.ch" +#line 223 "cwebdir/ctang-w2c.ch" init_p(name_pointer p,char t){} #line 207 "cwebdir/ctangle.w" /*:21*//*25:*/ #line 260 "cwebdir/ctangle.w" -#line 231 "cwebdir/ctang-w2c.ch" +#line 233 "cwebdir/ctang-w2c.ch" static void store_two_bytes(sixteen_bits x) #line 264 "cwebdir/ctangle.w" @@ -525,7 +525,7 @@ if(tok_ptr+2> tok_mem_end)overflow("token"); /*:25*//*29:*/ #line 336 "cwebdir/ctangle.w" -#line 242 "cwebdir/ctang-w2c.ch" +#line 244 "cwebdir/ctang-w2c.ch" static void push_level(name_pointer p) #line 340 "cwebdir/ctangle.w" @@ -543,7 +543,7 @@ cur_section= 0; /*:29*//*30:*/ #line 355 "cwebdir/ctangle.w" -#line 253 "cwebdir/ctang-w2c.ch" +#line 255 "cwebdir/ctang-w2c.ch" static void pop_level(int flag) #line 359 "cwebdir/ctangle.w" @@ -560,7 +560,7 @@ if(stack_ptr> stack)cur_state= *stack_ptr; /*:30*//*32:*/ #line 391 "cwebdir/ctangle.w" -#line 263 "cwebdir/ctang-w2c.ch" +#line 265 "cwebdir/ctang-w2c.ch" static void get_output(void) #line 394 "cwebdir/ctangle.w" @@ -609,7 +609,7 @@ out_char(section_number); /*:32*//*36:*/ #line 481 "cwebdir/ctangle.w" -#line 273 "cwebdir/ctang-w2c.ch" +#line 275 "cwebdir/ctang-w2c.ch" static void flush_buffer(void) #line 484 "cwebdir/ctangle.w" @@ -626,7 +626,7 @@ cur_line++; /*:36*//*41:*/ #line 536 "cwebdir/ctangle.w" -#line 291 "cwebdir/ctang-w2c.ch" +#line 293 "cwebdir/ctang-w2c.ch" static void phase_two(void){ #line 539 "cwebdir/ctangle.w" @@ -677,7 +677,7 @@ for(an_output_file= end_output_files;an_output_file> cur_out_file;){ an_output_file--; sprint_section_name(output_file_name,*an_output_file); fclose(C_file); -#line 300 "cwebdir/ctang-w2c.ch" +#line 302 "cwebdir/ctang-w2c.ch" C_file= fopen(output_file_name,"wb"); #line 578 "cwebdir/ctangle.w" if(C_file==0)fatal("! Cannot open output file:",output_file_name); @@ -703,7 +703,7 @@ if(show_happiness)printf("\nDone."); /*:41*//*46:*/ #line 605 "cwebdir/ctangle.w" -#line 317 "cwebdir/ctang-w2c.ch" +#line 319 "cwebdir/ctang-w2c.ch" static void output_defs(void) #line 608 "cwebdir/ctangle.w" @@ -746,7 +746,7 @@ pop_level(0); #line 651 "cwebdir/ctangle.w" static void -#line 335 "cwebdir/ctang-w2c.ch" +#line 337 "cwebdir/ctang-w2c.ch" out_char(eight_bits cur_char) #line 655 "cwebdir/ctangle.w" { @@ -847,7 +847,7 @@ default:C_putc(cur_char);out_state= normal;break; /*:48*//*57:*/ #line 813 "cwebdir/ctangle.w" -#line 344 "cwebdir/ctang-w2c.ch" +#line 346 "cwebdir/ctang-w2c.ch" static eight_bits skip_ahead(void) #line 816 "cwebdir/ctangle.w" @@ -867,7 +867,7 @@ if(c!=ignore||*(loc-1)=='>')return(c); /*:57*//*59:*/ #line 848 "cwebdir/ctangle.w" -#line 354 "cwebdir/ctang-w2c.ch" +#line 356 "cwebdir/ctang-w2c.ch" static int skip_comment(boolean is_long_comment) #line 851 "cwebdir/ctangle.w" @@ -903,7 +903,7 @@ else loc++; /*:59*//*62:*/ #line 900 "cwebdir/ctangle.w" -#line 371 "cwebdir/ctang-w2c.ch" +#line 373 "cwebdir/ctang-w2c.ch" static eight_bits get_next(void) #line 903 "cwebdir/ctangle.w" @@ -928,7 +928,7 @@ id_first= cur_file_name; store_two_bytes((sixteen_bits)cur_line); } id_loc= id_first+strlen(id_first); -#line 408 "cwebdir/ctang-w2c.ch" +#line 410 "cwebdir/ctang-w2c.ch" {int a_l= id_lookup(id_first,id_loc,0)-name_dir;app_repl((a_l/0400)+0200); app_repl(a_l%0400);} #line 1237 "cwebdir/ctangle.w" @@ -1027,7 +1027,7 @@ else if(isalpha(c)||isxalpha(c)||ishigh(c)) #line 972 "cwebdir/ctangle.w" { id_first= --loc; -#line 388 "cwebdir/ctang-w2c.ch" +#line 390 "cwebdir/ctang-w2c.ch" while(isalpha((unsigned char)*++loc)||isdigit((unsigned char)*loc)||isxalpha(*loc)||ishigh(*loc)); #line 975 "cwebdir/ctangle.w" id_loc= loc;return(identifier); @@ -1194,7 +1194,7 @@ mistake:/*63:*/ switch(c){ case'+':if(*loc=='+')compress(plus_plus);break; case'-':if(*loc=='-'){compress(minus_minus);} -#line 381 "cwebdir/ctang-w2c.ch" +#line 383 "cwebdir/ctang-w2c.ch" else if(*loc=='>'){if(*(loc+1)=='*'){loc++;compress(minus_gt_ast);} else compress(minus_gt);}break; #line 956 "cwebdir/ctangle.w" @@ -1224,7 +1224,7 @@ return(c); /*:62*//*75:*/ #line 1199 "cwebdir/ctangle.w" -#line 398 "cwebdir/ctang-w2c.ch" +#line 400 "cwebdir/ctang-w2c.ch" static void scan_repl(eight_bits t) #line 1203 "cwebdir/ctangle.w" @@ -1242,7 +1242,7 @@ id_first= cur_file_name; store_two_bytes((sixteen_bits)cur_line); } id_loc= id_first+strlen(id_first); -#line 408 "cwebdir/ctang-w2c.ch" +#line 410 "cwebdir/ctang-w2c.ch" {int a_l= id_lookup(id_first,id_loc,0)-name_dir;app_repl((a_l/0400)+0200); app_repl(a_l%0400);} #line 1237 "cwebdir/ctangle.w" @@ -1290,7 +1290,7 @@ id_first= cur_file_name; store_two_bytes((sixteen_bits)cur_line); } id_loc= id_first+strlen(id_first); -#line 408 "cwebdir/ctang-w2c.ch" +#line 410 "cwebdir/ctang-w2c.ch" {int a_l= id_lookup(id_first,id_loc,0)-name_dir;app_repl((a_l/0400)+0200); app_repl(a_l%0400);} #line 1237 "cwebdir/ctangle.w" @@ -1318,7 +1318,7 @@ id_first= cur_file_name; store_two_bytes((sixteen_bits)cur_line); } id_loc= id_first+strlen(id_first); -#line 408 "cwebdir/ctang-w2c.ch" +#line 410 "cwebdir/ctang-w2c.ch" {int a_l= id_lookup(id_first,id_loc,0)-name_dir;app_repl((a_l/0400)+0200); app_repl(a_l%0400);} #line 1237 "cwebdir/ctangle.w" @@ -1374,14 +1374,14 @@ case'x': if(xisdigit(*(id_first+1)))c= *(++id_first)-'0'; else if(xisxdigit(*(id_first+1))){ ++id_first; -#line 417 "cwebdir/ctang-w2c.ch" +#line 419 "cwebdir/ctang-w2c.ch" c= toupper((unsigned char)*id_first)-'A'+10; #line 1324 "cwebdir/ctangle.w" } if(xisdigit(*(id_first+1)))c= 16*c+*(++id_first)-'0'; else if(xisxdigit(*(id_first+1))){ ++id_first; -#line 422 "cwebdir/ctang-w2c.ch" +#line 424 "cwebdir/ctang-w2c.ch" c= 16*c+toupper((unsigned char)*id_first)-'A'+10; #line 1329 "cwebdir/ctangle.w" } @@ -1428,7 +1428,7 @@ cur_text= text_ptr;(++text_ptr)->tok_start= tok_ptr; /*:75*//*82:*/ #line 1360 "cwebdir/ctangle.w" -#line 431 "cwebdir/ctang-w2c.ch" +#line 433 "cwebdir/ctang-w2c.ch" static void scan_section(void) #line 1363 "cwebdir/ctangle.w" @@ -1541,7 +1541,7 @@ cur_text->text_link= section_flag; /*:82*//*90:*/ #line 1463 "cwebdir/ctangle.w" -#line 449 "cwebdir/ctang-w2c.ch" +#line 451 "cwebdir/ctang-w2c.ch" static void phase_one(void){ #line 1466 "cwebdir/ctangle.w" @@ -1557,7 +1557,7 @@ phase= 2; /*:90*//*92:*/ #line 1481 "cwebdir/ctangle.w" -#line 467 "cwebdir/ctang-w2c.ch" +#line 469 "cwebdir/ctang-w2c.ch" static void skip_limbo(void) #line 1484 "cwebdir/ctangle.w" @@ -1618,7 +1618,7 @@ default:err_print("! Double @ should be used in limbo"); #line 1536 "cwebdir/ctangle.w" void -#line 476 "cwebdir/ctang-w2c.ch" +#line 478 "cwebdir/ctang-w2c.ch" print_stats(void){ #line 1539 "cwebdir/ctangle.w" printf("\nMemory usage statistics:\n"); diff --git a/source/texk/web2c/cwebboot.cin b/source/texk/web2c/cwebboot.cin index 38f65b8ef07e120896168d669f31521446b62b94..b8f0a754cf7f2f22d968fd7c52a1deff905aaa29 100644 --- a/source/texk/web2c/cwebboot.cin +++ b/source/texk/web2c/cwebboot.cin @@ -250,7 +250,7 @@ FILE*C_file; FILE*tex_file; FILE*idx_file; FILE*scn_file; -#line 730 "cwebdir/comm-w2c.ch" +#line 736 "cwebdir/comm-w2c.ch" FILE*active_file; char*found_filename; #line 1376 "cwebdir/common.w" @@ -283,7 +283,7 @@ static int section_name_cmp(char**,int,name_pointer); /*:55*//*71:*/ #line 1251 "cwebdir/common.w" -#line 647 "cwebdir/comm-w2c.ch" +#line 653 "cwebdir/comm-w2c.ch" static void scan_args(void); #line 1253 "cwebdir/common.w" @@ -334,7 +334,7 @@ kpse_set_program_name(argv[0],"cweb"); /*70:*/ #line 1233 "cwebdir/common.w" -#line 639 "cwebdir/comm-w2c.ch" +#line 645 "cwebdir/comm-w2c.ch" show_banner= show_happiness= show_progress= 1; #line 1235 "cwebdir/common.w" @@ -346,14 +346,14 @@ show_banner= show_happiness= show_progress= 1; scan_args(); if(program==ctangle){ -#line 739 "cwebdir/comm-w2c.ch" +#line 745 "cwebdir/comm-w2c.ch" if((C_file= fopen(C_file_name,"wb"))==NULL) #line 1381 "cwebdir/common.w" fatal("! Cannot open output file ",C_file_name); } else{ -#line 745 "cwebdir/comm-w2c.ch" +#line 751 "cwebdir/comm-w2c.ch" if((tex_file= fopen(tex_file_name,"wb"))==NULL) #line 1386 "cwebdir/common.w" fatal("! Cannot open output file ",tex_file_name); @@ -1098,7 +1098,9 @@ void fatal(const char*s,const char*t) #line 1182 "cwebdir/common.w" { +#line 595 "cwebdir/comm-w2c.ch" if(*s)printf("%s",s); +#line 1184 "cwebdir/common.w" err_print(t); history= fatal_message;exit(wrap_up()); } @@ -1106,7 +1108,7 @@ history= fatal_message;exit(wrap_up()); /*:66*//*67:*/ #line 1190 "cwebdir/common.w" void -#line 598 "cwebdir/comm-w2c.ch" +#line 604 "cwebdir/comm-w2c.ch" overflow(const char*t) #line 1193 "cwebdir/common.w" { @@ -1117,7 +1119,7 @@ printf("\n! Sorry, %s capacity exceeded",t);fatal("",""); /*:67*//*72:*/ #line 1254 "cwebdir/common.w" -#line 657 "cwebdir/comm-w2c.ch" +#line 663 "cwebdir/comm-w2c.ch" static void scan_args(void) #line 1257 "cwebdir/common.w" @@ -1131,40 +1133,40 @@ boolean flag_change; while(--argc> 0){ if((**(++argv)=='-'||**argv=='+')&&*(*argv+1))/*76:*/ -#line 682 "cwebdir/comm-w2c.ch" +#line 688 "cwebdir/comm-w2c.ch" { if(strcmp("-help",*argv)==0||strcmp("--help",*argv)==0) /*86:*/ -#line 797 "cwebdir/comm-w2c.ch" +#line 803 "cwebdir/comm-w2c.ch" usagehelp(program==ctangle?CTANGLEHELP:CWEAVEHELP,NULL); /*:86*/ -#line 685 "cwebdir/comm-w2c.ch" +#line 691 "cwebdir/comm-w2c.ch" ; if(strcmp("-version",*argv)==0||strcmp("--version",*argv)==0) /*87:*/ -#line 806 "cwebdir/comm-w2c.ch" +#line 812 "cwebdir/comm-w2c.ch" printversionandexit((program==ctangle?ctangle_banner:cweave_banner), "Silvio Levy and Donald E. Knuth",NULL,NULL); /*:87*/ -#line 687 "cwebdir/comm-w2c.ch" +#line 693 "cwebdir/comm-w2c.ch" ; #line 1346 "cwebdir/common.w" if(**argv=='-')flag_change= 0; -#line 693 "cwebdir/comm-w2c.ch" +#line 699 "cwebdir/comm-w2c.ch" else flag_change= 1; if(*(*argv+1)=='d') if(sscanf(*argv+2,"%u",&kpathsea_debug)!=1)/*77:*/ #line 1352 "cwebdir/common.w" { -#line 716 "cwebdir/comm-w2c.ch" +#line 722 "cwebdir/comm-w2c.ch" if(program==ctangle){ fprintf(stderr,"ctangle: Need one to three file arguments.\n"); usage("ctangle"); @@ -1176,11 +1178,11 @@ usage("cweave"); } /*:77*/ -#line 695 "cwebdir/comm-w2c.ch" +#line 701 "cwebdir/comm-w2c.ch" ; #line 1348 "cwebdir/common.w" for(dot_pos= *argv+1;*dot_pos> '\0';dot_pos++) -#line 701 "cwebdir/comm-w2c.ch" +#line 707 "cwebdir/comm-w2c.ch" flags[(unsigned char)*dot_pos]= flag_change; #line 1350 "cwebdir/common.w" } @@ -1280,7 +1282,7 @@ sprintf(scn_file_name,"%s.scn",*argv); found_out= 1; } -#line 682 "cwebdir/comm-w2c.ch" +#line 688 "cwebdir/comm-w2c.ch" /*:75*/ #line 1277 "cwebdir/common.w" @@ -1288,7 +1290,7 @@ else/*77:*/ #line 1352 "cwebdir/common.w" { -#line 716 "cwebdir/comm-w2c.ch" +#line 722 "cwebdir/comm-w2c.ch" if(program==ctangle){ fprintf(stderr,"ctangle: Need one to three file arguments.\n"); usage("ctangle"); @@ -1308,7 +1310,7 @@ if(!found_web)/*77:*/ #line 1352 "cwebdir/common.w" { -#line 716 "cwebdir/comm-w2c.ch" +#line 722 "cwebdir/comm-w2c.ch" if(program==ctangle){ fprintf(stderr,"ctangle: Need one to three file arguments.\n"); usage("ctangle"); @@ -1322,7 +1324,7 @@ usage("cweave"); /*:77*/ #line 1281 "cwebdir/common.w" ; -#line 667 "cwebdir/comm-w2c.ch" +#line 673 "cwebdir/comm-w2c.ch" if(found_change<=0)strcpy(change_file_name,DEV_NULL); #line 1283 "cwebdir/common.w" } diff --git a/source/texk/web2c/cwebboot.hin b/source/texk/web2c/cwebboot.hin index 9028733d3128ebab931e0cbfac950348fa06270e..23678f6d029aa5d6298fdcc37cc6c5021c3c6f1a 100644 --- a/source/texk/web2c/cwebboot.hin +++ b/source/texk/web2c/cwebboot.hin @@ -1,5 +1,5 @@ /*84:*/ -#line 786 "cwebdir/comm-w2c.ch" +#line 792 "cwebdir/comm-w2c.ch" /* Prototypes for functions, either * declared in common.w and used in ctangle.w and cweave.w, or @@ -43,7 +43,7 @@ extern void overflow(const char*); #line 1175 "cwebdir/common.w" /*:65*//*83:*/ -#line 767 "cwebdir/comm-w2c.ch" +#line 773 "cwebdir/comm-w2c.ch" extern void common_init(void); extern int input_ln(FILE*fp); @@ -56,9 +56,9 @@ extern void sprint_section_name(char*dest,name_pointer p); extern name_pointer section_lookup(char*first,char*last,int ispref); #line 1417 "cwebdir/common.w" -#line 782 "cwebdir/comm-w2c.ch" +#line 788 "cwebdir/comm-w2c.ch" /*:83*/ -#line 790 "cwebdir/comm-w2c.ch" +#line 796 "cwebdir/comm-w2c.ch" extern const char*versionstring; diff --git a/source/texk/web2c/cwebdir/ChangeLog b/source/texk/web2c/cwebdir/ChangeLog index 8e71c02202b39f80bf758bc1f2c9cfafabfb3a07..e982318a2f45de5b1b558d876949376790c50f90 100644 --- a/source/texk/web2c/cwebdir/ChangeLog +++ b/source/texk/web2c/cwebdir/ChangeLog @@ -1,3 +1,19 @@ +2018-12-30 Andreas Scherer <https://ascherer.github.io> + + * cweave.w, + * common.w, + * common.c, + * ../cwebboot.cin: do not change the CWEB sources, use + changefile entries instead. + * examples: add directory (unchanged) from cweb-3.64c.tar.gz. + +2018-11-02 Andreas Scherer <https://ascherer.github.io> + + * ctang-w2c.ch, + * cweav-w2c.ch, + * ../ctangleboot.cin: clean build with non-implicit 'int change_depth'. + tex-k mail, 2 Nov 2018 18:03:39. + 2018-01-18 Karl Berry <karl@tug.org> * cweave.w, diff --git a/source/texk/web2c/cwebdir/comm-w2c.ch b/source/texk/web2c/cwebdir/comm-w2c.ch index 426a011b61d4e7250094038d33fd9eb8bdcec688..d1ed2df5b18b9a315c52baeab23319508efa57c3 100644 --- a/source/texk/web2c/cwebdir/comm-w2c.ch +++ b/source/texk/web2c/cwebdir/comm-w2c.ch @@ -589,6 +589,12 @@ fatal(s,t) fatal (const char *s, const char *t) @z +@x l.1183 + if (*s) printf(s); +@y + if (*s) printf("%s",s); +@z + Section 65. @x l.1191 diff --git a/source/texk/web2c/cwebdir/common.c b/source/texk/web2c/cwebdir/common.c index 25bd81007a28d58e50ff038ea7d50b131ec334bc..2bf7a9d4a811ab773cd39de4f814a31465601aaa 100644 --- a/source/texk/web2c/cwebdir/common.c +++ b/source/texk/web2c/cwebdir/common.c @@ -1063,7 +1063,7 @@ void fatal(s,t) char*s,*t; { -if(*s)printf("%s",s); +if(*s)printf(s); err_print(t); history= fatal_message;exit(wrap_up()); } diff --git a/source/texk/web2c/cwebdir/common.w b/source/texk/web2c/cwebdir/common.w index da3df6d3baa71ba5d6d8c52f97316a968f80999f..d8aacfb7b91735a588aabb4040df10b9286a35ef 100644 --- a/source/texk/web2c/cwebdir/common.w +++ b/source/texk/web2c/cwebdir/common.w @@ -1180,7 +1180,7 @@ concatenated to print the final error message. fatal(s,t) char *s,*t; { - if (*s) printf("%s",s); + if (*s) printf(s); err_print(t); history=fatal_message; exit(wrap_up()); } diff --git a/source/texk/web2c/cwebdir/ctang-w2c.ch b/source/texk/web2c/cwebdir/ctang-w2c.ch index 1b58dc240f4eedd1d0690dd1077d926eaf5e5d86..133509afb3700e5a6828d284349b9506abc07a21 100644 --- a/source/texk/web2c/cwebdir/ctang-w2c.ch +++ b/source/texk/web2c/cwebdir/ctang-w2c.ch @@ -176,9 +176,11 @@ extern int include_depth; /* current level of nesting */ @x common.h l.148 - explicit types. extern line[]; /* number of current line in the stacked files */ extern change_line; /* number of current line in change file */ +extern change_depth; /* where \.{@@y} originated during a change */ @y extern int line[]; /* number of current line in the stacked files */ extern int change_line; /* number of current line in change file */ +extern int change_depth; /* where \.{@@y} originated during a change */ @z @x common.h l.153 - protos now all in cweb.h. diff --git a/source/texk/web2c/cwebdir/cweav-w2c.ch b/source/texk/web2c/cwebdir/cweav-w2c.ch index c4dada00d687ad272283c0c2982cf0595594bca1..193bda51b48c38d731b7caf26a374af5d9f346ab 100644 --- a/source/texk/web2c/cwebdir/cweav-w2c.ch +++ b/source/texk/web2c/cwebdir/cweav-w2c.ch @@ -202,9 +202,11 @@ extern int include_depth; /* current level of nesting */ @x common.h l.148 - explicit types. extern line[]; /* number of current line in the stacked files */ extern change_line; /* number of current line in change file */ +extern change_depth; /* where \.{@@y} originated during a change */ @y extern int line[]; /* number of current line in the stacked files */ extern int change_line; /* number of current line in change file */ +extern int change_depth; /* where \.{@@y} originated during a change */ @z @x common.h l.153 - protos now all in cweb.h. @@ -597,6 +599,12 @@ static void print_cat (eight_bits c) @z +@x l.1788 + printf(cat_name[c]); +@y + printf("%s",cat_name[c]); +@z + Section 106. @x l.2138 diff --git a/source/texk/web2c/cwebdir/cweave.w b/source/texk/web2c/cwebdir/cweave.w index 38afa934429d5ae7918815e9793dd3db7bbfabee..e06762b1fc3ab44828218c343626fa84e633c42f 100644 --- a/source/texk/web2c/cwebdir/cweave.w +++ b/source/texk/web2c/cwebdir/cweave.w @@ -1785,7 +1785,7 @@ void print_cat(c) /* symbolic printout of a category */ eight_bits c; { - printf("%s",cat_name[c]); + printf(cat_name[c]); } @ The token lists for translated \TEX/ output contain some special control diff --git a/source/texk/web2c/lib/ChangeLog b/source/texk/web2c/lib/ChangeLog index e787c982cb4166399d97a87a65b8945f36e2e5a4..ca3bbb0c28e8b3100a7ca598cfc279b74b39aa51 100644 --- a/source/texk/web2c/lib/ChangeLog +++ b/source/texk/web2c/lib/ChangeLog @@ -1,3 +1,52 @@ +2019-01-01 Akira Kakuto <kakuto@fuk.kindai.ac.jp> + + * printversion.c: Update copyright year. + +2018-12-17 Igor Liferenko <igor.liferenko@gmail.com> + + * texmfmp.c (maininit): default to guessing an explicit &dumpname + as the "preloaded" (not really) format, if one was specified. + tex-k msgs of 23 Sep 2018 12:13:06, 23 Sep 2018 18:36:52. + (With comment and formatting tinkering from karl.) + +2018-12-17 Andreas Scherer <https://ascherer.github.io> + + * printversion.c (printversionandexit): Search for PROGNAME + in banner independent of 'This is' prefix. + +2018-11-19 Akira Kakuto <kakuto@fuk.kindai.ac.jp> + + * texmfmp.c: Remove unused functions for XeTeX. + Check kpse_in_name_ok() in getfilesize(), getfiledump(), + and getmd5sum(). + +2018-11-18 Akira Kakuto <kakuto@fuk.kindai.ac.jp> + + * texmfmp.c: Make necessary changes for XeTeX in + getcreationdate(), getfilemoddate(), getfilesize(), + and getfiledump(). + +2018-11-17 Joseph Wright <joseph.wright@morningstar2.co.uk> + + * texmfmp.c: Support some primitives from pdfTeX in XeTeX. + +2018-11-14 Andreas Scherer <https://ascherer.github.io> + + * printversion.c: free xmalloc'd prog_name. + +2018-11-13 Karl Berry <karl@freefriends.org> + + * texmfmp.c (FORCE_SOURCE_DATE_set, SOURCE_DATE_EPOCH_set): new static. + (init_start_time, get_date_and_time): initialize them. + (getfilemoddate): use_utc if both vars set. + Original suggestion from Ulrike Fischer, tex-live 3 Nov 2018 23:00:48, + original patch from Akira Kakuto. + (getfilemoddate): also, return nothing if ! kpse_in_name_ok. + +2018-11-04 Akira Kakuto <kakuto@fuk.kindai.ac.jp> + + * openclose.c: cleanup for non-ascii file names (w32 only) + 2018-06-28 Karl Berry <karl@freefriends.org> * openclose.c (open_input_with_dirname): do not prepend the diff --git a/source/texk/web2c/lib/openclose.c b/source/texk/web2c/lib/openclose.c index 44dcf4517db0941c7a9e8ecf9d1eafa4b29dab7d..945c732672ff6a156127bf1510b37f50af2746a9 100644 --- a/source/texk/web2c/lib/openclose.c +++ b/source/texk/web2c/lib/openclose.c @@ -12,12 +12,59 @@ #include <ptexenc/ptexenc.h> #endif -#ifdef WIN32 +#ifdef _WIN32 +static int fsyscp_remove(char *s) +{ + wchar_t *sw = NULL; + int ret; + + if(!file_system_codepage) + return remove(s); + + sw = get_wstring_from_fsyscp(s, sw); + ret = _wremove(sw); + if(sw) free(sw); + return ret; +} + +static int fsyscp_rename(char *s1, char *s2) +{ + wchar_t *sw1 = NULL, *sw2 = NULL; + int ret; + + if(!file_system_codepage) + return rename(s1, s2); + + sw1 = get_wstring_from_fsyscp(s1, sw1); + sw2 = get_wstring_from_fsyscp(s2, sw2); + ret = _wrename(sw1, sw2); + if(sw1) free(sw1); + if(sw2) free(sw2); + return ret; +} + +static FILE *f_fsyscp_fopen(const char *filename, const char *mode) +{ + if(!file_system_codepage) + return fopen(filename, mode); + + return fsyscp_fopen(filename, mode); +} + +static FILE *f_fsyscp_xfopen(const char *filename, const char *mode) +{ + if(!file_system_codepage) + return xfopen(filename, mode); + + return fsyscp_xfopen(filename, mode); +} #undef fopen #undef xfopen -#define fopen fsyscp_fopen -#define xfopen fsyscp_xfopen -#endif +#define fopen f_fsyscp_fopen +#define xfopen f_fsyscp_xfopen +#define rename fsyscp_rename +#define remove fsyscp_remove +#endif /* _WIN32 */ /* The globals we use to communicate. */ extern string nameoffile; @@ -87,9 +134,9 @@ recorder_change_filename (string new_name) return; /* On windows, an opened file cannot be renamed. */ -#if defined(WIN32) +#if defined(_WIN32) fclose (recorder_file); -#endif +#endif /* _WIN32 */ /* If an output directory was specified, use it. */ if (output_directory) { @@ -98,18 +145,18 @@ recorder_change_filename (string new_name) } /* On windows, renaming fails if a file with new_name exists. */ -#if defined(WIN32) +#if defined(_WIN32) remove (new_name); -#endif +#endif /* _WIN32 */ rename(recorder_name, new_name); free(recorder_name); recorder_name = xstrdup(new_name); /* reopen the recorder file by FOPEN_A_MODE. */ -#if defined(WIN32) - recorder_file = fsyscp_xfopen (recorder_name, FOPEN_A_MODE); -#endif +#if defined(_WIN32) + recorder_file = xfopen (recorder_name, FOPEN_A_MODE); +#endif /* _WIN32 */ if (temp) free (temp); diff --git a/source/texk/web2c/lib/printversion.c b/source/texk/web2c/lib/printversion.c index cba87a9492294541eef11df98d674c482beb4a72..e1acd798e8b23ca713d48f3fca842b280ea04a40 100644 --- a/source/texk/web2c/lib/printversion.c +++ b/source/texk/web2c/lib/printversion.c @@ -28,22 +28,27 @@ printversionandexit (const_string banner, { string prog_name; unsigned len; + const_string prog_name_start; const_string prog_name_end = strchr (banner, ','); const_string prog_version = strrchr (banner, ' '); assert (prog_name_end && prog_version); prog_version++; - len = prog_name_end - banner - sizeof ("This is"); + len = prog_name_end - banner; prog_name = xmalloc (len + 1); - strncpy (prog_name, banner + sizeof ("This is"), len); + strncpy (prog_name, banner, len); prog_name[len] = 0; + prog_name_start = strrchr (prog_name, ' '); + assert (prog_name_start); + prog_name_start++; + /* The Web2c version string starts with a space. */ #ifdef PTEX - printf ("%s %s (%s)%s\n", prog_name, prog_version, get_enc_string(), + printf ("%s %s (%s)%s\n", prog_name_start, prog_version, get_enc_string(), versionstring); #else - printf ("%s %s%s\n", prog_name, prog_version, versionstring); + printf ("%s %s%s\n", prog_name_start, prog_version, versionstring); #endif puts (kpathsea_version_string); #ifdef PTEX @@ -51,21 +56,23 @@ printversionandexit (const_string banner, #endif if (copyright_holder) { - printf ("Copyright 2018 %s.\n", copyright_holder); + printf ("Copyright 2019 %s.\n", copyright_holder); if (!author) author = copyright_holder; } puts ("There is NO warranty. Redistribution of this software is"); fputs ("covered by the terms of ", stdout); - printf ("both the %s copyright and\n", prog_name); + printf ("both the %s copyright and\n", prog_name_start); puts ("the Lesser GNU General Public License."); puts ("For more information about these matters, see the file"); - printf ("named COPYING and the %s source.\n", prog_name); - printf ("Primary author of %s: %s.\n", prog_name, author); + printf ("named COPYING and the %s source.\n", prog_name_start); + printf ("Primary author of %s: %s.\n", prog_name_start, author); if (extra_info) fputs (extra_info, stdout); + free (prog_name); + uexit (0); } diff --git a/source/texk/web2c/lib/texmfmp.c b/source/texk/web2c/lib/texmfmp.c index f6c98b5bb279a6974e0c6ae2818f901b05ed6cf8..c0606272b2982dcd9e0cf4c026676d5965c5f4c3 100644 --- a/source/texk/web2c/lib/texmfmp.c +++ b/source/texk/web2c/lib/texmfmp.c @@ -151,7 +151,22 @@ char *generic_synctex_get_current_name (void) #if !IS_pTeX FILE *Poptr; #endif -#endif +#undef fopen +#undef xfopen +#define fopen fsyscp_fopen +#define xfopen fsyscp_xfopen +#include <wchar.h> +int fsyscp_stat(const char *path, struct stat *buffer) +{ + wchar_t *wpath; + int ret; + wpath = get_wstring_from_mbstring(file_system_codepage, + path, wpath = NULL); + ret = _wstat(wpath, buffer); + free(wpath); + return ret; +} +#endif /* WIN32 */ #if defined(TeX) || (defined(MF) && defined(WIN32)) static int @@ -768,7 +783,7 @@ maininit (int ac, string *av) xputenv ("engine", TEXMFENGINENAME); /* Were we given a simple filename? */ - main_input_file = get_input_file_name(); + main_input_file = get_input_file_name (); #ifdef WIN32 if (main_input_file == NULL) { @@ -838,7 +853,9 @@ maininit (int ac, string *av) translate_filename = default_translate_filename; } /* If we're preloaded, I guess everything is set up. I don't really - know any more, it's been so long since anyone preloaded. */ + know any more, it's been so long since anyone truly preloaded. We + still use the word "preloaded" in the messages, though (via the + original .web sources), at Knuth's request. */ if (readyalready != 314159) { /* The `ini_version' variable is declared/used in the change files. */ boolean virversion = false; @@ -858,9 +875,16 @@ maininit (int ac, string *av) #endif /* TeX */ } + /* If run like `tex \&foo', reasonable to guess "foo" as the fmt name. */ + if (!main_input_file) { + if (argv[1] && *argv[1] == '&') { + dump_name = argv[1] + 1; + } + } + if (!dump_name) { /* If called as *vir{mf,tex,mpost} use `plain'. Otherwise, use the - name we were invoked under. */ + name we were invoked under as our best guess. */ dump_name = (virversion ? "plain" : kpse_program_name); } } @@ -1379,24 +1403,6 @@ tcx_get_num (int upb, /* FIXME: A new format ought to be introduced for these files. */ -#ifdef _WIN32 -#undef fopen -#undef xfopen -#define fopen fsyscp_fopen -#define xfopen fsyscp_xfopen -#include <wchar.h> -int fsyscp_stat(const char *path, struct stat *buffer) -{ - wchar_t *wpath; - int ret; - wpath = get_wstring_from_mbstring(file_system_codepage, - path, wpath = NULL); - ret = _wstat(wpath, buffer); - free(wpath); - return ret; -} -#endif /* WIN32 */ - void readtcxfile (void) { @@ -2219,6 +2225,9 @@ catch_interrupt (int arg) static boolean start_time_set = false; static time_t start_time = 0; +static boolean SOURCE_DATE_EPOCH_set = false; +static boolean FORCE_SOURCE_DATE_set = false; + void init_start_time() { char *source_date_epoch; unsigned long long epoch; @@ -2239,6 +2248,7 @@ FATAL1 ("invalid epoch-seconds-timezone value for environment variable $SOURCE_D epoch = 32535291599ULL; #endif start_time = epoch; + SOURCE_DATE_EPOCH_set = true; } else #endif /* not onlyTeX */ { @@ -2263,6 +2273,7 @@ get_date_and_time (integer *minutes, integer *day, if (sde_texprim && STREQ (sde_texprim, "1")) { init_start_time (); tmptr = gmtime (&start_time); + FORCE_SOURCE_DATE_set = true; } else #endif /* not onlyTeX */ { @@ -2317,7 +2328,7 @@ WARNING1 ("invalid value (expected 0 or 1) for environment variable $FORCE_SOURC } } -#if defined(pdfTeX) || defined(epTeX) || defined(eupTeX) +#if defined(pdfTeX) || defined(epTeX) || defined(eupTeX) || defined(XeTeX) /* Getting a high resolution time. */ @@ -3005,8 +3016,6 @@ void pdftex_fail(const char *fmt, ...) } #endif /* not pdfTeX */ -#if !defined(XeTeX) - #define TIME_STR_SIZE 30 char start_time_str[TIME_STR_SIZE]; static char time_str[TIME_STR_SIZE]; @@ -3077,6 +3086,7 @@ void initstarttime(void) } } +#if !defined(XeTeX) char *makecstring(integer s) { static char *cstrbuf = NULL; @@ -3125,10 +3135,14 @@ char *makecfilename(integer s) *q = '\0'; return name; } +#endif /* !XeTeX */ void getcreationdate(void) { size_t len; +#if defined(XeTeX) + int i; +#endif initstarttime(); /* put creation date on top of string pool and update poolptr */ len = strlen(start_time_str); @@ -3142,18 +3156,31 @@ void getcreationdate(void) return; } +#if defined(XeTeX) + for (i = 0; i < len; i++) + strpool[poolptr++] = (uint16_t)start_time_str[i]; +#else memcpy(&strpool[poolptr], start_time_str, len); +#endif poolptr += len; } void getfilemoddate(integer s) { struct stat file_data; - - char *file_name = kpse_find_tex(makecfilename(s)); +#if defined(XeTeX) + int i; + const_string orig_name = gettexstring(s); +#else + const_string orig_name = makecfilename(s); +#endif + char *file_name = kpse_find_tex(orig_name); if (file_name == NULL) { return; /* empty string */ } + if (! kpse_in_name_ok(file_name)) { + return; /* no permission */ + } recorder_record_input(file_name); /* get file status */ @@ -3163,15 +3190,20 @@ void getfilemoddate(integer s) if (stat(file_name, &file_data) == 0) { #endif size_t len; - - makepdftime(file_data.st_mtime, time_str, /* utc= */false); + boolean use_utc = FORCE_SOURCE_DATE_set && SOURCE_DATE_EPOCH_set; + makepdftime(file_data.st_mtime, time_str, use_utc); len = strlen(time_str); if ((unsigned) (poolptr + len) >= (unsigned) (poolsize)) { poolptr = poolsize; /* error by str_toks that calls str_room(1) */ } else { +#if defined(XeTeX) + for (i = 0; i < len; i++) + strpool[poolptr++] = (uint16_t)time_str[i]; +#else memcpy(&strpool[poolptr], time_str, len); poolptr += len; +#endif } } /* else { errno contains error code } */ @@ -3184,10 +3216,17 @@ void getfilesize(integer s) struct stat file_data; int i; +#if defined(XeTeX) + char *file_name = kpse_find_tex(gettexstring(s)); +#else char *file_name = kpse_find_tex(makecfilename(s)); +#endif if (file_name == NULL) { return; /* empty string */ } + if (! kpse_in_name_ok(file_name)) { + return; /* no permission */ + } recorder_record_input(file_name); /* get file status */ @@ -3208,8 +3247,13 @@ void getfilesize(integer s) poolptr = poolsize; /* error by str_toks that calls str_room(1) */ } else { +#if defined(XeTeX) + for (i = 0; i < len; i++) + strpool[poolptr++] = (uint16_t)buf[i]; +#else memcpy(&strpool[poolptr], buf, len); poolptr += len; +#endif } } /* else { errno contains error code } */ @@ -3221,8 +3265,13 @@ void getfiledump(integer s, int offset, int length) { FILE *f; int read, i; +#if defined(XeTeX) + char *readbuffer, strbuf[3]; + int j, k; +#else poolpointer data_ptr; poolpointer data_end; +#endif /* XeTeX */ char *file_name; if (length == 0) { @@ -3237,10 +3286,17 @@ void getfiledump(integer s, int offset, int length) return; } +#if defined(XeTeX) + file_name = kpse_find_tex(gettexstring(s)); +#else file_name = kpse_find_tex(makecfilename(s)); +#endif if (file_name == NULL) { return; /* empty string */ } + if (! kpse_in_name_ok(file_name)) { + return; /* no permission */ + } /* read file data */ f = fopen(file_name, FOPEN_RBIN_MODE); @@ -3253,6 +3309,18 @@ void getfiledump(integer s, int offset, int length) xfree(file_name); return; } +#if defined(XeTeX) + readbuffer = (char *)xmalloc (length + 1); + read = fread(readbuffer, sizeof(char), length, f); + fclose(f); + for (j = 0; j < read; j++) { + i = snprintf (strbuf, 3, "%.2X", (unsigned int)readbuffer[j]); + check_nprintf(i, 3); + for (k = 0; k < i; k++) + strpool[poolptr++] = (uint16_t)strbuf[k]; + } + xfree (readbuffer); +#else /* there is enough space in the string pool, the read data are put in the upper half of the result, thus the conversion to hex can be done without overwriting @@ -3269,9 +3337,9 @@ void getfiledump(integer s, int offset, int length) check_nprintf(i, 3); poolptr += i; } +#endif /* XeTeX */ xfree(file_name); } -#endif /* not XeTeX */ /* Converts any given string in into an allowed PDF string which is * hexadecimal encoded; @@ -3322,6 +3390,10 @@ void getmd5sum(strnumber s, boolean file) if (file_name == NULL) { return; /* empty string */ } + if (! kpse_in_name_ok(file_name)) { + return; /* no permission */ + } + /* in case of error the empty string is returned, no need for xfopen that aborts on error. */ diff --git a/source/texk/web2c/luatexdir/am/libluatex.am b/source/texk/web2c/luatexdir/am/libluatex.am index e3678b64b9ec3548ed4bf4776e01cb7b64683dd3..5f7ae526c6ce5c009b096d905cc93aae5b395953 100644 --- a/source/texk/web2c/luatexdir/am/libluatex.am +++ b/source/texk/web2c/luatexdir/am/libluatex.am @@ -5,24 +5,29 @@ ## liblua52 ## -LUA_INCLUDES = $(LUA52_INCLUDES) $(LUA52_DEFINES) -LUA_LIBS = $(LUA52_LIBS) -LUA_DEPEND = $(LUA52_DEPEND) +#LUA_INCLUDES = $(LUA52_INCLUDES) $(LUA52_DEFINES) +#LUA_LIBS = $(LUA52_LIBS) +#LUA_DEPEND = $(LUA52_DEPEND) ## liblua53 ## -LUA_LUA53_INCLUDES = $(LUA53_INCLUDES) $(LUA53_DEFINES) -LUA_LUA53_LIBS = $(LUA53_LIBS) -LUA_LUA53_DEPEND = $(LUA53_DEPEND) +#LUA_LUA53_INCLUDES = $(LUA53_INCLUDES) $(LUA53_DEFINES) +#LUA_LUA53_LIBS = $(LUA53_LIBS) +#LUA_LUA53_DEPEND = $(LUA53_DEPEND) +LUA_INCLUDES = $(LUA53_INCLUDES) $(LUA53_DEFINES) +LUA_LIBS = $(LUA53_LIBS) +LUA_DEPEND = $(LUA53_DEPEND) + ## libluatex ## -EXTRA_LIBRARIES += libluatex.a liblua53tex.a libluajittex.a +#EXTRA_LIBRARIES += libluatex.a liblua53tex.a libluajittex.a +EXTRA_LIBRARIES += libluatex.a libluajittex.a libluatex_a_DEPENDENCIES = libff.a libluamisc.a -liblua53tex_a_DEPENDENCIES = libff.a liblua53misc.a +#liblua53tex_a_DEPENDENCIES = libff.a liblua53misc.a libluajittex_a_DEPENDENCIES = libff.a libluajitmisc.a libluatex_a_preflags = $(AM_CPPFLAGS) $(ZLIB_INCLUDES) $(LIBPNG_INCLUDES) @@ -35,12 +40,12 @@ libluatex_a_preflags += -DLUA_FF_LIB=1 -I$(srcdir)/luatexdir/luafontloader/fontf libluatex_a_preflags += -DSYNCTEX_ENGINE_H='<synctex-luatex.h>' -I$(srcdir)/synctexdir libluatex_a_CPPFLAGS = $(libluatex_a_preflags) $(LUA_INCLUDES) -liblua53tex_a_CPPFLAGS = $(libluatex_a_preflags) $(LUA_LUA53_INCLUDES) +#liblua53tex_a_CPPFLAGS = $(libluatex_a_preflags) $(LUA_LUA53_INCLUDES) libluajittex_a_CPPFLAGS = $(libluatex_a_preflags) $(LUAJIT_INCLUDES) $(LUAJIT_DEFINES) libluajittex_a_CPPFLAGS += -DLuajitTeX libluatex_a_CXXFLAGS = $(WARNING_CXXFLAGS) -liblua53tex_a_CXXFLAGS = $(WARNING_CXXFLAGS) +#liblua53tex_a_CXXFLAGS = $(WARNING_CXXFLAGS) libluajittex_a_CXXFLAGS = $(WARNING_CXXFLAGS) dist_libluatex_a_SOURCES = \ @@ -50,13 +55,13 @@ dist_libluatex_a_SOURCES = \ nodist_libluatex_a_SOURCES = \ $(dist_libluatex_sources) \ $(nodist_libluatex_sources) -dist_liblua53tex_a_SOURCES = \ - luatexdir/lua/lstrlibext.c \ - luatexdir/lua/helpers.c \ - luatexdir/lua/texluac.c -nodist_liblua53tex_a_SOURCES = \ - $(dist_libluatex_sources) \ - $(nodist_libluatex_sources) +# dist_liblua53tex_a_SOURCES = \ +# luatexdir/lua/lstrlibext.c \ +# luatexdir/lua/helpers.c \ +# luatexdir/lua/texluac.c +# nodist_liblua53tex_a_SOURCES = \ +# $(dist_libluatex_sources) \ +# $(nodist_libluatex_sources) dist_libluajittex_a_SOURCES = \ luatexdir/lua/lauxlib_bridge.h \ luatexdir/lua/lstrlibext.c \ @@ -67,7 +72,7 @@ nodist_libluajittex_a_SOURCES = \ ## mplib "stub" backends are in mplibstuff.c $(libluatex_a_OBJECTS): libff.a libmplibcore.a libluamisc.a -$(liblua53tex_a_OBJECTS): libff.a libmplibcore.a liblua53misc.a +#$(liblua53tex_a_OBJECTS): libff.a libmplibcore.a liblua53misc.a $(libluajittex_a_OBJECTS): libff.a libmplibcore.a libluajitmisc.a @@ -633,7 +638,7 @@ dist_libluatex_sources += \ synctexdir/synctex.c \ synctexdir/synctex.h -dist_liblua53tex_sources = $(dist_libluatex_sources) +#dist_liblua53tex_sources = $(dist_libluatex_sources) EXTRA_DIST += \ $(dist_libluatex_sources) \ diff --git a/source/texk/web2c/luatexdir/am/luaffi.am b/source/texk/web2c/luatexdir/am/luaffi.am index c927b3df7af9bd14e54608674d4761d2989201dd..260b7da833f3654265fde83c6158630239b0addc 100644 --- a/source/texk/web2c/luatexdir/am/luaffi.am +++ b/source/texk/web2c/luatexdir/am/luaffi.am @@ -12,25 +12,26 @@ ## -EXTRA_LIBRARIES += libluaffi.a liblua53ffi.a +#EXTRA_LIBRARIES += libluaffi.a liblua53ffi.a +EXTRA_LIBRARIES += libluaffi.a #libluaffi_a_DEPENDENCIES = $(ZLIB_DEPEND) $(libluaffi_a_OBJECTS): $(LUA_DEPEND) -$(liblua53ffi_a_OBJECTS): $(LUA_LUA53_DEPEND) +#$(liblua53ffi_a_OBJECTS): $(LUA_LUA53_DEPEND) libluaffi_a_CPPFLAGS = \ -I$(top_srcdir)/luatexdir/luaffi -I$(top_srcdir)/luatexdir/luaffi/dynasm $(LUA_INCLUDES) -liblua53ffi_a_CPPFLAGS = \ - -I$(top_srcdir)/luatexdir/luaffi -I$(top_srcdir)/luatexdir/luaffi/dynasm $(LUA_LUA53_INCLUDES) +#liblua53ffi_a_CPPFLAGS = \ +# -I$(top_srcdir)/luatexdir/luaffi -I$(top_srcdir)/luatexdir/luaffi/dynasm $(LUA_LUA53_INCLUDES) libluaffi_a_CFLAGS = # $(WARNING_CFLAGS) -liblua53ffi_a_CFLAGS = # $(WARNING_CFLAGS) +#liblua53ffi_a_CFLAGS = # $(WARNING_CFLAGS) nodist_libluaffi_a_SOURCES = $(libluaffi_sources) -nodist_liblua53ffi_a_SOURCES = $(libluaffi_sources) +#nodist_liblua53ffi_a_SOURCES = $(libluaffi_sources) libluaffi_sources = \ @@ -44,7 +45,7 @@ libluaffi_sources = \ luatexdir/luaffi/ffi.h \ luatexdir/luaffi/parser.c -liblua53ffi_sources = $(libluaffi_sources) +#liblua53ffi_sources = $(libluaffi_sources) ## Not used ## #EXTRA_DIST diff --git a/source/texk/web2c/luatexdir/am/luamisc.am b/source/texk/web2c/luatexdir/am/luamisc.am index 014b6eb3f0c9d411a9c8de6579a04d188290adfd..9b9915e11b21ee5f7b139c1017e6d2e1fb8acc15 100644 --- a/source/texk/web2c/luatexdir/am/luamisc.am +++ b/source/texk/web2c/luatexdir/am/luamisc.am @@ -6,27 +6,28 @@ ## libluamisc (luafilesystem, luamd5, luapeg, luazip, luazlib, ## and slnunicode) -EXTRA_LIBRARIES += libluamisc.a liblua53misc.a libluajitmisc.a +#EXTRA_LIBRARIES += libluamisc.a liblua53misc.a libluajitmisc.a +EXTRA_LIBRARIES += libluamisc.a libluajitmisc.a libluamisc_a_DEPENDENCIES = $(ZZIPLIB_DEPEND) libluasocket.a libluaffi.a libluapplib.a -liblua53misc_a_DEPENDENCIES = $(ZZIPLIB_DEPEND) liblua53socket.a liblua53ffi.a liblua53pplib.a +#liblua53misc_a_DEPENDENCIES = $(ZZIPLIB_DEPEND) liblua53socket.a liblua53ffi.a liblua53pplib.a libluajitmisc_a_DEPENDENCIES = $(ZZIPLIB_DEPEND) libluajitsocket.a libluajitpplib.a $(libluamisc_a_OBJECTS): $(libluamisc_a_DEPENDENCIES) -$(liblua53misc_a_OBJECTS): $(liblua53misc_a_DEPENDENCIES) +#$(liblua53misc_a_OBJECTS): $(liblua53misc_a_DEPENDENCIES) $(libluajitmisc_a_OBJECTS): $(libluajitmisc_a_DEPENDENCIES) libluamisc_a_CPPFLAGS = $(ZLIB_INCLUDES) $(ZZIPLIB_INCLUDES) $(LUA_INCLUDES) -liblua53misc_a_CPPFLAGS = $(ZLIB_INCLUDES) $(ZZIPLIB_INCLUDES) $(LUA_LUA53_INCLUDES) +#liblua53misc_a_CPPFLAGS = $(ZLIB_INCLUDES) $(ZZIPLIB_INCLUDES) $(LUA_LUA53_INCLUDES) libluajitmisc_a_CPPFLAGS = $(ZLIB_INCLUDES) $(ZZIPLIB_INCLUDES) $(LUAJIT_INCLUDES) libluajitmisc_a_CPPFLAGS += -DLuajitTeX -I$(srcdir)/luatexdir libluamisc_a_CFLAGS = # $(WARNING_CFLAGS) -liblua53misc_a_CFLAGS = # $(WARNING_CFLAGS) +#liblua53misc_a_CFLAGS = # $(WARNING_CFLAGS) libluajitmisc_a_CFLAGS = # $(WARNING_CFLAGS) nodist_libluamisc_a_SOURCES = $(libluamisc_sources) -nodist_liblua53misc_a_SOURCES = $(libluamisc_sources) +#nodist_liblua53misc_a_SOURCES = $(libluamisc_sources) nodist_libluajitmisc_a_SOURCES = $(libluamisc_sources) libluamisc_sources = \ diff --git a/source/texk/web2c/luatexdir/am/luapplib.am b/source/texk/web2c/luatexdir/am/luapplib.am index ee6758a33b36392531fb9bbaad119bf63f337b41..06293da4ddd3ed7ea73fd8fe0b87bdfa93ad8330 100644 --- a/source/texk/web2c/luatexdir/am/luapplib.am +++ b/source/texk/web2c/luatexdir/am/luapplib.am @@ -5,22 +5,23 @@ ## luapplib ## -EXTRA_LIBRARIES += libluapplib.a liblua53pplib.a libluajitpplib.a +#EXTRA_LIBRARIES += libluapplib.a liblua53pplib.a libluajitpplib.a +EXTRA_LIBRARIES += libluapplib.a libluajitpplib.a libluapplib_a_DEPENDENCIES = $(ZLIB_DEPEND) -liblua53pplib_a_DEPENDENCIES = $(ZLIB_DEPEND) +#liblua53pplib_a_DEPENDENCIES = $(ZLIB_DEPEND) libluajitpplib_a_DEPENDENCIES = $(ZLIB_DEPEND) $(libluapplib_a_OBJECTS): $(LUA_DEPEND) -$(liblua53pplib_a_OBJECTS): $(LUA_DEPEND) +#$(liblua53pplib_a_OBJECTS): $(LUA_DEPEND) $(libluajitpplib_a_OBJECTS): $(LUAJIT_DEPEND) libluapplib_a_CPPFLAGS = \ -I$(top_srcdir)/luatexdir/luapplib -I$(top_srcdir)/luatexdir/luapplib/util $(ZLIB_INCLUDES) $(LUA_INCLUDES) -liblua53pplib_a_CPPFLAGS = \ - -I$(top_srcdir)/luatexdir/luapplib -I$(top_srcdir)/luatexdir/luapplib/util $(ZLIB_INCLUDES) $(LUA_LUA53_INCLUDES) +#liblua53pplib_a_CPPFLAGS = \ +# -I$(top_srcdir)/luatexdir/luapplib -I$(top_srcdir)/luatexdir/luapplib/util $(ZLIB_INCLUDES) $(LUA_LUA53_INCLUDES) libluajitpplib_a_CPPFLAGS = \ -I$(top_srcdir)/luatexdir/luapplib -I$(top_srcdir)/luatexdir/luapplib/util $(ZLIB_INCLUDES) $(LUAJIT_INCLUDES) @@ -29,7 +30,7 @@ libluapplib_a_CFLAGS = # $(WARNING_CFLAGS) libluajitpplib_a_CFLAGS = # $(WARNING_CFLAGS) nodist_libluapplib_a_SOURCES = $(libluapplib_sources) -nodist_liblua53pplib_a_SOURCES = $(libluapplib_sources) +#nodist_liblua53pplib_a_SOURCES = $(libluapplib_sources) nodist_libluajitpplib_a_SOURCES = $(libluapplib_sources) libluapplib_sources = \ @@ -49,8 +50,12 @@ libluapplib_sources = \ luatexdir/luapplib/ppload.h \ luatexdir/luapplib/ppstream.c \ luatexdir/luapplib/ppstream.h \ + luatexdir/luapplib/pptest1.c \ + luatexdir/luapplib/pptest2.c \ + luatexdir/luapplib/pptest3.c \ luatexdir/luapplib/ppxref.c \ luatexdir/luapplib/ppxref.h \ + luatexdir/luapplib/util/utilarm.h \ luatexdir/luapplib/util/utilbasexx.c \ luatexdir/luapplib/util/utilbasexx.h \ luatexdir/luapplib/util/utilcrypt.c \ @@ -75,9 +80,8 @@ libluapplib_sources = \ luatexdir/luapplib/util/utilnumber.h \ luatexdir/luapplib/util/utilplat.h \ luatexdir/luapplib/util/utilsha.c \ - luatexdir/luapplib/util/utilsha.h \ + luatexdir/luapplib/util/utilsha.h - -liblua53pplib_sources = $(libluapplib_sources) +#liblua53pplib_sources = $(libluapplib_sources) libluajitpplib_sources = $(libluapplib_sources) diff --git a/source/texk/web2c/luatexdir/am/luasocket.am b/source/texk/web2c/luatexdir/am/luasocket.am index 8f8e1ab44ee86adc6c7979c8989a1e0f145b8d47..64dd207848a0454302cd1331bb86ba81180c3d15 100644 --- a/source/texk/web2c/luatexdir/am/luasocket.am +++ b/source/texk/web2c/luatexdir/am/luasocket.am @@ -5,21 +5,22 @@ ## luasocket ## -EXTRA_LIBRARIES += libluasocket.a liblua53socket.a libluajitsocket.a +#EXTRA_LIBRARIES += libluasocket.a liblua53socket.a libluajitsocket.a +EXTRA_LIBRARIES += libluasocket.a libluajitsocket.a libluasocket_a_DEPENDENCIES = $(ZLIB_DEPEND) -liblua53socket_a_DEPENDENCIES = $(ZLIB_DEPEND) +#liblua53socket_a_DEPENDENCIES = $(ZLIB_DEPEND) libluajitsocket_a_DEPENDENCIES = $(ZLIB_DEPEND) $(libluasocket_a_OBJECTS): $(LUA_DEPEND) -$(liblua53socket_a_OBJECTS): $(LUA_DEPEND) +#$(liblua53socket_a_OBJECTS): $(LUA_DEPEND) $(libluajitsocket_a_OBJECTS): $(LUAJIT_DEPEND) libluasocket_a_CPPFLAGS = \ -DLUASOCKET_DEBUG -I$(top_srcdir)/luatexdir/luasocket $(LUA_INCLUDES) -liblua53socket_a_CPPFLAGS = \ - -DLUASOCKET_DEBUG -I$(top_srcdir)/luatexdir/luasocket $(LUA_LUA53_INCLUDES) +#liblua53socket_a_CPPFLAGS = \ +# -DLUASOCKET_DEBUG -I$(top_srcdir)/luatexdir/luasocket $(LUA_LUA53_INCLUDES) libluajitsocket_a_CPPFLAGS = \ -DLUASOCKET_DEBUG -I$(top_srcdir)/luatexdir/luasocket $(LUAJIT_INCLUDES) @@ -28,7 +29,7 @@ libluasocket_a_CFLAGS = # $(WARNING_CFLAGS) libluajitsocket_a_CFLAGS = # $(WARNING_CFLAGS) nodist_libluasocket_a_SOURCES = $(libluasocket_sources) -nodist_liblua53socket_a_SOURCES = $(libluasocket_sources) +#nodist_liblua53socket_a_SOURCES = $(libluasocket_sources) nodist_libluajitsocket_a_SOURCES = $(libluasocket_sources) libluasocket_sources = \ diff --git a/source/texk/web2c/luatexdir/am/luatex.am b/source/texk/web2c/luatexdir/am/luatex.am index 2fb4d64f68a99e48d274e96d064132d935aaab0f..9d289ab00c6410b72b78ef3b985065a400cc170a 100644 --- a/source/texk/web2c/luatexdir/am/luatex.am +++ b/source/texk/web2c/luatexdir/am/luatex.am @@ -17,16 +17,16 @@ bin_links += luatex$(EXEEXT):texlua luatex$(EXEEXT):texluac endif !WIN32 endif LUATEX -if LUATEX53 -bin_PROGRAMS += luatex53 -if WIN32 -noinst_PROGRAMS += call_luatex53 -install_exe_links += install-luatex53-links -uninstall_exe_links += uninstall-luatex53-links -else !WIN32 -bin_links += luatex53$(EXEEXT):texlua53 -endif !WIN32 -endif LUATEX53 +#if LUATEX53 +#bin_PROGRAMS += luatex53 +#if WIN32 +#noinst_PROGRAMS += call_luatex53 +#install_exe_links += install-luatex53-links +#uninstall_exe_links += uninstall-luatex53-links +#else !WIN32 +#bin_links += luatex53$(EXEEXT):texlua53 +#endif !WIN32 +#endif LUATEX53 if LUAJITTEX bin_PROGRAMS += luajittex @@ -39,7 +39,8 @@ bin_links += luajittex$(EXEEXT):texluajit luajittex$(EXEEXT):texluajitc endif !WIN32 endif LUAJITTEX -EXTRA_PROGRAMS += luatex luatex53 luajittex +#EXTRA_PROGRAMS += luatex luatex53 luajittex +EXTRA_PROGRAMS += luatex luajittex # Force Automake to use CXXLD for linking #nodist_EXTRA_luatex_SOURCES = dummy.cxx @@ -52,16 +53,16 @@ luatex_postflags += -Dextra_version_info=`date +-%Y%m%d%H` luatex_postflags += -I$(srcdir)/synctexdir -DSYNCTEX_ENGINE_H='<synctex-luatex.h>' luatex_CPPFLAGS = $(luatex_preflags) $(LUA_INCLUDES) $(luatex_postflags) -luatex53_CPPFLAGS = $(luatex_preflags) $(LUA_LUA53_INCLUDES) $(luatex_postflags) +#luatex53_CPPFLAGS = $(luatex_preflags) $(LUA_LUA53_INCLUDES) $(luatex_postflags) luajittex_CPPFLAGS = $(luatex_preflags) $(LUAJIT_INCLUDES) $(LUAJIT_DEFINES) $(luatex_postflags) luajittex_CPPFLAGS += -DLuajitTeX luatex_CXXFLAGS = $(WARNING_CXXFLAGS) -luatex53_CXXFLAGS = $(WARNING_CXXFLAGS) +#luatex53_CXXFLAGS = $(WARNING_CXXFLAGS) luajittex_CXXFLAGS = $(WARNING_CXXFLAGS) luatex_LDFLAGS = -export-dynamic -luatex53_LDFLAGS = -export-dynamic +#luatex53_LDFLAGS = -export-dynamic luajittex_LDFLAGS = -export-dynamic $(LUAJIT_LDEXTRA) #luatex_postldadd = libmplibcore.a $(MPFR_LIBS) $(GMP_LIBS) @@ -71,20 +72,20 @@ luatex_postldadd += $(LDADD) libmputil.a libunilib.a libmd5.a $(lua_socketlibs) luatex_LDADD = libluatex.a libff.a libluamisc.a libluasocket.a libluaffi.a libluapplib.a $(LUA_LIBS) $(luatex_postldadd) -luatex53_LDADD = liblua53tex.a libff.a liblua53misc.a liblua53socket.a liblua53ffi.a liblua53pplib.a $(LUA_LUA53_LIBS) $(luatex_postldadd) +#luatex53_LDADD = liblua53tex.a libff.a liblua53misc.a liblua53socket.a liblua53ffi.a liblua53pplib.a $(LUA_LUA53_LIBS) $(luatex_postldadd) luajittex_LDADD = libluajittex.a libff.a libluajitmisc.a libluajitsocket.a libluajitpplib.a $(LUAJIT_LIBS) $(luatex_postldadd) luatex_depend = $(proglib) $(KPATHSEA_DEPEND) $(LIBPNG_DEPEND) libmputil.a libmd5.a luatex_DEPENDENCIES = $(luatex_depend) libluatex.a -luatex53_DEPENDENCIES = $(luatex_depend) liblua53tex.a +#luatex53_DEPENDENCIES = $(luatex_depend) liblua53tex.a luajittex_DEPENDENCIES = $(luatex_depend) libluajittex.a $(luatex_OBJECTS): libluatex.a -$(luatex53_OBJECTS): liblua53tex.a +#$(luatex53_OBJECTS): liblua53tex.a $(luajittex_OBJECTS): libluajittex.a nodist_luatex_SOURCES = $(luatex_sources) -nodist_luatex53_SOURCES = $(luatex_sources) +#nodist_luatex53_SOURCES = $(luatex_sources) nodist_luajittex_SOURCES = $(luatex_sources) @@ -101,9 +102,9 @@ call_luatex_CPPFLAGS = -DEXEPROG=\"luatex.exe\" nodist_call_luatex_SOURCES = callexe.c call_luatex_LDADD = -call_luatex53_CPPFLAGS = -DEXEPROG=\"luatex53.exe\" -nodist_call_luatex53_SOURCES = callexe.c -call_luatex53_LDADD = +#call_luatex53_CPPFLAGS = -DEXEPROG=\"luatex53.exe\" +#nodist_call_luatex53_SOURCES = callexe.c +#call_luatex53_LDADD = call_luajittex_CPPFLAGS = -DEXEPROG=\"luajittex.exe\" nodist_call_luajittex_SOURCES = callexe.c @@ -130,8 +131,8 @@ endif WIN32 # luatex_tests = luatexdir/luatex.test luatexdir/luaimage.test luatexdir/luatex.log luatexdir/luaimage.log: luatex$(EXEEXT) -luatex53_tests = luatexdir/luatex.test luatexdir/luaimage.test -luatexdir/luatex53.log luatexdir/luaimage53.log: luatex53$(EXEEXT) +#luatex53_tests = luatexdir/luatex.test luatexdir/luaimage.test +#luatexdir/luatex53.log luatexdir/luaimage53.log: luatex53$(EXEEXT) luajittex_tests = luatexdir/luajittex.test luatexdir/luajitimage.test @@ -142,9 +143,9 @@ EXTRA_DIST += $(luatex_tests) $(luajittex_tests) if LUATEX TESTS += $(luatex_tests) endif LUATEX -if LUATEX53 -TESTS += $(luatex_tests) -endif LUATEX53 +#if LUATEX53 +#TESTS += $(luatex_tests) +#endif LUATEX53 if LUAJITTEX TESTS += $(luajittex_tests) endif LUAJITTEX diff --git a/source/texk/web2c/luatexdir/font/sfnt.c b/source/texk/web2c/luatexdir/font/sfnt.c index c7f4723c4076d0086487b06b8a1fd9cbe1c60f69..a58bda0923696c2f23d4df2182d3c017aa5b4f13 100644 --- a/source/texk/web2c/luatexdir/font/sfnt.c +++ b/source/texk/web2c/luatexdir/font/sfnt.c @@ -248,8 +248,9 @@ ULONG sfnt_locate_table(sfnt * sfont, const char *tag) { ULONG offset; offset = sfnt_find_table_pos(sfont, tag); - if (offset == 0) - normal_error("ttf","sfnt table not found"); + if (offset == 0) { + formatted_error("ttf","%s table not found",tag); + } sfnt_seek_set(sfont, (long) offset); return offset; } diff --git a/source/texk/web2c/luatexdir/font/tounicode.c b/source/texk/web2c/luatexdir/font/tounicode.c index f0449aff9571154ed9ce492e2d14754d09b9cad0..32210600c216de20bc361d0affc80a7f181b078a 100644 --- a/source/texk/web2c/luatexdir/font/tounicode.c +++ b/source/texk/web2c/luatexdir/font/tounicode.c @@ -287,6 +287,7 @@ static void set_glyph_unicode(char *s, glyph_unicode_entry * gp) } } +/* static void set_cid_glyph_unicode(long index, glyph_unicode_entry * gp, internal_font_number f) { char *s; @@ -295,13 +296,14 @@ static void set_cid_glyph_unicode(long index, glyph_unicode_entry * gp, internal gp->code = UNI_EXTRA_STRING; gp->unicode_seq = xstrdup(s); } else { - /*tex No fall back as we're providing them ourselves. */ + // No fall back as we're providing them ourselves. } } else { - /*tex Fall back. */ + // Fall back gp->code = index; } } +*/ int write_tounicode(PDF pdf, char **glyph_names, char *name) { @@ -470,9 +472,10 @@ int write_cid_tounicode(PDF pdf, fo_entry * fo, internal_font_number f) static int range_size[65537]; static glyph_unicode_entry gtab[65537]; int objnum; - int i, j, k; + int i, j, k, tu; int bfchar_count, bfrange_count, subrange_count; char *buf; + char *s; buf = xmalloc((unsigned) (strlen(fo->fd->fontname) + 8)); sprintf(buf, "%s-%s", (fo->fd->subset_tag != NULL ? fo->fd->subset_tag : "UCS"), fo->fd->fontname); objnum = pdf_create_obj(pdf, obj_type_others, 0); @@ -514,7 +517,36 @@ int write_cid_tounicode(PDF pdf, fo_entry * fo, internal_font_number f) if (quick_char_exists(k, i) && char_used(k, i)) { j = char_index(k, i); if (gtab[j].code == UNI_UNDEF) { + /* set_cid_glyph_unicode(i, >ab[j], f); + */ + tu = 0; + /*tex + First look in the instance (new). Ff this fails + us (context) it will go away or become an option. + */ + if (font_tounicode(k)) { + tu = 1; /*tex no fallback to index */ + if ((s = get_charinfo_tounicode(char_info(k, (int) i))) != NULL) { + gtab[j].code = UNI_EXTRA_STRING; + gtab[j].unicode_seq = xstrdup(s); + } + } + /*tex + Then look in the parent (was default, so one can + still be sparse). + */ + if (k != f && gtab[j].code == UNI_UNDEF && font_tounicode(f)) { + tu = 1; /*tex no fallback to index */ + if ((s = get_charinfo_tounicode(char_info(f, (int) i))) != NULL) { + gtab[j].code = UNI_EXTRA_STRING; + gtab[j].unicode_seq = xstrdup(s); + } + } + if (! tu) { + /*tex No tonunicode so we map onto index. */ + gtab[j].code = i; + } } } } diff --git a/source/texk/web2c/luatexdir/font/tt_table.c b/source/texk/web2c/luatexdir/font/tt_table.c index dfcd4d650cd664c03babe09a925debf81353c483..eba82728713054ede604fd6f82857d98ed2ae7aa 100644 --- a/source/texk/web2c/luatexdir/font/tt_table.c +++ b/source/texk/web2c/luatexdir/font/tt_table.c @@ -328,15 +328,23 @@ struct tt_os2__table *tt_read_os2__table(sfnt * sfont) table->sTypoLineGap = sfnt_get_short(sfont); table->usWinAscent = sfnt_get_ushort(sfont); table->usWinDescent = sfnt_get_ushort(sfont); - table->ulCodePageRange1 = sfnt_get_ulong(sfont); - table->ulCodePageRange2 = sfnt_get_ulong(sfont); - if (table->version == 0x0002) { + if (table->version >= 0x0001) { + table->ulCodePageRange1 = sfnt_get_ulong(sfont); + table->ulCodePageRange2 = sfnt_get_ulong(sfont); + } + if (table->version >= 0x0002) { table->sxHeight = sfnt_get_short(sfont); table->sCapHeight = sfnt_get_short(sfont); table->usDefaultChar = sfnt_get_ushort(sfont); table->usBreakChar = sfnt_get_ushort(sfont); table->usMaxContext = sfnt_get_ushort(sfont); } + /* + https://docs.microsoft.com/en-us/typography/opentype/spec/os2 + + There are now 5 versions but we don't read the few additional + fields as we don't use them. Some changes are cosmetical (names). + */ return table; } diff --git a/source/texk/web2c/luatexdir/font/writecff.c b/source/texk/web2c/luatexdir/font/writecff.c index cf07511790b732198c8fe9841b2d232cf7a0d036..2d0b16b085d6c07f21efc53db38bb38f1fb78121 100644 --- a/source/texk/web2c/luatexdir/font/writecff.c +++ b/source/texk/web2c/luatexdir/font/writecff.c @@ -2884,7 +2884,7 @@ void write_cff(PDF pdf, cff_font * cffont, fd_entry * fd) cff_add_string(cffont, "Identity"); if (cffont->header_major == 2) { /*tex A crash. */ - } else { + } else if (cffont->private && (cffont->private)[0]) { cff_dict_update(cffont->private[0], cffont); } cff_update_string(cffont); diff --git a/source/texk/web2c/luatexdir/image/epdf.h b/source/texk/web2c/luatexdir/image/epdf.h index 9c32c06b795a445836e49d30fd47720898386ff7..d0cd7f79ee0f290cbc0271ea1bfab6ef37b7d181 100644 --- a/source/texk/web2c/luatexdir/image/epdf.h +++ b/source/texk/web2c/luatexdir/image/epdf.h @@ -145,7 +145,8 @@ int luaopen_epdf(lua_State * L); typedef struct InObj InObj; struct InObj { - ppref *ref; /* ref in original PDF */ + /* int version; */ /* old object number in included PDF */ + int objnum; /* old version number in included PDF, we can do without */ int num; /* new object number in output PDF */ InObj *next; /* next entry in list of indirect objects */ } ; diff --git a/source/texk/web2c/luatexdir/image/pdftoepdf.c b/source/texk/web2c/luatexdir/image/pdftoepdf.c index 653f630a2cf054f11e2741d02d262498f7651b95..664bfef18c9eab4288684bdd3cfefd8995f49891 100644 --- a/source/texk/web2c/luatexdir/image/pdftoepdf.c +++ b/source/texk/web2c/luatexdir/image/pdftoepdf.c @@ -275,31 +275,37 @@ PdfDocument *refMemStreamPdfDocument(char *docstream, unsigned long long streams typedef struct ObjMap ObjMap ; struct ObjMap { - ppref * in; + /* int version; */ /* not really needed */ + int objnum; int out_num; }; static int CompObjMap(const void *pa, const void *pb, void *p) { - const ppref *a = (((const ObjMap *) pa)->in); - const ppref *b = (((const ObjMap *) pb)->in); - if (a->number > b->number) + const ObjMap *a = (((const ObjMap *) pa)); + const ObjMap *b = (((const ObjMap *) pb)); + if (a->objnum > b->objnum) return 1; - else if (a->number < b->number) + else if (a->objnum < b->objnum) return -1; + /* else if (a->version == b->version) return 0; else if (a->version < b->version) return -1; return 1; + */ + return 0; } static ObjMap *findObjMap(PdfDocument * pdf_doc, ppref * in) { ObjMap *obj_map, tmp; - if (pdf_doc->ObjMapTree == NULL) + if (pdf_doc->ObjMapTree == NULL) { return NULL; - tmp.in = in; + } + tmp.objnum = in->number; + /* tmp.version = in->version; */ obj_map = (ObjMap *) avl_find(pdf_doc->ObjMapTree, &tmp); return obj_map; } @@ -307,10 +313,12 @@ static ObjMap *findObjMap(PdfDocument * pdf_doc, ppref * in) static void addObjMap(PdfDocument * pdf_doc, ppref * in, int out_num) { ObjMap *obj_map = NULL; - if (pdf_doc->ObjMapTree == NULL) + if (pdf_doc->ObjMapTree == NULL) { pdf_doc->ObjMapTree = avl_create(CompObjMap, NULL, &avl_xallocator); + } obj_map = (ObjMap*)xmalloc(sizeof(ObjMap)); - obj_map->in = in; + /* obj_map->version = in->version; */ + obj_map->objnum = in->number; obj_map->out_num = out_num; avl_probe(pdf_doc->ObjMapTree, obj_map); } @@ -337,7 +345,8 @@ static int addInObj(PDF pdf, PdfDocument * pdf_doc, ppref * ref) return obj_map->out_num; } n = (InObj*)xmalloc(sizeof(InObj)); - n->ref = ref; + n->objnum = ref->number; + /* n->version = ref->version; */ n->next = NULL; n->num = pdf_create_obj(pdf, obj_type_others, 0); addObjMap(pdf_doc, ref, n->num); @@ -540,12 +549,16 @@ static void writeRefs(PDF pdf, PdfDocument * pdf_doc) { InObj *r, *n; ppobj * obj; + ppref * ref ; + ppxref * xref = ppdoc_xref (pdf_doc->pdfe); for (r = pdf_doc->inObjList; r != NULL;) { - obj = ppref_obj(r->ref); - if (obj->type == PPSTREAM) + ref = ppxref_find (xref, (ppuint) r->objnum); + obj = ppref_obj(ref); + if (obj->type == PPSTREAM) { pdf_begin_obj(pdf, r->num, OBJSTM_NEVER); - else + } else { pdf_begin_obj(pdf, r->num, 2); + } copyObject(pdf, pdf_doc, obj); pdf_end_obj(pdf); n = r->next; @@ -555,6 +568,7 @@ static void writeRefs(PDF pdf, PdfDocument * pdf_doc) } } + /* get the pagebox coordinates according to the pagebox_spec */ static void somebox(ppdict *page, const char * key, pprect * box) @@ -613,11 +627,6 @@ static ppdict * get_pdf_page_dict(ppdoc *pdfe, int n) return NULL; } -// static ppdict * get_pdf_page_dict(ppdoc *pdfe, int n) -// { -// return ppref_obj(ppdoc_page(pdfe,n))->dict; -// } - void read_pdf_info(image_dict * idict) { PdfDocument *pdf_doc = NULL; @@ -913,7 +922,7 @@ void write_epdf(PDF pdf, image_dict * idict, int suppress_optional_info) } */ } - pdf_end_dict(pdf); + pdf_end_dict(pdf); pdf_begin_stream(pdf); copyStreamStream(pdf, stream, 0, 0); } else { diff --git a/source/texk/web2c/luatexdir/lua/llanglib.c b/source/texk/web2c/luatexdir/lua/llanglib.c index 5855f33fc686b03d10d10dfcc251e5c16149b664..8f4e35f46e250a2c5deb3d6df204731f59bf7ace 100644 --- a/source/texk/web2c/luatexdir/lua/llanglib.c +++ b/source/texk/web2c/luatexdir/lua/llanglib.c @@ -242,20 +242,22 @@ static int do_lang_clean(lua_State * L) static int do_lang_hyphenate(lua_State * L) { - halfword *h, *t, tt; - h = check_isnode(L, 1); + halfword t = null; + halfword h = *check_isnode(L, 1); if (lua_isuserdata(L, 2)) { - t = check_isnode(L, 2); - tt = *t; - lua_pop(L, 1); - } else { - tt = *h; - while (vlink(tt) != null) - tt = vlink(tt); + t = *check_isnode(L, 2); + } + if (t == null) { + t = h; + while (vlink(t) != null) { + t = vlink(t); + } } - hnj_hyphenation(*h, tt); + hnj_hyphenation(h, t); + lua_nodelib_push_fast(L, h); + lua_nodelib_push_fast(L, t); lua_pushboolean(L, 1); - return 1; + return 3; } static const struct luaL_Reg langlib_d[] = { diff --git a/source/texk/web2c/luatexdir/lua/lnodelib.c b/source/texk/web2c/luatexdir/lua/lnodelib.c index baa85f33a801f12a433f39a630ed66ea1d5e5bb6..dd7948276461c98d9e6d6769c9cf2f25ea8afe56 100644 --- a/source/texk/web2c/luatexdir/lua/lnodelib.c +++ b/source/texk/web2c/luatexdir/lua/lnodelib.c @@ -998,12 +998,10 @@ static int lua_nodelib_direct_getkern(lua_State * L) if (n) { halfword t = type(n); if (t == kern_node) { + lua_pushnumber(L, width(n)); if (lua_toboolean(L,2)) { - lua_pushnumber(L, (1+ex_kern(n)/1000) * width(n)); lua_pushinteger(L, ex_kern(n)); return 2; - } else { - lua_pushinteger(L, width(n)); } } else if (t == margin_kern_node) { lua_pushinteger(L, width(n)); @@ -1257,20 +1255,20 @@ static int lua_nodelib_direct_setdisc(lua_State * L) /* node.direct.getwhd */ /* node.direct.setwhd */ -#define push_list_whd(n) do { \ +# define push_list_whd(n) do { \ lua_pushinteger(L, width(n)); \ lua_pushinteger(L, height(n)); \ lua_pushinteger(L, depth(n)); \ } while (0) -#define push_char_whd(n) do { \ +# define push_char_whd(n) do { \ lua_pushinteger(L, char_width(font(n),character(n))); \ lua_pushinteger(L, char_height(font(n),character(n))); \ lua_pushinteger(L, char_depth(font(n),character(n))); \ } while (0) -#define push_char_ehd(n) do { \ - lua_pushnumber(L, (1+ex_glyph(n)/1000) * char_width(font(n),character(n))); \ +# define push_char_ehd(n) do { \ + lua_pushinteger(L, char_width(font(n),character(n))); \ lua_pushinteger(L, char_height(font(n),character(n))); \ lua_pushinteger(L, char_depth(font(n),character(n))); \ lua_pushinteger(L, ex_glyph(n)); \ @@ -1647,10 +1645,20 @@ static int lua_nodelib_direct_setleader(lua_State * L) write_tokens(n) = nodelib_gettoks(L, i); \ } while (0) -#define get_write_direct_value(L,n) do { \ +#define xget_write_direct_value(L,n) do { \ tokenlist_to_lua(L, write_tokens(n)); \ } while (0) +#define get_write_direct_value(L,n) do { \ + int l; \ + char *s; \ + expand_macros_in_tokenlist(n); \ + s = tokenlist_to_cstring(def_ref, 1, &l); \ + lua_pushlstring(L, s, (size_t) l); \ + free(s); \ + flush_list(def_ref); \ +} while (0) + #define set_pdf_setmatrix_direct_value(L,n,i) do { \ pdf_setmatrix_data(n) = nodelib_gettoks(L, i); \ } while (0) @@ -3598,22 +3606,18 @@ static int lua_nodelib_direct_getwidth(lua_State * L) if (t == hlist_node || t == vlist_node || t == rule_node) { lua_pushinteger(L,width(n)); } else if (t == glyph_node) { + lua_pushnumber(L, char_width(font(n),character(n))); if (lua_toboolean(L,2)) { - lua_pushnumber(L, (1+ex_glyph(n)/1000) * char_width(font(n),character(n))); lua_pushinteger(L, ex_glyph(n)); return 2; - } else { - lua_pushinteger(L, char_width(font(n),character(n))); } } else if (t == glue_node || t == glue_spec_node || t == math_node || t == ins_node) { lua_pushinteger(L,width(n)); } else if (t == kern_node) { + lua_pushinteger(L, width(n)); if (lua_toboolean(L,2)) { - lua_pushnumber(L, (1+ex_kern(n)/1000) * width(n)); lua_pushinteger(L, ex_kern(n)); return 2; - } else { - lua_pushinteger(L, width(n)); } } else if (t == margin_kern_node) { lua_pushinteger(L,width(n)); @@ -4720,7 +4724,7 @@ static int lua_nodelib_fast_getfield(lua_State * L) } else if (lua_key_eq(s, depth)) { lua_pushinteger(L, depth(n)); } else if (lua_key_eq(s, direction)) { - lua_pushinteger(L, box_dir(n)); + lua_push_direction(L, box_dir(n)); } else if (lua_key_eq(s, dir)) { lua_push_dir_par(L, box_dir(n)); } else if (lua_key_eq(s, shift)) { @@ -4799,7 +4803,7 @@ static int lua_nodelib_fast_getfield(lua_State * L) } else if (lua_key_eq(s, right)) { lua_pushinteger(L,rule_right(n)); } else if (lua_key_eq(s, direction)) { - lua_pushinteger(L, rule_dir(n)); + lua_push_direction(L, rule_dir(n)); } else if (lua_key_eq(s, dir)) { lua_push_dir_par(L, rule_dir(n)); } else if (lua_key_eq(s, index)) { @@ -4811,7 +4815,7 @@ static int lua_nodelib_fast_getfield(lua_State * L) } } else if (t == dir_node) { if (lua_key_eq(s, direction)) { - lua_pushinteger(L, dir_dir(n)); + lua_push_direction(L, dir_dir(n)); } else if (lua_key_eq(s, dir)) { lua_push_dir_text(L, dir_dir(n),subtype(n)); } else if (lua_key_eq(s, level)) { @@ -4827,7 +4831,7 @@ static int lua_nodelib_fast_getfield(lua_State * L) } else if (lua_key_eq(s, pen_broken)) { lua_pushinteger(L, local_pen_broken(n)); } else if (lua_key_eq(s, direction)) { - lua_pushinteger(L, local_par_dir(n)); + lua_push_direction(L, local_par_dir(n)); } else if (lua_key_eq(s, dir)) { lua_push_dir_par(L, local_par_dir(n)); } else if (lua_key_eq(s, box_left)) { @@ -5130,7 +5134,7 @@ static int lua_nodelib_fast_getfield(lua_State * L) } else if (lua_key_eq(s, depth)) { lua_pushinteger(L, depth(n)); } else if (lua_key_eq(s, direction)) { - lua_pushinteger(L, box_dir(n)); + lua_push_direction(L, box_dir(n)); } else if (lua_key_eq(s, dir)) { lua_push_dir_par(L, box_dir(n)); } else if (lua_key_eq(s, shrink)) { @@ -5475,7 +5479,7 @@ static int lua_nodelib_direct_getfield(lua_State * L) } else if (lua_key_eq(s, depth)) { lua_pushinteger(L, depth(n)); } else if (lua_key_eq(s, direction)) { - lua_pushinteger(L, box_dir(n)); + lua_push_direction(L, box_dir(n)); } else if (lua_key_eq(s, dir)) { lua_push_dir_par(L, box_dir(n)); } else if (lua_key_eq(s, shift)) { @@ -5544,7 +5548,7 @@ static int lua_nodelib_direct_getfield(lua_State * L) } else if (lua_key_eq(s, right)) { lua_pushinteger(L,rule_right(n)); } else if (lua_key_eq(s, direction)) { - lua_pushinteger(L, rule_dir(n)); + lua_push_direction(L, rule_dir(n)); } else if (lua_key_eq(s, dir)) { lua_push_dir_par(L, rule_dir(n)); } else if (lua_key_eq(s, index)) { @@ -5556,7 +5560,7 @@ static int lua_nodelib_direct_getfield(lua_State * L) } } else if (t == dir_node) { if (lua_key_eq(s, direction)) { - lua_pushinteger(L, dir_dir(n)); + lua_push_direction(L, dir_dir(n)); } else if (lua_key_eq(s, dir)) { lua_push_dir_text(L, dir_dir(n), subtype(n)); } else if (lua_key_eq(s, level)) { @@ -5572,7 +5576,7 @@ static int lua_nodelib_direct_getfield(lua_State * L) } else if (lua_key_eq(s, pen_broken)) { lua_pushinteger(L, local_pen_broken(n)); } else if (lua_key_eq(s, direction)) { - lua_pushinteger(L, local_par_dir(n)); + lua_push_direction(L, local_par_dir(n)); } else if (lua_key_eq(s, dir)) { lua_push_dir_par(L, local_par_dir(n)); } else if (lua_key_eq(s, box_left)) { @@ -5816,7 +5820,7 @@ static int lua_nodelib_direct_getfield(lua_State * L) } else if (lua_key_eq(s, depth)) { lua_pushinteger(L, depth(n)); } else if (lua_key_eq(s, direction)) { - lua_pushinteger(L, box_dir(n)); + lua_push_direction(L, box_dir(n)); } else if (lua_key_eq(s, dir)) { lua_push_dir_par(L, box_dir(n)); } else if (lua_key_eq(s, shrink)) { @@ -6070,6 +6074,51 @@ static int font_tex_direct_kerning(lua_State * L) return 3; } +/*tex + It's more consistent to have it here (so we will alias in lang later). Todo: + if no glyph then quit. +*/ + +static int lang_tex_hyphenating(lua_State * L) +{ + halfword t = null; + halfword h = *check_isnode(L, 1); + if (lua_isuserdata(L, 2)) { + t = *check_isnode(L, 2); + } + if (t == null) { + t = h; + while (vlink(t) != null) { + t = vlink(t); + } + } + hnj_hyphenation(h, t); + lua_nodelib_push_fast(L, h); + lua_nodelib_push_fast(L, t); + lua_pushboolean(L, 1); + return 3; +} + +static int lang_tex_direct_hyphenating(lua_State * L) +{ + halfword t = null; + halfword h = lua_tointeger(L, 1); + if (lua_type(L,1) != LUA_TNUMBER) { + t = lua_tointeger(L, 2); + } + if (t == null) { + t = h; + while (vlink(t) != null) { + t = vlink(t); + } + } + hnj_hyphenation(h, t); + lua_pushinteger(L, h); + lua_pushinteger(L, t); + lua_pushboolean(L, 1); + return 3; +} + /* node.protect_glyphs (returns also boolean because that signals callback) */ /* node.unprotect_glyphs (returns also boolean because that signals callback) */ @@ -8849,6 +8898,7 @@ static const struct luaL_Reg direct_nodelib_f[] = { {"is_glyph", lua_nodelib_direct_is_glyph}, {"uses_font", lua_nodelib_direct_uses_font}, {"hpack", lua_nodelib_direct_hpack}, + {"hyphenating", lang_tex_direct_hyphenating}, /* {"id", lua_nodelib_id}, */ /* no node argument */ {"insert_after", lua_nodelib_direct_insert_after}, {"insert_before", lua_nodelib_direct_insert_before}, @@ -8979,6 +9029,7 @@ static const struct luaL_Reg nodelib_f[] = { {"is_glyph", lua_nodelib_is_glyph}, {"uses_font", lua_nodelib_uses_font}, {"hpack", lua_nodelib_hpack}, + {"hyphenating", lang_tex_hyphenating}, {"id", lua_nodelib_id}, {"insert_after", lua_nodelib_insert_after}, {"insert_before", lua_nodelib_insert_before}, diff --git a/source/texk/web2c/luatexdir/lua/lpdfelib.c b/source/texk/web2c/luatexdir/lua/lpdfelib.c index 31fad9f632d5a1ca6e3782b8f2264f3e9e062d1a..dc09d347aad5f6f9c77de1443bcd7d6c56969e9b 100644 --- a/source/texk/web2c/luatexdir/lua/lpdfelib.c +++ b/source/texk/web2c/luatexdir/lua/lpdfelib.c @@ -1,11 +1,30 @@ +/* loslibext.c + + This file is part of LuaTeX. + + LuaTeX is free software; you can redistribute it and/or modify it under the + terms of the GNU General Public License as published by the Free Software + Foundation; either version 2 of the License, or (at your option) any later + version. + + LuaTeX 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 Lesser General Public License for more + details. + + You should have received a copy of the GNU General Public License along with + LuaTeX; if not, see <http://www.gnu.org/licenses/>. + +*/ + /*tex - This file will host the encapsulated \PDF\ support code used for inclusion - and access from \LUA. + This file hosts the encapsulated \PDF\ support code used for inclusion and + access from \LUA. */ -#include "ptexlib.h" +# include "ptexlib.h" /*tex @@ -13,34 +32,34 @@ */ -#undef lpdfelib_orig_input -#undef lpdfelib_orig_output +# undef lpdfelib_orig_input +# undef lpdfelib_orig_output -#ifdef input -#define lpdfelib_orig_input input -#undef input -#endif +# ifdef input +# define lpdfelib_orig_input input +# undef input +# endif -#ifdef output -#define lpdfelib_orig_output output -#undef output -#endif +# ifdef output +# define lpdfelib_orig_output output +# undef output +# endif -#include "luapplib/pplib.h" +# include "luapplib/pplib.h" -#include "image/epdf.h" +# include "image/epdf.h" -#ifdef lpdfelib_orig_input -#define input lpdfelib_orig_input -#undef lpdfelib_orig_input -#endif +# ifdef lpdfelib_orig_input +# define input lpdfelib_orig_input +# undef lpdfelib_orig_input +# endif -#ifdef lpdfelib_orig_output -#define output lpdfelib_orig_output -#undef lpdfelib_orig_output -#endif +# ifdef lpdfelib_orig_output +# define output lpdfelib_orig_output +# undef lpdfelib_orig_output +# endif -#include "lua/luatex-api.h" +# include "lua/luatex-api.h" /*tex @@ -50,11 +69,11 @@ */ -#define PDFE_METATABLE "luatex.pdfe" -#define PDFE_METATABLE_DICTIONARY "luatex.pdfe.dictionary" -#define PDFE_METATABLE_ARRAY "luatex.pdfe.array" -#define PDFE_METATABLE_STREAM "luatex.pdfe.stream" -#define PDFE_METATABLE_REFERENCE "luatex.pdfe.reference" +# define PDFE_METATABLE "luatex.pdfe" +# define PDFE_METATABLE_DICTIONARY "luatex.pdfe.dictionary" +# define PDFE_METATABLE_ARRAY "luatex.pdfe.array" +# define PDFE_METATABLE_STREAM "luatex.pdfe.stream" +# define PDFE_METATABLE_REFERENCE "luatex.pdfe.reference" typedef struct { ppdoc *document; @@ -67,23 +86,22 @@ typedef struct { typedef struct { ppdict *dictionary; - ppref *ref; } pdfe_dictionary; typedef struct { pparray *array; - ppref *ref; } pdfe_array; typedef struct { ppstream *stream; - ppref *ref; int decode; int open; } pdfe_stream; typedef struct { - ppref *reference; + /* ppref *reference; */ + ppxref *xref; + int onum; } pdfe_reference; /*tex @@ -194,7 +212,7 @@ static pdfe_reference *check_isreference(lua_State * L, int n) */ -#define check_type(field,meta,name) do { \ +# define check_type(field,meta,name) do { \ lua_get_metatablelua(luatex_##meta); \ if (lua_rawequal(L, -1, -2)) { \ lua_pushstring(L,name); \ @@ -223,7 +241,7 @@ static int pdfelib_type(lua_State * L) */ -#define define_to_string(field,what) \ +# define define_to_string(field,what) \ static int pdfelib_tostring_##field(lua_State * L) { \ pdfe_##field *p = check_is##field(L, 1); \ if (p != NULL) { \ @@ -236,9 +254,17 @@ static int pdfelib_tostring_##field(lua_State * L) { \ define_to_string(document, "pdfe") define_to_string(dictionary,"pdfe.dictionary") define_to_string(array, "pdfe.array") -define_to_string(reference, "pdfe.reference") define_to_string(stream, "pdfe.stream") +static int pdfelib_tostring_reference(lua_State * L) { \ + pdfe_reference *p = check_isreference(L, 1); \ + if (p != NULL) { \ + lua_pushfstring(L, "<pdfe.reference " "%i>", p->onum); \ + return 1; \ + } \ + return 0; \ +} + /*tex The pushers look rather similar. We have two variants, one that just pushes @@ -246,7 +272,7 @@ define_to_string(stream, "pdfe.stream") */ -#define pdfe_push_dictionary do { \ +# define pdfe_push_dictionary do { \ pdfe_dictionary *d = (pdfe_dictionary *)lua_newuserdata(L, sizeof(pdfe_dictionary)); \ luaL_getmetatable(L, PDFE_METATABLE_DICTIONARY); \ lua_setmetatable(L, -2); \ @@ -272,7 +298,7 @@ static int pushdictionaryonly(lua_State * L, ppdict *dictionary) return 0; } -#define pdfe_push_array do { \ +# define pdfe_push_array do { \ pdfe_array *a = (pdfe_array *)lua_newuserdata(L, sizeof(pdfe_array)); \ luaL_getmetatable(L, PDFE_METATABLE_ARRAY); \ lua_setmetatable(L, -2); \ @@ -298,7 +324,7 @@ static int pusharrayonly(lua_State * L, pparray * array) return 0; } -#define pdfe_push_stream do { \ +# define pdfe_push_stream do { \ pdfe_stream *s = (pdfe_stream *)lua_newuserdata(L, sizeof(pdfe_stream)); \ luaL_getmetatable(L, PDFE_METATABLE_STREAM); \ lua_setmetatable(L, -2); \ @@ -331,11 +357,12 @@ static int pushstreamonly(lua_State * L, ppstream * stream) return 0; } -#define pdfe_push_reference do { \ +# define pdfe_push_reference do { \ pdfe_reference *r = (pdfe_reference *)lua_newuserdata(L, sizeof(pdfe_reference)); \ luaL_getmetatable(L, PDFE_METATABLE_REFERENCE); \ lua_setmetatable(L, -2); \ - r->reference = reference; \ + r->xref = reference->xref; \ + r->onum = reference->number; \ } while (0) static int pushreference(lua_State * L, ppref * reference) @@ -709,9 +736,11 @@ static int pdfelib_readwholestream(lua_State * L) Alternatively streams can be fetched stepwise: + \starttyping okay = openstream(streamobject,[decode]) string, n = readfromstream(streamobject) closestream(streamobject) + \stoptyping */ @@ -1130,7 +1159,7 @@ static int pdfelib_getfromreference(lua_State * L) { pdfe_reference *r = check_isreference(L, 1); if (r != NULL) { - ppobj *o = ppref_obj(r->reference); + ppobj *o = ppref_obj(ppxref_find(r->xref, (ppuint) r->onum)); lua_pushinteger(L,o->type); return 1 + pushvalue(L,o); } @@ -1158,7 +1187,7 @@ static int pdfelib_getfromreference(lua_State * L) */ -#define pdfelib_get_value_check_1 do { \ +# define pdfelib_get_value_check_1 do { \ if (p == NULL) { \ if (t == LUA_TSTRING) { \ normal_warning("pdfe lib","lua <pdfe dictionary> expected"); \ @@ -1173,7 +1202,7 @@ static int pdfelib_getfromreference(lua_State * L) } \ } while (0) -#define pdfelib_get_value_check_2 \ +# define pdfelib_get_value_check_2 \ normal_warning("pdfe lib","second argument should be integer or string"); /*tex @@ -1183,7 +1212,11 @@ static int pdfelib_getfromreference(lua_State * L) */ -#define pdfelib_get_value_direct(get_d,get_a) do { \ +# define pdfelib_get_indirect_o(p) \ + ppref *r = ppxref_find(((pdfe_reference *) p)->xref, (ppuint) (((pdfe_reference *) p)->onum)); \ + ppobj *o = ppref_obj(r); \ + +# define pdfelib_get_value_direct(get_d,get_a) do { \ int t = lua_type(L,2); \ void *p = lua_touserdata(L, 1); \ pdfelib_get_value_check_1; \ @@ -1196,7 +1229,7 @@ static int pdfelib_getfromreference(lua_State * L) lua_pop(L,1); \ lua_get_metatablelua(luatex_pdfe_reference); \ if (lua_rawequal(L, -1, -2)) { \ - ppobj * o = ppref_obj((ppref *) (((pdfe_reference *) p)->reference)); \ + pdfelib_get_indirect_o(p); \ if (o != NULL && o->type == PPDICT) { \ value = get_d((ppdict *)o->dict, key); \ } \ @@ -1211,7 +1244,7 @@ static int pdfelib_getfromreference(lua_State * L) lua_pop(L,1); \ lua_get_metatablelua(luatex_pdfe_reference); \ if (lua_rawequal(L, -1, -2)) { \ - ppobj * o = ppref_obj((ppref *) (((pdfe_reference *) p)->reference)); \ + pdfelib_get_indirect_o(p); \ if (o != NULL && o->type == PPARRAY) { \ value = get_a((pparray *) o->array, index); \ } \ @@ -1229,7 +1262,7 @@ static int pdfelib_getfromreference(lua_State * L) */ -#define pdfelib_get_value_indirect(get_d,get_a) do { \ +# define pdfelib_get_value_indirect(get_d,get_a) do { \ int t = lua_type(L,2); \ void *p = lua_touserdata(L, 1); \ pdfelib_get_value_check_1; \ @@ -1242,7 +1275,7 @@ static int pdfelib_getfromreference(lua_State * L) lua_pop(L,1); \ lua_get_metatablelua(luatex_pdfe_reference); \ if (lua_rawequal(L, -1, -2)) { \ - ppobj * o = ppref_obj((ppref *) (((pdfe_reference *) p)->reference)); \ + pdfelib_get_indirect_o(p); \ if (o != NULL && o->type == PPDICT) \ okay = get_d(o->dict, key, &value); \ } \ @@ -1256,7 +1289,7 @@ static int pdfelib_getfromreference(lua_State * L) lua_pop(L,1); \ lua_get_metatablelua(luatex_pdfe_reference); \ if (lua_rawequal(L, -1, -2)) { \ - ppobj * o = ppref_obj((ppref *) (((pdfe_reference *) p)->reference)); \ + pdfelib_get_indirect_o(p); \ if (o != NULL && o->type == PPARRAY) \ okay = get_a(o->array, index, &value); \ } \ @@ -1523,8 +1556,8 @@ static int pdfelib_stream_size(lua_State * L) /*tex - We now initialize the main interface. We might aa few more - informational helpers but this is it. + We now initialize the main interface. We might add few more informational + helpers but this is it. */ diff --git a/source/texk/web2c/luatexdir/lua/luatex-core.c b/source/texk/web2c/luatexdir/lua/luatex-core.c index 5cb58af65136b127fcc564b91cb39054fd093550..386023d970b110d1fcf35ff8496d38eb2dec7587 100644 --- a/source/texk/web2c/luatexdir/lua/luatex-core.c +++ b/source/texk/web2c/luatexdir/lua/luatex-core.c @@ -129,507 +129,509 @@ int load_luatex_core_lua (lua_State * L) 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x28, 0x6e, 0x61, 0x6d, - 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x68, 0x6f, - 0x77, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, - 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x27, 0x72, 0x27, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x3d, 0x20, - 0x67, 0x73, 0x75, 0x62, 0x28, 0x68, 0x6f, 0x77, 0x2c, 0x27, 0x5b, 0x5e, 0x72, 0x62, 0x5d, 0x27, - 0x2c, 0x27, 0x27, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, - 0x68, 0x6f, 0x77, 0x20, 0x3d, 0x3d, 0x20, 0x27, 0x27, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x3d, - 0x20, 0x27, 0x72, 0x27, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x20, 0x66, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x6e, - 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, - 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, - 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x27, 0x72, 0x27, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, - 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x70, - 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6f, 0x6b, 0x61, 0x79, 0x2c, 0x20, 0x66, - 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x3d, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, - 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x29, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6b, 0x61, 0x79, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x6f, 0x5f, 0x70, 0x6f, - 0x70, 0x65, 0x6e, 0x28, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x6c, - 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x75, - 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x28, 0x6e, 0x61, - 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x29, 0x0a, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x66, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x2d, 0x2d, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x20, 0x3d, - 0x20, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, - 0x77, 0x20, 0x6f, 0x72, 0x20, 0x27, 0x72, 0x27, 0x29, 0x0a, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x2d, - 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, - 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x0a, - 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, 0x65, - 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x28, 0x66, 0x29, 0x0a, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x2d, 0x2d, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x2d, 0x2d, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, - 0x65, 0x73, 0x28, 0x29, 0x0a, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, - 0x2d, 0x2d, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x73, - 0x6f, 0x6d, 0x65, 0x20, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, - 0x63, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x6e, 0x27, 0x74, 0x20, 0x6b, 0x69, 0x63, 0x6b, 0x20, 0x69, - 0x6e, 0x20, 0x73, 0x6f, 0x20, 0x77, 0x65, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x20, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x74, 0x6c, 0x79, 0x0a, 0x2d, - 0x2d, 0x20, 0x73, 0x6f, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x68, 0x61, - 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0x2e, - 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2c, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x20, 0x3d, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2c, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x27, 0x72, 0x27, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0x6f, + 0x77, 0x20, 0x3d, 0x20, 0x67, 0x73, 0x75, 0x62, 0x28, 0x68, 0x6f, 0x77, 0x2c, 0x27, 0x5b, 0x5e, + 0x72, 0x62, 0x5d, 0x27, 0x2c, 0x27, 0x27, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x66, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x3d, 0x3d, 0x20, 0x27, 0x27, 0x20, 0x74, 0x68, + 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, + 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x27, 0x72, 0x27, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x5f, 0x6f, 0x70, + 0x65, 0x6e, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x66, 0x20, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x66, 0x69, 0x6c, + 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x27, 0x72, 0x27, 0x29, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x66, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, + 0x69, 0x6f, 0x5f, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x2e, 0x2e, + 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6f, 0x6b, 0x61, + 0x79, 0x2c, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x3d, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x63, + 0x68, 0x65, 0x63, 0x6b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x61, 0x6d, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6b, 0x61, 0x79, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, + 0x6f, 0x5f, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x2c, 0x2e, 0x2e, + 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, + 0x2d, 0x2d, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, - 0x73, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x20, 0x3d, 0x3d, - 0x20, 0x22, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x20, 0x3d, - 0x20, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, - 0x77, 0x20, 0x6f, 0x72, 0x20, 0x27, 0x72, 0x27, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x66, 0x20, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, - 0x6c, 0x20, 0x3d, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, - 0x28, 0x66, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x20, 0x74, 0x68, 0x65, - 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x3a, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x28, 0x29, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6c, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x6f, - 0x73, 0x65, 0x20, 0x77, 0x68, 0x6f, 0x20, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x69, 0x74, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x77, 0x61, 0x79, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x28, 0x22, 0x70, 0x61, 0x74, 0x63, - 0x68, 0x65, 0x64, 0x20, 0x27, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x27, 0x20, 0x63, - 0x61, 0x6e, 0x27, 0x74, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x27, 0x22, 0x20, 0x2e, 0x2e, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x2e, 0x2e, 0x20, 0x22, 0x27, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, - 0x20, 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x28, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, - 0x6f, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x28, 0x66, 0x29, 0x0a, 0x20, 0x20, + 0x73, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x29, 0x0a, 0x2d, 0x2d, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, + 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x20, 0x66, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x6e, 0x61, 0x6d, + 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x20, 0x6f, 0x72, 0x20, 0x27, 0x72, 0x27, 0x29, 0x0a, 0x2d, 0x2d, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x6e, 0x0a, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x28, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, - 0x72, 0x6e, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x28, - 0x66, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, - 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, - 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x0a, 0x6d, 0x74, 0x2e, 0x6c, 0x69, - 0x6e, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, - 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x57, 0x65, 0x20, - 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, - 0x73, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x2d, 0x2d, 0x20, 0x63, 0x61, 0x73, 0x65, - 0x20, 0x69, 0x6e, 0x20, 0x43, 0x6f, 0x6e, 0x54, 0x65, 0x58, 0x74, 0x2e, 0x0a, 0x0a, 0x69, 0x66, - 0x20, 0x6b, 0x70, 0x73, 0x65, 0x75, 0x73, 0x65, 0x64, 0x20, 0x3d, 0x3d, 0x20, 0x31, 0x20, 0x74, - 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x20, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x6f, 0x70, - 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x20, - 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x70, 0x6f, 0x70, 0x65, - 0x6e, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x73, 0x61, 0x66, 0x65, 0x72, - 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x3d, 0x20, 0x31, 0x20, 0x74, 0x68, 0x65, 0x6e, - 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, - 0x79, 0x28, 0x73, 0x74, 0x72, 0x2c, 0x66, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, - 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, - 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x6e, 0x28, 0x29, 0x0a, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x69, + 0x6f, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x28, 0x66, 0x29, 0x0a, 0x2d, 0x2d, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, + 0x0a, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, + 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x2d, 0x2d, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x6f, + 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x28, 0x29, 0x0a, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x65, 0x6e, 0x64, 0x0a, 0x2d, 0x2d, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x46, + 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x67, 0x63, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x6e, 0x27, 0x74, 0x20, 0x6b, 0x69, + 0x63, 0x6b, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x6f, 0x20, 0x77, 0x65, 0x20, 0x6e, 0x65, 0x65, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x20, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x74, + 0x6c, 0x79, 0x0a, 0x2d, 0x2d, 0x20, 0x73, 0x6f, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, 0x66, 0x6c, 0x75, 0x73, + 0x68, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x2c, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x3d, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2c, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, + 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x29, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, + 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x74, 0x68, + 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x20, 0x66, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x6e, 0x61, 0x6d, + 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x20, 0x6f, 0x72, 0x20, 0x27, 0x72, 0x27, 0x29, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x20, 0x6c, 0x20, 0x3d, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x61, 0x64, + 0x6c, 0x69, 0x6e, 0x65, 0x28, 0x66, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6e, 0x6c, 0x28, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x22, 0x73, 0x61, 0x66, 0x65, 0x72, 0x20, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x25, 0x71, 0x20, 0x69, 0x73, 0x20, 0x25, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x2c, 0x66, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x22, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x65, 0x64, 0x22, 0x20, 0x6f, 0x72, 0x20, 0x22, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x22, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x3d, 0x20, - 0x74, 0x72, 0x75, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x66, 0x20, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, - 0x6e, 0x20, 0x66, 0x28, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x3a, 0x63, 0x6c, 0x6f, 0x73, + 0x65, 0x28, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x77, 0x68, 0x6f, 0x20, 0x6c, 0x69, 0x6b, 0x65, 0x20, + 0x69, 0x74, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x77, 0x61, 0x79, 0x3a, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x28, 0x22, + 0x70, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x27, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x65, + 0x73, 0x27, 0x20, 0x63, 0x61, 0x6e, 0x27, 0x74, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x27, 0x22, + 0x20, 0x2e, 0x2e, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x2e, 0x2e, 0x20, 0x22, 0x27, 0x22, 0x29, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x28, 0x29, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x75, 0x61, 0x74, + 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x28, 0x66, + 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6c, + 0x69, 0x6e, 0x65, 0x28, 0x66, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, + 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x6c, + 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x0a, 0x6d, + 0x74, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, + 0x5f, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x0a, 0x0a, 0x2d, 0x2d, + 0x20, 0x57, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6c, + 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x2e, + 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x2d, 0x2d, 0x20, + 0x63, 0x61, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x43, 0x6f, 0x6e, 0x54, 0x65, 0x58, 0x74, 0x2e, + 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x75, 0x73, 0x65, 0x64, 0x20, 0x3d, 0x3d, + 0x20, 0x31, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, + 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x70, 0x6f, + 0x70, 0x65, 0x6e, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, + 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x73, + 0x61, 0x66, 0x65, 0x72, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x3d, 0x20, 0x31, 0x20, + 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, + 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x73, 0x74, 0x72, 0x2c, 0x66, 0x29, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, + 0x6e, 0x6c, 0x28, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x22, 0x73, 0x61, 0x66, 0x65, 0x72, + 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x2c, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x25, 0x71, 0x20, 0x69, 0x73, 0x20, 0x25, 0x73, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x2c, 0x66, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x22, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x22, 0x20, 0x6f, 0x72, 0x20, 0x22, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x28, 0x73, 0x74, - 0x72, 0x2c, 0x66, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x3d, 0x20, 0x66, 0x61, - 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x6f, 0x73, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x3d, 0x20, 0x69, 0x6e, - 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6f, 0x73, 0x2e, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, - 0x73, 0x70, 0x61, 0x77, 0x6e, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, - 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6f, 0x73, 0x2e, 0x73, 0x70, 0x61, 0x77, 0x6e, - 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x28, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, + 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x28, 0x73, 0x74, 0x72, 0x2c, 0x66, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, + 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x62, 0x75, 0x67, 0x20, 0x3d, + 0x20, 0x6e, 0x69, 0x6c, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, + 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6f, 0x73, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, + 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, - 0x28, 0x22, 0x6f, 0x73, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x6f, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x65, 0x6e, 0x76, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, - 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6f, 0x73, 0x2e, 0x73, 0x65, - 0x74, 0x65, 0x6e, 0x76, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x74, 0x65, - 0x6d, 0x70, 0x64, 0x69, 0x72, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, - 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x64, 0x69, 0x72, - 0x22, 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x70, 0x6f, 0x70, 0x65, 0x6e, - 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, - 0x79, 0x28, 0x22, 0x69, 0x6f, 0x2e, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x22, 0x29, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, + 0x28, 0x22, 0x6f, 0x73, 0x2e, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x6f, 0x73, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6f, 0x73, 0x2e, 0x65, + 0x78, 0x65, 0x63, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x73, 0x65, 0x74, + 0x65, 0x6e, 0x76, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, + 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6f, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x65, 0x6e, 0x76, 0x22, 0x29, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x64, 0x69, 0x72, 0x20, + 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, + 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x64, 0x69, 0x72, 0x22, 0x29, 0x0a, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x69, 0x6f, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x22, 0x2c, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, - 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x29, 0x0a, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x20, 0x3d, - 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6f, - 0x73, 0x2e, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, - 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, - 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6f, 0x73, 0x2e, 0x72, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x22, 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x74, 0x6d, - 0x70, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, - 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x69, 0x6f, 0x2e, 0x74, 0x6d, 0x70, 0x66, 0x69, 0x6c, 0x65, - 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, - 0x28, 0x22, 0x69, 0x6f, 0x2e, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x22, 0x29, 0x0a, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x63, 0x68, 0x64, 0x69, 0x72, 0x20, 0x20, 0x3d, 0x20, - 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6c, 0x66, - 0x73, 0x2e, 0x63, 0x68, 0x64, 0x69, 0x72, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, - 0x73, 0x2e, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, - 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6c, 0x66, 0x73, 0x2e, 0x6c, 0x6f, 0x63, - 0x6b, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x74, 0x6f, 0x75, 0x63, - 0x68, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, - 0x79, 0x28, 0x22, 0x6c, 0x66, 0x73, 0x2e, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x22, 0x29, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x72, 0x6d, 0x64, 0x69, 0x72, 0x20, 0x20, 0x3d, 0x20, - 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6c, 0x66, - 0x73, 0x2e, 0x72, 0x6d, 0x64, 0x69, 0x72, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, - 0x73, 0x2e, 0x6d, 0x6b, 0x64, 0x69, 0x72, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, - 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6c, 0x66, 0x73, 0x2e, 0x6d, 0x6b, 0x64, - 0x69, 0x72, 0x22, 0x29, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x73, 0x61, - 0x66, 0x65, 0x72, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x3d, 0x20, 0x31, 0x20, 0x6f, - 0x72, 0x20, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x20, 0x7e, 0x3d, - 0x20, 0x31, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x66, 0x69, - 0x20, 0x3d, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x28, 0x27, 0x66, 0x66, 0x69, 0x27, - 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6b, 0x2c, 0x20, 0x76, 0x20, 0x69, - 0x6e, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x2c, 0x20, 0x66, 0x66, 0x69, 0x20, 0x64, 0x6f, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6b, 0x20, 0x7e, 0x3d, 0x20, 0x27, - 0x67, 0x63, 0x27, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x66, 0x69, 0x5b, 0x6b, 0x5d, 0x20, 0x3d, 0x20, 0x6e, 0x69, - 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x66, 0x69, 0x20, 0x3d, 0x20, - 0x6e, 0x69, 0x6c, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x6f, 0x73, 0x2e, - 0x5b, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x7c, 0x6f, 0x73, 0x2e, 0x73, 0x70, 0x61, 0x77, - 0x6e, 0x7c, 0x6f, 0x73, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x5d, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, - 0x64, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x65, 0x73, 0x63, 0x61, - 0x70, 0x65, 0x20, 0x61, 0x77, 0x61, 0x72, 0x65, 0x29, 0x0a, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x6d, - 0x64, 0x35, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6d, 0x64, 0x35, 0x2e, - 0x73, 0x75, 0x6d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x67, 0x73, - 0x75, 0x62, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x67, 0x73, - 0x75, 0x62, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x62, 0x79, - 0x74, 0x65, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x79, - 0x74, 0x65, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, - 0x64, 0x35, 0x2e, 0x73, 0x75, 0x6d, 0x68, 0x65, 0x78, 0x61, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x6d, 0x64, 0x35, 0x2e, 0x73, 0x75, 0x6d, 0x68, 0x65, 0x78, 0x61, 0x28, 0x6b, 0x29, 0x0a, + 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, + 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x69, 0x6f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x22, 0x2c, + 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x72, + 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, + 0x2e, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6f, 0x73, 0x2e, 0x72, 0x65, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, + 0x6d, 0x79, 0x28, 0x22, 0x6f, 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x22, 0x29, 0x0a, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x74, 0x6d, 0x70, 0x66, 0x69, 0x6c, 0x65, 0x20, + 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, + 0x69, 0x6f, 0x2e, 0x74, 0x6d, 0x70, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6f, 0x2e, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x69, 0x6f, 0x2e, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x22, 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, + 0x2e, 0x63, 0x68, 0x64, 0x69, 0x72, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, + 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6c, 0x66, 0x73, 0x2e, 0x63, 0x68, 0x64, 0x69, + 0x72, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x6c, 0x6f, 0x63, 0x6b, + 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, + 0x79, 0x28, 0x22, 0x6c, 0x66, 0x73, 0x2e, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x29, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x20, 0x20, 0x3d, 0x20, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6c, 0x66, 0x73, + 0x2e, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, + 0x2e, 0x72, 0x6d, 0x64, 0x69, 0x72, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, + 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6c, 0x66, 0x73, 0x2e, 0x72, 0x6d, 0x64, 0x69, + 0x72, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x6d, 0x6b, 0x64, 0x69, + 0x72, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, + 0x79, 0x28, 0x22, 0x6c, 0x66, 0x73, 0x2e, 0x6d, 0x6b, 0x64, 0x69, 0x72, 0x22, 0x29, 0x0a, 0x0a, + 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x73, 0x61, 0x66, 0x65, 0x72, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x3d, 0x20, 0x31, 0x20, 0x6f, 0x72, 0x20, 0x73, 0x68, 0x65, 0x6c, + 0x6c, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x20, 0x7e, 0x3d, 0x20, 0x31, 0x20, 0x74, 0x68, 0x65, + 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x66, 0x69, 0x20, 0x3d, 0x20, 0x72, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x28, 0x27, 0x66, 0x66, 0x69, 0x27, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x6b, 0x2c, 0x20, 0x76, 0x20, 0x69, 0x6e, 0x20, 0x6e, 0x65, 0x78, 0x74, + 0x2c, 0x20, 0x66, 0x66, 0x69, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x66, 0x20, 0x6b, 0x20, 0x7e, 0x3d, 0x20, 0x27, 0x67, 0x63, 0x27, 0x20, 0x74, 0x68, + 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x66, 0x69, 0x5b, 0x6b, 0x5d, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x66, 0x66, 0x69, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x0a, 0x65, + 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x6f, 0x73, 0x2e, 0x5b, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x65, 0x7c, 0x6f, 0x73, 0x2e, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x7c, 0x6f, 0x73, 0x2e, 0x65, + 0x78, 0x65, 0x63, 0x5d, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x20, 0x61, 0x77, 0x61, + 0x72, 0x65, 0x29, 0x0a, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x6d, 0x64, 0x35, 0x20, 0x74, 0x68, 0x65, + 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x73, 0x75, 0x6d, + 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6d, 0x64, 0x35, 0x2e, 0x73, 0x75, 0x6d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x67, 0x73, 0x75, 0x62, 0x20, 0x20, 0x20, 0x3d, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x67, 0x73, 0x75, 0x62, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x3d, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x62, 0x79, 0x74, 0x65, 0x20, 0x20, 0x20, 0x3d, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x79, 0x74, 0x65, 0x0a, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x64, 0x35, 0x2e, 0x73, 0x75, 0x6d, + 0x68, 0x65, 0x78, 0x61, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x64, 0x35, 0x2e, 0x73, + 0x75, 0x6d, 0x68, 0x65, 0x78, 0x61, 0x28, 0x6b, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x67, 0x73, + 0x75, 0x62, 0x28, 0x73, 0x75, 0x6d, 0x28, 0x6b, 0x29, 0x2c, 0x20, 0x22, 0x2e, 0x22, 0x2c, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x63, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, - 0x72, 0x6e, 0x20, 0x28, 0x67, 0x73, 0x75, 0x62, 0x28, 0x73, 0x75, 0x6d, 0x28, 0x6b, 0x29, 0x2c, - 0x20, 0x22, 0x2e, 0x22, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x63, - 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, - 0x22, 0x25, 0x30, 0x32, 0x78, 0x22, 0x2c, 0x62, 0x79, 0x74, 0x65, 0x28, 0x63, 0x29, 0x29, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x29, - 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x6d, 0x64, 0x35, 0x2e, 0x73, 0x75, 0x6d, 0x48, 0x45, 0x58, 0x41, 0x20, 0x74, 0x68, - 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x64, 0x35, 0x2e, 0x73, 0x75, 0x6d, 0x48, 0x45, 0x58, 0x41, 0x28, - 0x6b, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, - 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x67, 0x73, 0x75, 0x62, 0x28, 0x73, 0x75, 0x6d, 0x28, - 0x6b, 0x29, 0x2c, 0x20, 0x22, 0x2e, 0x22, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x28, 0x63, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x28, 0x22, 0x25, 0x30, 0x32, 0x58, 0x22, 0x2c, 0x62, 0x79, 0x74, 0x65, 0x28, 0x63, - 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, - 0x6e, 0x64, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, - 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x69, 0x67, 0x68, 0x74, 0x20, 0x67, 0x6f, 0x20, 0x61, - 0x77, 0x61, 0x79, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x6e, 0x70, 0x61, - 0x63, 0x6b, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x75, 0x6e, 0x70, 0x61, - 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x75, 0x6e, 0x70, 0x61, 0x63, - 0x6b, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x61, - 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x73, 0x20, 0x74, 0x68, - 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x6c, - 0x6f, 0x61, 0x64, 0x65, 0x72, 0x73, 0x20, 0x3d, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, - 0x2e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x72, 0x73, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, - 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x3d, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x0a, 0x65, 0x6e, 0x64, - 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x3a, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x69, 0x67, 0x68, 0x74, 0x20, 0x73, - 0x74, 0x61, 0x79, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x62, 0x69, 0x74, 0x33, 0x32, 0x20, 0x74, 0x68, - 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x6c, 0x75, 0x61, 0x20, 0x35, - 0x2e, 0x32, 0x3a, 0x20, 0x77, 0x65, 0x27, 0x72, 0x65, 0x20, 0x6f, 0x6b, 0x61, 0x79, 0x0a, 0x0a, - 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, 0x20, 0x75, 0x74, 0x66, 0x38, 0x20, 0x74, 0x68, 0x65, 0x6e, - 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x6c, 0x75, 0x61, 0x20, 0x35, 0x2e, 0x33, - 0x3a, 0x20, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x6c, 0x75, 0x61, 0x2c, 0x20, - 0x76, 0x20, 0x31, 0x2e, 0x32, 0x34, 0x20, 0x32, 0x30, 0x31, 0x34, 0x2f, 0x31, 0x32, 0x2f, 0x32, - 0x36, 0x20, 0x31, 0x37, 0x3a, 0x32, 0x30, 0x3a, 0x35, 0x33, 0x20, 0x72, 0x6f, 0x62, 0x65, 0x72, - 0x74, 0x6f, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x69, 0x74, 0x33, 0x32, 0x20, 0x3d, 0x20, - 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x28, 0x20, 0x5b, 0x5b, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, - 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, - 0x2d, 0x2d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x20, 0x6f, 0x66, 0x3a, 0x20, 0x61, - 0x72, 0x67, 0x20, 0x3d, 0x20, 0x7b, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x7d, 0x0a, 0x0a, 0x62, 0x69, - 0x74, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6e, 0x6f, 0x74, 0x20, 0x3d, - 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x29, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x7e, 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, - 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, - 0x20, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x28, 0x78, 0x2c, 0x20, 0x79, 0x2c, 0x20, 0x7a, 0x2c, 0x20, 0x2e, 0x2e, 0x2e, 0x29, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x7a, 0x20, 0x74, 0x68, - 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, - 0x28, 0x28, 0x78, 0x20, 0x6f, 0x72, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x26, 0x20, 0x28, 0x79, 0x20, - 0x6f, 0x72, 0x20, 0x2d, 0x31, 0x29, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, - 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x73, 0x20, 0x3d, 0x20, - 0x78, 0x20, 0x26, 0x20, 0x79, 0x20, 0x26, 0x20, 0x7a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x69, 0x3d, 0x31, 0x2c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x22, - 0x23, 0x22, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x72, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x72, 0x65, 0x73, 0x20, 0x26, 0x20, 0x73, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x69, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, - 0x75, 0x72, 0x6e, 0x20, 0x72, 0x65, 0x73, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, - 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, - 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x78, 0x2c, 0x20, 0x79, 0x2c, 0x20, 0x7a, 0x2c, 0x20, 0x2e, - 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x7a, - 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, - 0x72, 0x6e, 0x20, 0x28, 0x28, 0x78, 0x20, 0x6f, 0x72, 0x20, 0x30, 0x29, 0x20, 0x7c, 0x20, 0x28, - 0x79, 0x20, 0x6f, 0x72, 0x20, 0x30, 0x29, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, - 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x73, 0x20, 0x3d, - 0x20, 0x78, 0x20, 0x7c, 0x20, 0x79, 0x20, 0x7c, 0x20, 0x7a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x3d, 0x31, 0x2c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, - 0x22, 0x23, 0x22, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x72, 0x65, 0x73, 0x20, 0x7c, 0x20, - 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x69, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, - 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x65, 0x73, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, - 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, - 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x78, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x66, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x78, 0x2c, 0x20, 0x79, 0x2c, 0x20, 0x7a, 0x2c, - 0x20, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x7a, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, - 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x78, 0x20, 0x6f, 0x72, 0x20, 0x30, 0x29, 0x20, 0x7e, - 0x20, 0x28, 0x79, 0x20, 0x6f, 0x72, 0x20, 0x30, 0x29, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, - 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x73, - 0x20, 0x3d, 0x20, 0x78, 0x20, 0x7e, 0x20, 0x79, 0x20, 0x7e, 0x20, 0x7a, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x3d, 0x31, 0x2c, 0x73, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x28, 0x22, 0x23, 0x22, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x72, 0x65, 0x73, 0x20, - 0x7e, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x69, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x65, 0x73, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, - 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, - 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x74, 0x65, 0x73, 0x74, 0x20, 0x3d, - 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x78, 0x2c, 0x20, 0x79, 0x2c, - 0x20, 0x7a, 0x2c, 0x20, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x7a, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x28, 0x78, 0x20, 0x6f, 0x72, 0x20, - 0x2d, 0x31, 0x29, 0x20, 0x26, 0x20, 0x28, 0x79, 0x20, 0x6f, 0x72, 0x20, 0x2d, 0x31, 0x29, 0x29, - 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x29, 0x20, 0x7e, - 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x78, - 0x20, 0x26, 0x20, 0x79, 0x20, 0x26, 0x20, 0x7a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x69, 0x3d, 0x31, 0x2c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x22, 0x23, - 0x22, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x72, 0x65, 0x73, 0x20, 0x26, 0x20, - 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x69, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, - 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x72, 0x65, 0x73, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, - 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x29, 0x20, 0x7e, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x6c, 0x73, - 0x68, 0x69, 0x66, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x28, 0x61, 0x2c, 0x20, 0x62, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, - 0x6e, 0x20, 0x28, 0x28, 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, - 0x46, 0x46, 0x29, 0x20, 0x3c, 0x3c, 0x20, 0x62, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, - 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, - 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x28, 0x61, 0x2c, 0x20, 0x62, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, - 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, - 0x46, 0x46, 0x46, 0x46, 0x29, 0x20, 0x3e, 0x3e, 0x20, 0x62, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, - 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, - 0x20, 0x20, 0x61, 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x2c, 0x20, 0x62, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x61, 0x20, 0x3d, 0x20, 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, - 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x62, 0x20, 0x3c, 0x3d, 0x20, 0x30, - 0x20, 0x6f, 0x72, 0x20, 0x28, 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, 0x38, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x30, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x61, 0x20, 0x3e, - 0x3e, 0x20, 0x62, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, + 0x72, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x22, 0x25, 0x30, 0x32, 0x78, 0x22, + 0x2c, 0x62, 0x79, 0x74, 0x65, 0x28, 0x63, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x64, 0x35, 0x2e, + 0x73, 0x75, 0x6d, 0x48, 0x45, 0x58, 0x41, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x64, + 0x35, 0x2e, 0x73, 0x75, 0x6d, 0x48, 0x45, 0x58, 0x41, 0x28, 0x6b, 0x29, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x28, 0x67, 0x73, 0x75, 0x62, 0x28, 0x73, 0x75, 0x6d, 0x28, 0x6b, 0x29, 0x2c, 0x20, 0x22, 0x2e, + 0x22, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x63, 0x29, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x22, 0x25, 0x30, + 0x32, 0x58, 0x22, 0x2c, 0x62, 0x79, 0x74, 0x65, 0x28, 0x63, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x29, 0x29, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, + 0x6e, 0x64, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x6d, 0x69, 0x67, 0x68, 0x74, 0x20, 0x67, 0x6f, 0x20, 0x61, 0x77, 0x61, 0x79, 0x0a, 0x0a, 0x69, + 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x20, 0x74, 0x68, 0x65, + 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x0a, 0x65, 0x6e, 0x64, 0x0a, + 0x0a, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, + 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x73, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x73, + 0x20, 0x3d, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x65, 0x72, 0x73, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x6e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, + 0x3d, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x63, + 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x6d, 0x69, 0x67, 0x68, 0x74, 0x20, 0x73, 0x74, 0x61, 0x79, 0x0a, 0x0a, 0x69, + 0x66, 0x20, 0x62, 0x69, 0x74, 0x33, 0x32, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x6c, 0x75, 0x61, 0x20, 0x35, 0x2e, 0x32, 0x3a, 0x20, 0x77, 0x65, + 0x27, 0x72, 0x65, 0x20, 0x6f, 0x6b, 0x61, 0x79, 0x0a, 0x0a, 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, + 0x20, 0x75, 0x74, 0x66, 0x38, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x2d, 0x20, 0x6c, 0x75, 0x61, 0x20, 0x35, 0x2e, 0x33, 0x3a, 0x20, 0x20, 0x62, 0x69, 0x74, + 0x77, 0x69, 0x73, 0x65, 0x2e, 0x6c, 0x75, 0x61, 0x2c, 0x20, 0x76, 0x20, 0x31, 0x2e, 0x32, 0x34, + 0x20, 0x32, 0x30, 0x31, 0x34, 0x2f, 0x31, 0x32, 0x2f, 0x32, 0x36, 0x20, 0x31, 0x37, 0x3a, 0x32, + 0x30, 0x3a, 0x35, 0x33, 0x20, 0x72, 0x6f, 0x62, 0x65, 0x72, 0x74, 0x6f, 0x0a, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x62, 0x69, 0x74, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x28, + 0x20, 0x5b, 0x5b, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x20, 0x3d, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x2d, 0x2d, 0x20, 0x69, 0x6e, 0x73, + 0x74, 0x65, 0x61, 0x64, 0x20, 0x6f, 0x66, 0x3a, 0x20, 0x61, 0x72, 0x67, 0x20, 0x3d, 0x20, 0x7b, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x7d, 0x0a, 0x0a, 0x62, 0x69, 0x74, 0x33, 0x32, 0x20, 0x3d, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x62, 0x6e, 0x6f, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x7e, 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, + 0x46, 0x46, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x64, + 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x78, 0x2c, 0x20, + 0x79, 0x2c, 0x20, 0x7a, 0x2c, 0x20, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x7a, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x78, 0x20, 0x6f, 0x72, + 0x20, 0x2d, 0x31, 0x29, 0x20, 0x26, 0x20, 0x28, 0x79, 0x20, 0x6f, 0x72, 0x20, 0x2d, 0x31, 0x29, + 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x78, 0x20, 0x26, 0x20, 0x79, 0x20, + 0x26, 0x20, 0x7a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x3d, + 0x31, 0x2c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x22, 0x23, 0x22, 0x2c, 0x2e, 0x2e, 0x2e, + 0x29, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x73, + 0x20, 0x3d, 0x20, 0x72, 0x65, 0x73, 0x20, 0x26, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, + 0x69, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x65, + 0x73, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, + 0x62, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x78, 0x2c, 0x20, 0x79, 0x2c, 0x20, 0x7a, 0x2c, 0x20, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x7a, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x78, + 0x20, 0x6f, 0x72, 0x20, 0x30, 0x29, 0x20, 0x7c, 0x20, 0x28, 0x79, 0x20, 0x6f, 0x72, 0x20, 0x30, + 0x29, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x78, 0x20, 0x7c, 0x20, 0x79, + 0x20, 0x7c, 0x20, 0x7a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, + 0x3d, 0x31, 0x2c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x22, 0x23, 0x22, 0x2c, 0x2e, 0x2e, + 0x2e, 0x29, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, + 0x73, 0x20, 0x3d, 0x20, 0x72, 0x65, 0x73, 0x20, 0x7c, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x28, 0x69, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, + 0x65, 0x73, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, + 0x20, 0x62, 0x78, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x28, 0x78, 0x2c, 0x20, 0x79, 0x2c, 0x20, 0x7a, 0x2c, 0x20, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x7a, 0x20, 0x74, 0x68, 0x65, + 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, + 0x28, 0x78, 0x20, 0x6f, 0x72, 0x20, 0x30, 0x29, 0x20, 0x7e, 0x20, 0x28, 0x79, 0x20, 0x6f, 0x72, + 0x20, 0x30, 0x29, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x61, 0x20, 0x3e, 0x3e, 0x20, 0x62, - 0x29, 0x20, 0x7c, 0x20, 0x7e, 0x28, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, - 0x20, 0x3e, 0x3e, 0x20, 0x62, 0x29, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, - 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, - 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x6c, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x20, - 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x20, 0x2c, 0x62, 0x29, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x62, 0x20, 0x3d, 0x20, 0x62, 0x20, 0x26, 0x20, 0x33, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x61, 0x20, 0x3d, 0x20, 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, - 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x20, 0x3d, 0x20, 0x28, 0x61, - 0x20, 0x3c, 0x3c, 0x20, 0x62, 0x29, 0x20, 0x7c, 0x20, 0x28, 0x61, 0x20, 0x3e, 0x3e, 0x20, 0x28, - 0x33, 0x32, 0x20, 0x2d, 0x20, 0x62, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, - 0x75, 0x72, 0x6e, 0x20, 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, - 0x46, 0x46, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x72, 0x72, 0x6f, 0x74, - 0x61, 0x74, 0x65, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, - 0x61, 0x2c, 0x20, 0x62, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x20, 0x3d, 0x20, 0x2d, 0x62, - 0x20, 0x26, 0x20, 0x33, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x20, 0x3d, 0x20, 0x61, 0x20, + 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x78, 0x20, 0x7e, + 0x20, 0x79, 0x20, 0x7e, 0x20, 0x7a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x69, 0x3d, 0x31, 0x2c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x22, 0x23, 0x22, 0x2c, + 0x2e, 0x2e, 0x2e, 0x29, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x72, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x72, 0x65, 0x73, 0x20, 0x7e, 0x20, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x28, 0x69, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x72, 0x65, 0x73, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, + 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, + 0x0a, 0x20, 0x20, 0x62, 0x74, 0x65, 0x73, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x78, 0x2c, 0x20, 0x79, 0x2c, 0x20, 0x7a, 0x2c, 0x20, 0x2e, 0x2e, + 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x7a, 0x20, + 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x28, 0x28, 0x28, 0x78, 0x20, 0x6f, 0x72, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x26, 0x20, + 0x28, 0x79, 0x20, 0x6f, 0x72, 0x20, 0x2d, 0x31, 0x29, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, + 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x29, 0x20, 0x7e, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x20, 0x72, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x78, 0x20, 0x26, 0x20, 0x79, 0x20, 0x26, + 0x20, 0x7a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x3d, 0x31, + 0x2c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x22, 0x23, 0x22, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, + 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, + 0x73, 0x20, 0x3d, 0x20, 0x72, 0x65, 0x73, 0x20, 0x26, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x28, 0x69, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, + 0x72, 0x65, 0x73, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, + 0x29, 0x20, 0x7e, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, + 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x6c, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x3d, + 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x2c, 0x20, 0x62, 0x29, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x61, 0x20, + 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x29, 0x20, 0x3c, 0x3c, + 0x20, 0x62, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, + 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, + 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x2c, 0x20, + 0x62, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, + 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x29, 0x20, + 0x3e, 0x3e, 0x20, 0x62, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, + 0x46, 0x46, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x61, 0x72, 0x73, 0x68, + 0x69, 0x66, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x61, 0x2c, 0x20, 0x62, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x20, 0x3d, 0x20, 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x61, 0x20, 0x3d, 0x20, 0x28, 0x61, 0x20, 0x3c, 0x3c, 0x20, 0x62, 0x29, 0x20, 0x7c, 0x20, - 0x28, 0x61, 0x20, 0x3e, 0x3e, 0x20, 0x28, 0x33, 0x32, 0x20, 0x2d, 0x20, 0x62, 0x29, 0x29, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x20, 0x26, 0x20, 0x30, - 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, - 0x0a, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x2c, 0x20, 0x66, 0x2c, 0x20, 0x77, 0x29, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x61, 0x20, 0x3e, 0x3e, - 0x20, 0x66, 0x29, 0x20, 0x26, 0x20, 0x7e, 0x28, 0x2d, 0x31, 0x20, 0x3c, 0x3c, 0x20, 0x28, 0x77, - 0x20, 0x6f, 0x72, 0x20, 0x31, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, - 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x2c, 0x20, 0x76, 0x2c, 0x20, 0x66, 0x2c, 0x20, 0x77, 0x29, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x61, 0x73, 0x6b, 0x20, - 0x3d, 0x20, 0x7e, 0x28, 0x2d, 0x31, 0x20, 0x3c, 0x3c, 0x20, 0x28, 0x77, 0x20, 0x6f, 0x72, 0x20, - 0x31, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, - 0x28, 0x61, 0x20, 0x26, 0x20, 0x7e, 0x28, 0x6d, 0x61, 0x73, 0x6b, 0x20, 0x3c, 0x3c, 0x20, 0x66, - 0x29, 0x29, 0x20, 0x7c, 0x20, 0x28, 0x28, 0x76, 0x20, 0x26, 0x20, 0x6d, 0x61, 0x73, 0x6b, 0x29, - 0x20, 0x3c, 0x3c, 0x20, 0x66, 0x29, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, - 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x7d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x5d, 0x20, 0x29, 0x0a, 0x0a, 0x65, 0x6c, 0x73, 0x65, - 0x69, 0x66, 0x20, 0x62, 0x69, 0x74, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x2d, 0x20, 0x6c, 0x75, 0x61, 0x6a, 0x69, 0x74, 0x20, 0x28, 0x66, 0x6f, 0x72, 0x20, - 0x6e, 0x6f, 0x77, 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x69, 0x74, 0x33, 0x32, 0x20, - 0x3d, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x28, 0x20, 0x5b, 0x5b, 0x0a, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x62, 0x6e, 0x6f, 0x74, 0x2c, 0x20, 0x72, 0x73, - 0x68, 0x69, 0x66, 0x74, 0x2c, 0x20, 0x6c, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x3d, 0x20, 0x62, - 0x69, 0x74, 0x2e, 0x62, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x62, 0x6e, 0x6f, - 0x74, 0x2c, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x2c, 0x20, 0x62, - 0x69, 0x74, 0x2e, 0x6c, 0x73, 0x68, 0x69, 0x66, 0x74, 0x0a, 0x0a, 0x62, 0x69, 0x74, 0x33, 0x32, - 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x3d, - 0x20, 0x62, 0x69, 0x74, 0x2e, 0x61, 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x2c, 0x0a, 0x20, 0x20, - 0x62, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x2c, 0x0a, - 0x20, 0x20, 0x62, 0x6e, 0x6f, 0x74, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x62, 0x6e, 0x6f, 0x74, - 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x62, 0x69, - 0x74, 0x2e, 0x62, 0x6f, 0x72, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x78, 0x6f, 0x72, 0x20, 0x20, 0x20, - 0x20, 0x3d, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x62, 0x78, 0x6f, 0x72, 0x2c, 0x0a, 0x20, 0x20, 0x62, - 0x74, 0x65, 0x73, 0x74, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x28, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, - 0x6e, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x28, 0x2e, 0x2e, 0x2e, 0x29, 0x20, 0x7e, 0x3d, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x61, 0x2c, 0x66, - 0x2c, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x62, - 0x61, 0x6e, 0x64, 0x28, 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x28, 0x61, 0x2c, 0x66, 0x29, 0x2c, - 0x32, 0x5e, 0x28, 0x77, 0x20, 0x6f, 0x72, 0x20, 0x31, 0x29, 0x2d, 0x31, 0x29, 0x0a, 0x20, 0x20, - 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x6c, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, - 0x20, 0x62, 0x69, 0x74, 0x2e, 0x72, 0x6f, 0x6c, 0x2c, 0x0a, 0x20, 0x20, 0x6c, 0x73, 0x68, 0x69, - 0x66, 0x74, 0x20, 0x20, 0x3d, 0x20, 0x6c, 0x73, 0x68, 0x69, 0x66, 0x74, 0x2c, 0x0a, 0x20, 0x20, - 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x28, 0x61, 0x2c, 0x76, 0x2c, 0x66, 0x2c, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x61, 0x73, 0x6b, 0x20, 0x3d, 0x20, 0x32, 0x5e, 0x28, - 0x77, 0x20, 0x6f, 0x72, 0x20, 0x31, 0x29, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, - 0x74, 0x75, 0x72, 0x6e, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x28, 0x61, 0x2c, 0x62, 0x6e, 0x6f, 0x74, - 0x28, 0x6c, 0x73, 0x68, 0x69, 0x66, 0x74, 0x28, 0x6d, 0x61, 0x73, 0x6b, 0x2c, 0x66, 0x29, 0x29, - 0x29, 0x2b, 0x6c, 0x73, 0x68, 0x69, 0x66, 0x74, 0x28, 0x62, 0x61, 0x6e, 0x64, 0x28, 0x76, 0x2c, - 0x6d, 0x61, 0x73, 0x6b, 0x29, 0x2c, 0x66, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, - 0x20, 0x20, 0x72, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x20, 0x62, 0x69, 0x74, 0x2e, - 0x72, 0x6f, 0x72, 0x2c, 0x0a, 0x20, 0x20, 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x3d, - 0x20, 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x2c, 0x0a, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x5d, 0x5d, 0x20, 0x29, 0x0a, 0x0a, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x68, 0x6f, 0x70, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x6f, 0x72, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x0a, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x69, 0x74, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x72, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x28, 0x22, 0x62, 0x69, 0x74, 0x33, 0x32, 0x22, 0x29, 0x0a, 0x0a, 0x65, - 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x6e, - 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x28, 0x22, 0x73, 0x6f, 0x63, 0x6b, 0x65, - 0x74, 0x22, 0x29, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x0a, 0x0a, 0x64, 0x6f, 0x0a, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x20, - 0x3d, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, - 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x6f, 0x61, - 0x64, 0x65, 0x64, 0x2e, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, - 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x2e, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x20, 0x3d, 0x20, - 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x5b, 0x22, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x22, 0x5d, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x2e, 0x6d, 0x69, 0x6d, 0x65, - 0x20, 0x20, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x2e, 0x6d, - 0x69, 0x6d, 0x65, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x5b, 0x22, - 0x6d, 0x69, 0x6d, 0x65, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x5d, 0x20, 0x20, 0x20, 0x65, 0x6e, - 0x64, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x64, 0x6f, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6c, 0x66, 0x73, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x20, 0x73, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x73, 0x79, 0x6d, 0x6c, 0x69, - 0x6e, 0x6b, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x73, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x6e, - 0x6f, 0x77, 0x20, 0x62, 0x65, 0x20, 0x64, 0x6f, 0x6e, 0x65, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, - 0x20, 0x6c, 0x66, 0x73, 0x20, 0x28, 0x77, 0x61, 0x73, 0x20, 0x64, 0x65, 0x61, 0x64, 0x20, 0x73, - 0x6c, 0x6f, 0x77, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x69, 0x73, 0x66, 0x69, - 0x6c, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x69, 0x73, 0x66, - 0x69, 0x6c, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x20, 0x3d, 0x20, - 0x6c, 0x66, 0x73, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x6e, 0x61, - 0x6d, 0x65, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6d, 0x20, - 0x3d, 0x3d, 0x20, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x20, 0x3d, - 0x3d, 0x20, 0x22, 0x6c, 0x69, 0x6e, 0x6b, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x69, 0x73, 0x64, - 0x69, 0x72, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x69, 0x73, 0x64, - 0x69, 0x72, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x20, 0x3d, 0x20, 0x6c, - 0x66, 0x73, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x6e, 0x61, 0x6d, - 0x65, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6d, 0x20, 0x3d, - 0x3d, 0x20, 0x22, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x22, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, - 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x62, - 0x65, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x70, 0x65, - 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x0a, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x73, 0x68, 0x6f, 0x72, - 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x66, 0x73, 0x2e, - 0x73, 0x68, 0x6f, 0x72, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, - 0x72, 0x6e, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x66, 0x20, 0x62, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x20, 0x6f, 0x72, 0x20, 0x28, 0x61, + 0x20, 0x26, 0x20, 0x30, 0x78, 0x38, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x29, 0x20, 0x3d, + 0x3d, 0x20, 0x30, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x61, 0x20, 0x3e, 0x3e, 0x20, 0x62, 0x29, 0x20, 0x26, + 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x28, 0x28, 0x61, 0x20, 0x3e, 0x3e, 0x20, 0x62, 0x29, 0x20, 0x7c, 0x20, 0x7e, 0x28, + 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x20, 0x3e, 0x3e, 0x20, 0x62, 0x29, + 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, + 0x6c, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x20, 0x2c, 0x62, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x20, + 0x3d, 0x20, 0x62, 0x20, 0x26, 0x20, 0x33, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x20, 0x3d, + 0x20, 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x61, 0x20, 0x3d, 0x20, 0x28, 0x61, 0x20, 0x3c, 0x3c, 0x20, 0x62, 0x29, + 0x20, 0x7c, 0x20, 0x28, 0x61, 0x20, 0x3e, 0x3e, 0x20, 0x28, 0x33, 0x32, 0x20, 0x2d, 0x20, 0x62, + 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x20, + 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x65, + 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x72, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x2c, 0x20, 0x62, 0x29, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x62, 0x20, 0x3d, 0x20, 0x2d, 0x62, 0x20, 0x26, 0x20, 0x33, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x61, 0x20, 0x3d, 0x20, 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, + 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x20, 0x3d, 0x20, 0x28, + 0x61, 0x20, 0x3c, 0x3c, 0x20, 0x62, 0x29, 0x20, 0x7c, 0x20, 0x28, 0x61, 0x20, 0x3e, 0x3e, 0x20, + 0x28, 0x33, 0x32, 0x20, 0x2d, 0x20, 0x62, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, + 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x65, 0x78, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x28, 0x61, 0x2c, 0x20, 0x66, 0x2c, 0x20, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x61, 0x20, 0x3e, 0x3e, 0x20, 0x66, 0x29, 0x20, 0x26, 0x20, + 0x7e, 0x28, 0x2d, 0x31, 0x20, 0x3c, 0x3c, 0x20, 0x28, 0x77, 0x20, 0x6f, 0x72, 0x20, 0x31, 0x29, + 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, + 0x63, 0x65, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, + 0x2c, 0x20, 0x76, 0x2c, 0x20, 0x66, 0x2c, 0x20, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x61, 0x73, 0x6b, 0x20, 0x3d, 0x20, 0x7e, 0x28, 0x2d, 0x31, + 0x20, 0x3c, 0x3c, 0x20, 0x28, 0x77, 0x20, 0x6f, 0x72, 0x20, 0x31, 0x29, 0x29, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x61, 0x20, 0x26, 0x20, 0x7e, + 0x28, 0x6d, 0x61, 0x73, 0x6b, 0x20, 0x3c, 0x3c, 0x20, 0x66, 0x29, 0x29, 0x20, 0x7c, 0x20, 0x28, + 0x28, 0x76, 0x20, 0x26, 0x20, 0x6d, 0x61, 0x73, 0x6b, 0x29, 0x20, 0x3c, 0x3c, 0x20, 0x66, 0x29, + 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, + 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x5d, 0x5d, 0x20, 0x29, 0x0a, 0x0a, 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, 0x20, 0x62, 0x69, 0x74, + 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x6c, 0x75, + 0x61, 0x6a, 0x69, 0x74, 0x20, 0x28, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x29, 0x0a, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x62, 0x69, 0x74, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x6c, 0x6f, 0x61, 0x64, + 0x20, 0x28, 0x20, 0x5b, 0x5b, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x62, 0x61, 0x6e, 0x64, + 0x2c, 0x20, 0x62, 0x6e, 0x6f, 0x74, 0x2c, 0x20, 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x2c, 0x20, + 0x6c, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x3d, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x62, 0x61, 0x6e, + 0x64, 0x2c, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x62, 0x6e, 0x6f, 0x74, 0x2c, 0x20, 0x62, 0x69, 0x74, + 0x2e, 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x2c, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x6c, 0x73, 0x68, + 0x69, 0x66, 0x74, 0x0a, 0x0a, 0x62, 0x69, 0x74, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x61, 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x3d, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x61, + 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x3d, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x6e, 0x6f, 0x74, + 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x62, 0x6e, 0x6f, 0x74, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x6f, + 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x62, 0x6f, 0x72, 0x2c, + 0x0a, 0x20, 0x20, 0x62, 0x78, 0x6f, 0x72, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x62, 0x69, 0x74, + 0x2e, 0x62, 0x78, 0x6f, 0x72, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x74, 0x65, 0x73, 0x74, 0x20, 0x20, + 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x2e, 0x2e, 0x2e, 0x29, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x62, 0x61, 0x6e, 0x64, + 0x28, 0x2e, 0x2e, 0x2e, 0x29, 0x20, 0x7e, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, + 0x2c, 0x0a, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x61, 0x2c, 0x66, 0x2c, 0x77, 0x29, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x28, 0x72, 0x73, + 0x68, 0x69, 0x66, 0x74, 0x28, 0x61, 0x2c, 0x66, 0x29, 0x2c, 0x32, 0x5e, 0x28, 0x77, 0x20, 0x6f, + 0x72, 0x20, 0x31, 0x29, 0x2d, 0x31, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, + 0x20, 0x6c, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x72, + 0x6f, 0x6c, 0x2c, 0x0a, 0x20, 0x20, 0x6c, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x3d, 0x20, + 0x6c, 0x73, 0x68, 0x69, 0x66, 0x74, 0x2c, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, + 0x65, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x61, 0x2c, 0x76, + 0x2c, 0x66, 0x2c, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, + 0x6d, 0x61, 0x73, 0x6b, 0x20, 0x3d, 0x20, 0x32, 0x5e, 0x28, 0x77, 0x20, 0x6f, 0x72, 0x20, 0x31, + 0x29, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x62, + 0x61, 0x6e, 0x64, 0x28, 0x61, 0x2c, 0x62, 0x6e, 0x6f, 0x74, 0x28, 0x6c, 0x73, 0x68, 0x69, 0x66, + 0x74, 0x28, 0x6d, 0x61, 0x73, 0x6b, 0x2c, 0x66, 0x29, 0x29, 0x29, 0x2b, 0x6c, 0x73, 0x68, 0x69, + 0x66, 0x74, 0x28, 0x62, 0x61, 0x6e, 0x64, 0x28, 0x76, 0x2c, 0x6d, 0x61, 0x73, 0x6b, 0x29, 0x2c, + 0x66, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x72, 0x72, 0x6f, 0x74, + 0x61, 0x74, 0x65, 0x20, 0x3d, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x72, 0x6f, 0x72, 0x2c, 0x0a, 0x20, + 0x20, 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x3d, 0x20, 0x72, 0x73, 0x68, 0x69, 0x66, + 0x74, 0x2c, 0x0a, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x5d, 0x20, + 0x29, 0x0a, 0x0a, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, + 0x68, 0x6f, 0x70, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, + 0x74, 0x20, 0x6f, 0x72, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, + 0x69, 0x74, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x28, 0x22, + 0x62, 0x69, 0x74, 0x33, 0x32, 0x22, 0x29, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x71, 0x75, + 0x69, 0x72, 0x65, 0x28, 0x22, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x22, 0x29, 0x20, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x0a, 0x0a, 0x64, 0x6f, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x20, 0x3d, 0x20, 0x70, 0x61, 0x63, 0x6b, + 0x61, 0x67, 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x2e, 0x73, 0x6f, + 0x63, 0x6b, 0x65, 0x74, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, + 0x2e, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x20, 0x3d, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, + 0x5b, 0x22, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x5d, 0x20, + 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, + 0x6f, 0x61, 0x64, 0x65, 0x64, 0x2e, 0x6d, 0x69, 0x6d, 0x65, 0x20, 0x20, 0x20, 0x74, 0x68, 0x65, + 0x6e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x2e, 0x6d, 0x69, 0x6d, 0x65, 0x20, 0x20, 0x20, + 0x3d, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x5b, 0x22, 0x6d, 0x69, 0x6d, 0x65, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x22, 0x5d, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x65, 0x6e, 0x64, + 0x0a, 0x0a, 0x64, 0x6f, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, + 0x6c, 0x66, 0x73, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3d, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x73, 0x79, 0x6d, + 0x6c, 0x69, 0x6e, 0x6b, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x3d, + 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x73, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x61, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x74, + 0x68, 0x65, 0x73, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x62, 0x65, 0x20, + 0x64, 0x6f, 0x6e, 0x65, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6c, 0x66, 0x73, 0x20, 0x28, + 0x77, 0x61, 0x73, 0x20, 0x64, 0x65, 0x61, 0x64, 0x20, 0x73, 0x6c, 0x6f, 0x77, 0x20, 0x62, 0x65, + 0x66, 0x6f, 0x72, 0x65, 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x69, 0x73, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x74, 0x68, 0x65, + 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x69, 0x73, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x6e, 0x61, + 0x6d, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x20, 0x3d, 0x20, 0x6c, 0x66, 0x73, 0x61, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x22, 0x6d, 0x6f, + 0x64, 0x65, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6d, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x66, 0x69, + 0x6c, 0x65, 0x22, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x6c, 0x69, 0x6e, + 0x6b, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x69, 0x73, 0x64, 0x69, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x69, 0x73, 0x64, 0x69, 0x72, 0x28, 0x6e, 0x61, 0x6d, + 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x20, 0x3d, 0x20, 0x6c, 0x66, 0x73, 0x61, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x22, 0x6d, 0x6f, 0x64, + 0x65, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6d, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x2d, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x69, 0x73, - 0x20, 0x61, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2c, - 0x20, 0x73, 0x6f, 0x20, 0x2e, 0x2e, 0x2e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x6b, - 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x6c, - 0x69, 0x6e, 0x6b, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x73, 0x79, 0x6d, - 0x6c, 0x69, 0x6e, 0x6b, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x6e, - 0x61, 0x6d, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x29, 0x20, 0x6f, 0x72, - 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, - 0x2d, 0x20, 0x73, 0x6f, 0x20, 0x66, 0x61, 0x72, 0x0a, 0x0a, 0x00 + 0x20, 0x2d, 0x2d, 0x20, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x68, + 0x61, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x6f, 0x72, 0x74, + 0x20, 0x6f, 0x66, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x6b, 0x70, 0x73, 0x65, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x20, + 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x6e, + 0x61, 0x6d, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x6e, 0x6f, + 0x77, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2c, 0x20, 0x73, 0x6f, 0x20, 0x2e, 0x2e, + 0x2e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x66, + 0x73, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x6b, 0x28, 0x6e, 0x61, + 0x6d, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x73, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x61, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x22, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x29, 0x20, 0x6f, 0x72, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, + 0x6e, 0x64, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x73, 0x6f, 0x20, 0x66, + 0x61, 0x72, 0x0a, 0x0a, 0x00 }; return luaL_dostring(L, (const char*) luatex_core_lua); } \ No newline at end of file diff --git a/source/texk/web2c/luatexdir/lua/luatex-core.lua b/source/texk/web2c/luatexdir/lua/luatex-core.lua index f2d55fd99b3d9b708b9e0fc17f03b80989efcc8e..5ed425a9910d1013f8fa25a4d64ef8ee32f08dc8 100644 --- a/source/texk/web2c/luatexdir/lua/luatex-core.lua +++ b/source/texk/web2c/luatexdir/lua/luatex-core.lua @@ -1,465 +1,466 @@ --- luatex-core security and io overloads ........... - --- if not modules then modules = { } end modules ['luatex-core'] = { --- version = 1.080, --- comment = 'companion to luatex', --- author = 'Hans Hagen & Luigi Scarso', --- copyright = 'LuaTeX Development Team', --- } - -LUATEXCOREVERSION = 1.080 -- we reflect the luatex version where changes happened - --- This file overloads some Lua functions. The readline variants provide the same --- functionality as LuaTeX <= 1.04 and doing it this way permits us to keep the --- original io libraries clean. Performance is probably even a bit better now. - --- We test for functions already being defined so that we don't overload ones that --- are provided in the startup script. - -local type, next, getmetatable, require = type, next, getmetatable, require -local find, gsub, format = string.find, string.gsub, string.format - -local io_open = io.open -local io_popen = io.popen -local io_lines = io.lines - -local fio_readline = fio.readline -local fio_checkpermission = fio.checkpermission -local fio_recordfilename = fio.recordfilename - -local mt = getmetatable(io.stderr) -local mt_lines = mt.lines -local saferoption = status.safer_option -local shellescape = status.shell_escape -- 0 (disabled) 1 (anything) 2 (restricted) -local kpseused = status.kpse_used -- 0 1 - -local write_nl = texio.write_nl - -io.saved_lines = io_lines -- always readonly -mt.saved_lines = mt_lines -- always readonly - -local function luatex_io_open(name,how) - if not how then - how = 'r' - end - local f = io_open(name,how) - if f then - if type(how) == 'string' and find(how,'w') then - fio_recordfilename(name,'w') - else - fio_recordfilename(name,'r') - end - end - return f -end - -local function luatex_io_open_readonly(name,how) - if how then - how = 'r' - else - how = gsub(how,'[^rb]','') - if how == '' then - how = 'r' - end - end - local f = io_open(name,how) - if f then - fio_recordfilename(name,'r') - end - return f -end - -local function luatex_io_popen(name,...) - local okay, found = fio_checkpermission(name) - if okay and found then - return io_popen(found,...) - end -end - --- local function luatex_io_lines(name,how) --- if name then --- local f = io_open(name,how or 'r') --- if f then --- return function() --- return fio_readline(f) --- end --- end --- else --- return io_lines() --- end --- end - --- For some reason the gc doesn't kick in so we need to close explitly --- so that the handle is flushed. - -local error, type = error, type - -local function luatex_io_lines(name,how) - if type(name) == "string" then - local f = io_open(name,how or 'r') - if f then - return function() - local l = fio_readline(f) - if not l then - f:close() - end - return l - end - else - -- for those who like it this way: - error("patched 'io.lines' can't open '" .. name .. "'") - end - else - return io_lines() - end -end - -local function luatex_io_readline(f) - return function() - return fio_readline(f) - end -end - -io.lines = luatex_io_lines -mt.lines = luatex_io_readline - --- We assume management to be provided by the replacement of kpse. This is the --- case in ConTeXt. - -if kpseused == 1 then - - io.open = luatex_io_open - io.popen = luatex_io_popen - -end - -if saferoption == 1 then - - local function installdummy(str,f) - local reported = false - return function(...) - if not reported then - write_nl(format("safer option set, function %q is %s", - str,f and "limited" or "disabled")) - reported = true - end - if f then - return f(...) - end - end - end - - local function installlimit(str,f) - local reported = false - end - - os.execute = installdummy("os.execute") - os.spawn = installdummy("os.spawn") - os.exec = installdummy("os.exec") - os.setenv = installdummy("os.setenv") - os.tempdir = installdummy("os.tempdir") - - io.popen = installdummy("io.popen") - io.open = installdummy("io.open",luatex_io_open_readonly) - - os.rename = installdummy("os.rename") - os.remove = installdummy("os.remove") - - io.tmpfile = installdummy("io.tmpfile") - io.output = installdummy("io.output") - - lfs.chdir = installdummy("lfs.chdir") - lfs.lock = installdummy("lfs.lock") - lfs.touch = installdummy("lfs.touch") - lfs.rmdir = installdummy("lfs.rmdir") - lfs.mkdir = installdummy("lfs.mkdir") - -end - -if saferoption == 1 or shellescape ~= 1 then - - ffi = require('ffi') - for k, v in next, ffi do - if k ~= 'gc' then - ffi[k] = nil - end - end - ffi = nil - -end - --- os.[execute|os.spawn|os.exec] already are shellescape aware) - - -if md5 then - - local sum = md5.sum - local gsub = string.gsub - local format = string.format - local byte = string.byte - - if not md5.sumhexa then - function md5.sumhexa(k) - return (gsub(sum(k), ".", function(c) - return format("%02x",byte(c)) - end)) - end - end - - if not md5.sumHEXA then - function md5.sumHEXA(k) - return (gsub(sum(k), ".", function(c) - return format("%02X",byte(c)) - end)) - end - end - -end - --- compatibility: this might go away - -if not unpack then - unpack = table.unpack -end - -if not package.loaders then - package.loaders = package.searchers -end - -if not loadstring then - loadstring = load -end - --- compatibility: this might stay - -if bit32 then - - -- lua 5.2: we're okay - -elseif utf8 then - - -- lua 5.3: bitwise.lua, v 1.24 2014/12/26 17:20:53 roberto - - bit32 = load ( [[ -local select = select -- instead of: arg = { ... } - -bit32 = { - bnot = function (a) - return ~a & 0xFFFFFFFF - end, - band = function (x, y, z, ...) - if not z then - return ((x or -1) & (y or -1)) & 0xFFFFFFFF - else - local res = x & y & z - for i=1,select("#",...) do - res = res & select(i,...) - end - return res & 0xFFFFFFFF - end - end, - bor = function (x, y, z, ...) - if not z then - return ((x or 0) | (y or 0)) & 0xFFFFFFFF - else - local res = x | y | z - for i=1,select("#",...) do - res = res | select(i,...) - end - return res & 0xFFFFFFFF - end - end, - bxor = function (x, y, z, ...) - if not z then - return ((x or 0) ~ (y or 0)) & 0xFFFFFFFF - else - local res = x ~ y ~ z - for i=1,select("#",...) do - res = res ~ select(i,...) - end - return res & 0xFFFFFFFF - end - end, - btest = function (x, y, z, ...) - if not z then - return (((x or -1) & (y or -1)) & 0xFFFFFFFF) ~= 0 - else - local res = x & y & z - for i=1,select("#",...) do - res = res & select(i,...) - end - return (res & 0xFFFFFFFF) ~= 0 - end - end, - lshift = function (a, b) - return ((a & 0xFFFFFFFF) << b) & 0xFFFFFFFF - end, - rshift = function (a, b) - return ((a & 0xFFFFFFFF) >> b) & 0xFFFFFFFF - end, - arshift = function (a, b) - a = a & 0xFFFFFFFF - if b <= 0 or (a & 0x80000000) == 0 then - return (a >> b) & 0xFFFFFFFF - else - return ((a >> b) | ~(0xFFFFFFFF >> b)) & 0xFFFFFFFF - end - end, - lrotate = function (a ,b) - b = b & 31 - a = a & 0xFFFFFFFF - a = (a << b) | (a >> (32 - b)) - return a & 0xFFFFFFFF - end, - rrotate = function (a, b) - b = -b & 31 - a = a & 0xFFFFFFFF - a = (a << b) | (a >> (32 - b)) - return a & 0xFFFFFFFF - end, - extract = function (a, f, w) - return (a >> f) & ~(-1 << (w or 1)) - end, - replace = function (a, v, f, w) - local mask = ~(-1 << (w or 1)) - return ((a & ~(mask << f)) | ((v & mask) << f)) & 0xFFFFFFFF - end, -} - ]] ) - -elseif bit then - - -- luajit (for now) - - bit32 = load ( [[ -local band, bnot, rshift, lshift = bit.band, bit.bnot, bit.rshift, bit.lshift - -bit32 = { - arshift = bit.arshift, - band = band, - bnot = bnot, - bor = bit.bor, - bxor = bit.bxor, - btest = function(...) - return band(...) ~= 0 - end, - extract = function(a,f,w) - return band(rshift(a,f),2^(w or 1)-1) - end, - lrotate = bit.rol, - lshift = lshift, - replace = function(a,v,f,w) - local mask = 2^(w or 1)-1 - return band(a,bnot(lshift(mask,f)))+lshift(band(v,mask),f) - end, - rrotate = bit.ror, - rshift = rshift, -} - ]] ) - -else - - -- hope for the best or fail - - bit32 = require("bit32") - -end - --- this is needed for getting require("socket") right - -do - - local loaded = package.loaded - - if not loaded.socket then loaded.socket = loaded["socket.core"] end - if not loaded.mime then loaded.mime = loaded["mime.core"] end - -end - -do - - local lfsattributes = lfs.attributes - local symlinkattributes = lfs.symlinkattributes - - -- these can now be done using lfs (was dead slow before) - - if not lfs.isfile then - function lfs.isfile(name) - local m = lfsattributes(name,"mode") - return m == "file" or m == "link" - end - end - - if not lfs.isdir then - function lfs.isdir(name) - local m = lfsattributes(name,"mode") - return m == "directory" - end - end - - -- shortnames have also be sort of dropped from kpse - - if not lfs.shortname then - function lfs.shortname(name) - return name - end - end - - -- now there is a target field, so ... - - if not lfs.readlink then - function lfs.readlink(name) - return symlinkattributes(name,"target") or nil - end - end - -end - --- so far - -if utilities and utilities.merger and utilities.merger.compact then - - local byte, format, gmatch = string.byte, string.format, string.gmatch - local concat = table.concat - - local data = gsub(io.loaddata('luatex-core.lua'),'if%s+utilities.*','') - - local t = { } - local r = { } - local n = 0 - local d = gsub(data,'\r\n','\n') -- be nice for unix - local s = utilities.merger.compact(d) -- no comments and less spaces - - t[#t+1] = '/* generated from and by luatex-core.lua */' - t[#t+1] = '' - -- t[#t+1] = format('/*\n\n%s\n\n*/',d) - -- t[#t+1] = '' - t[#t+1] = '#include "lua.h"' - t[#t+1] = '#include "lauxlib.h"' - t[#t+1] = '' - t[#t+1] = 'int load_luatex_core_lua (lua_State * L);' - t[#t+1] = '' - t[#t+1] = 'int load_luatex_core_lua (lua_State * L)' - t[#t+1] = '{' - t[#t+1] = ' static unsigned char luatex_core_lua[] = {' - for c in gmatch(d,'.') do - if n == 16 then - n = 1 - t[#t+1] = ' ' .. concat(r,', ') .. ',' - else - n = n + 1 - end - r[n] = format('0x%02x',byte(c)) - end - n = n + 1 - r[n] = '0x00' - t[#t+1] = ' ' .. concat(r,', ',1,n) - t[#t+1] = ' };' - -- t[#t+1] = format('unsigned int luatex_core_lua_len = 0x%x;',#d+1) - t[#t+1] = ' return luaL_dostring(L, (const char*) luatex_core_lua);' - t[#t+1] = '}' - - io.savedata('luatex-core.c',concat(t,'\n')) - io.savedata('luatex-core-stripped.lua',s) - -end +-- luatex-core security and io overloads ........... + +-- if not modules then modules = { } end modules ['luatex-core'] = { +-- version = 1.080, +-- comment = 'companion to luatex', +-- author = 'Hans Hagen & Luigi Scarso', +-- copyright = 'LuaTeX Development Team', +-- } + +LUATEXCOREVERSION = 1.080 -- we reflect the luatex version where changes happened + +-- This file overloads some Lua functions. The readline variants provide the same +-- functionality as LuaTeX <= 1.04 and doing it this way permits us to keep the +-- original io libraries clean. Performance is probably even a bit better now. + +-- We test for functions already being defined so that we don't overload ones that +-- are provided in the startup script. + +local type, next, getmetatable, require = type, next, getmetatable, require +local find, gsub, format = string.find, string.gsub, string.format + +local io_open = io.open +local io_popen = io.popen +local io_lines = io.lines + +local fio_readline = fio.readline +local fio_checkpermission = fio.checkpermission +local fio_recordfilename = fio.recordfilename + +local mt = getmetatable(io.stderr) +local mt_lines = mt.lines +local saferoption = status.safer_option +local shellescape = status.shell_escape -- 0 (disabled) 1 (anything) 2 (restricted) +local kpseused = status.kpse_used -- 0 1 + +local write_nl = texio.write_nl + +io.saved_lines = io_lines -- always readonly +mt.saved_lines = mt_lines -- always readonly + +local function luatex_io_open(name,how) + if not how then + how = 'r' + end + local f = io_open(name,how) + if f then + if type(how) == 'string' and find(how,'w') then + fio_recordfilename(name,'w') + else + fio_recordfilename(name,'r') + end + end + return f +end + +local function luatex_io_open_readonly(name,how) + if not how then + how = 'r' + else + how = gsub(how,'[^rb]','') + if how == '' then + how = 'r' + end + end + local f = io_open(name,how) + if f then + fio_recordfilename(name,'r') + end + return f +end + +local function luatex_io_popen(name,...) + local okay, found = fio_checkpermission(name) + if okay and found then + return io_popen(found,...) + end +end + +-- local function luatex_io_lines(name,how) +-- if name then +-- local f = io_open(name,how or 'r') +-- if f then +-- return function() +-- return fio_readline(f) +-- end +-- end +-- else +-- return io_lines() +-- end +-- end + +-- For some reason the gc doesn't kick in so we need to close explitly +-- so that the handle is flushed. + +local error, type = error, type + +local function luatex_io_lines(name,how) + if type(name) == "string" then + local f = io_open(name,how or 'r') + if f then + return function() + local l = fio_readline(f) + if not l then + f:close() + end + return l + end + else + -- for those who like it this way: + error("patched 'io.lines' can't open '" .. name .. "'") + end + else + return io_lines() + end +end + +local function luatex_io_readline(f) + return function() + return fio_readline(f) + end +end + +io.lines = luatex_io_lines +mt.lines = luatex_io_readline + +-- We assume management to be provided by the replacement of kpse. This is the +-- case in ConTeXt. + +if kpseused == 1 then + + io.open = luatex_io_open + io.popen = luatex_io_popen + +end + +if saferoption == 1 then + + local function installdummy(str,f) + local reported = false + return function(...) + if not reported then + write_nl(format("safer option set, function %q is %s", + str,f and "limited" or "disabled")) + reported = true + end + if f then + return f(...) + end + end + end + + local function installlimit(str,f) + local reported = false + end + + debug = nil + os.execute = installdummy("os.execute") + os.spawn = installdummy("os.spawn") + os.exec = installdummy("os.exec") + os.setenv = installdummy("os.setenv") + os.tempdir = installdummy("os.tempdir") + + io.popen = installdummy("io.popen") + io.open = installdummy("io.open",luatex_io_open_readonly) + + os.rename = installdummy("os.rename") + os.remove = installdummy("os.remove") + + io.tmpfile = installdummy("io.tmpfile") + io.output = installdummy("io.output") + + lfs.chdir = installdummy("lfs.chdir") + lfs.lock = installdummy("lfs.lock") + lfs.touch = installdummy("lfs.touch") + lfs.rmdir = installdummy("lfs.rmdir") + lfs.mkdir = installdummy("lfs.mkdir") + +end + +if saferoption == 1 or shellescape ~= 1 then + + ffi = require('ffi') + for k, v in next, ffi do + if k ~= 'gc' then + ffi[k] = nil + end + end + ffi = nil + +end + +-- os.[execute|os.spawn|os.exec] already are shellescape aware) + + +if md5 then + + local sum = md5.sum + local gsub = string.gsub + local format = string.format + local byte = string.byte + + if not md5.sumhexa then + function md5.sumhexa(k) + return (gsub(sum(k), ".", function(c) + return format("%02x",byte(c)) + end)) + end + end + + if not md5.sumHEXA then + function md5.sumHEXA(k) + return (gsub(sum(k), ".", function(c) + return format("%02X",byte(c)) + end)) + end + end + +end + +-- compatibility: this might go away + +if not unpack then + unpack = table.unpack +end + +if not package.loaders then + package.loaders = package.searchers +end + +if not loadstring then + loadstring = load +end + +-- compatibility: this might stay + +if bit32 then + + -- lua 5.2: we're okay + +elseif utf8 then + + -- lua 5.3: bitwise.lua, v 1.24 2014/12/26 17:20:53 roberto + + bit32 = load ( [[ +local select = select -- instead of: arg = { ... } + +bit32 = { + bnot = function (a) + return ~a & 0xFFFFFFFF + end, + band = function (x, y, z, ...) + if not z then + return ((x or -1) & (y or -1)) & 0xFFFFFFFF + else + local res = x & y & z + for i=1,select("#",...) do + res = res & select(i,...) + end + return res & 0xFFFFFFFF + end + end, + bor = function (x, y, z, ...) + if not z then + return ((x or 0) | (y or 0)) & 0xFFFFFFFF + else + local res = x | y | z + for i=1,select("#",...) do + res = res | select(i,...) + end + return res & 0xFFFFFFFF + end + end, + bxor = function (x, y, z, ...) + if not z then + return ((x or 0) ~ (y or 0)) & 0xFFFFFFFF + else + local res = x ~ y ~ z + for i=1,select("#",...) do + res = res ~ select(i,...) + end + return res & 0xFFFFFFFF + end + end, + btest = function (x, y, z, ...) + if not z then + return (((x or -1) & (y or -1)) & 0xFFFFFFFF) ~= 0 + else + local res = x & y & z + for i=1,select("#",...) do + res = res & select(i,...) + end + return (res & 0xFFFFFFFF) ~= 0 + end + end, + lshift = function (a, b) + return ((a & 0xFFFFFFFF) << b) & 0xFFFFFFFF + end, + rshift = function (a, b) + return ((a & 0xFFFFFFFF) >> b) & 0xFFFFFFFF + end, + arshift = function (a, b) + a = a & 0xFFFFFFFF + if b <= 0 or (a & 0x80000000) == 0 then + return (a >> b) & 0xFFFFFFFF + else + return ((a >> b) | ~(0xFFFFFFFF >> b)) & 0xFFFFFFFF + end + end, + lrotate = function (a ,b) + b = b & 31 + a = a & 0xFFFFFFFF + a = (a << b) | (a >> (32 - b)) + return a & 0xFFFFFFFF + end, + rrotate = function (a, b) + b = -b & 31 + a = a & 0xFFFFFFFF + a = (a << b) | (a >> (32 - b)) + return a & 0xFFFFFFFF + end, + extract = function (a, f, w) + return (a >> f) & ~(-1 << (w or 1)) + end, + replace = function (a, v, f, w) + local mask = ~(-1 << (w or 1)) + return ((a & ~(mask << f)) | ((v & mask) << f)) & 0xFFFFFFFF + end, +} + ]] ) + +elseif bit then + + -- luajit (for now) + + bit32 = load ( [[ +local band, bnot, rshift, lshift = bit.band, bit.bnot, bit.rshift, bit.lshift + +bit32 = { + arshift = bit.arshift, + band = band, + bnot = bnot, + bor = bit.bor, + bxor = bit.bxor, + btest = function(...) + return band(...) ~= 0 + end, + extract = function(a,f,w) + return band(rshift(a,f),2^(w or 1)-1) + end, + lrotate = bit.rol, + lshift = lshift, + replace = function(a,v,f,w) + local mask = 2^(w or 1)-1 + return band(a,bnot(lshift(mask,f)))+lshift(band(v,mask),f) + end, + rrotate = bit.ror, + rshift = rshift, +} + ]] ) + +else + + -- hope for the best or fail + + bit32 = require("bit32") + +end + +-- this is needed for getting require("socket") right + +do + + local loaded = package.loaded + + if not loaded.socket then loaded.socket = loaded["socket.core"] end + if not loaded.mime then loaded.mime = loaded["mime.core"] end + +end + +do + + local lfsattributes = lfs.attributes + local symlinkattributes = lfs.symlinkattributes + + -- these can now be done using lfs (was dead slow before) + + if not lfs.isfile then + function lfs.isfile(name) + local m = lfsattributes(name,"mode") + return m == "file" or m == "link" + end + end + + if not lfs.isdir then + function lfs.isdir(name) + local m = lfsattributes(name,"mode") + return m == "directory" + end + end + + -- shortnames have also be sort of dropped from kpse + + if not lfs.shortname then + function lfs.shortname(name) + return name + end + end + + -- now there is a target field, so ... + + if not lfs.readlink then + function lfs.readlink(name) + return symlinkattributes(name,"target") or nil + end + end + +end + +-- so far + +if utilities and utilities.merger and utilities.merger.compact then + + local byte, format, gmatch = string.byte, string.format, string.gmatch + local concat = table.concat + + local data = gsub(io.loaddata('luatex-core.lua'),'if%s+utilities.*','') + + local t = { } + local r = { } + local n = 0 + local d = gsub(data,'\r\n','\n') -- be nice for unix + local s = utilities.merger.compact(d) -- no comments and less spaces + + t[#t+1] = '/* generated from and by luatex-core.lua */' + t[#t+1] = '' + -- t[#t+1] = format('/*\n\n%s\n\n*/',d) + -- t[#t+1] = '' + t[#t+1] = '#include "lua.h"' + t[#t+1] = '#include "lauxlib.h"' + t[#t+1] = '' + t[#t+1] = 'int load_luatex_core_lua (lua_State * L);' + t[#t+1] = '' + t[#t+1] = 'int load_luatex_core_lua (lua_State * L)' + t[#t+1] = '{' + t[#t+1] = ' static unsigned char luatex_core_lua[] = {' + for c in gmatch(d,'.') do + if n == 16 then + n = 1 + t[#t+1] = ' ' .. concat(r,', ') .. ',' + else + n = n + 1 + end + r[n] = format('0x%02x',byte(c)) + end + n = n + 1 + r[n] = '0x00' + t[#t+1] = ' ' .. concat(r,', ',1,n) + t[#t+1] = ' };' + -- t[#t+1] = format('unsigned int luatex_core_lua_len = 0x%x;',#d+1) + t[#t+1] = ' return luaL_dostring(L, (const char*) luatex_core_lua);' + t[#t+1] = '}' + + io.savedata('luatex-core.c',concat(t,'\n')) + io.savedata('luatex-core-stripped.lua',s) + +end diff --git a/source/texk/web2c/luatexdir/luapplib/html/_sources/ppcode.rst.txt b/source/texk/web2c/luatexdir/luapplib/html/_sources/ppcode.rst.txt index 0803364c50a2404d73825bd07ee19b6db16d0198..06f5659c6b02b6f32ffbc485cfad98890b8f2516 100644 --- a/source/texk/web2c/luatexdir/luapplib/html/_sources/ppcode.rst.txt +++ b/source/texk/web2c/luatexdir/luapplib/html/_sources/ppcode.rst.txt @@ -50,6 +50,14 @@ v1.02 ----- Fixed page finder (thanks Luigi) +v1.03 +----- +Fixed TIFF predictor (thanks folks) + +v1.04 +----- +Fixed TIFF predictor for ARM + TODO ==== - external streams (egzotic) diff --git a/source/texk/web2c/luatexdir/luapplib/html/ppcode.html b/source/texk/web2c/luatexdir/luapplib/html/ppcode.html index a35369a6fcb61f6faffc87cde1591a129db2b834..e65000d0fd5cf1e9126143c2553bf4fef8c3a0da 100644 --- a/source/texk/web2c/luatexdir/luapplib/html/ppcode.html +++ b/source/texk/web2c/luatexdir/luapplib/html/ppcode.html @@ -52,6 +52,8 @@ <li><a class="reference internal" href="#v1-00">v1.00</a></li> <li><a class="reference internal" href="#v1-01">v1.01</a></li> <li><a class="reference internal" href="#v1-02">v1.02</a></li> +<li><a class="reference internal" href="#v1-03">v1.03</a></li> +<li><a class="reference internal" href="#v1-04">v1.04</a></li> </ul> </li> <li><a class="reference internal" href="#todo">TODO</a></li> @@ -439,7 +441,7 @@ int main (int argc, const char **argv) <span class="c1">#include "ppconf.h"</span> -<span class="c1">#define pplib_version "v1.01"</span> +<span class="c1">#define pplib_version "v1.03"</span> <span class="c1">#define pplib_author "p.jackowski@gust.org.pl"</span> <span class="o">/*</span> <span class="n">types</span> <span class="o">*/</span> @@ -465,7 +467,7 @@ int main (int argc, const char **argv) <span class="n">typedef</span> <span class="n">struct</span> <span class="n">ppref</span> <span class="n">ppref</span><span class="p">;</span> -<span class="c1">#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ </span> +<span class="c1">#if ARM_COMPLIANT</span> <span class="n">typedef</span> <span class="n">struct</span> <span class="p">{</span> <span class="n">ppobj</span> <span class="o">*</span><span class="n">data</span><span class="p">;</span> <span class="n">size_t</span> <span class="n">size</span><span class="p">;</span> @@ -479,7 +481,7 @@ int main (int argc, const char **argv) <span class="c1">#endif</span> -<span class="c1">#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ </span> +<span class="c1">#if ARM_COMPLIANT</span> <span class="n">typedef</span> <span class="n">struct</span> <span class="p">{</span> <span class="n">ppobj</span> <span class="o">*</span><span class="n">data</span><span class="p">;</span> <span class="n">ppname</span> <span class="o">*</span><span class="n">keys</span><span class="p">;</span> @@ -621,7 +623,7 @@ int main (int argc, const char **argv) <span class="c1">#define ppname_is(name, s) (memcmp(name, s, sizeof("" s) - 1) == 0)</span> <span class="c1">#define ppname_eq(name, n) (memcmp(name, s, ppname_size(name)) == 0)</span> -<span class="c1">#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ </span> +<span class="c1">#if ARM_COMPLIANT</span> <span class="c1">#define _ppname_ghost(name) (((const _ppname *)((void *)name)) - 1)</span> <span class="c1">#else</span> <span class="c1">#define _ppname_ghost(name) (((const _ppname *)(name)) - 1)</span> @@ -639,7 +641,7 @@ int main (int argc, const char **argv) <span class="o">/*</span> <span class="n">string</span> <span class="o">*/</span> -<span class="c1">#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ </span> +<span class="c1">#if ARM_COMPLIANT</span> <span class="c1">#define _ppstring_ghost(string) (((const _ppstring *)((void *)string)) - 1)</span> <span class="c1">#else</span> <span class="c1">#define _ppstring_ghost(string) (((const _ppstring *)(string)) - 1)</span> @@ -879,6 +881,14 @@ Revised streams handling, ppstream API extended</p> <h2>v1.02<a class="headerlink" href="#v1-02" title="Permalink to this headline">¶</a></h2> <p>Fixed page finder (thanks Luigi)</p> </div> +<div class="section" id="v1-03"> +<h2>v1.03<a class="headerlink" href="#v1-03" title="Permalink to this headline">¶</a></h2> +<p>Fixed TIFF predictor (thanks folks)</p> +</div> +<div class="section" id="v1-04"> +<h2>v1.04<a class="headerlink" href="#v1-04" title="Permalink to this headline">¶</a></h2> +<p>Fixed TIFF predictor for ARM</p> +</div> </div> <div class="section" id="todo"> <h1>TODO<a class="headerlink" href="#todo" title="Permalink to this headline">¶</a></h1> diff --git a/source/texk/web2c/luatexdir/luapplib/html/pplib.html b/source/texk/web2c/luatexdir/luapplib/html/pplib.html index 82c41174396b557e982018b909f67c6a2b705b69..add2b726adffca4ec27d6c7ca5e74e5ea4b0dc5e 100644 --- a/source/texk/web2c/luatexdir/luapplib/html/pplib.html +++ b/source/texk/web2c/luatexdir/luapplib/html/pplib.html @@ -105,6 +105,8 @@ <li class="toctree-l2"><a class="reference internal" href="ppcode.html#v1-00">v1.00</a></li> <li class="toctree-l2"><a class="reference internal" href="ppcode.html#v1-01">v1.01</a></li> <li class="toctree-l2"><a class="reference internal" href="ppcode.html#v1-02">v1.02</a></li> +<li class="toctree-l2"><a class="reference internal" href="ppcode.html#v1-03">v1.03</a></li> +<li class="toctree-l2"><a class="reference internal" href="ppcode.html#v1-04">v1.04</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="ppcode.html#todo">TODO</a></li> diff --git a/source/texk/web2c/luatexdir/luapplib/html/searchindex.js b/source/texk/web2c/luatexdir/luapplib/html/searchindex.js index 19b0d65ba60906a234496f32605740c6ddc90066..df9ec39cdf33fba47a073e94df5cd80ef16e4a87 100644 --- a/source/texk/web2c/luatexdir/luapplib/html/searchindex.js +++ b/source/texk/web2c/luatexdir/luapplib/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["ppapi","ppcode","pplib"],envversion:52,filenames:["ppapi.rst","ppcode.rst","pplib.rst"],objects:{},objnames:{},objtypes:{},terms:{"1mb":0,"2fkb":1,"2fmb":1,"64kb":0,"boolean":0,"break":[0,1],"byte":0,"case":[0,1],"char":[0,1],"const":[0,1],"default":[0,1],"enum":[0,1],"final":0,"function":0,"int":[0,1],"long":[0,1],"new":0,"null":[0,1],"return":[0,1],"short":0,"static":1,"switch":[0,1],"void":[0,1],"while":0,And:0,But:0,For:0,NOT:1,One:0,Such:0,The:0,Then:0,There:0,Use:0,__aarch64__:1,__arm:1,__arm__:1,__arm_arch:1,_ppname:1,_ppname_ghost:1,_ppstring:1,_ppstring_ghost:1,about:0,abov:0,absolutelli:0,accept:0,access:[0,1],accessor:0,accord:0,acrobat:[0,1],actual:0,addit:0,after:[0,1],again:0,ahead:0,alia:0,alias:[],alien:[0,1],aliv:0,all:0,alloc:0,allow:0,alreadi:0,also:0,alter:0,alwai:0,among:0,ani:[0,1],annoi:0,anoth:0,anyhow:0,anymor:0,anyth:0,api:[1,2],app:0,appear:0,appli:0,applic:0,approach:0,approx:0,arbitrari:0,aren:0,argc:1,argument:0,argv0:1,argv:1,arm:1,arrai:[1,2],artbox:1,ascii85decod:0,ascii:0,asciihexdecod:0,ask:0,assert:1,associ:0,assum:0,auxilari:0,avail:0,avoid:0,awar:0,base16:0,base85:0,basic:0,bbox:0,becaus:0,been:0,befor:[0,1],beings:0,belong:0,below:0,besid:0,better:0,between:0,beyond:0,binari:0,bit:0,bleedbox:1,bodi:0,boject:0,bom:0,both:0,bother:0,bound:0,box:[1,2],box_info:1,buffer:[0,1],bug:0,build:0,bunch:0,call:0,callback:0,can:[0,1],captur:[],care:0,cast:0,catalog:0,ccitt:0,ccittfaxdecod:0,chang:2,charact:[0,1],check:0,chunk:0,cipher:0,clear:0,close:0,code:0,coercion:0,come:0,common:0,compar:0,comparison:0,complet:0,completelli:0,compound:0,compress:[0,1],conceptu:0,condit:0,confus:0,consid:0,constant:0,construct:0,contain:0,content:[1,2],context:[0,1],continu:1,conveni:0,convert:0,copi:[0,1],correspond:0,cost:0,could:0,count:[0,1],counterpart:0,covert:0,creat:[0,1],creator:1,cropbox:1,cross:0,crypt:[0,1],crypt_info:1,cryptkei:1,cstr:0,cstring:0,current:0,custom:0,data1:0,data2:0,data3:0,data:[0,1],dct:0,dctdecod:0,deal:0,debug:[],declar:0,decod:[0,1],decodeparm:[0,1],decompress:[0,1],decrypt:0,dedic:0,dedict:0,defin:[0,1],delim:0,demand:0,depend:0,depth:[],derefer:0,describ:0,descript:0,design:0,destroi:0,detect:0,determin:0,dict:[1,2],differ:0,digit:[0,1],direct:0,directli:0,distinguish:0,distingush:0,doc:1,document:0,doe:0,doesn:0,don:0,done:[0,1],doubl:[0,1],due:0,dummi:[0,1],each:0,eat:0,effect:[0,1],ego:0,egzot:1,element:0,elementari:0,els:1,empti:[0,1],encod:0,encount:[],encrypt:[1,2],end:0,endif:1,enough:0,ensur:0,entir:0,entri:0,equiv:0,error:2,escap:0,even:0,everi:0,exactli:0,exampl:[0,2],except:0,execut:0,expect:0,explain:0,explicit:0,expos:0,extend:[0,1],extens:0,extern:1,extra:0,fail:[0,1],failur:0,far:0,fast:0,fault:0,fclose:1,featur:0,fetch:0,field:[0,1],file1:1,file2:1,file:[0,1],filenam:[0,1],filepath:1,files:1,filespec:1,fill:[0,1],filter:[1,2],filternam:[0,1],filtertyp:[0,1],find:0,finder:1,first:[0,1],fix:1,flag:[0,1],flate:0,flatedecod:0,fly:0,follow:0,fopen:1,forbidden:0,form:[0,1],found:0,fprintf:[0,1],free:0,freed:0,from:[0,1],futur:0,fwrite:1,genuin:0,get:0,get_file_nam:1,getter:0,give:0,given:0,gobbl:1,goe:0,going:0,grant:0,grow:0,guess:0,gust:1,han:1,handl:[1,2],handler:0,happen:[0,1],has:0,hash:0,have:0,haven:0,header:0,heap:0,helper:0,here:0,hex:0,hide:0,host:0,how:0,howev:0,hundr:0,ident:0,identifi:0,iff:0,ifndef:1,imag:[0,1],imagedict:0,implement:0,includ:[0,1],incomplet:0,increment:[0,1],independ:0,index:[0,1],indic:0,indirect:0,info:[0,1],inform:0,initi:0,inlin:0,input:1,instead:0,insuffici:0,int64_t:[0,1],integ:[0,1],integr:1,intend:0,intent:0,interfac:0,intern:0,introduc:0,invalid:[0,1],item:[0,1],iter:0,its:0,itself:0,jackowski:1,jbig2:0,jbig2decod:0,jbig:0,jpeg:0,jpegsiz:0,jpegstream:0,jpx:0,jpxdecod:0,jump:0,just:0,keep:0,kei:[0,1],kep:0,kept:0,keyval:0,keyword:1,kind:0,know:0,known:0,larg:0,last:[0,1],later:0,lead:0,length:[0,1],less:0,letter:0,librari:0,like:0,linear:0,list:0,liter:0,load:[0,1],loader:0,log:0,log_callback:1,logger:[0,1],longer:0,look:0,lookup:0,loop:0,luatex:1,luigi:1,lzw:0,lzwdecod:0,machin:[0,1],macro:0,magic:0,mai:0,main:[0,1],major:0,make:0,malloc:0,map:0,mark:0,match:0,matrix:[0,1],matter:0,mean:0,mechan:[],mediabox:[0,1],member:0,memcmp:[0,1],memori:0,memus:1,memwast:1,mention:0,messag:[0,1],might:0,mind:0,minor:[0,1],moment:0,more:0,most:0,must:0,name:[1,2],necessari:0,need:[0,1],newest:0,next:0,node:0,non:0,none:1,nonempti:1,nooop:[0,1],normal:0,note:[0,1],noth:0,now:[0,1],number:[0,1],numer:0,obj:[0,1],object:[1,2],obligatori:0,obscur:0,offset:[0,1],often:0,older:0,omit:0,onc:0,one:0,onli:[0,1],open:[0,1],oper:[0,1],operand:0,operato:0,oprat:0,option:0,org:1,origin:0,other:[0,1],otherwis:0,out:[0,1],outdir:1,outnam:1,output:0,over:0,own:0,owner:0,ownerpass:[0,1],ownerpasslength:[0,1],page:[1,2],pagecount:1,pagedict:[0,1],pageno:[0,1],pageref:1,pair:0,parallel:0,param:[0,1],paramet:0,parent:0,pars:[0,1],parser:[0,1],part:0,password:[0,1],path:1,pcontext:0,pdf:[1,2],perfectli:0,perform:0,permiss:[0,1],piec:0,pkei:[0,1],plain:[0,1],plu:1,pname:[0,1],point:0,pointer:0,pool:0,portabl:1,possibl:0,postscript:[0,1],pp_api_h:1,ppapi:[0,2],pparrai:[0,1],pparray_align:1,pparray_at:[0,1],pparray_first:[0,1],pparray_get:[0,1],pparray_get_:0,pparray_get_arrai:[0,1],pparray_get_bool:[0,1],pparray_get_dict:[0,1],pparray_get_int:[0,1],pparray_get_nam:[0,1],pparray_get_num:[0,1],pparray_get_obj:[0,1],pparray_get_ref:[0,1],pparray_get_str:[0,1],pparray_get_stream:[0,1],pparray_get_uint:[0,1],pparray_next:[0,1],pparray_rget_:0,pparray_rget_arrai:1,pparray_rget_bool:1,pparray_rget_dict:1,pparray_rget_int:1,pparray_rget_nam:1,pparray_rget_num:1,pparray_rget_obj:1,pparray_rget_ref:1,pparray_rget_str:1,pparray_rget_stream:[0,1],pparray_rget_uint:1,pparray_s:[0,1],pparray_to_matrix:[0,1],pparray_to_rect:[0,1],ppbool:[0,1],ppconf:1,ppcontents_first:[0,1],ppcontents_first_op:[0,1],ppcontents_next:[0,1],ppcontents_next_op:[0,1],ppcontents_pars:[0,1],ppcontext:[0,1],ppcontext_don:[0,1],ppcontext_fre:[0,1],ppcontext_new:[0,1],ppcrypt_don:[0,1],ppcrypt_fail:[0,1],ppcrypt_non:[0,1],ppcrypt_pass:[0,1],ppcrypt_statu:[0,1],ppdef:1,ppdic_rget_dict:0,ppdict:[0,1],ppdict_align:1,ppdict_at:[0,1],ppdict_first:[0,1],ppdict_get_:0,ppdict_get_arrai:[0,1],ppdict_get_bool:[0,1],ppdict_get_box:[0,1],ppdict_get_dict:[0,1],ppdict_get_int:[0,1],ppdict_get_matrix:[0,1],ppdict_get_nam:[0,1],ppdict_get_num:[0,1],ppdict_get_obj:[0,1],ppdict_get_rect:[0,1],ppdict_get_ref:[0,1],ppdict_get_str:[0,1],ppdict_get_stream:[0,1],ppdict_get_uint:[0,1],ppdict_kei:[0,1],ppdict_next:[0,1],ppdict_rget_:0,ppdict_rget_arrai:1,ppdict_rget_bool:1,ppdict_rget_dict:[0,1],ppdict_rget_int:1,ppdict_rget_nam:1,ppdict_rget_num:1,ppdict_rget_obj:1,ppdict_rget_ref:1,ppdict_rget_str:1,ppdict_rget_stream:[0,1],ppdict_rget_uint:1,ppdict_siz:[0,1],ppdoc:[0,1],ppdoc_allow_annot:[0,1],ppdoc_allow_assembl:[0,1],ppdoc_allow_copi:[0,1],ppdoc_allow_extract:[0,1],ppdoc_allow_modifi:[0,1],ppdoc_allow_print:[0,1],ppdoc_allow_print_hir:[0,1],ppdoc_catalog:[0,1],ppdoc_crypt_pass:[0,1],ppdoc_crypt_statu:[0,1],ppdoc_file_s:[0,1],ppdoc_first_pag:[0,1],ppdoc_fre:[0,1],ppdoc_info:[0,1],ppdoc_load:[0,1],ppdoc_mem:[0,1],ppdoc_memori:[0,1],ppdoc_next_pag:[0,1],ppdoc_object:[0,1],ppdoc_pag:[0,1],ppdoc_page_count:[0,1],ppdoc_permiss:[0,1],ppdoc_trail:[0,1],ppdoc_version_numb:[0,1],ppdoc_version_str:[0,1],ppdoc_xref:[0,1],ppint:[0,1],pplib:1,pplib_author:1,pplib_vers:1,pplog_callback:[0,1],pplog_prefix:[0,1],pplogger_callback:[0,1],ppmatrix:[0,1],ppmess:[],ppname:[0,1],ppname_decod:[0,1],ppname_encod:[0,1],ppname_eq:[0,1],ppname_exec:[0,1],ppname_i:[0,1],ppname_s:[0,1],ppnone:[0,1],ppnull:[0,1],ppnum:[0,1],ppobj:[0,1],ppobj_get_:0,ppobj_get_arrai:[0,1],ppobj_get_bool:[0,1],ppobj_get_bool_valu:1,ppobj_get_dict:[0,1],ppobj_get_int:[0,1],ppobj_get_int_valu:1,ppobj_get_nam:[0,1],ppobj_get_nul:[0,1],ppobj_get_num:[0,1],ppobj_get_num_valu:1,ppobj_get_ref:[0,1],ppobj_get_str:[0,1],ppobj_get_stream:[0,1],ppobj_get_uint:[0,1],ppobj_kind:1,ppobj_rget_:0,ppobj_rget_arrai:1,ppobj_rget_bool:1,ppobj_rget_dict:[0,1],ppobj_rget_int:1,ppobj_rget_nam:1,ppobj_rget_nul:1,ppobj_rget_num:1,ppobj_rget_obj:[0,1],ppobj_rget_ref:1,ppobj_rget_str:1,ppobj_rget_stream:1,ppobj_rget_uint:1,ppobjtp:[0,1],pprect:[0,1],ppref:[0,1],ppref_obj:[0,1],ppsizef:1,ppstream:[0,1],ppstream_al:[0,1],ppstream_base16:[0,1],ppstream_base85:[0,1],ppstream_ccitt:[0,1],ppstream_compress:[0,1],ppstream_crypt:[0,1],ppstream_dct:[0,1],ppstream_dict:[0,1],ppstream_don:[0,1],ppstream_encrypt:[0,1],ppstream_encrypted_a:1,ppstream_encrypted_own:[0,1],ppstream_encrypted_rc4:1,ppstream_filt:[0,1],ppstream_filter_info:[0,1],ppstream_filter_nam:[0,1],ppstream_filter_typ:[0,1],ppstream_first:[0,1],ppstream_flat:[0,1],ppstream_free_buff:[0,1],ppstream_imag:[0,1],ppstream_init_buff:[0,1],ppstream_jbig2:[0,1],ppstream_jpx:[0,1],ppstream_lzw:[0,1],ppstream_next:[0,1],ppstream_not_support:1,ppstream_runlength:[0,1],ppstreamtp:[0,1],ppstring:[0,1],ppstring_base16:[0,1],ppstring_base85:[0,1],ppstring_decod:[0,1],ppstring_encod:[0,1],ppstring_exec:1,ppstring_hex:[0,1],ppstring_plain:[0,1],ppstring_siz:[0,1],ppstring_typ:[0,1],ppstring_utf16b:[0,1],ppstring_utf16l:[0,1],ppstring_utf:[0,1],ppuint:[0,1],ppuintf:1,ppxref:[0,1],ppxref_catalog:1,ppxref_find:[0,1],ppxref_info:1,ppxref_pag:1,ppxref_prev:[0,1],ppxref_trail:1,ppxsec:1,practis:0,preceed:0,precis:0,prefer:0,prefix:[0,1],present:0,preserv:0,pretend:0,pretti:0,previou:0,print:[0,1],print_info:1,print_result_filt:1,print_stream_info:1,printabl:0,printf:[0,1],probabl:0,problem:[],proce:0,procee:0,process:0,produc:[0,1],prompt:0,proper:0,properti:[0,1],protect:[0,1],provid:0,psize:[0,1],put:0,queri:0,quit:0,rather:0,raw:0,read:0,readabl:0,reader:0,readi:0,real:0,realli:0,reason:0,reclaim:0,reconstruct:0,rect:[0,1],rectangl:0,redirect:0,ref:[1,2],refer:[0,1],referenc:0,refnum:1,refnumb:[0,1],relat:0,releas:[0,1],relev:0,remain:0,replac:0,repres:0,resolv:[0,1],resourc:0,restor:0,restrict:0,result:0,reus:0,revers:0,revis:1,rewrit:0,root:0,roughli:0,runlength:0,runlengthdecod:0,sai:0,same:0,saniti:0,scheme:0,search:0,second:0,sect:1,secur:[0,1],see:0,segment:0,sens:0,separ:0,set:0,sever:0,should:[0,1],shouldn:[0,1],show:0,sign:[0,1],simpl:0,simpli:0,sinc:0,singl:0,size:[0,1],size_t:[0,1],sizenum:1,sizeof:[0,1],skip:1,small:0,smarter:0,some:0,some_output:0,somehow:[],someth:0,somewher:0,soon:0,sorri:[0,1],sourc:[0,1],space:0,spec:0,special:0,specif:0,sprintf:1,stack:0,standalon:0,start:0,stat:[],state:0,statu:0,stddef:1,stderr:[0,1],stdint:1,stdio:1,stdout:0,still:0,stop:0,store:0,stream:[1,2],string:[1,2],strip:0,strlen:0,struct:[0,1],structur:0,style:0,suboptim:0,subsequ:0,succe:0,succeed:0,suffer:0,suit:0,sum:0,support:0,surround:0,syntax:0,tab:[0,1],tabl:0,take:0,target:0,tech:1,tell:0,templat:[0,1],termin:0,termini:0,text:0,than:0,thank:1,thei:0,them:0,thi:[0,1],think:0,those:0,though:0,through:0,todo:2,top:0,trailer:0,transform:[1,2],treat:0,tree:0,tri:0,trickeri:0,trimbox:1,triplet:0,two:0,type:[1,2],typedef:[0,1],typic:0,uint8_t:[0,1],uncompress:1,unconst:0,undocu:0,unescap:0,unicod:0,union:[0,1],unless:0,unnecesari:0,unnecessari:0,unread:0,unsign:[0,1],unsupport:0,until:0,updat:[0,1],usag:[0,1],use:0,used:0,useless:0,user:[],userpass:[0,1],userpasslength:[0,1],uses:0,using:0,usual:0,utf16:0,utf16b:0,utf16l:0,util:0,val:0,valid:0,valu:0,variabl:0,verbos:0,verifi:0,version:[0,1],via:0,wai:0,want:0,wast:[0,1],well:0,weren:[0,1],what:0,whatev:0,when:[0,1],whenev:0,which:0,without:0,wntri:0,won:0,word:[0,1],would:0,write:1,wrong:0,xref:[1,2],xsec:1,yes:0,you:0,your:0,your_callback:0,yourself:0,zero:0},titles:["<code class=\"docutils literal notranslate\"><span class=\"pre\">pplib</span></code>","Examples","pplib"],titleterms:{api:0,arrai:0,box:0,chang:1,content:0,dict:0,encrypt:0,error:0,exampl:1,filter:0,handl:0,name:0,object:0,page:0,pdf:0,ppapi:1,pplib:[0,2],ref:0,stream:0,string:0,todo:1,transform:0,type:0,xref:0}}) \ No newline at end of file +Search.setIndex({docnames:["ppapi","ppcode","pplib"],envversion:52,filenames:["ppapi.rst","ppcode.rst","pplib.rst"],objects:{},objnames:{},objtypes:{},terms:{"1mb":0,"2fkb":1,"2fmb":1,"64kb":0,"boolean":0,"break":[0,1],"byte":0,"case":[0,1],"char":[0,1],"const":[0,1],"default":[0,1],"enum":[0,1],"final":0,"function":0,"int":[0,1],"long":[0,1],"new":0,"null":[0,1],"return":[0,1],"short":0,"static":1,"switch":[0,1],"void":[0,1],"while":0,And:0,But:0,For:0,NOT:1,One:0,Such:0,The:0,Then:0,There:0,Use:0,__aarch64__:[],__arm:[],__arm__:[],__arm_arch:[],__sun:[],__svr4:[],_ppname:1,_ppname_ghost:1,_ppstring:1,_ppstring_ghost:1,about:0,abov:0,absolutelli:0,accept:0,access:[0,1],accessor:0,accord:0,acrobat:[0,1],actual:0,addit:0,after:[0,1],again:0,ahead:0,alia:0,alias:[],alien:[0,1],aliv:0,all:0,alloc:0,allow:0,alreadi:0,also:0,alter:0,alwai:0,among:0,ani:[0,1],annoi:0,anoth:0,anyhow:0,anymor:0,anyth:0,api:[1,2],app:0,appear:0,appli:0,applic:0,approach:0,approx:0,arbitrari:0,aren:0,argc:1,argument:0,argv0:1,argv:1,arm:1,arm_compli:1,arrai:[1,2],artbox:1,ascii85decod:0,ascii:0,asciihexdecod:0,ask:0,assert:1,associ:0,assum:0,auxilari:0,avail:0,avoid:0,awar:0,base16:0,base85:0,basic:0,bbox:0,becaus:0,been:0,befor:[0,1],beings:0,belong:0,below:0,besid:0,better:0,between:0,beyond:0,binari:0,bit:0,bleedbox:1,bodi:0,boject:0,bom:0,both:0,bother:0,bound:0,box:[1,2],box_info:1,buffer:[0,1],bug:0,build:0,bunch:0,call:0,callback:0,can:[0,1],captur:[],care:0,cast:0,catalog:0,ccitt:0,ccittfaxdecod:0,chang:2,charact:[0,1],check:0,chunk:0,cipher:0,clear:0,close:0,code:0,coercion:0,come:0,common:0,compar:0,comparison:0,complet:0,completelli:0,compound:0,compress:[0,1],conceptu:0,condit:0,confus:0,consid:0,constant:0,construct:0,contain:0,content:[1,2],context:[0,1],continu:1,conveni:0,convert:0,copi:[0,1],correspond:0,cost:0,could:0,count:[0,1],counterpart:0,covert:0,creat:[0,1],creator:1,cropbox:1,cross:0,crypt:[0,1],crypt_info:1,cryptkei:1,cstr:0,cstring:0,current:0,custom:0,data1:0,data2:0,data3:0,data:[0,1],dct:0,dctdecod:0,deal:0,debug:[],declar:0,decod:[0,1],decodeparm:[0,1],decompress:[0,1],decrypt:0,dedic:0,dedict:0,defin:[0,1],delim:0,demand:0,depend:0,depth:[],derefer:0,describ:0,descript:0,design:0,destroi:0,detect:0,determin:0,dict:[1,2],differ:0,digit:[0,1],direct:0,directli:0,distinguish:0,distingush:0,doc:1,document:0,doe:0,doesn:0,don:0,done:[0,1],doubl:[0,1],due:0,dummi:[0,1],each:0,eat:0,effect:[0,1],ego:0,egzot:1,element:0,elementari:0,els:1,empti:[0,1],encod:0,encount:[],encrypt:[1,2],end:0,endif:1,enough:0,ensur:0,entir:0,entri:0,equiv:0,error:2,escap:0,even:0,everi:0,exactli:0,exampl:[0,2],except:0,execut:0,expect:0,explain:0,explicit:0,expos:0,extend:[0,1],extens:0,extern:1,extra:0,fail:[0,1],failur:0,far:0,fast:0,fault:0,fclose:1,featur:0,fetch:0,field:[0,1],file1:1,file2:1,file:[0,1],filenam:[0,1],filepath:1,files:1,filespec:1,fill:[0,1],filter:[1,2],filternam:[0,1],filtertyp:[0,1],find:0,finder:1,first:[0,1],fix:1,flag:[0,1],flate:0,flatedecod:0,fly:0,folk:1,follow:0,fopen:1,forbidden:0,form:[0,1],found:0,fprintf:[0,1],free:0,freed:0,from:[0,1],futur:0,fwrite:1,genuin:0,get:0,get_file_nam:1,getter:0,give:0,given:0,gobbl:1,goe:0,going:0,grant:0,grow:0,guess:0,gust:1,han:1,handl:[1,2],handler:0,happen:[0,1],has:0,hash:0,have:0,haven:0,header:0,heap:0,helper:0,here:0,hex:0,hide:0,host:0,how:0,howev:0,hundr:0,ident:0,identifi:0,iff:0,ifndef:1,imag:[0,1],imagedict:0,implement:0,includ:[0,1],incomplet:0,increment:[0,1],independ:0,index:[0,1],indic:0,indirect:0,info:[0,1],inform:0,initi:0,inlin:0,input:1,instead:0,insuffici:0,int64_t:[0,1],integ:[0,1],integr:1,intend:0,intent:0,interfac:0,intern:0,introduc:0,invalid:[0,1],item:[0,1],iter:0,its:0,itself:0,jackowski:1,jbig2:0,jbig2decod:0,jbig:0,jpeg:0,jpegsiz:0,jpegstream:0,jpx:0,jpxdecod:0,jump:0,just:0,keep:0,kei:[0,1],kep:0,kept:0,keyval:0,keyword:1,kind:0,know:0,known:0,larg:0,last:[0,1],later:0,lead:0,length:[0,1],less:0,letter:0,librari:0,like:0,linear:0,list:0,liter:0,load:[0,1],loader:0,log:0,log_callback:1,logger:[0,1],longer:0,look:0,lookup:0,loop:0,luatex:1,luigi:1,lzw:0,lzwdecod:0,machin:[0,1],macro:0,magic:0,mai:0,main:[0,1],major:0,make:0,malloc:0,map:0,mark:0,match:0,matrix:[0,1],matter:0,mean:0,mechan:[],mediabox:[0,1],member:0,memcmp:[0,1],memori:0,memus:1,memwast:1,mention:0,messag:[0,1],might:0,mind:0,minor:[0,1],moment:0,more:0,most:0,must:0,name:[1,2],necessari:0,need:[0,1],newest:0,next:0,node:0,non:0,none:1,nonempti:1,nooop:[0,1],normal:0,note:[0,1],noth:0,now:[0,1],number:[0,1],numer:0,obj:[0,1],object:[1,2],obligatori:0,obscur:0,offset:[0,1],often:0,older:0,omit:0,onc:0,one:0,onli:[0,1],open:[0,1],oper:[0,1],operand:0,operato:0,oprat:0,option:0,org:1,origin:0,other:[0,1],otherwis:0,out:[0,1],outdir:1,outnam:1,output:0,over:0,own:0,owner:0,ownerpass:[0,1],ownerpasslength:[0,1],page:[1,2],pagecount:1,pagedict:[0,1],pageno:[0,1],pageref:1,pair:0,parallel:0,param:[0,1],paramet:0,parent:0,pars:[0,1],parser:[0,1],part:0,password:[0,1],path:1,pcontext:0,pdf:[1,2],perfectli:0,perform:0,permiss:[0,1],piec:0,pkei:[0,1],plain:[0,1],plu:1,pname:[0,1],point:0,pointer:0,pool:0,portabl:1,possibl:0,postscript:[0,1],pp_api_h:1,ppapi:[0,2],pparrai:[0,1],pparray_align:1,pparray_at:[0,1],pparray_first:[0,1],pparray_get:[0,1],pparray_get_:0,pparray_get_arrai:[0,1],pparray_get_bool:[0,1],pparray_get_dict:[0,1],pparray_get_int:[0,1],pparray_get_nam:[0,1],pparray_get_num:[0,1],pparray_get_obj:[0,1],pparray_get_ref:[0,1],pparray_get_str:[0,1],pparray_get_stream:[0,1],pparray_get_uint:[0,1],pparray_next:[0,1],pparray_rget_:0,pparray_rget_arrai:1,pparray_rget_bool:1,pparray_rget_dict:1,pparray_rget_int:1,pparray_rget_nam:1,pparray_rget_num:1,pparray_rget_obj:1,pparray_rget_ref:1,pparray_rget_str:1,pparray_rget_stream:[0,1],pparray_rget_uint:1,pparray_s:[0,1],pparray_to_matrix:[0,1],pparray_to_rect:[0,1],ppbool:[0,1],ppconf:1,ppcontents_first:[0,1],ppcontents_first_op:[0,1],ppcontents_next:[0,1],ppcontents_next_op:[0,1],ppcontents_pars:[0,1],ppcontext:[0,1],ppcontext_don:[0,1],ppcontext_fre:[0,1],ppcontext_new:[0,1],ppcrypt_don:[0,1],ppcrypt_fail:[0,1],ppcrypt_non:[0,1],ppcrypt_pass:[0,1],ppcrypt_statu:[0,1],ppdef:1,ppdic_rget_dict:0,ppdict:[0,1],ppdict_align:1,ppdict_at:[0,1],ppdict_first:[0,1],ppdict_get_:0,ppdict_get_arrai:[0,1],ppdict_get_bool:[0,1],ppdict_get_box:[0,1],ppdict_get_dict:[0,1],ppdict_get_int:[0,1],ppdict_get_matrix:[0,1],ppdict_get_nam:[0,1],ppdict_get_num:[0,1],ppdict_get_obj:[0,1],ppdict_get_rect:[0,1],ppdict_get_ref:[0,1],ppdict_get_str:[0,1],ppdict_get_stream:[0,1],ppdict_get_uint:[0,1],ppdict_kei:[0,1],ppdict_next:[0,1],ppdict_rget_:0,ppdict_rget_arrai:1,ppdict_rget_bool:1,ppdict_rget_dict:[0,1],ppdict_rget_int:1,ppdict_rget_nam:1,ppdict_rget_num:1,ppdict_rget_obj:1,ppdict_rget_ref:1,ppdict_rget_str:1,ppdict_rget_stream:[0,1],ppdict_rget_uint:1,ppdict_siz:[0,1],ppdoc:[0,1],ppdoc_allow_annot:[0,1],ppdoc_allow_assembl:[0,1],ppdoc_allow_copi:[0,1],ppdoc_allow_extract:[0,1],ppdoc_allow_modifi:[0,1],ppdoc_allow_print:[0,1],ppdoc_allow_print_hir:[0,1],ppdoc_catalog:[0,1],ppdoc_crypt_pass:[0,1],ppdoc_crypt_statu:[0,1],ppdoc_file_s:[0,1],ppdoc_first_pag:[0,1],ppdoc_fre:[0,1],ppdoc_info:[0,1],ppdoc_load:[0,1],ppdoc_mem:[0,1],ppdoc_memori:[0,1],ppdoc_next_pag:[0,1],ppdoc_object:[0,1],ppdoc_pag:[0,1],ppdoc_page_count:[0,1],ppdoc_permiss:[0,1],ppdoc_trail:[0,1],ppdoc_version_numb:[0,1],ppdoc_version_str:[0,1],ppdoc_xref:[0,1],ppint:[0,1],pplib:1,pplib_author:1,pplib_vers:1,pplog_callback:[0,1],pplog_prefix:[0,1],pplogger_callback:[0,1],ppmatrix:[0,1],ppmess:[],ppname:[0,1],ppname_decod:[0,1],ppname_encod:[0,1],ppname_eq:[0,1],ppname_exec:[0,1],ppname_i:[0,1],ppname_s:[0,1],ppnone:[0,1],ppnull:[0,1],ppnum:[0,1],ppobj:[0,1],ppobj_get_:0,ppobj_get_arrai:[0,1],ppobj_get_bool:[0,1],ppobj_get_bool_valu:1,ppobj_get_dict:[0,1],ppobj_get_int:[0,1],ppobj_get_int_valu:1,ppobj_get_nam:[0,1],ppobj_get_nul:[0,1],ppobj_get_num:[0,1],ppobj_get_num_valu:1,ppobj_get_ref:[0,1],ppobj_get_str:[0,1],ppobj_get_stream:[0,1],ppobj_get_uint:[0,1],ppobj_kind:1,ppobj_rget_:0,ppobj_rget_arrai:1,ppobj_rget_bool:1,ppobj_rget_dict:[0,1],ppobj_rget_int:1,ppobj_rget_nam:1,ppobj_rget_nul:1,ppobj_rget_num:1,ppobj_rget_obj:[0,1],ppobj_rget_ref:1,ppobj_rget_str:1,ppobj_rget_stream:1,ppobj_rget_uint:1,ppobjtp:[0,1],pprect:[0,1],ppref:[0,1],ppref_obj:[0,1],ppsizef:1,ppstream:[0,1],ppstream_al:[0,1],ppstream_base16:[0,1],ppstream_base85:[0,1],ppstream_ccitt:[0,1],ppstream_compress:[0,1],ppstream_crypt:[0,1],ppstream_dct:[0,1],ppstream_dict:[0,1],ppstream_don:[0,1],ppstream_encrypt:[0,1],ppstream_encrypted_a:1,ppstream_encrypted_own:[0,1],ppstream_encrypted_rc4:1,ppstream_filt:[0,1],ppstream_filter_info:[0,1],ppstream_filter_nam:[0,1],ppstream_filter_typ:[0,1],ppstream_first:[0,1],ppstream_flat:[0,1],ppstream_free_buff:[0,1],ppstream_imag:[0,1],ppstream_init_buff:[0,1],ppstream_jbig2:[0,1],ppstream_jpx:[0,1],ppstream_lzw:[0,1],ppstream_next:[0,1],ppstream_not_support:1,ppstream_runlength:[0,1],ppstreamtp:[0,1],ppstring:[0,1],ppstring_base16:[0,1],ppstring_base85:[0,1],ppstring_decod:[0,1],ppstring_encod:[0,1],ppstring_exec:1,ppstring_hex:[0,1],ppstring_plain:[0,1],ppstring_siz:[0,1],ppstring_typ:[0,1],ppstring_utf16b:[0,1],ppstring_utf16l:[0,1],ppstring_utf:[0,1],ppuint:[0,1],ppuintf:1,ppxref:[0,1],ppxref_catalog:1,ppxref_find:[0,1],ppxref_info:1,ppxref_pag:1,ppxref_prev:[0,1],ppxref_trail:1,ppxsec:1,practis:0,preceed:0,precis:0,predictor:1,prefer:0,prefix:[0,1],present:0,preserv:0,pretend:0,pretti:0,previou:0,print:[0,1],print_info:1,print_result_filt:1,print_stream_info:1,printabl:0,printf:[0,1],probabl:0,problem:[],proce:0,procee:0,process:0,produc:[0,1],prompt:0,proper:0,properti:[0,1],protect:[0,1],provid:0,psize:[0,1],put:0,queri:0,quit:0,rather:0,raw:0,read:0,readabl:0,reader:0,readi:0,real:0,realli:0,reason:0,reclaim:0,reconstruct:0,rect:[0,1],rectangl:0,redirect:0,ref:[1,2],refer:[0,1],referenc:0,refnum:1,refnumb:[0,1],relat:0,releas:[0,1],relev:0,remain:0,replac:0,repres:0,resolv:[0,1],resourc:0,restor:0,restrict:0,result:0,reus:0,revers:0,revis:1,rewrit:0,root:0,roughli:0,runlength:0,runlengthdecod:0,sai:0,same:0,saniti:0,scheme:0,search:0,second:0,sect:1,secur:[0,1],see:0,segment:0,sens:0,separ:0,set:0,sever:0,should:[0,1],shouldn:[0,1],show:0,sign:[0,1],simpl:0,simpli:0,sinc:0,singl:0,size:[0,1],size_t:[0,1],sizenum:1,sizeof:[0,1],skip:1,small:0,smarter:0,some:0,some_output:0,somehow:[],someth:0,somewher:0,soon:0,sorri:[0,1],sourc:[0,1],space:0,spec:0,special:0,specif:0,sprintf:1,stack:0,standalon:0,start:0,stat:[],state:0,statu:0,stddef:1,stderr:[0,1],stdint:1,stdio:1,stdout:0,still:0,stop:0,store:0,stream:[1,2],string:[1,2],strip:0,strlen:0,struct:[0,1],structur:0,style:0,suboptim:0,subsequ:0,succe:0,succeed:0,suffer:0,suit:0,sum:0,support:0,surround:0,syntax:0,tab:[0,1],tabl:0,take:0,target:0,tech:1,tell:0,templat:[0,1],termin:0,termini:0,text:0,than:0,thank:1,thei:0,them:0,thi:[0,1],think:0,those:0,though:0,through:0,tiff:1,todo:2,top:0,trailer:0,transform:[1,2],treat:0,tree:0,tri:0,trickeri:0,trimbox:1,triplet:0,two:0,type:[1,2],typedef:[0,1],typic:0,uint8_t:[0,1],uncompress:1,unconst:0,undocu:0,unescap:0,unicod:0,union:[0,1],unless:0,unnecesari:0,unnecessari:0,unread:0,unsign:[0,1],unsupport:0,until:0,updat:[0,1],usag:[0,1],use:0,used:0,useless:0,user:[],userpass:[0,1],userpasslength:[0,1],uses:0,using:0,usual:0,utf16:0,utf16b:0,utf16l:0,util:0,val:0,valid:0,valu:0,variabl:0,verbos:0,verifi:0,version:[0,1],via:0,wai:0,want:0,wast:[0,1],well:0,weren:[0,1],what:0,whatev:0,when:[0,1],whenev:0,which:0,without:0,wntri:0,won:0,word:[0,1],would:0,write:1,wrong:0,xref:[1,2],xsec:1,yes:0,you:0,your:0,your_callback:0,yourself:0,zero:0},titles:["<code class=\"docutils literal notranslate\"><span class=\"pre\">pplib</span></code>","Examples","pplib"],titleterms:{api:0,arrai:0,box:0,chang:1,content:0,dict:0,encrypt:0,error:0,exampl:1,filter:0,handl:0,name:0,object:0,page:0,pdf:0,ppapi:1,pplib:[0,2],ref:0,stream:0,string:0,todo:1,transform:0,type:0,xref:0}}) \ No newline at end of file diff --git a/source/texk/web2c/luatexdir/luapplib/ppapi.h b/source/texk/web2c/luatexdir/luapplib/ppapi.h index 9714279ea32e4daa2e11fc031b8f4c2713dd6c88..a61ca04a0891ea97baf937ce7f5fa4d214182768 100644 --- a/source/texk/web2c/luatexdir/luapplib/ppapi.h +++ b/source/texk/web2c/luatexdir/luapplib/ppapi.h @@ -8,7 +8,7 @@ #include "ppconf.h" -#define pplib_version "v1.02" +#define pplib_version "v1.03" #define pplib_author "p.jackowski@gust.org.pl" /* types */ @@ -34,7 +34,7 @@ typedef struct ppobj ppobj; typedef struct ppref ppref; -#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ ||( defined(__sun) && defined(__SVR4)) +#if ARM_COMPLIANT typedef struct { ppobj *data; size_t size; @@ -48,7 +48,7 @@ typedef struct { #endif -#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ ||( defined(__sun) && defined(__SVR4)) +#if ARM_COMPLIANT typedef struct { ppobj *data; ppname *keys; @@ -190,7 +190,7 @@ typedef struct ppdoc ppdoc; #define ppname_is(name, s) (memcmp(name, s, sizeof("" s) - 1) == 0) #define ppname_eq(name, n) (memcmp(name, s, ppname_size(name)) == 0) -#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ ||( defined(__sun) && defined(__SVR4)) +#if ARM_COMPLIANT #define _ppname_ghost(name) (((const _ppname *)((void *)name)) - 1) #else #define _ppname_ghost(name) (((const _ppname *)(name)) - 1) @@ -208,7 +208,7 @@ PPAPI ppname ppname_encoded (ppname name); /* string */ -#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ ||( defined(__sun) && defined(__SVR4)) +#if ARM_COMPLIANT #define _ppstring_ghost(string) (((const _ppstring *)((void *)string)) - 1) #else #define _ppstring_ghost(string) (((const _ppstring *)(string)) - 1) diff --git a/source/texk/web2c/luatexdir/luapplib/ppconf.h b/source/texk/web2c/luatexdir/luapplib/ppconf.h index 57edc205a549344691e8afa948833f59199b35eb..85d6dcb13a690c3fb6e62ff7e49a6ca358c88147 100644 --- a/source/texk/web2c/luatexdir/luapplib/ppconf.h +++ b/source/texk/web2c/luatexdir/luapplib/ppconf.h @@ -2,6 +2,14 @@ #ifndef PP_CONF_H #define PP_CONF_H +//#include "utilarm.h" // keep in sync +#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ ||( defined(__sun) && defined(__SVR4)) +# define ARM_COMPLIANT 1 +#else +# define ARM_COMPLIANT 0 +#endif + + /* Aux flags: PPDLL -- indicates a part of a shared library diff --git a/source/texk/web2c/luatexdir/luapplib/ppheap.c b/source/texk/web2c/luatexdir/luapplib/ppheap.c index 8592e4d6f89c140a30d6dcc50c6c3aeafa20de1f..d2a885b5352948da7e12ecc5f91bbffb4c6accef 100644 --- a/source/texk/web2c/luatexdir/luapplib/ppheap.c +++ b/source/texk/web2c/luatexdir/luapplib/ppheap.c @@ -7,7 +7,7 @@ #define ppheap_head(heap) ((uint8_t *)((heap) + 1)) -#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ +#if ARM_COMPLIANT # define PPHEAP_ARCH_ARM # define PPHEAP_NEED_ALIGNMENT #endif diff --git a/source/texk/web2c/luatexdir/luapplib/pplib.h b/source/texk/web2c/luatexdir/luapplib/pplib.h index e753cfa05148081280ee45a9f008698267b6a569..a3bf1eb180a27a83e28a6fedfce8828468d44474 100644 --- a/source/texk/web2c/luatexdir/luapplib/pplib.h +++ b/source/texk/web2c/luatexdir/luapplib/pplib.h @@ -9,6 +9,7 @@ #include "utiliof.h" #include "utillog.h" +#include "utilarm.h" #include "ppapi.h" #include "ppheap.h" diff --git a/source/texk/web2c/luatexdir/luapplib/ppload.c b/source/texk/web2c/luatexdir/luapplib/ppload.c index 26e4bc385e25b0e3d61da600553a0a614179650e..14b8bca1992decdea7e04d318f27903f47f992ce 100644 --- a/source/texk/web2c/luatexdir/luapplib/ppload.c +++ b/source/texk/web2c/luatexdir/luapplib/ppload.c @@ -70,7 +70,7 @@ const char ppname_byte_lookup[] = { (ppname)(ghost + 1)) -#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__||( defined(__sun) && defined(__SVR4)) +#if ARM_COMPLIANT #define ppname_set_alter_ego(name, ghost, ego) do {\ ppname temp;\ ppname *temp1;\ @@ -82,7 +82,7 @@ const char ppname_byte_lookup[] = { #define ppname_set_alter_ego(name, ghost, ego) (*((ppname *)(name + (ghost)->size + 1)) = ego) #endif -#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__||( defined(__sun) && defined(__SVR4)) +#if ARM_COMPLIANT #define ppname_get_alter_ego(name) (*((ppname *)( (void*)(name + ppname_size(name) + 1)))) #else #define ppname_get_alter_ego(name) (*((ppname *)(name + ppname_size(name) + 1))) @@ -225,14 +225,14 @@ ppname ppname_encoded (ppname name) -#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__||( defined(__sun) && defined(__SVR4)) +#if ARM_COMPLIANT #define ppstring_set_alter_ego(string, ghost, ego) (*((ppstring *)((void *)(string + (ghost)->size + 1))) = ego) #else #define ppstring_set_alter_ego(string, ghost, ego) (*((ppstring *)(string + (ghost)->size + 1)) = ego) #endif -#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__||( defined(__sun) && defined(__SVR4)) +#if ARM_COMPLIANT #define ppstring_get_alter_ego(string) (*((ppstring *)((void *)(string + ppstring_size(string) + 1)))) #else #define ppstring_get_alter_ego(string) (*((ppstring *)(string + ppstring_size(string) + 1))) diff --git a/source/texk/web2c/luatexdir/luapplib/util/utilarm.h b/source/texk/web2c/luatexdir/luapplib/util/utilarm.h new file mode 100644 index 0000000000000000000000000000000000000000..546c6d4dd1ab02465ebb29db66ed52bb163cb240 --- /dev/null +++ b/source/texk/web2c/luatexdir/luapplib/util/utilarm.h @@ -0,0 +1,10 @@ +#ifndef UTIL_ARM_H +#define UTIL_ARM_H + +#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ ||( defined(__sun) && defined(__SVR4)) +# define ARM_COMPLIANT 1 +#else +# define ARM_COMPLIANT 0 +#endif + +#endif \ No newline at end of file diff --git a/source/texk/web2c/luatexdir/luapplib/util/utilfpred.c b/source/texk/web2c/luatexdir/luapplib/util/utilfpred.c index c30bccac18cc2c11f2ff65d6269317faa42c9ad2..4416161eab34940f6a306538a39a675c3c43d066 100644 --- a/source/texk/web2c/luatexdir/luapplib/util/utilfpred.c +++ b/source/texk/web2c/luatexdir/luapplib/util/utilfpred.c @@ -1,15 +1,12 @@ /* predictor filters; common for flate and lzw */ -#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ -#include <assert.h> -#endif #include "utilmem.h" #include "utillog.h" #include "utilfpred.h" /* Here we implement predictor filters used with flate and lzw compressions in PDF streams. The main idea of data prediction -is to compute and output the differences between data records instead of this records. Adjacent pixels in images are usually +is to compute and output the differences between data records instead of those records. Adjacent pixels in images are usually similar, so differences between pixel values tends to be zero. And both Flate and LZW performs better when the input is rather smooth. Although a preliminary use of predictors is related to bitmap data, The actual need for predictor filter came from the fact that xref streams may also be predicted (usually with PNG up-predictor). @@ -27,7 +24,7 @@ PDF specification allows to use several predictor algorithms, specified by /Pred All PNG predictors works on bytes, regardless the image color-depth. While encoding, every input data byte is decreased by the appropriate byte of the previous pixel. Even if the pixel does not fit a full byte, PNG predictors use an artificial pixel size rounded up to a full byte. PNG predictors utilizes previous (left) pixel, pixel above and previous to above -pixel. In case of PNG, the type of the predictor is written on a dedicated byte on the beginning of every scanline. It +pixel. In case of PNG, the type of the predictor is written on a dedicated byte at the beginning of every scanline. It means all predictor functions must maintain and information about left, above and left-above pixels. Despite the same differencing idea, TIFF predictors are different. The prediction process bases on pixel components, @@ -41,20 +38,13 @@ input value (or 0 at the beginning of the scanline) and output a difference betw previously decoded value (or zero) and outputs their sum. When encoding, the result is cast to the proper unsigned integer, when decoding, modulo 256 (or appropriate) is used, which makes encoding and decoding looseless. -Some extra bits trickery is involved in TIFF predictor function, when components doesn't fit bytes boundary. In that case, -an input is treated as an bits stream. Every input byte is "buffered" in a larger integer, as its lower bits (from right). +Some extra bits trickery is involved in TIFF predictor function, when components don't fit bytes boundary. In that case, +an input is treated as a bits stream. Every input byte is "buffered" in a larger integer, as its lower bits (from right). Every output value is taken from its higher (left) bits. In a special case of bits-per-component equal 1, we buffer all pixel bits and use XOR to compute bits difference between pixels. I've excerpted that trick from poppler, but I'm not really sure if it works any better, especially when the number of components per pixel is 1. In that case we do a hard bit-by-bit work anyway. -Predictor codecs state keeps a notion of surrounding pixels. PNG predictors uses left, up and upleft -pixel data, while TIFF predictor (2) only needs the previous (left) pixel. Important to note that PNG -predictors always work on bytes, no matter of color-depth (bits per component), while TIFF predictor -works on pixel components, which not necessarily fits into a complete byte. However, for PNG predictor -the size of a pixel still matters, because 'left' and 'upleft' refers to a corresponding pixel byte, -not necessarily previous byte. - In PNG prediction, we record every pixel byte (in decoded form) in state->rowsave. At the end of a scanline we copy state->rowsave to state->rowup, so that in the next scanline we can access up-pixel byte. Left pixel byte is accessed as state->rowsave (the byte recently stored or virtual left edge byte \0). @@ -63,9 +53,10 @@ at the left edge of the row). Both state->rowup and state->rowsave has a safe sp that are permanently \0. */ -/* #define predictor_component_t unsigned short */ -#define predictor_component_t unsigned int -#define predictor_pixel1b_t unsigned int +#define predictor_component_t uint16_t +#define predictor_pixel1b_t uint32_t + +#define MAX_COMPONENTS 8 typedef struct predictor_state { int default_predictor; /* default predictor indicator */ @@ -74,7 +65,7 @@ typedef struct predictor_state { int compbits; /* number of bits per component (/DecodeParms << /BitsPerComponent ... >>) */ int components; /* number of components (/DecodeParms << /Colors ... >>) */ uint8_t *buffer; /* temporary private buffer area */ - uint8_t *rowin; /* an input row buffer position */ + uint8_t *rowin; /* an input row buffer position */ int rowsize; /* size of a current scanline in bytes (rounded up) */ int rowend; /* an input buffer end position */ int rowindex; /* an output buffer position */ @@ -85,8 +76,9 @@ typedef struct predictor_state { int pixelsize; /* number of bytes per pixel (rounded up) */ }; struct { /* used by TIFF predictor codecs */ + predictor_component_t compbuffer[MAX_COMPONENTS]; union { - predictor_component_t *prevcomp; /* an array of left pixel components */ + predictor_component_t *prevcomp; /* an array of left pixel components, typically eq ->compbuffer */ predictor_pixel1b_t *prevpixel; /* left pixel value stored on a single integer (for 1bit color-depth) */ }; int compin, compout; /* bit stream buffers */ @@ -102,7 +94,23 @@ typedef struct predictor_state { enum { STATUS_LAST = 0, - STATUS_CONTINUE = 1 // any value different then IOFEOF, IOFERR, ... + STATUS_CONTINUE = 1 // any value different then IOFEOF, IOFERR, ... which are < 0 +}; + +/* +Predictor type identifiers (pdf spec 76). lpdf doesn't hire the codec if predictor is 1. Predictor 15 indicates +that the type of PNG prediction algorithm may change in subsequent lines. We always check algorithm marker anyway. +*/ + +enum predictor_code { + NONE_PREDICTOR = 1, + TIFF_PREDICTOR = 2, + PNG_NONE_PREDICTOR = 10, + PNG_SUB_PREDICTOR = 11, + PNG_UP_PREDICTOR = 12, + PNG_AVERAGE_PREDICTOR = 13, + PNG_PAETH_PREDICTOR = 14, + PNG_OPTIMUM_PREDICTOR = 15 }; predictor_state * predictor_decoder_init (predictor_state *state, int predictor, int rowsamples, int components, int compbits) @@ -120,34 +128,19 @@ predictor_state * predictor_decoder_init (predictor_state *state, int predictor, state->components = components; state->compbits = compbits; - if (predictor == 2) + if (predictor == TIFF_PREDICTOR) { /* tiff predictor */ size_t compbuf, pixbuf; - compbuf = state->components * sizeof(predictor_component_t); + compbuf = components * sizeof(predictor_component_t); pixbuf = 1 * sizeof(predictor_pixel1b_t); state->pixbufsize = (int)(compbuf > pixbuf ? compbuf : pixbuf); - buffersize = rowsize + state->pixbufsize; + buffersize = rowsize * sizeof(uint8_t); buffer = (uint8_t *)util_calloc(buffersize, 1); -/* #if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ */ -/* { /\*memory leak *\/ */ -/* predictor_component_t *c; */ -/* if (state->pixbufsize%(sizeof(predictor_component_t))) { */ -/* c = malloc(state->pixbufsize - state->pixbufsize%(sizeof(predictor_component_t)) + sizeof(predictor_component_t) ); */ -/* } else { */ -/* c = malloc(state->pixbufsize); */ -/* } */ -/* assert(c); */ -/* memcpy(c,(state->rowin + rowsize),state->pixbufsize); */ -/* if (state->prevcomp){ */ -/* free(state->prevcomp); */ -/* } */ -/* state->prevcomp = c; */ -/* } */ -/* #else */ - state->prevcomp = NULL ; /* will be assigned later */ - /* if (state->rowin) */ - /* state->prevcomp = (predictor_component_t *)(state->rowin + rowsize); */ -/* #endif */ + if (state->pixbufsize > sizeof(state->compbuffer)) // components > MAX_COMPONENTS + state->prevcomp = (predictor_component_t *)util_calloc(state->pixbufsize, 1); + else + state->prevcomp = state->compbuffer; + // &state->prevcomp == &state->prevpixel state->sampleindex = state->compindex = 0; state->bitsin = state->bitsout = 0; state->compin = state->compout = 0; @@ -180,29 +173,15 @@ predictor_state * predictor_encoder_init (predictor_state *state, int predictor, void predictor_decoder_close (predictor_state *state) { util_free(state->buffer); + if (state->default_predictor == TIFF_PREDICTOR && state->prevcomp != NULL && state->prevcomp != state->compbuffer) + util_free(state->prevcomp); } void predictor_encoder_close (predictor_state *state) { - util_free(state->buffer); + predictor_decoder_close(state); } -/* -Predictor type identifiers (pdf spec 76). lpdf doesn't hire the codec if predictor is 1. Predictor 15 indicates -that the type of PNG prediction algorithm may change in subsequent lines. We always check algorithm marker anyway. -*/ - -enum predictor_code { - NONE_PREDICTOR = 1, - TIFF_PREDICTOR = 2, - PNG_NONE_PREDICTOR = 10, - PNG_SUB_PREDICTOR = 11, - PNG_UP_PREDICTOR = 12, - PNG_AVERAGE_PREDICTOR = 13, - PNG_PAETH_PREDICTOR = 14, - PNG_OPTIMUM_PREDICTOR = 15 -}; - /* All predoctor codecs first read the entire data row into a buffer. This is not crucial for the process, but allows to separate read/write states. In particular, there is one place in which codec functions @@ -261,20 +240,22 @@ static int read_scanline (predictor_state *state, iof *I, int size) #define ensure_output_bytes(O, n) if (!iof_ensure(O, n)) return IOFFULL -#define tobyte(c) ((unsigned char)(c)) -#define tocomp(c) ((unsigned short)(c)) +#define tobyte(c) ((uint8_t)(c)) +#define tocomp(c) ((uint16_t)(c)) #define row_byte(state) (state->rowin[state->rowindex]) +/* png predictor macros; on bytes */ + #define up_pixel_byte(state) (state->rowup[state->rowindex]) #define upleft_pixel_byte(state) (state->rowup[state->rowindex - state->pixelsize]) #define left_pixel_byte(state) (state->rowsave[state->rowindex - state->pixelsize]) - #define save_pixel_byte(state, c) (state->rowsave[state->rowindex] = c) +/* tiff predictor macros; on components */ + #define left_pixel_component(state) (state->prevcomp[state->compindex]) // tiff predictor with 2, 4, 8, 16 components #define left_pixel_value(state) (state->prevpixel[0]) // tiff predictor with 1bit components - #define save_pixel_component(state, c) ((void)\ ((state->prevcomp[state->compindex] = c), \ (++state->compindex < state->components || (state->compindex = 0)))) @@ -413,8 +394,7 @@ iof_status predictor_decode_state (iof *I, iof *O, predictor_state *state) for ( ; state->rowindex < state->rowsize; ++state->rowindex) { ensure_output_bytes(O, 1); - state->prevcomp = (predictor_component_t *)(state->rowin + state->rowsize); - c = (left_pixel_component(state)) & 0xff; + c = (row_byte(state) + left_pixel_component(state)) & 0xff; save_pixel_component(state, c); iof_set(O, c); } @@ -426,9 +406,7 @@ iof_status predictor_decode_state (iof *I, iof *O, predictor_state *state) d = row_byte(state) << 8; ++state->rowindex; d |= row_byte(state); - state->prevcomp = (predictor_component_t *)(state->rowin + state->rowsize); - /*c = (d + left_pixel_component(state)) & 0xff;*/ - c = (d + left_pixel_component(state)) & 0xffff; + c = (d + left_pixel_component(state)) & 0xffff; save_pixel_component(state, c); iof_set2(O, c >> 8, c & 0xff); } diff --git a/source/texk/web2c/luatexdir/luapplib/util/utiliof.c b/source/texk/web2c/luatexdir/luapplib/util/utiliof.c index 7d07cf12d81b6235866984d423984214fd4b9df6..2a1c6c7eeb8544cc06ae085f2ca313925f785b1a 100644 --- a/source/texk/web2c/luatexdir/luapplib/util/utiliof.c +++ b/source/texk/web2c/luatexdir/luapplib/util/utiliof.c @@ -8,6 +8,8 @@ #include "utillog.h" #include "utiliof.h" +#include "utilarm.h" + /* commons */ void * iof_copy_data (const void *data, size_t size) @@ -2001,7 +2003,7 @@ void iof_filters_free (void) iof_filters_heap = NULL; } -#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ +#if ARM_COMPLIANT #define iof_heap_get(hp, ghost, data, siz) \ (ghost = (iof_heap_ghost *)((void*)((hp)->pos)), \ ghost->heap = hp, \ diff --git a/source/texk/web2c/luatexdir/luapplib/util/utilsha.c b/source/texk/web2c/luatexdir/luapplib/util/utilsha.c index 66532073023ad1d112115ab9b43e46a6f3c21b99..aa640ec24f95838c1cd13ba0fd0675793d3e08a1 100644 --- a/source/texk/web2c/luatexdir/luapplib/util/utilsha.c +++ b/source/texk/web2c/luatexdir/luapplib/util/utilsha.c @@ -1,6 +1,8 @@ /* sha2 implementation by Aaron D. Gifford (http://www.aarongifford.com) */ -#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ +#include "utilarm.h" + +#if ARM_COMPLIANT #include <stdlib.h> #endif @@ -44,9 +46,6 @@ */ #include <string.h> /* memcpy()/memset() or bcopy()/bzero() */ -#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ -#include <stdlib.h> -#endif #include <assert.h> /* assert() */ //#include "sha2.h" #include "utilsha.h" @@ -450,7 +449,7 @@ static void SHA256_Transform(SHA256_CTX* context, const uint32_t* data) { uint32_t T1, T2, *W256; int j; -#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ +#if ARM_COMPLIANT W256 = (uint32_t*)((void *)context->buffer); #else W256 = (uint32_t*)context->buffer; @@ -552,7 +551,7 @@ static void SHA256_Update(SHA256_CTX* context, const uint8_t *data, size_t len) context->bitcount += freespace << 3; len -= freespace; data += freespace; -#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ +#if ARM_COMPLIANT SHA256_Transform(context, (uint32_t*)((void *)context->buffer)); #else SHA256_Transform(context, (uint32_t*)context->buffer); @@ -569,8 +568,8 @@ static void SHA256_Update(SHA256_CTX* context, const uint8_t *data, size_t len) } while (len >= SHA256_BLOCK_LENGTH) { /* Process as many complete blocks as we can */ -#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ - SHA256_Transform(context, (const uint32_t*)(const void *)(data)); +#if ARM_COMPLIANT + SHA256_Transform(context, (const uint32_t*)(const void *)(data)); #else SHA256_Transform(context, (const uint32_t*)data); #endif @@ -589,7 +588,7 @@ static void SHA256_Update(SHA256_CTX* context, const uint8_t *data, size_t len) } static void SHA256_Final(uint8_t digest[], SHA256_CTX* context) { -#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ +#if ARM_COMPLIANT uint32_t *d ; #else uint32_t *d = (uint32_t*)digest; @@ -599,7 +598,7 @@ static void SHA256_Final(uint8_t digest[], SHA256_CTX* context) { /* Sanity check: */ assert(context != (SHA256_CTX*)0); -#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ +#if ARM_COMPLIANT d = malloc(sizeof(uint32_t)*8); /* why 8 ? see below for loop */ assert(d); #endif @@ -623,7 +622,7 @@ static void SHA256_Final(uint8_t digest[], SHA256_CTX* context) { MEMSET_BZERO(&context->buffer[usedspace], SHA256_BLOCK_LENGTH - usedspace); } /* Do second-to-last transform: */ -#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ +#if ARM_COMPLIANT SHA256_Transform(context, (uint32_t*)(void *)(context->buffer)); #else SHA256_Transform(context, (uint32_t*)context->buffer); @@ -645,9 +644,8 @@ static void SHA256_Final(uint8_t digest[], SHA256_CTX* context) { context->buffer64[SHA256_SHORT_BLOCK_LENGTH / sizeof(uint64_t)] = context->bitcount; /* Final transform: */ -#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ - SHA256_Transform(context, (uint32_t*)((void *)(context->buffer))); - +#if ARM_COMPLIANT + SHA256_Transform(context, (uint32_t*)((void *)(context->buffer))); #else SHA256_Transform(context, (uint32_t*)context->buffer); @@ -667,7 +665,7 @@ static void SHA256_Final(uint8_t digest[], SHA256_CTX* context) { #endif } -#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ +#if ARM_COMPLIANT memcpy(digest,d,SHA256_DIGEST_LENGTH); free(d); #endif @@ -912,7 +910,7 @@ static void SHA512_Update(SHA512_CTX* context, const uint8_t *data, size_t len) ADDINC128(context->bitcount, freespace << 3); len -= freespace; data += freespace; -#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ +#if ARM_COMPLIANT SHA512_Transform(context, (uint64_t*)((void *)context->buffer)); #else SHA512_Transform(context, (uint64_t*)context->buffer); @@ -928,10 +926,10 @@ static void SHA512_Update(SHA512_CTX* context, const uint8_t *data, size_t len) } while (len >= SHA512_BLOCK_LENGTH) { /* Process as many complete blocks as we can */ -#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ - SHA512_Transform(context, (uint64_t*)((void *)context->buffer)); +#if ARM_COMPLIANT + SHA512_Transform(context, (uint64_t*)((void *)context->buffer)); #else - SHA512_Transform(context, (uint64_t*)context->buffer); + SHA512_Transform(context, (uint64_t*)context->buffer); #endif ADDINC128(context->bitcount, SHA512_BLOCK_LENGTH << 3); len -= SHA512_BLOCK_LENGTH; @@ -967,7 +965,7 @@ static void SHA512_Last(SHA512_CTX* context) { MEMSET_BZERO(&context->buffer[usedspace], SHA512_BLOCK_LENGTH - usedspace); } /* Do second-to-last transform: */ -#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ +#if ARM_COMPLIANT SHA512_Transform(context, (uint64_t*)((void *)context->buffer)); #else SHA512_Transform(context, (uint64_t*)context->buffer); @@ -991,7 +989,7 @@ static void SHA512_Last(SHA512_CTX* context) { context->buffer64[SHA512_SHORT_BLOCK_LENGTH / sizeof(uint64_t) + 1] = context->bitcount[0]; /* Final transform: */ -#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ +#if ARM_COMPLIANT SHA512_Transform(context, (uint64_t*)((void *)context->buffer)); #else SHA512_Transform(context, (uint64_t*)context->buffer); @@ -1000,16 +998,15 @@ static void SHA512_Last(SHA512_CTX* context) { } static void SHA512_Final(uint8_t digest[], SHA512_CTX* context) { -#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ +#if ARM_COMPLIANT uint64_t *d ; #else uint64_t *d = (uint64_t*)digest; - #endif /* Sanity check: */ assert(context != (SHA512_CTX*)0); -#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ +#if ARM_COMPLIANT d = malloc(sizeof(uint64_t)*8); /* why 8 ? see below for loop */ assert(d); #endif @@ -1032,7 +1029,7 @@ static void SHA512_Final(uint8_t digest[], SHA512_CTX* context) { MEMCPY_BCOPY(d, context->state, SHA512_DIGEST_LENGTH); #endif } -#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ +#if ARM_COMPLIANT memcpy(digest,d,SHA512_DIGEST_LENGTH); free(d); #endif @@ -1089,7 +1086,7 @@ static void SHA384_Update(SHA384_CTX* context, const uint8_t* data, size_t len) } static void SHA384_Final(uint8_t digest[], SHA384_CTX* context) { -#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ +#if ARM_COMPLIANT uint64_t *d; #else uint64_t *d = (uint64_t*)digest; @@ -1099,7 +1096,7 @@ static void SHA384_Final(uint8_t digest[], SHA384_CTX* context) { /* Sanity check: */ assert(context != (SHA384_CTX*)0); -#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ +#if ARM_COMPLIANT d = malloc(sizeof(uint64_t)*6); /* why 6 ? see below for loop */ assert(d); #endif @@ -1122,7 +1119,7 @@ static void SHA384_Final(uint8_t digest[], SHA384_CTX* context) { MEMCPY_BCOPY(d, context->state, SHA384_DIGEST_LENGTH); #endif } -#if defined __arm__ || defined __ARM__ || defined ARM || defined __ARM || defined __arm || defined __ARM_ARCH ||defined __aarch64__ +#if ARM_COMPLIANT memcpy(digest,d,SHA384_DIGEST_LENGTH); free(d); #endif diff --git a/source/texk/web2c/luatexdir/luatex.c b/source/texk/web2c/luatexdir/luatex.c index 014d8bfd247f1cb6128527915ed2e27e84c9e069..a057c3a6cc04739fe61d7cd615d1631ab54c2461 100644 --- a/source/texk/web2c/luatexdir/luatex.c +++ b/source/texk/web2c/luatexdir/luatex.c @@ -33,8 +33,8 @@ */ int luatex_version = 109; -int luatex_revision = '0'; -const char *luatex_version_string = "1.09.0"; +int luatex_revision = '2'; +const char *luatex_version_string = "1.09.2"; const char *engine_name = my_name; #include <kpathsea/c-ctype.h> diff --git a/source/texk/web2c/luatexdir/luatex_svnversion.h b/source/texk/web2c/luatexdir/luatex_svnversion.h index ba7e144d2f851f0e576f38f3456896312a2a58b5..28582b654fa561d304c93a17683106e5aa0b17bd 100644 --- a/source/texk/web2c/luatexdir/luatex_svnversion.h +++ b/source/texk/web2c/luatexdir/luatex_svnversion.h @@ -1 +1 @@ -#define luatex_svn_revision 6998 +#define luatex_svn_revision 7019 diff --git a/source/texk/web2c/luatexdir/luazlib/lzlib.c b/source/texk/web2c/luatexdir/luazlib/lzlib.c index 707c0cbc5276d5caabe24869eee21842083cd252..2f6f269180e367906e3d15b38bdd55e4b5d33d0a 100644 --- a/source/texk/web2c/luatexdir/luazlib/lzlib.c +++ b/source/texk/web2c/luatexdir/luazlib/lzlib.c @@ -478,21 +478,16 @@ static int lzlib_decompress(lua_State *L) { zs.next_out = (Bytef*)luaL_prepbuffer(&b); zs.avail_out = LUAL_BUFFERSIZE; - /* bake some more */ - ret = inflate(&zs, Z_FINISH); - + ret = inflate(&zs, Z_NO_FLUSH); /* push gathered data */ luaL_addsize(&b, LUAL_BUFFERSIZE - zs.avail_out); - /* need dictionary? - no dictionary support here, so just quit */ if (ret == Z_NEED_DICT) break; - /* done processing? */ if (ret == Z_STREAM_END) break; - /* error condition? */ if (ret != Z_OK) break; diff --git a/source/texk/web2c/luatexdir/tex/mainbody.c b/source/texk/web2c/luatexdir/tex/mainbody.c index ca9a79dbb024554a102f9f0631afd9eff7d7473c..9116d8bdb6761b48e5b9f980b5eaaee116fe0a8e 100644 --- a/source/texk/web2c/luatexdir/tex/mainbody.c +++ b/source/texk/web2c/luatexdir/tex/mainbody.c @@ -668,6 +668,7 @@ void close_files_and_terminate(void) print_ln(); } lua_a_close_out(log_file); + log_opened_global = false; } callback_id = callback_defined(wrapup_run_callback); if (callback_id > 0) { diff --git a/source/texk/web2c/luatexdir/tex/printing.c b/source/texk/web2c/luatexdir/tex/printing.c index 0a961071b057e588f895e0d4541f91079a19203e..6ad4634a1f3b0cf4d17a360218799ad12aff7678 100644 --- a/source/texk/web2c/luatexdir/tex/printing.c +++ b/source/texk/web2c/luatexdir/tex/printing.c @@ -466,7 +466,8 @@ void tprint(const char *sss) /*tex What is left is the 3 term/log settings. */ if (dolog || doterm) { buffer = xmalloc(strlen(sss)*3); - if (dolog) { + /*tex The |wrapup_run| callback acts when the log file is already closed.*/ + if (dolog && log_opened_global) { const unsigned char *ss = (const unsigned char *) sss; while (*ss) { int s = *ss++; diff --git a/source/texk/web2c/luatexdir/tex/texnodes.c b/source/texk/web2c/luatexdir/tex/texnodes.c index d68d3a4c82d4b8d03b7f270671f835662ed4d7cc..e0bf1522749ee5b182ff5bf1048b6dfca7b39fa2 100644 --- a/source/texk/web2c/luatexdir/tex/texnodes.c +++ b/source/texk/web2c/luatexdir/tex/texnodes.c @@ -4774,7 +4774,7 @@ halfword make_local_par_node(int mode) { int callback_id; halfword q; - halfword p = new_node(local_par_node,0); + halfword p = new_node(local_par_node,mode); local_pen_inter(p) = local_inter_line_penalty_par; local_pen_broken(p) = local_broken_penalty_par; if (local_left_box_par != null) { diff --git a/source/texk/web2c/man/ChangeLog b/source/texk/web2c/man/ChangeLog index 01270be754042dbd8dd47030d10a43daeeeea761..38f3f7588edd7b5c7bed4c972bbd7ab2a156162b 100644 --- a/source/texk/web2c/man/ChangeLog +++ b/source/texk/web2c/man/ChangeLog @@ -1,3 +1,11 @@ +2018-12-21 Karl Berry <karl@freefriends.org> + + * mpost.man: mention rmpost, (r)pmpost, and (r)upmpost. + +2018-10-28 Andreas Scherer <https://ascherer.github.io> + + * cweb.man: do not mention nonexistent -DSTAT option. + 2018-06-04 Karl Berry <karl@tug.org> * Makefile.am (man_sources, man1_links) [PTEX]: add ptex.man. diff --git a/source/texk/web2c/man/cweb.man b/source/texk/web2c/man/cweb.man index 04572a15b4f7e2dadce422f3e46c243ae8a88df0..82a134a8dd221d80be4f7af9eb3c5fdb4541d886 100644 --- a/source/texk/web2c/man/cweb.man +++ b/source/texk/web2c/man/cweb.man @@ -1,4 +1,4 @@ -.TH CWEB 1 "7 April 2010" "Web2C @VERSION@" +.TH CWEB 1 "28 October 2018" "Web2C @VERSION@" .\"===================================================================== .SH NAME ctangle, cweave \- translate CWEB to C and/or TeX @@ -90,8 +90,7 @@ you get nothing but error messages. .PP The .B +s -option prints statistics about memory usage at the end of a run -(assuming that the programs have been compiled with the -DSTAT switch). +option prints statistics about memory usage at the end of a run. .PP There are three other options applicable to .B cweave diff --git a/source/texk/web2c/man/mpost.man b/source/texk/web2c/man/mpost.man index 924666fbf117e4d9e530f2a5ee98389d7d5d9361..7eac5c0e0163e15681744f71206cb9fe55b30eea 100644 --- a/source/texk/web2c/man/mpost.man +++ b/source/texk/web2c/man/mpost.man @@ -1,4 +1,4 @@ -.TH MPOST 1 "16 June 2015" "Web2C @VERSION@" +.TH MPOST 1 "31 December 2018" "Web2C @VERSION@" .\"===================================================================== .de URL \\$2 \(laURL: \\$1 \(ra\\$3 @@ -22,7 +22,8 @@ .if t .ds WB W\s-2EB\s0 .\"===================================================================== .SH NAME -mpost \- MetaPost, a system for creating graphics +mpost, pmpost, upmpost \- MetaPost, a system for creating graphics +r-mpost, r-pmpost, r-upmpost \- restricted MetaPost .SH SYNOPSIS .B mpost .RI [ options ] @@ -43,14 +44,14 @@ or .BR troff (1) commands and accessing features of PostScript not found in \*(MF. .PP -\*(MP is normally used with some preloaded macros, and it +\*(MP is normally used with a set of basic macros, and it will use its executable name as the name of the preload file to use. For example, when called as .B mpost the .I mpost.mp -file is used, which is identical to -.I plain.mp. +file is used, which simply reads +.IR plain.mp . When the .B --ini option is given, preloading does not happen. @@ -80,16 +81,32 @@ When the option is given, \*(MP acts as DVI-to-MPX converter only. See dvitomp (1) for details. .PP -This manual page is not meant to be exhaustive. The complete -documentation for this version of \*(MP can be found in the +The +.B pmpost +program is a variant with Japanese support, and +.B upmpost +has Unicode-enabled Japanese support, analogous to ptex and uptex. +.PP +All three variants are also installed with an `r-' prefix, that is, +.BR r-mpost , +.BR r-pmpost , +.BR r-upmpost , +which implicitly specify the +.B --restricted +option to make MetaPost safe to run on unknown input; the tex, makempx, +and editor commands are disabled. +.PP +This manual page is a mere skeleton. For a list of all command line +options, run +.BR --help . +.PP +The main documentation for this version of \*(MP can be found in the User Manual that should have been installed along with the program and -is also available from http://tug.org/metapost. -See the FILES section below. +is also available from https://tug.org/metapost. .PP The \*(MP language is similar to \*(MF, but the manual assumes no knowledge of \*(MF. \*(MP does not have bitmap output commands or \*(MF's online display mechanism. - .\"===================================================================== .SH FILES .TP @@ -132,34 +149,30 @@ Addison-Wesley, 1986, ISBN 0-201-13445-4. (the journal of the \*(TX Users Group). .\"===================================================================== .SH "SEE ALSO" -.PP .BR dvitomp (1), .BR epstopdf (1), .BR mf (1), .BR mptopdf (1), .BR tex (1), -.PP -.URL "http://foundry.supelec.fr/gf/project/metapost/" "MetaPost source code" . .br -.URL "http://tug.org/metapost/" "MetaPost home page" . +.URL "https://tug.org/metapost/" "MetaPost home page" . .\"===================================================================== .SH AUTHORS -\*(MP was designed by John D. Hobby, incorporating algorithms from +\*(MP was created by John D. Hobby, incorporating algorithms from \*(MF by Donald E. Knuth. It was originally implemented on Unix, incorporating system-dependent routines from .BR web2c , while not relying on it except for the actual \*(WB-to-C translator. .PP -The primary author of the current \*(MP was Taco Hoekwater, with -assistance from Hans Hagen and many others. It is currently maintained -by Luigi Scarso. -.PP Ulrik Vieth adapted \*(MP to take advantage of the advanced path searching features in more recent versions of .B web2c and worked towards fully integrating \*(MP into the canonical Unix \*(TX distribution. +.PP +The primary author of the current \*(MP was Taco Hoekwater, with +assistance from Hans Hagen and many others. It is currently maintained +by Luigi Scarso. .\"===================================================================== .SH BUGS -The MetaPost home page is http://tug.org/metapost. - +The MetaPost home page is https://tug.org/metapost. diff --git a/source/texk/web2c/mplibdir/ChangeLog b/source/texk/web2c/mplibdir/ChangeLog index 3121939393617f3884cbba9710e75c36461fdb28..90cedb9678366638f2c2eee0856b8544e2d23c75 100644 --- a/source/texk/web2c/mplibdir/ChangeLog +++ b/source/texk/web2c/mplibdir/ChangeLog @@ -1,3 +1,7 @@ +2019-01-06 Luigi Scarso <luigi.scarso@gmail.com> + * Added r-mpost as an alias for mpost --restricted + + 2018-10-22 Luigi Scarso <luigi.scarso@gmail.com> * Fixed a bug in cubic intersection in arbitrary precision math with low precision. * Raised minimal precision to 2 for decimal and binary mode. diff --git a/source/texk/web2c/mplibdir/am/mplib.am b/source/texk/web2c/mplibdir/am/mplib.am index 10b1fe4aa441dfedabbb9f02b0c6cec73dacd524..a8b0da6ee2643adf195bc682241fb6aecc1ddf3c 100644 --- a/source/texk/web2c/mplibdir/am/mplib.am +++ b/source/texk/web2c/mplibdir/am/mplib.am @@ -1,6 +1,7 @@ ## texk/web2c/mplibdir/am/mplib.am: Makefile fragment for MetaPost. ## -## Copyright (C) 2009-2015 Peter Breitenlohner <tex-live@tug.org> +## Copyright 2017-2018 Luigi Scarso <tex-live@tug.org> +## Copyright 2009-2015 Peter Breitenlohner <tex-live@tug.org> ## You may freely use, modify and/or distribute this file. ## MetaPost @@ -13,6 +14,7 @@ install_exe_links += install-mpost-links uninstall_exe_links += uninstall-mpost-links else !WIN32 bin_links += mpost$(EXEEXT):dvitomp mpost$(EXEEXT):mfplain +bin_links += mpost$(EXEEXT):r-mpost endif !WIN32 endif MP EXTRA_PROGRAMS += mpost diff --git a/source/texk/web2c/mplibdir/mp.w b/source/texk/web2c/mplibdir/mp.w index bbd0484539f0a81651277807e63a1304347256ac..8afa03cd21c9aae3ae26fd7300eaae95f9e23a79 100644 --- a/source/texk/web2c/mplibdir/mp.w +++ b/source/texk/web2c/mplibdir/mp.w @@ -4857,7 +4857,7 @@ mp_knot mp_get_path_value (MP mp, const char *s, size_t l) { char *ss = mp_xstrdup(mp,s); if (ss) { mp_sym sym = mp_id_lookup(mp,ss,l,false); - if (sym != NULL) { + if (sym != NULL && sym->v.data.node != NULL) { if (mp_type(sym->v.data.node) == mp_path_type) { mp_xfree (ss); return (mp_knot) sym->v.data.node->data.p; @@ -15772,16 +15772,16 @@ static void mp_cubic_intersection (MP mp, mp_knot p, mp_knot pp) { mp_number x_two_t; /* increment bit precision by x bit */ mp->time_to_go = max_patience; set_number_from_scaled (mp->max_t, 2); - new_number (x_two_t); - number_clone (x_two_t,two_t); - number_double(x_two_t); number_double(x_two_t); /* add x=3 bit of precision */ - number_double(x_two_t); + new_number (x_two_t); + number_clone (x_two_t,two_t); + number_double(x_two_t); number_double(x_two_t); /* add x=3 bit of precision */ + number_double(x_two_t); @<Initialize for intersections at level zero@>; CONTINUE: while (1) { /* When we are in arbitrary precision math, low precisions can */ /* lead to acces locations beyond the stack_size: in this case */ - /* we say that there is no intersection.*/ + /* we say that there is no intersection.*/ if ( ((x_packet (mp->xy))+4)>bistack_size || ((u_packet (mp->uv))+4)>bistack_size || ((y_packet (mp->xy))+4)>bistack_size || diff --git a/source/texk/web2c/mplibdir/mpost.w b/source/texk/web2c/mplibdir/mpost.w index 43da635c3fc62711933f8dd3a57dd7d8f1dad349..3cf35eedb1d58deea81b57c35cb0e725cca8f582 100644 --- a/source/texk/web2c/mplibdir/mpost.w +++ b/source/texk/web2c/mplibdir/mpost.w @@ -1389,6 +1389,9 @@ main (int argc, char **argv) if (FILESTRCASEEQ(base, "rmpost")){ base++; restricted_mode = true; + } else if (FILESTRCASEEQ(base, "r-mpost")){ + base += 2; + restricted_mode = true; } if (FILESTRCASEEQ(base, "dvitomp")) dvitomp_only=1; @@ -1425,6 +1428,8 @@ main (int argc, char **argv) kpse_set_program_name(argv[0], user_progname); if (FILESTRCASEEQ(kpse_program_name, "rmpost")) kpse_program_name++; + else if (FILESTRCASEEQ(kpse_program_name, "r-mpost")) + kpse_program_name += 2; } @= /*@@=nullpass@@*/ @> if(putenv(xstrdup("engine=metapost"))) diff --git a/source/texk/web2c/omegafonts/Makefile.in b/source/texk/web2c/omegafonts/Makefile.in index e2371e6243099fbc34e81c9c2a7123c8f1135709..c0fc10c34c45f7f5fc28005a049f6cb4f5c5724f 100644 --- a/source/texk/web2c/omegafonts/Makefile.in +++ b/source/texk/web2c/omegafonts/Makefile.in @@ -135,7 +135,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/web2c-disable.m4 \ $(top_srcdir)/../../m4/lt~obsolete.m4 \ $(top_srcdir)/../../version.ac $(top_srcdir)/ac/web2c.ac \ $(top_srcdir)/synctexdir/ac/synctex.ac \ - $(top_srcdir)/synctexdir/synctex_parser_version.txt \ + $(top_srcdir)/synctexdir/synctex_parser_api_level.txt \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) diff --git a/source/texk/web2c/otps/Makefile.in b/source/texk/web2c/otps/Makefile.in index 775163c48ce6d039edcfd6900dcdcf8b741b482c..b3dffe3e52ed0e4588b281690828c1bd4671acd3 100644 --- a/source/texk/web2c/otps/Makefile.in +++ b/source/texk/web2c/otps/Makefile.in @@ -135,7 +135,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/web2c-disable.m4 \ $(top_srcdir)/../../m4/lt~obsolete.m4 \ $(top_srcdir)/../../version.ac $(top_srcdir)/ac/web2c.ac \ $(top_srcdir)/synctexdir/ac/synctex.ac \ - $(top_srcdir)/synctexdir/synctex_parser_version.txt \ + $(top_srcdir)/synctexdir/synctex_parser_api_level.txt \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) diff --git a/source/texk/web2c/otps/win32/Makefile.in b/source/texk/web2c/otps/win32/Makefile.in index bb435ac8caa04733cb605f99ee15c040df135e8c..885cd577f9585af99cb1d9bc08f0abaa6ffc6a47 100644 --- a/source/texk/web2c/otps/win32/Makefile.in +++ b/source/texk/web2c/otps/win32/Makefile.in @@ -132,7 +132,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/web2c-disable.m4 \ $(top_srcdir)/../../m4/lt~obsolete.m4 \ $(top_srcdir)/../../version.ac $(top_srcdir)/ac/web2c.ac \ $(top_srcdir)/synctexdir/ac/synctex.ac \ - $(top_srcdir)/synctexdir/synctex_parser_version.txt \ + $(top_srcdir)/synctexdir/synctex_parser_api_level.txt \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) diff --git a/source/texk/web2c/pmpostdir/am/pmpost.am b/source/texk/web2c/pmpostdir/am/pmpost.am index 4297c963728e26af53a36a410e4ae53a0f4ad5bd..f7e60851bf413345b064f6ba105dd9146468f57c 100644 --- a/source/texk/web2c/pmpostdir/am/pmpost.am +++ b/source/texk/web2c/pmpostdir/am/pmpost.am @@ -1,6 +1,7 @@ ## texk/web2c/pmpostdir/am/pmpost.am: Makefile fragment for pMetaPost. ## -## Copyright (C) 2014, 2015 Peter Breitenlohner <tex-live@tug.org> +## Copyright 2018 Karl Berry <tex-live@tug.org> +## Copyright 2014-2015 Peter Breitenlohner <tex-live@tug.org> ## You may freely use, modify and/or distribute this file. ## pMetaPost and upMetaPost @@ -13,6 +14,7 @@ install_exe_links += install-pmpost-links uninstall_exe_links += uninstall-pmpost-links else !WIN32 bin_links += pmpost$(EXEEXT):pdvitomp +bin_links += pmpost$(EXEEXT):r-pmpost endif !WIN32 endif PMP if UPMP @@ -23,6 +25,7 @@ install_exe_links += install-upmpost-links uninstall_exe_links += uninstall-upmpost-links else !WIN32 bin_links += upmpost$(EXEEXT):updvitomp +bin_links += upmpost$(EXEEXT):r-upmpost endif !WIN32 endif UPMP EXTRA_PROGRAMS += pmpost upmpost diff --git a/source/texk/web2c/synctexdir/ChangeLog b/source/texk/web2c/synctexdir/ChangeLog index 1a0e601be0d55981fae9f5340f45b82278e0d6cf..a49d19d71c185e54adc5bd20e19b1f4f9929f73f 100644 --- a/source/texk/web2c/synctexdir/ChangeLog +++ b/source/texk/web2c/synctexdir/ChangeLog @@ -1,3 +1,7 @@ +2018-10-25 Akira Kakuto <kakuto@fuk.kindai.ac.jp> + + * synctex.c: Cleanup for non-ascii file names (w32 only). + 2018-07-27 Karl Berry <karl@freefriends.org> * synctex_parser_api_level.txt: new file (contents "2.0.0"). diff --git a/source/texk/web2c/synctexdir/synctex.c b/source/texk/web2c/synctexdir/synctex.c index 987a8c2d94d955ccf812d2fdc5806143b1cec08f..598c2b304561262b707674ed1d114e39a3da3c71 100644 --- a/source/texk/web2c/synctexdir/synctex.c +++ b/source/texk/web2c/synctexdir/synctex.c @@ -292,13 +292,14 @@ mem[NODE+TYPE##_node_size-synchronization_field_size+1].cint # define SYNCTEX_OFFSET_IS_PDF 0 # endif -#if defined(_WIN32) && (defined(pdfTeX) || defined(upTeX) || defined(eupTeX) || defined(XeTeX)) +#if defined(_WIN32) +#if defined(pdfTeX) || defined(upTeX) || defined(eupTeX) || defined(XeTeX) #define W32UPTEXSYNCTEX 1 #include <wchar.h> static char *chgto_oem(char *src); static int fsyscp_remove(char *name); -#define remove fsyscp_remove -#endif +#endif /* pdfTeX ... */ +#endif /* _WIN32 */ /* This macro layer was added to take luatex into account as suggested by T. Hoekwater. */ # if !defined(SYNCTEX_GET_JOB_NAME) @@ -496,7 +497,11 @@ void synctexabort(boolean log_opened __attribute__ ((unused))) gzclose((gzFile) SYNCTEX_FILE); } SYNCTEX_FILE = NULL; +#if defined(W32UPTEXSYNCTEX) + fsyscp_remove(synctex_ctxt.busy_name); +#else remove(synctex_ctxt.busy_name); +#endif /* W32UPTEXSYNCTEX */ SYNCTEX_FREE(synctex_ctxt.busy_name); synctex_ctxt.busy_name = NULL; } @@ -530,7 +535,7 @@ static char *chgto_oem(char *src) f_codepage = AreFileApisANSI() ? GetACP() : GetOEMCP(); } - if(f_codepage == file_system_codepage) { + if(file_system_codepage == 0 || f_codepage == file_system_codepage) { dst = xstrdup(src); return dst; } @@ -545,6 +550,10 @@ static gzFile fsyscp_gzopen(const char *path, const char *mode) { gzFile gzf; wchar_t *pathw = NULL; + + if(!file_system_codepage) + return gzopen(path, mode); + pathw = get_wstring_from_fsyscp(path, pathw); gzf = gzopen_w(pathw, mode); free(pathw); @@ -555,6 +564,10 @@ static int fsyscp_remove(char *s) { wchar_t *sw = NULL; int ret; + + if(!file_system_codepage) + return remove(s); + sw = get_wstring_from_fsyscp(s, sw); ret = _wremove(sw); if(sw) free(sw); @@ -566,6 +579,9 @@ static int fsyscp_rename(char *s1, char *s2) wchar_t *sw1 = NULL, *sw2 = NULL; int ret; + if(!file_system_codepage) + return rename(s1, s2); + sw1 = get_wstring_from_fsyscp(s1, sw1); sw2 = get_wstring_from_fsyscp(s2, sw2); ret = _wrename(sw1, sw2); @@ -578,7 +594,8 @@ static int fsyscp_rename(char *s1, char *s2) #define fopen fsyscp_fopen #define gzopen fsyscp_gzopen #define rename fsyscp_rename -#endif +#define remove fsyscp_remove +#endif /* W32UPTEXSYNCTEX */ /* synctex_dot_open ensures that the foo.synctex file is open. * In case of problem, it definitely disables synchronization. diff --git a/source/texk/web2c/tangle.ch b/source/texk/web2c/tangle.ch new file mode 100644 index 0000000000000000000000000000000000000000..5331307af308a9a8524faf664b84459f8b594921 --- /dev/null +++ b/source/texk/web2c/tangle.ch @@ -0,0 +1,834 @@ +% tangle.ch for C compilation with web2c. +% +% 10/9/82 (HT) Original version +% 11/29 (HT) New version, with conversion to lowercase handled properly +% Also, new control sequence: +% @=...text...@> Put ...text... verbatim on a line +% by itself in the Pascal output. +% (argument must fit on one line) +% This control sequence facilitates putting #include "gcons.h" +% (for example) in files meant for the pc compiler. +% Also, changed command line usage, so that the absence of a +% change file implies no change file, rather than one with the +% same name as the web file, with .ch at the end. +% 1/15/83 (HT) Changed to work with version 1.2, which incorporates the +% above change (though unbundling the output line breaking), +% so mainly had to remove stuff. +% 2/17 (HT) Fixed bug that caused 0-9 in identifiers to be converted to +% Q-Y on output. +% 3/18 (HT) Brought up to work with Version 1.5. Added -r command line +% flag to cause a .rpl file to be written with all the lines +% of the .web file that were replaced because of the .ch file +% (useful for comparing with previous .rpl files, to see if a +% change file will still work with a new version of a .web file) +% Also, made it write a newline just before exit. +% 4/12 (PC) Merged with Pavel's version, including adding a call to exit() +% at the end depending upon the value of history. +% 4/16 (PC) Brought up to date with version 1.5 released April, 1983. +% 6/28 (HWT) Brought up to date with version 1.7 released June, 1983. +% With new change file format, the -r option is now unnecessary. +% 7/17 (HWT) Brought up to date with version 2.0 released July, 1983. +% 12/18/83 (ETM) Brought up to date with version 2.5 released November, 1983. +% 11/07/84 (ETM) Brought up to date with version 2.6. +% 12/15/85 (ETM) Brought up to date with version 2.8. +% 03/07/88 (ETM) Converted for use with WEB2C +% 01/02/89 (PAM) Cosmetic upgrade to version 2.9 +% 11/30/89 (KB) Version 4. +% (more recent changes in the ChangeLog) + +@x [0] Print only changes. +\pageno=\contentspagenumber \advance\pageno by 1 +@y +\pageno=\contentspagenumber \advance\pageno by 1 +\let\maybe=\iffalse +\def\title{TANGLE changes for C} +@z + +@x [1] Define my_name +@d banner=='This is TANGLE, Version 4.5' +@y +@d my_name=='tangle' +@d banner=='This is TANGLE, Version 4.5' +@z + +@x [2] Eliminate the |end_of_TANGLE| label. +@d end_of_TANGLE = 9999 {go here to wrap it up} + +@y +@z +@x +label end_of_TANGLE; {go here to finish} +@y +@z + +@x [2] Define and call parse_arguments. +procedure initialize; + var @<Local variables for initialization@>@/ + begin @<Set initial values@>@/ +@y +@<Define |parse_arguments|@> +procedure initialize; + var @<Local variables for initialization@>@/ + begin + kpse_set_program_name (argv[0], my_name); + parse_arguments; + @<Set initial values@>@/ +@z + +@x [8] Constants: increase id lengths, for TeX--XeT and tex2pdf. +@!buf_size=100; {maximum length of input line} +@y +@!buf_size=3000; {maximum length of input line} +@z +@x +@!max_bytes=45000; {|1/ww| times the number of bytes in identifiers, + strings, and module names; must be less than 65536} +@!max_toks=50000; {|1/zz| times the number of bytes in compressed \PASCAL\ code; + must be less than 65536} +@!max_names=4000; {number of identifiers, strings, module names; + must be less than 10240} +@!max_texts=2000; {number of replacement texts, must be less than 10240} +@y +@!max_bytes=65535; {|1/ww| times the number of bytes in identifiers, + strings, and module names; must be less than 65536} +@!max_toks=65535; {|1/zz| times the number of bytes in compressed \PASCAL\ code; + must be less than 65536} +@!max_names=10000; {number of identifiers, strings, module names; + must be less than 10240} +@!max_texts=10000; {number of replacement texts, must be less than 10240} +@z + +@x +@!stack_size=50; {number of simultaneous levels of macro expansion} +@!max_id_length=12; {long identifiers are chopped to this length, which must + not exceed |line_length|} +@!unambig_length=7; {identifiers must be unique if chopped to this length} + {note that 7 is more strict than \PASCAL's 8, but this can be varied} +@y +@!stack_size=100; {number of simultaneous levels of macro expansion} +@!max_id_length=50; {long identifiers are chopped to this length, which must + not exceed |line_length|} +@!def_unambig_length=32; {identifiers must be unique if chopped to this length} +@z + +% [12] The text_char type is used as an array index into xord. The +% default type `char' may produce signed integers, which are bad array +% indices in C. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +@x +@d text_char == char {the data type of characters in text files} +@y +@d text_char == ASCII_code {the data type of characters in text files} +@z + +@x [17] enable maximum character set +for i:=1 to @'37 do xchr[i]:=' '; +for i:=@'200 to @'377 do xchr[i]:=' '; +@y +for i:=1 to @'37 do xchr[i]:=chr(i); +for i:=@'200 to @'377 do xchr[i]:=chr(i); +@z + +@x [20] terminal output: use standard i/o +@d print(#)==write(term_out,#) {`|print|' means write on the terminal} +@y +@d term_out==stdout +@d print(#)==write(term_out,#) {`|print|' means write on the terminal} +@z + +@x +@<Globals...@>= +@!term_out:text_file; {the terminal as an output file} +@y +@z + +@x [21] init terminal +@ Different systems have different ways of specifying that the output on a +certain file will appear on the user's terminal. Here is one way to do this +on the \PASCAL\ system that was used in \.{TANGLE}'s initial development: +@^system dependencies@> + +@<Set init...@>= +rewrite(term_out,'TTY:'); {send |term_out| output to the terminal} +@y +@ Different systems have different ways of specifying that the output on a +certain file will appear on the user's terminal. +@^system dependencies@> + +@<Set init...@>= + {Nothing need be done for C.} +@z + +@x [22] flush terminal buffer +@d update_terminal == break(term_out) {empty the terminal output buffer} +@y +@d update_terminal == fflush(term_out) {empty the terminal output buffer} +@z + +@x [24] open input files +begin reset(web_file); reset(change_file); +@y +begin web_file := kpse_open_file(web_name, kpse_web_format); +if chg_name then change_file := kpse_open_file(chg_name, kpse_web_format); +@z + +@x [26] Open output files (except for the pool file). +rewrite(Pascal_file); rewrite(pool); +@y +rewrite (Pascal_file, pascal_name); +@z + +@x [28] Fix f^. + begin buffer[limit]:=xord[f^]; get(f); + incr(limit); + if buffer[limit-1]<>" " then final_limit:=limit; + if limit=buf_size then + begin while not eoln(f) do get(f); +@y + begin buffer[limit]:=xord[getc(f)]; + incr(limit); + if buffer[limit-1]<>" " then final_limit:=limit; + if limit=buf_size then + begin while not eoln(f) do vgetc(f); +@z + +@x [34] Fix `jump_out'. +@d fatal_error(#)==begin new_line; print(#); error; mark_fatal; jump_out; + end + +@<Error handling...@>= +procedure jump_out; +begin goto end_of_TANGLE; +end; +@y +@d jump_out==uexit(1) +@d fatal_error(#)==begin new_line; write(stderr, #); + error; mark_fatal; uexit(1); + end +@z + +@x [38] Provide for a larger `byte_mem' and `tok_mem'. Extra capacity: +@d ww=2 {we multiply the byte capacity by approximately this amount} +@d zz=3 {we multiply the token capacity by approximately this amount} +@y +@d ww=3 {we multiply the byte capacity by approximately this amount} +@d zz=5 {we multiply the token capacity by approximately this amount} +@z + +@x [38] Provide for larger than 16bit numeric macros. +@!equiv: array [0..max_names] of sixteen_bits; {info corresponding to names} +@y +@!equiv: array [0..max_names] of integer; {info corresponding to names} +@z + +@x [47] Provide for larger than 16bit numeric macros. +their |equiv| value contains the corresponding numeric value plus $2^{15}$. +@y +their |equiv| value contains the corresponding numeric value plus $2^{30}$. +@z + +@x [47] Add parametric2 macros (macros that use [] to delimit arguments). +\yskip\hang |parametric| identifiers have been defined to be parametric macros; +like simple identifiers, their |equiv| value points to the replacement text. +@y +\yskip\hang |parametric| and |parametric2| identifiers have been defined to +be parametric macros; like simple identifiers, their |equiv| value points to +the replacement text. +@z +@x +@d parametric=3 {parametric macros have |parametric| ilk} +@y +@d parametric=3 {parametric macros have |parametric| ilk} +@d parametric2=4 {second type of parametric macros have this |ilk|} +@z + +@x [50] unambig_length is a variabe now +@!chopped_id:array [0..unambig_length] of ASCII_code; {chopped identifier} +@y +@!chopped_id:array [0..max_id_length] of ASCII_code; {chopped identifier} +@z + +@x [53] Add parametric2 macros (macros that use [] to delimit arguments). +|numeric|, |simple|, or |parametric|. +@y +|numeric|, |simple|, |parametric|, or |parametric2|. +@z + +@x [53] unambig_length is a variable. +@!s:0..unambig_length; {index into |chopped_id|} +@y +@!s:0..max_id_length; {index into |chopped_id|} +@z + +@x [58] Case smashing options/strict checking. + begin if buffer[i]<>"_" then + begin if buffer[i]>="a" then chopped_id[s]:=buffer[i]-@'40 +@y + begin if (buffer[i]<>"_") or (allow_underlines and not strict_mode) then + begin if (strict_mode or force_uppercase) and (buffer[i]>="a") then + chopped_id[s]:=buffer[i]-@'40 + else if (not strict_mode and force_lowercase) + and (buffer[i]>="A") and (buffer[i]<="Z") then + chopped_id[s]:=buffer[i]+@'40 +@z + +@x [63] Case smashing options/strict checking. + if c<>"_" then + begin if c>="a" then c:=c-@'40; {merge lowercase with uppercase} +@y + if c<>"_" or (allow_underlines and not strict_mode) then + begin if (strict_mode or force_uppercase) and (c>="a") then c:=c-@'40 + else if (not strict_mode and force_lowercase) + and (c>="A") and (c<="Z") then + c:=c+@'40; +@z + +@x [64] Delayed pool file opening / larger numerics. +@<Define and output a new string...@>= +begin ilk[p]:=numeric; {strings are like numeric macros} +if l-double_chars=2 then {this string is for a single character} + equiv[p]:=buffer[id_first+1]+@'100000 +else begin equiv[p]:=string_ptr+@'100000; + l:=l-double_chars-1; +@y +@<Define and output a new string...@>= +begin ilk[p]:=numeric; {strings are like numeric macros} +if l-double_chars=2 then {this string is for a single character} + equiv[p]:=buffer[id_first+1]+@'10000000000 +else begin + {Avoid creating empty pool files.} + if string_ptr = 256 then begin + {Change |".web"| to |".pool"| and use the current directory.} + pool_name := basename_change_suffix (web_name, '.web', '.pool'); + rewritebin (pool, pool_name); + end; + equiv[p]:=string_ptr+@'10000000000; + l:=l-double_chars-1; +@z + +@x [85] Add parametric2 macros (macros that use [] to delimit arguments). + begin if ilk[cur_name]=parametric then +@y + begin if (ilk[cur_name]=parametric) or (ilk[cur_name]=parametric2) then +@z + +@x [89] Larger numerics. +numeric: begin cur_val:=equiv[a]-@'100000; a:=number; +@y +numeric: begin cur_val:=equiv[a]-@'10000000000; a:=number; +@z + +@x [89] Add parametric2 macros (macros that use [] to delimit arguments). +parametric: begin @<Put a parameter on the parameter stack, +@y +parametric,parametric2: begin @<Put a parameter on the parameter stack, +@z + +@x [90] Add parametric2 macros (macros that use [] to delimit arguments). +if (stack_ptr=0)or(tok_mem[zo,cur_byte]<>"(") then +@y +if (stack_ptr=0)or((ilk[a]=parametric)and(tok_mem[zo,cur_byte]<>"(")) + or((ilk[a]=parametric2)and(tok_mem[zo,cur_byte]<>"[")) then +@z + +@x [93] Add parametric2 macros (macros that use [] to delimit arguments). +bal:=1; incr(cur_byte); {skip the opening `\.('} +@y +bal:=1; incr(cur_byte); {skip the opening `\.(' or `['} +@z +@x + "(": incr(bal); + ")": begin decr(bal); +@y + "(": if ilk[a]=parametric then incr(bal); + ")": if ilk[a]=parametric then begin decr(bal); + if bal=0 then goto done; + end; + "[": if ilk[a]=parametric2 then incr(bal); + "]": if ilk[a]=parametric2 then begin decr(bal); +@z + +@x [105] Accept DIV, div, MOD, and mod + (((out_contrib[1]="D")and(out_contrib[2]="I")and(out_contrib[3]="V")) or@| + ((out_contrib[1]="M")and(out_contrib[2]="O")and(out_contrib[3]="D")) ))or@| +@^uppercase@> +@y + (((out_contrib[1]="D")and(out_contrib[2]="I")and(out_contrib[3]="V")) or@| + ((out_contrib[1]="d")and(out_contrib[2]="i")and(out_contrib[3]="v")) or@| + ((out_contrib[1]="M")and(out_contrib[2]="O")and(out_contrib[3]="D")) or@| + ((out_contrib[1]="m")and(out_contrib[2]="o")and(out_contrib[3]="d")) ))or@| +@z + +@x [110] lowercase ids +@^uppercase@> + if ((out_buf[out_ptr-3]="D")and(out_buf[out_ptr-2]="I")and + (out_buf[out_ptr-1]="V"))or @/ + ((out_buf[out_ptr-3]="M")and(out_buf[out_ptr-2]="O")and + (out_buf[out_ptr-1]="D")) then@/ goto bad_case +@y + if ((out_buf[out_ptr-3]="D")and(out_buf[out_ptr-2]="I")and + (out_buf[out_ptr-1]="V"))or @/ + ((out_buf[out_ptr-3]="d")and(out_buf[out_ptr-2]="i")and + (out_buf[out_ptr-1]="v"))or @/ + ((out_buf[out_ptr-3]="M")and(out_buf[out_ptr-2]="O")and + (out_buf[out_ptr-1]="D"))or @/ + ((out_buf[out_ptr-3]="m")and(out_buf[out_ptr-2]="o")and + (out_buf[out_ptr-1]="d")) then@/ goto bad_case +@z + +@x [114] lowercase operators (`and', `or', etc.) +and_sign: begin out_contrib[1]:="A"; out_contrib[2]:="N"; out_contrib[3]:="D"; +@^uppercase@> + send_out(ident,3); + end; +not_sign: begin out_contrib[1]:="N"; out_contrib[2]:="O"; out_contrib[3]:="T"; + send_out(ident,3); + end; +set_element_sign: begin out_contrib[1]:="I"; out_contrib[2]:="N"; + send_out(ident,2); + end; +or_sign: begin out_contrib[1]:="O"; out_contrib[2]:="R"; send_out(ident,2); +@y +and_sign: begin out_contrib[1]:="a"; out_contrib[2]:="n"; out_contrib[3]:="d"; + send_out(ident,3); + end; +not_sign: begin out_contrib[1]:="n"; out_contrib[2]:="o"; out_contrib[3]:="t"; + send_out(ident,3); + end; +set_element_sign: begin out_contrib[1]:="i"; out_contrib[2]:="n"; + send_out(ident,2); + end; +or_sign: begin out_contrib[1]:="o"; out_contrib[2]:="r"; send_out(ident,2); +@z + +@x [116] Case smashing options. +@ Single-character identifiers represent themselves, while longer ones +appear in |byte_mem|. All must be converted to uppercase, +with underlines removed. Extremely long identifiers must be chopped. + +(Some \PASCAL\ compilers work with lowercase letters instead of +uppercase. If this module of \.{TANGLE} is changed, it's also necessary +to change from uppercase to lowercase in the modules that are +listed in the index under ``uppercase''.) +@^system dependencies@> +@^uppercase@> + +@d up_to(#)==#-24,#-23,#-22,#-21,#-20,#-19,#-18,#-17,#-16,#-15,#-14, + #-13,#-12,#-11,#-10,#-9,#-8,#-7,#-6,#-5,#-4,#-3,#-2,#-1,# + +@<Cases related to identifiers@>= +"A",up_to("Z"): begin out_contrib[1]:=cur_char; send_out(ident,1); + end; +"a",up_to("z"): begin out_contrib[1]:=cur_char-@'40; send_out(ident,1); + end; +identifier: begin k:=0; j:=byte_start[cur_val]; w:=cur_val mod ww; + while (k<max_id_length)and(j<byte_start[cur_val+ww]) do + begin incr(k); out_contrib[k]:=byte_mem[w,j]; incr(j); + if out_contrib[k]>="a" then out_contrib[k]:=out_contrib[k]-@'40 + else if out_contrib[k]="_" then decr(k); + end; + send_out(ident,k); + end; +@y +@ Single-character identifiers represent themselves, while longer ones +appear in |byte_mem|. All must be converted to lowercase, +with underlines removed. Extremely long identifiers must be chopped. +@^system dependencies@> + +@d up_to(#)==#-24,#-23,#-22,#-21,#-20,#-19,#-18,#-17,#-16,#-15,#-14, + #-13,#-12,#-11,#-10,#-9,#-8,#-7,#-6,#-5,#-4,#-3,#-2,#-1,# + +@<Cases related to identifiers@>= +"A",up_to("Z"): begin if force_lowercase then out_contrib[1]:=cur_char+@'40 + else out_contrib[1]:=cur_char; + send_out(ident,1); + end; +"a",up_to("z"): begin if force_uppercase then out_contrib[1]:=cur_char-@'40 + else out_contrib[1]:=cur_char; + send_out(ident,1); + end; +identifier: begin k:=0; j:=byte_start[cur_val]; w:=cur_val mod ww; + while (k<max_id_length)and(j<byte_start[cur_val+ww]) do + begin incr(k); out_contrib[k]:=byte_mem[w,j]; incr(j); + if force_uppercase and (out_contrib[k]>="a") then + out_contrib[k]:=out_contrib[k]-@'40 + else if force_lowercase and (out_contrib[k]<="Z") then + out_contrib[k]:=out_contrib[k]+@'40 + else if not allow_underlines and (out_contrib[k]="_") then decr(k); + end; + send_out(ident,k); + end; +@z + +@x [119] Stretch limits of constants to match what we set for expressions. + if n>=@'2000000000 then err_print('! Constant too big') +@y + if n>=@'10000000000 then err_print('! Constant too big') +@z +@x + if n>=@"8000000 then err_print('! Constant too big') +@y + if n>=@"40000000 then err_print('! Constant too big') +@z + +@x [157] Larger numerics. +if abs(accumulator)>=@'100000 then +@y +if abs(accumulator)>=@'10000000000 then +@z + +@x [157] Larger numerics. +equiv[p]:=accumulator+@'100000; {name |p| now is defined to equal |accumulator|} +@y +equiv[p]:=accumulator+@'10000000000; {name |p| now is defined to equal |accumulator|} +@z + +@x [158] Larger numerics. + add_in(equiv[q]-@'100000); +@y + add_in(equiv[q]-@'10000000000); +@z + +@x [165] Add parametric2 macros (macros that use [] to delimit arguments). + "(": incr(bal); + ")": if bal=0 then err_print('! Extra )') +@.Extra )@> + else decr(bal); + "'": @<Copy a string from the buffer to |tok_mem|@>; + "#": if t=parametric then a:=param; +@y + "(": if t=parametric then incr(bal); + ")": if t=parametric then if bal=0 then err_print('! Extra )') +@.Extra )@> + else decr(bal); + "[": if t=parametric2 then incr(bal); + "]": if t=parametric2 then if bal=0 then err_print('! Extra ]') +@.Extra ]@> + else decr(bal); + "'": @<Copy a string from the buffer to |tok_mem|@>; + "#": if (t=parametric)or(t=parametric2) then a:=param; +@z + +@x [166] Add parametric2 macros (macros that use [] to delimit arguments). + begin if bal=1 then err_print('! Missing )') + else err_print('! Missing ',bal:1,' )''s'); +@.Missing n )@> + while bal>0 do + begin app_repl(")"); decr(bal); + end; + end +@y + if t=parametric then begin + if bal=1 then err_print('! Missing )') + else err_print('! Missing ',bal:1,' )''s'); +@.Missing n )@> + while bal>0 do + begin app_repl(")"); decr(bal); + end; + end + else begin + if bal=1 then err_print('! Missing ]') + else err_print('! Missing ',bal:1,' ]''s'); +@.Missing n ]@> + while bal>0 do + begin app_repl("]"); decr(bal); + end; + end +@z + +@x [173] Add parametric2 macros (macros that use [] to delimit arguments). + else @<If the next text is `|(#)==|', call |define_macro| + and |goto continue|@>; +@y + else @<If the next text is `|(#)==|' or |[#]==|, call |define_macro| + and |goto continue|@>; +@z + +@x [174] Add parametric2 macros (macros that use [] to delimit arguments). +@ @<If the next text is `|(#)==|'...@>= +if next_control="(" then + begin next_control:=get_next; + if next_control="#" then + begin next_control:=get_next; + if next_control=")" then + begin next_control:=get_next; + if next_control="=" then + begin err_print('! Use == for macros'); +@.Use == for macros@> + next_control:=equivalence_sign; + end; + if next_control=equivalence_sign then + begin define_macro(parametric); goto continue; + end; + end; + end; + end; +@y +@ @<If the next text is `|(#)==|'...@>= +if next_control="(" then + begin next_control:=get_next; + if next_control="#" then + begin next_control:=get_next; + if next_control=")" then + begin next_control:=get_next; + if next_control="=" then + begin err_print('! Use == for macros'); +@.Use == for macros@> + next_control:=equivalence_sign; + end; + if next_control=equivalence_sign then + begin define_macro(parametric); goto continue; + end; + end; + end; + end +else if next_control="[" then + begin next_control:=get_next; + if next_control="#" then + begin next_control:=get_next; + if next_control="]" then + begin next_control:=get_next; + if next_control="=" then + begin err_print('! Use == for macros'); +@.Use == for macros@> + next_control:=equivalence_sign; + end; + if next_control=equivalence_sign then + begin define_macro(parametric2); goto continue; + end; + end; + end; + end +@z + +@x [179] make term_in = input +any error stop will set |debug_cycle| to zero. +@y +any error stop will set |debug_cycle| to zero. + +@d term_in==stdin +@z + +@x +@!term_in:text_file; {the user's terminal as an input file} +@y +@z + +@x [180] remove term_in reset +reset(term_in,'TTY:','/I'); {open |term_in| as the terminal, don't do a |get|} +@y +@z + +@x [182] write newline just before exit; use value of |history| +print_ln(banner); {print a ``banner line''} +@y +print (banner); {print a ``banner line''} +print_ln (version_string); +@z + +@x Eliminate the |end_of_TANGLE| label. +end_of_TANGLE: +@y +@z + +@x +@<Print the job |history|@>; +@y +@<Print the job |history|@>; +new_line; +if (history <> spotless) and (history <> harmless_message) +then uexit (1) +else uexit (0); +@z + +@x [188] System-dependent changes. +This module should be replaced, if necessary, by changes to the program +that are necessary to make \.{TANGLE} work at a particular installation. +It is usually best to design your change file so that all changes to +previous modules preserve the module numbering; then everybody's version +will be consistent with the printed program. More extensive changes, +which introduce new modules, can be inserted here; then only the index +itself will get a new module number. +@^system dependencies@> +@y +Parse a Unix-style command line. + +@d argument_is (#) == (strcmp (long_options[option_index].name, #) = 0) + +@<Define |parse_arguments|@> = +procedure parse_arguments; +const n_options = 10; {Pascal won't count array lengths for us.} +var @!long_options: array[0..n_options] of getopt_struct; + @!getopt_return_val: integer; + @!option_index: c_int_type; + @!current_option: 0..n_options; + @!len: integer; +begin + @<Define the option table@>; + unambig_length := def_unambig_length; + repeat + getopt_return_val := getopt_long_only (argc, argv, '', long_options, + address_of (option_index)); + if getopt_return_val = -1 then begin + {End of arguments; we exit the loop below.} ; + + end else if getopt_return_val = "?" then begin + usage (my_name); + + end else if argument_is ('help') then begin + usage_help (TANGLE_HELP, nil); + + end else if argument_is ('version') then begin + print_version_and_exit (banner, nil, 'D.E. Knuth', nil); + + end else if argument_is ('mixedcase') then begin + force_uppercase := false; + force_lowercase := false; + + end else if argument_is ('uppercase') then begin + force_uppercase := true; + force_lowercase := false; + + end else if argument_is ('lowercase') then begin + force_uppercase := false; + force_lowercase := true; + + end else if argument_is ('underlines') then begin + allow_underlines := true; + + end else if argument_is ('strict') then begin + strict_mode := true; + + end else if argument_is ('loose') then begin + strict_mode := false; + + end else if argument_is ('length') then begin + len := atoi(optarg); + if (len<=0) or (len>max_id_length) then len := max_id_length; + unambig_length := len; + + end; {Else it was a flag; |getopt| has already done the assignment.} + until getopt_return_val = -1; + + {Now |optind| is the index of first non-option on the command line.} + if (optind + 1 <> argc) and (optind + 2 <> argc) then begin + write_ln (stderr, my_name, ': Need one or two file arguments.'); + usage (my_name); + end; + + {Supply |".web"| and |".ch"| extensions if necessary.} + web_name := extend_filename (cmdline (optind), 'web'); + if optind + 2 = argc then begin + chg_name := extend_filename (cmdline (optind + 1), 'ch'); + end; + + {Change |".web"| to |".p"| and use the current directory.} + pascal_name := basename_change_suffix (web_name, '.web', '.p'); +end; + +@ Here are the options we allow. The first is one of the standard GNU options. +@.-help@> + +@<Define the option...@> = +current_option := 0; +long_options[current_option].name := 'help'; +long_options[current_option].has_arg := 0; +long_options[current_option].flag := 0; +long_options[current_option].val := 0; +incr (current_option); + +@ Another of the standard options. +@.-version@> + +@<Define the option...@> = +long_options[current_option].name := 'version'; +long_options[current_option].has_arg := 0; +long_options[current_option].flag := 0; +long_options[current_option].val := 0; +incr (current_option); + +@ Use all mixed case. +@.-mixedcase@> + +@<Define the option...@> = +long_options[current_option].name := 'mixedcase'; +long_options[current_option].has_arg := 0; +long_options[current_option].flag := 0; +long_options[current_option].val := 0; +incr (current_option); + +@ Use all uppercase. +@.-uppercase@> + +@<Define the option...@> = +long_options[current_option].name := 'uppercase'; +long_options[current_option].has_arg := 0; +long_options[current_option].flag := 0; +long_options[current_option].val := 0; +incr (current_option); + +@ Use all lowercase. +@.-lowercase@> + +@<Define the option...@> = +long_options[current_option].name := 'lowercase'; +long_options[current_option].has_arg := 0; +long_options[current_option].flag := 0; +long_options[current_option].val := 0; +incr (current_option); + +@ Allow underlines. +@.-underlines@> + +@<Define the option...@> = +long_options[current_option].name := 'underlines'; +long_options[current_option].has_arg := 0; +long_options[current_option].flag := 0; +long_options[current_option].val := 0; +incr (current_option); + +@ Strict comparisions. +@.-strict@> + +@<Define the option...@> = +long_options[current_option].name := 'strict'; +long_options[current_option].has_arg := 0; +long_options[current_option].flag := 0; +long_options[current_option].val := 0; +incr (current_option); + +@ Loose comparisions. +@.-loose@> + +@<Define the option...@> = +long_options[current_option].name := 'loose'; +long_options[current_option].has_arg := 0; +long_options[current_option].flag := 0; +long_options[current_option].val := 0; +incr (current_option); + +@ Loose comparisions. +@.-length@> + +@<Define the option...@> = +long_options[current_option].name := 'length'; +long_options[current_option].has_arg := 1; +long_options[current_option].flag := 0; +long_options[current_option].val := 0; +incr (current_option); + +@ An element with all zeros always ends the list. + +@<Define the option...@> = +long_options[current_option].name := 0; +long_options[current_option].has_arg := 0; +long_options[current_option].flag := 0; +long_options[current_option].val := 0; + +@ Global filenames. + +@<Globals...@>= +@!web_name,@!chg_name,@!pascal_name,@!pool_name:const_c_string; +@!force_uppercase,@!force_lowercase,@!allow_underlines,@!strict_mode:boolean; +@!unambig_length:0..max_id_length; +@z diff --git a/source/texk/web2c/tangle.web b/source/texk/web2c/tangle.web new file mode 100644 index 0000000000000000000000000000000000000000..8fa1c395f06085fe2bfcf6989fc5df483b2db297 --- /dev/null +++ b/source/texk/web2c/tangle.web @@ -0,0 +1,3325 @@ +% This program by D. E. Knuth is not copyrighted and can be used freely. +% Version 0 was released in December, 1981. +% Version 1 was released in September, 1982, with version 0 of TeX. +% Slight changes were made in October, 1982, for version 0.6 of TeX. +% Version 1.2 introduced {:nnn} comments, added @@= and @@\ (December, 1982). +% Version 1.4 added "history" (February, 1983). +% Version 1.5 conformed to TeX version 0.96 and fixed @@\ (March, 1983). +% Version 1.7 introduced the new change file format (June, 1983). +% Version 2.0 was released in July, 1983, with version 0.999 of TeX. +% Version 2.5 was released in November, 1983, with version 1.0 of TeX. +% Version 2.6 fixed a bug: force-line-break after a constant (August, 1984). +% Version 2.7 fixed the definition of check_sum_prime (May, 1985). +% Version 2.8 fixed a bug in change_buffer movement (August, 1985). +% Version 2.9 allows nonnumeric macros before their def (December, 1988). +% Version 3, for Sewell's book, fixed long-line bug in input_ln (March, 1989). +% Version 4 was major change to allow 8-bit input (September, 1989). +% Version 4.1 conforms to ANSI standard for-loop rules (September, 1990). +% Version 4.2 fixes stat report if phase one dies (March, 1991). +% Version 4.3 fixes @@ bug in verbatim, catches extra } (September, 1991). +% Version 4.4 activates debug_help on errors as advertised (February, 1993). +% Version 4.5 prevents modno-comments from being split across lines (Dec 2002). + +% Here is TeX material that gets inserted after \input webmac +\def\hang{\hangindent 3em\indent\ignorespaces} +\font\ninerm=cmr9 +\let\mc=\ninerm % medium caps for names like SAIL +\def\PASCAL{Pascal} +\def\pb{$\.|\ldots\.|$} % Pascal brackets (|...|) +\def\v{\.{\char'174}} % vertical (|) in typewriter font +\mathchardef\BA="3224 % double arrow +\def\({} % kludge for alphabetizing certain module names + +\def\title{TANGLE} +\def\contentspagenumber{123} % should be odd +\def\topofcontents{\null\vfill + \titlefalse % include headline on the contents page + \def\rheader{\mainfont Appendix E\hfil \contentspagenumber} + \centerline{\titlefont The {\ttitlefont TANGLE} processor} + \vskip 15pt + \centerline{(Version 4.5)} + \vfill} +\pageno=\contentspagenumber \advance\pageno by 1 + +@* Introduction. +This program converts a \.{WEB} file to a \PASCAL\ file. It was written +by D. E. Knuth in September, 1981; a somewhat similar {\mc SAIL} program had +been developed in March, 1979. Since this program describes itself, a +bootstrapping process involving hand-translation had to be used to get started. + +For large \.{WEB} files one should have a large memory, since \.{TANGLE} keeps +all the \PASCAL\ text in memory (in an abbreviated form). The program uses +a few features of the local \PASCAL\ compiler that may need to be changed in +other installations: + +\yskip\item{1)} Case statements have a default. +\item{2)} Input-output routines may need to be adapted for use with a particular +character set and/or for printing messages on the user's terminal. + +\yskip\noindent +These features are also present in the \PASCAL\ version of \TeX, where they +are used in a similar (but more complex) way. System-dependent portions +of \.{TANGLE} can be identified by looking at the entries for `system +dependencies' in the index below. +@!@^system dependencies@> + +The ``banner line'' defined here should be changed whenever \.{TANGLE} +is modified. + +@d banner=='This is TANGLE, Version 4.5' + +@ The program begins with a fairly normal header, made up of pieces that +@^system dependencies@> +will mostly be filled in later. The \.{WEB} input comes from files |web_file| +and |change_file|, the \PASCAL\ output goes to file |Pascal_file|, +and the string pool output goes to file |pool|. + +If it is necessary to abort the job because of a fatal error, the program +calls the `|jump_out|' procedure, which goes to the label |end_of_TANGLE|. + +@d end_of_TANGLE = 9999 {go here to wrap it up} + +@p @t\4@>@<Compiler directives@>@/ +program TANGLE(@!web_file,@!change_file,@!Pascal_file,@!pool); +label end_of_TANGLE; {go here to finish} +const @<Constants in the outer block@>@/ +type @<Types in the outer block@>@/ +var @<Globals in the outer block@>@/ +@<Error handling procedures@>@/ +procedure initialize; + var @<Local variables for initialization@>@/ + begin @<Set initial values@>@/ + end; + +@ Some of this code is optional for use when debugging only; +such material is enclosed between the delimiters |debug| and $|gubed|$. +Other parts, delimited by |stat| and $|tats|$, are optionally included if +statistics about \.{TANGLE}'s memory usage are desired. + +@d debug==@{ {change this to `$\\{debug}\equiv\null$' when debugging} +@d gubed==@t@>@} {change this to `$\\{gubed}\equiv\null$' when debugging} +@f debug==begin +@f gubed==end +@# +@d stat==@{ {change this to `$\\{stat}\equiv\null$' + when gathering usage statistics} +@d tats==@t@>@} {change this to `$\\{tats}\equiv\null$' + when gathering usage statistics} +@f stat==begin +@f tats==end + +@ The \PASCAL\ compiler used to develop this system has ``compiler +directives'' that can appear in comments whose first character is a dollar sign. +In production versions of \.{TANGLE} these directives tell the compiler that +@^system dependencies@> +it is safe to avoid range checks and to leave out the extra code it inserts +for the \PASCAL\ debugger's benefit, although interrupts will occur if +there is arithmetic overflow. + +@<Compiler directives@>= +@{@&$C-,A+,D-@} {no range check, catch arithmetic overflow, no debug overhead} +@!debug @{@&$C+,D+@}@+ gubed {but turn everything on when debugging} + +@ Labels are given symbolic names by the following definitions. We insert +the label `|exit|:' just before the `\ignorespaces|end|\unskip' of a +procedure in which we have used the `|return|' statement defined below; +the label `|restart|' is occasionally used at the very beginning of a +procedure; and the label `|reswitch|' is occasionally used just prior to +a \&{case} statement in which some cases change the conditions and we wish to +branch to the newly applicable case. +Loops that are set up with the \&{loop} construction defined below are +commonly exited by going to `|done|' or to `|found|' or to `|not_found|', +and they are sometimes repeated by going to `|continue|'. + +@d exit=10 {go here to leave a procedure} +@d restart=20 {go here to start a procedure again} +@d reswitch=21 {go here to start a case statement again} +@d continue=22 {go here to resume a loop} +@d done=30 {go here to exit a loop} +@d found=31 {go here when you've found it} +@d not_found=32 {go here when you've found something else} + +@ Here are some macros for common programming idioms. + +@d incr(#) == #:=#+1 {increase a variable by unity} +@d decr(#) == #:=#-1 {decrease a variable by unity} +@d loop == @+ while true do@+ {repeat over and over until a |goto| happens} +@d do_nothing == {empty statement} +@d return == goto exit {terminate a procedure call} +@f return == nil +@f loop == xclause + +@ We assume that |case| statements may include a default case that applies +if no matching label is found. Thus, we shall use constructions like +@^system dependencies@> +$$\vbox{\halign{#\hfil\cr +|case x of|\cr +1: $\langle\,$code for $x=1\,\rangle$;\cr +3: $\langle\,$code for $x=3\,\rangle$;\cr +|othercases| $\langle\,$code for |x<>1| and |x<>3|$\,\rangle$\cr +|endcases|\cr}}$$ +since most \PASCAL\ compilers have plugged this hole in the language by +incorporating some sort of default mechanism. For example, the compiler +used to develop \.{WEB} and \TeX\ allows `|others|:' as a default label, +and other \PASCAL s allow syntaxes like `\ignorespaces|else|\unskip' or +`\&{otherwise}' or `\\{otherwise}:', etc. The definitions of |othercases| +and |endcases| should be changed to agree with local conventions. (Of +course, if no default mechanism is available, the |case| statements of +this program must be extended by listing all remaining cases. The author +would have taken the trouble to modify \.{TANGLE} so that such extensions +were done automatically, if he had not wanted to encourage \PASCAL\ +compiler writers to make this important change in \PASCAL, where it belongs.) + +@d othercases == others: {default for cases not listed explicitly} +@d endcases == @+end {follows the default case in an extended |case| statement} +@f othercases == else +@f endcases == end + +@ The following parameters are set big enough to handle \TeX, so they +should be sufficient for most applications of \.{TANGLE}. + +@<Constants...@>= +@!buf_size=100; {maximum length of input line} +@!max_bytes=45000; {|1/ww| times the number of bytes in identifiers, + strings, and module names; must be less than 65536} +@!max_toks=50000; {|1/zz| times the number of bytes in compressed \PASCAL\ code; + must be less than 65536} +@!max_names=4000; {number of identifiers, strings, module names; + must be less than 10240} +@!max_texts=2000; {number of replacement texts, must be less than 10240} +@!hash_size=353; {should be prime} +@!longest_name=400; {module names shouldn't be longer than this} +@!line_length=72; {lines of \PASCAL\ output have at most this many characters} +@!out_buf_size=144; {length of output buffer, should be twice |line_length|} +@!stack_size=50; {number of simultaneous levels of macro expansion} +@!max_id_length=12; {long identifiers are chopped to this length, which must + not exceed |line_length|} +@!unambig_length=7; {identifiers must be unique if chopped to this length} + {note that 7 is more strict than \PASCAL's 8, but this can be varied} + +@ A global variable called |history| will contain one of four values +at the end of every run: |spotless| means that no unusual messages were +printed; |harmless_message| means that a message of possible interest +was printed but no serious errors were detected; |error_message| means that +at least one error was found; |fatal_message| means that the program +terminated abnormally. The value of |history| does not influence the +behavior of the program; it is simply computed for the convenience +of systems that might want to use such information. + +@d spotless=0 {|history| value for normal jobs} +@d harmless_message=1 {|history| value when non-serious info was printed} +@d error_message=2 {|history| value when an error was noted} +@d fatal_message=3 {|history| value when we had to stop prematurely} +@# +@d mark_harmless==@t@>@+if history=spotless then history:=harmless_message +@d mark_error==history:=error_message +@d mark_fatal==history:=fatal_message + +@<Glob...@>=@!history:spotless..fatal_message; {how bad was this run?} + +@ @<Set init...@>=history:=spotless; + +@* The character set. +One of the main goals in the design of \.{WEB} has been to make it readily +portable between a wide variety of computers. Yet \.{WEB} by its very +nature must use a greater variety of characters than most computer +programs deal with, and character encoding is one of the areas in which +existing machines differ most widely from each other. + +To resolve this problem, all input to \.{WEAVE} and \.{TANGLE} is converted +to an internal eight-bit code that is essentially standard ASCII, the ``American +Standard Code for Information Interchange.'' The conversion is done +immediately when each character is read in. Conversely, characters are +converted from ASCII to the user's external representation just before +they are output. (The original ASCII code was seven bits only; \.{WEB} now +allows eight bits in an attempt to keep up with modern times.) + +Such an internal code is relevant to users of \.{WEB} only because it is +the code used for preprocessed constants like \.{"A"}. If you are writing +a program in \.{WEB} that makes use of such one-character constants, you +should convert your input to ASCII form, like \.{WEAVE} and \.{TANGLE} do. +Otherwise \.{WEB}'s internal coding scheme does not affect you. +@^ASCII code@> + +Here is a table of the standard visible ASCII codes: +$$\def\:{\char\count255\global\advance\count255 by 1} +\count255='40 +\vbox{ +\hbox{\hbox to 40pt{\it\hfill0\/\hfill}% +\hbox to 40pt{\it\hfill1\/\hfill}% +\hbox to 40pt{\it\hfill2\/\hfill}% +\hbox to 40pt{\it\hfill3\/\hfill}% +\hbox to 40pt{\it\hfill4\/\hfill}% +\hbox to 40pt{\it\hfill5\/\hfill}% +\hbox to 40pt{\it\hfill6\/\hfill}% +\hbox to 40pt{\it\hfill7\/\hfill}} +\vskip 4pt +\hrule +\def\^{\vrule height 10.5pt depth 4.5pt} +\halign{\hbox to 0pt{\hskip -24pt\O{#0}\hfill}&\^ +\hbox to 40pt{\tt\hfill#\hfill\^}& +&\hbox to 40pt{\tt\hfill#\hfill\^}\cr +04&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +05&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +06&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +07&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +10&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +11&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +12&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +13&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +14&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +15&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +16&\:&\:&\:&\:&\:&\:&\:&\:\cr\noalign{\hrule} +17&\:&\:&\:&\:&\:&\:&\:\cr} +\hrule width 280pt}$$ +(Actually, of course, code @'040 is an invisible blank space.) Code @'136 +was once an upward arrow (\.{\char'13}), and code @'137 was +once a left arrow (\.^^X), in olden times when the first draft +of ASCII code was prepared; but \.{WEB} works with today's standard +ASCII in which those codes represent circumflex and underline as shown. + +@<Types...@>= +@!ASCII_code=0..255; {eight-bit numbers, a subrange of the integers} + +@ The original \PASCAL\ compiler was designed in the late 60s, when six-bit +character sets were common, so it did not make provision for lowercase +letters. Nowadays, of course, we need to deal with both capital and small +letters in a convenient way, so \.{WEB} assumes that it is being used +with a \PASCAL\ whose character set contains at least the characters of +standard ASCII as listed above. Some \PASCAL\ compilers use the original +name |char| for the data type associated with the characters in text files, +while other \PASCAL s consider |char| to be a 64-element subrange of a larger +data type that has some other name. + +In order to accommodate this difference, we shall use the name |text_char| +to stand for the data type of the characters in the input and output +files. We shall also assume that |text_char| consists of the elements +|chr(first_text_char)| through |chr(last_text_char)|, inclusive. The +following definitions should be adjusted if necessary. +@^system dependencies@> + +@d text_char == char {the data type of characters in text files} +@d first_text_char=0 {ordinal number of the smallest element of |text_char|} +@d last_text_char=255 {ordinal number of the largest element of |text_char|} + +@<Types...@>= +@!text_file=packed file of text_char; + +@ The \.{WEAVE} and \.{TANGLE} processors convert between ASCII code and +the user's external character set by means of arrays |xord| and |xchr| +that are analogous to \PASCAL's |ord| and |chr| functions. + +@<Globals...@>= +@!xord: array [text_char] of ASCII_code; + {specifies conversion of input characters} +@!xchr: array [ASCII_code] of text_char; + {specifies conversion of output characters} + +@ If we assume that every system using \.{WEB} is able to read and write the +visible characters of standard ASCII (although not necessarily using the +ASCII codes to represent them), the following assignment statements initialize +most of the |xchr| array properly, without needing any system-dependent +changes. For example, the statement \.{xchr[@@\'101]:=\'A\'} that appears +in the present \.{WEB} file might be encoded in, say, {\mc EBCDIC} code +on the external medium on which it resides, but \.{TANGLE} will convert from +this external code to ASCII and back again. Therefore the assignment +statement \.{XCHR[65]:=\'A\'} will appear in the corresponding \PASCAL\ file, +and \PASCAL\ will compile this statement so that |xchr[65]| receives the +character \.A in the external (|char|) code. Note that it would be quite +incorrect to say \.{xchr[@@\'101]:="A"}, because |"A"| is a constant of +type |integer|, not |char|, and because we have $|"A"|=65$ regardless of +the external character set. + +@<Set init...@>= +xchr[@'40]:=' '; +xchr[@'41]:='!'; +xchr[@'42]:='"'; +xchr[@'43]:='#'; +xchr[@'44]:='$'; +xchr[@'45]:='%'; +xchr[@'46]:='&'; +xchr[@'47]:='''';@/ +xchr[@'50]:='('; +xchr[@'51]:=')'; +xchr[@'52]:='*'; +xchr[@'53]:='+'; +xchr[@'54]:=','; +xchr[@'55]:='-'; +xchr[@'56]:='.'; +xchr[@'57]:='/';@/ +xchr[@'60]:='0'; +xchr[@'61]:='1'; +xchr[@'62]:='2'; +xchr[@'63]:='3'; +xchr[@'64]:='4'; +xchr[@'65]:='5'; +xchr[@'66]:='6'; +xchr[@'67]:='7';@/ +xchr[@'70]:='8'; +xchr[@'71]:='9'; +xchr[@'72]:=':'; +xchr[@'73]:=';'; +xchr[@'74]:='<'; +xchr[@'75]:='='; +xchr[@'76]:='>'; +xchr[@'77]:='?';@/ +xchr[@'100]:='@@'; +xchr[@'101]:='A'; +xchr[@'102]:='B'; +xchr[@'103]:='C'; +xchr[@'104]:='D'; +xchr[@'105]:='E'; +xchr[@'106]:='F'; +xchr[@'107]:='G';@/ +xchr[@'110]:='H'; +xchr[@'111]:='I'; +xchr[@'112]:='J'; +xchr[@'113]:='K'; +xchr[@'114]:='L'; +xchr[@'115]:='M'; +xchr[@'116]:='N'; +xchr[@'117]:='O';@/ +xchr[@'120]:='P'; +xchr[@'121]:='Q'; +xchr[@'122]:='R'; +xchr[@'123]:='S'; +xchr[@'124]:='T'; +xchr[@'125]:='U'; +xchr[@'126]:='V'; +xchr[@'127]:='W';@/ +xchr[@'130]:='X'; +xchr[@'131]:='Y'; +xchr[@'132]:='Z'; +xchr[@'133]:='['; +xchr[@'134]:='\'; +xchr[@'135]:=']'; +xchr[@'136]:='^'; +xchr[@'137]:='_';@/ +xchr[@'140]:='`'; +xchr[@'141]:='a'; +xchr[@'142]:='b'; +xchr[@'143]:='c'; +xchr[@'144]:='d'; +xchr[@'145]:='e'; +xchr[@'146]:='f'; +xchr[@'147]:='g';@/ +xchr[@'150]:='h'; +xchr[@'151]:='i'; +xchr[@'152]:='j'; +xchr[@'153]:='k'; +xchr[@'154]:='l'; +xchr[@'155]:='m'; +xchr[@'156]:='n'; +xchr[@'157]:='o';@/ +xchr[@'160]:='p'; +xchr[@'161]:='q'; +xchr[@'162]:='r'; +xchr[@'163]:='s'; +xchr[@'164]:='t'; +xchr[@'165]:='u'; +xchr[@'166]:='v'; +xchr[@'167]:='w';@/ +xchr[@'170]:='x'; +xchr[@'171]:='y'; +xchr[@'172]:='z'; +xchr[@'173]:='{'; +xchr[@'174]:='|'; +xchr[@'175]:='}'; +xchr[@'176]:='~';@/ +xchr[0]:=' '; xchr[@'177]:=' '; {these ASCII codes are not used} + +@ Some of the ASCII codes below @'40 have been given symbolic names in +\.{WEAVE} and \.{TANGLE} because they are used with a special meaning. + +@d and_sign=@'4 {equivalent to `\.{and}'} +@d not_sign=@'5 {equivalent to `\.{not}'} +@d set_element_sign=@'6 {equivalent to `\.{in}'} +@d tab_mark=@'11 {ASCII code used as tab-skip} +@d line_feed=@'12 {ASCII code thrown away at end of line} +@d form_feed=@'14 {ASCII code used at end of page} +@d carriage_return=@'15 {ASCII code used at end of line} +@d left_arrow=@'30 {equivalent to `\.{:=}'} +@d not_equal=@'32 {equivalent to `\.{<>}'} +@d less_or_equal=@'34 {equivalent to `\.{<=}'} +@d greater_or_equal=@'35 {equivalent to `\.{>=}'} +@d equivalence_sign=@'36 {equivalent to `\.{==}'} +@d or_sign=@'37 {equivalent to `\.{or}'} + +@ When we initialize the |xord| array and the remaining parts of |xchr|, +it will be convenient to make use of an index variable, |i|. + +@<Local variables for init...@>= +@!i:0..255; + +@ Here now is the system-dependent part of the character set. +If \.{WEB} is being implemented on a garden-variety \PASCAL\ for which +only standard ASCII codes will appear in the input and output files, you +don't need to make any changes here. But if you have, for example, an extended +character set like the one in Appendix~C of {\sl The \TeX book}, the first +line of code in this module should be changed to +$$\hbox{|for i:=1 to @'37 do xchr[i]:=chr(i);|}$$ +\.{WEB}'s character set is essentially identical to \TeX's, even with respect to +characters less than @'40. +@^system dependencies@> + +Changes to the present module will make \.{WEB} more friendly on computers +that have an extended character set, so that one can type things like +\.^^Z\ instead of \.{<>}. If you have an extended set of characters that +are easily incorporated into text files, you can assign codes arbitrarily +here, giving an |xchr| equivalent to whatever characters the users of +\.{WEB} are allowed to have in their input files, provided that unsuitable +characters do not correspond to special codes like |carriage_return| +that are listed above. + +(The present file \.{TANGLE.WEB} does not contain any of the non-ASCII +characters, because it is intended to be used with all implementations of +\.{WEB}. It was originally created on a Stanford system that has a +convenient extended character set, then ``sanitized'' by applying another +program that transliterated all of the non-standard characters into +standard equivalents.) + +@<Set init...@>= +for i:=1 to @'37 do xchr[i]:=' '; +for i:=@'200 to @'377 do xchr[i]:=' '; + +@ The following system-independent code makes the |xord| array contain a +suitable inverse to the information in |xchr|. + +@<Set init...@>= +for i:=first_text_char to last_text_char do xord[chr(i)]:=" "; +for i:=1 to @'377 do xord[xchr[i]]:=i; +xord[' ']:=" "; + +@* Input and output. +The input conventions of this program are intended to be very much like those +of \TeX\ (except, of course, that they are much simpler, because much less +needs to be done). Furthermore they are identical to those of \.{WEAVE}. +Therefore people who need to make modifications to all three systems +should be able to do so without too many headaches. + +We use the standard \PASCAL\ input/output procedures in several places that +\TeX\ cannot, since \.{TANGLE} does not have to deal with files that are named +dynamically by the user, and since there is no input from the terminal. + +@ Terminal output is done by writing on file |term_out|, which is assumed to +consist of characters of type |text_char|: +@^system dependencies@> + +@d print(#)==write(term_out,#) {`|print|' means write on the terminal} +@d print_ln(#)==write_ln(term_out,#) {`|print|' and then start new line} +@d new_line==write_ln(term_out) {start new line} +@d print_nl(#)== {print information starting on a new line} + begin new_line; print(#); + end + +@<Globals...@>= +@!term_out:text_file; {the terminal as an output file} + +@ Different systems have different ways of specifying that the output on a +certain file will appear on the user's terminal. Here is one way to do this +on the \PASCAL\ system that was used in \.{TANGLE}'s initial development: +@^system dependencies@> + +@<Set init...@>= +rewrite(term_out,'TTY:'); {send |term_out| output to the terminal} + +@ The |update_terminal| procedure is called when we want +to make sure that everything we have output to the terminal so far has +actually left the computer's internal buffers and been sent. +@^system dependencies@> + +@d update_terminal == break(term_out) {empty the terminal output buffer} + +@ The main input comes from |web_file|; this input may be overridden +by changes in |change_file|. (If |change_file| is empty, there are no changes.) + +@<Globals...@>= +@!web_file:text_file; {primary input} +@!change_file:text_file; {updates} + +@ The following code opens the input files. Since these files were listed +in the program header, we assume that the \PASCAL\ runtime system has +already checked that suitable file names have been given; therefore no +additional error checking needs to be done. +@^system dependencies@> + +@p procedure open_input; {prepare to read |web_file| and |change_file|} +begin reset(web_file); reset(change_file); +end; + +@ The main output goes to |Pascal_file|, and string pool constants are +written to the |pool| file. + +@<Globals...@>= +@!Pascal_file: text_file; +@!pool: text_file; + +@ The following code opens |Pascal_file| and |pool|. +Since these files were listed in the program header, we assume that the +\PASCAL\ runtime system has checked that suitable external file names have +been given. +@^system dependencies@> + +@<Set init...@>= +rewrite(Pascal_file); rewrite(pool); + +@ Input goes into an array called |buffer|. + +@<Globals...@>=@!buffer: array[0..buf_size] of ASCII_code; + +@ The |input_ln| procedure brings the next line of input from the specified +file into the |buffer| array and returns the value |true|, unless the file has +already been entirely read, in which case it returns |false|. The conventions +of \TeX\ are followed; i.e., |ASCII_code| numbers representing the next line +of the file are input into |buffer[0]|, |buffer[1]|, \dots, +|buffer[limit-1]|; trailing blanks are ignored; +and the global variable |limit| is set to the length of the +@^system dependencies@> +line. The value of |limit| must be strictly less than |buf_size|. + +We assume that none of the |ASCII_code| values +of |buffer[j]| for |0<=j<limit| is equal to 0, @'177, |line_feed|, |form_feed|, +or |carriage_return|. + +@p function input_ln(var f:text_file):boolean; + {inputs a line or returns |false|} +var final_limit:0..buf_size; {|limit| without trailing blanks} +begin limit:=0; final_limit:=0; +if eof(f) then input_ln:=false +else begin while not eoln(f) do + begin buffer[limit]:=xord[f^]; get(f); + incr(limit); + if buffer[limit-1]<>" " then final_limit:=limit; + if limit=buf_size then + begin while not eoln(f) do get(f); + decr(limit); {keep |buffer[buf_size]| empty} + if final_limit>limit then final_limit:=limit; + print_nl('! Input line too long'); loc:=0; error; +@.Input line too long@> + end; + end; + read_ln(f); limit:=final_limit; input_ln:=true; + end; +end; + +@* Reporting errors to the user. +The \.{TANGLE} processor operates in two phases: first it inputs the source +file and stores a compressed representation of the program, then it produces +the \PASCAL\ output from the compressed representation. + +The global variable |phase_one| tells whether we are in Phase I or not. + +@<Globals...@>= +@!phase_one: boolean; {|true| in Phase I, |false| in Phase II} + +@ If an error is detected while we are debugging, +we usually want to look at the contents of memory. +A special procedure will be declared later for this purpose. + +@<Error handling...@>= +@!debug @+ procedure debug_help; forward;@+ gubed + +@ During the first phase, syntax errors are reported to the user by saying +$$\hbox{`|err_print('! Error message')|'},$$ +followed by `|jump_out|' if no recovery from the error is provided. +This will print the error message followed by an indication of where the error +was spotted in the source file. Note that no period follows the error message, +since the error routine will automatically supply a period. + +Errors that are noticed during the second phase are reported to the user +in the same fashion, but the error message will be +followed by an indication of where the error was spotted in the output file. + +The actual error indications are provided by a procedure called |error|. + +@d err_print(#)==begin new_line; print(#); error; + end + +@<Error handling...@>= +procedure error; {prints '\..' and location of error message} +var j: 0..out_buf_size; {index into |out_buf|} +@!k,@!l: 0..buf_size; {indices into |buffer|} +begin if phase_one then @<Print error location based on input buffer@> +else @<Print error location based on output buffer@>; +update_terminal; mark_error; +@!debug debug_skipped:=debug_cycle; debug_help;@+gubed +end; + +@ The error locations during Phase I can be indicated by using the global +variables |loc|, |line|, and |changing|, which tell respectively the first +unlooked-at position in |buffer|, the current line number, and whether or not +the current line is from |change_file| or |web_file|. +This routine should be modified on systems whose standard text editor +has special line-numbering conventions. +@^system dependencies@> + +@<Print error location based on input buffer@>= +begin if changing then print('. (change file ')@+else print('. ('); +print_ln('l.', line:1, ')'); +if loc>=limit then l:=limit else l:=loc; +for k:=1 to l do + if buffer[k-1]=tab_mark then print(' ') + else print(xchr[buffer[k-1]]); {print the characters already read} +new_line; +for k:=1 to l do print(' '); {space out the next line} +for k:=l+1 to limit do print(xchr[buffer[k-1]]); {print the part not yet read} +print(' '); {this space separates the message from future asterisks} +end + +@ The position of errors detected during the second phase can be indicated +by outputting the partially-filled output buffer, which contains |out_ptr| +entries. + +@<Print error location based on output...@>= +begin print_ln('. (l.',line:1,')'); +for j:=1 to out_ptr do print(xchr[out_buf[j-1]]); {print current partial line} +print('... '); {indicate that this information is partial} +end + +@ The |jump_out| procedure just cuts across all active procedure levels +and jumps out of the program. This is the only non-local |goto| statement +in \.{TANGLE}. It is used when no recovery from a particular error has +been provided. + +Some \PASCAL\ compilers do not implement non-local |goto| statements. +@^system dependencies@> +In such cases the code that appears at label |end_of_TANGLE| should be +copied into the |jump_out| procedure, followed by a call to a system procedure +that terminates the program. + +@d fatal_error(#)==begin new_line; print(#); error; mark_fatal; jump_out; + end + +@<Error handling...@>= +procedure jump_out; +begin goto end_of_TANGLE; +end; + +@ Sometimes the program's behavior is far different from what it should be, +and \.{TANGLE} prints an error message that is really for the \.{TANGLE} +maintenance person, not the user. In such cases the program says +|confusion('indication of where we are')|. + +@d confusion(#)==fatal_error('! This can''t happen (',#,')') +@.This can't happen@> + +@ An overflow stop occurs if \.{TANGLE}'s tables aren't large enough. + +@d overflow(#)==fatal_error('! Sorry, ',#,' capacity exceeded') +@.Sorry, x capacity exceeded@> + + +@* Data structures. +Most of the user's \PASCAL\ code is packed into eight-bit integers +in two large arrays called |byte_mem| and |tok_mem|. +The |byte_mem| array holds the names of identifiers, strings, and modules; +the |tok_mem| array holds the replacement texts +for macros and modules. Allocation is sequential, since things are deleted only +during Phase II, and only in a last-in-first-out manner. + +Auxiliary arrays |byte_start| and |tok_start| are used as directories to +|byte_mem| and |tok_mem|, and the |link|, |ilk|, |equiv|, and |text_link| +arrays give further information about names. These auxiliary arrays +consist of sixteen-bit items. + +@<Types...@>= +@!eight_bits=0..255; {unsigned one-byte quantity} +@!sixteen_bits=0..65535; {unsigned two-byte quantity} + +@ \.{TANGLE} has been designed to avoid the need for indices that are more +than sixteen bits wide, so that it can be used on most computers. But +there are programs that need more than 65536 tokens, and some programs +even need more than 65536 bytes; \TeX\ is one of these. To get around +this problem, a slight complication has been added to the data structures: +|byte_mem| and |tok_mem| are two-dimensional arrays, whose first index is +either 0 or 1. (For generality, the first index is actually allowed to run +between 0 and |ww-1| in |byte_mem|, or between 0 and |zz-1| in |tok_mem|, +where |ww| and |zz| are set to 2 and~3; the program will work for any +positive values of |ww| and |zz|, and it can be simplified in obvious ways +if |ww=1| or |zz=1|.) + +@d ww=2 {we multiply the byte capacity by approximately this amount} +@d zz=3 {we multiply the token capacity by approximately this amount} + +@<Globals...@>= +@!byte_mem: packed array [0..ww-1,0..max_bytes] of ASCII_code; + {characters of names} +@!tok_mem: packed array [0..zz-1,0..max_toks] of eight_bits; {tokens} +@!byte_start: array [0..max_names] of sixteen_bits; {directory into |byte_mem|} +@!tok_start: array [0..max_texts] of sixteen_bits; {directory into |tok_mem|} +@!link: array [0..max_names] of sixteen_bits; {hash table or tree links} +@!ilk: array [0..max_names] of sixteen_bits; {type codes or tree links} +@!equiv: array [0..max_names] of sixteen_bits; {info corresponding to names} +@!text_link: array [0..max_texts] of sixteen_bits; {relates replacement texts} + +@ The names of identifiers are found by computing a hash address |h| and +then looking at strings of bytes signified by |hash[h]|, |link[hash[h]]|, +|link[link[hash[h]]]|, \dots, until either finding the desired name +or encountering a zero. + +A `|name_pointer|' variable, which signifies a name, is an index into +|byte_start|. The actual sequence of characters in the name pointed to by +|p| appears in positions |byte_start[p]| to |byte_start[p+ww]-1|, inclusive, +in the segment of |byte_mem| whose first index is |p mod ww|. Thus, when +|ww=2| the even-numbered name bytes appear in |byte_mem[0,@t$*$@>]| +and the odd-numbered ones appear in |byte_mem[1,@t$*$@>]|. +The pointer 0 is used for undefined module names; we don't +want to use it for the names of identifiers, since 0 stands for a null +pointer in a linked list. + +Strings are treated like identifiers; the first character (a double-quote) +distinguishes a string from an alphabetic name, but for \.{TANGLE}'s purposes +strings behave like numeric macros. (A `string' here refers to the +strings delimited by double-quotes that \.{TANGLE} processes. \PASCAL\ +string constants delimited by single-quote marks are not given such special +treatment; they simply appear as sequences of characters in the \PASCAL\ +texts.) The total number of strings in the string +pool is called |string_ptr|, and the total number of names in |byte_mem| +is called |name_ptr|. The total number of bytes occupied in +|byte_mem[w,@t$*$@>]| is called |byte_ptr[w]|. + +We usually have |byte_start[name_ptr+w]=byte_ptr[(name_ptr+w) mod ww]| +for |0<=w<ww|, since these are the starting positions for the next |ww| +names to be stored in |byte_mem|. + +@d length(#)==byte_start[#+ww]-byte_start[#] {the length of a name} + +@<Types...@>= +@!name_pointer=0..max_names; {identifies a name} + +@ @<Global...@>= +@!name_ptr:name_pointer; {first unused position in |byte_start|} +@!string_ptr:name_pointer; {next number to be given to a string of length |<>1|} +@!byte_ptr:array [0..ww-1] of 0..max_bytes; + {first unused position in |byte_mem|} +@!pool_check_sum:integer; {sort of a hash for the whole string pool} + +@ @<Local variables for init...@>= +@!wi: 0..ww-1; {to initialize the |byte_mem| indices} + +@ @<Set init...@>= +for wi:=0 to ww-1 do + begin byte_start[wi]:=0; byte_ptr[wi]:=0; + end; +byte_start[ww]:=0; {this makes name 0 of length zero} +name_ptr:=1; string_ptr:=256; pool_check_sum:=271828; + +@ Replacement texts are stored in |tok_mem|, using similar conventions. +A `|text_pointer|' variable is an index into |tok_start|, and the +replacement text that corresponds to |p| runs from positions +|tok_start[p]| to |tok_start[p+zz]-1|, inclusive, in the segment of +|tok_mem| whose first index is |p mod zz|. Thus, when |zz=2| the +even-numbered replacement texts appear in |tok_mem[0,@t$*$@>]| and the +odd-numbered ones appear in |tok_mem[1,@t$*$@>]|. Furthermore, +|text_link[p]| is used to connect pieces of text that have the same name, +as we shall see later. The pointer 0 is used for undefined replacement +texts. + +The first position of |tok_mem[z,@t$*$@>]| that is unoccupied by +replacement text is called |tok_ptr[z]|, and the first unused location of +|tok_start| is called |text_ptr|. We usually have the identity +|tok_start[text_ptr+z]=tok_ptr[(text_ptr+z) mod zz]|, for |0<=z<zz|, since +these are the starting positions for the next |zz| replacement texts to +be stored in |tok_mem|. + +@<Types...@>= +@!text_pointer=0..max_texts; {identifies a replacement text} + +@ It is convenient to maintain a variable |z| that is equal to |text_ptr +mod zz|, so that we always insert tokens into segment |z| of |tok_mem|. + +@<Glob...@>= +@t\hskip1em@>@!text_ptr:text_pointer; {first unused position in |tok_start|} +@t\hskip1em@>@!tok_ptr:array[0..zz-1] of 0..max_toks; + {first unused position in a given segment of |tok_mem|} +@t\hskip1em@>@!z:0..zz-1; {current segment of |tok_mem|} +stat @!max_tok_ptr:array[0..zz-1] of 0..max_toks; + {largest values assumed by |tok_ptr|} +tats + +@ @<Local variables for init...@>= +@!zi:0..zz-1; {to initialize the |tok_mem| indices} + +@ @<Set init...@>= +for zi:=0 to zz-1 do + begin tok_start[zi]:=0; tok_ptr[zi]:=0; + end; +tok_start[zz]:=0; {this makes replacement text 0 of length zero} +text_ptr:=1; z:=1 mod zz; + +@ Four types of identifiers are distinguished by their |ilk|: + +\yskip\hang |normal| identifiers will appear in the \PASCAL\ program as +ordinary identifiers since they have not been defined to be macros; the +corresponding value in the |equiv| array +for such identifiers is a link in a secondary hash table that +is used to check whether any two of them agree in their first |unambig_length| +characters after underline symbols are removed and lowercase letters are +changed to uppercase. + +\yskip\hang |numeric| identifiers have been defined to be numeric macros; +their |equiv| value contains the corresponding numeric value plus $2^{15}$. +Strings are treated as numeric macros. + +\yskip\hang |simple| identifiers have been defined to be simple macros; +their |equiv| value points to the corresponding replacement text. + +\yskip\hang |parametric| identifiers have been defined to be parametric macros; +like simple identifiers, their |equiv| value points to the replacement text. + +@d normal=0 {ordinary identifiers have |normal| ilk} +@d numeric=1 {numeric macros and strings have |numeric| ilk} +@d simple=2 {simple macros have |simple| ilk} +@d parametric=3 {parametric macros have |parametric| ilk} + +@ The names of modules are stored in |byte_mem| together +with the identifier names, but a hash table is not used for them because +\.{TANGLE} needs to be able to recognize a module name when given a prefix of +that name. A conventional binary seach tree is used to retrieve module names, +with fields called |llink| and |rlink| in place of |link| and |ilk|. The +root of this tree is |rlink[0]|. If |p| is a pointer to a module name, +|equiv[p]| points to its replacement text, just as in simple and parametric +macros, unless this replacement text has not yet been defined (in which case +|equiv[p]=0|). + +@d llink==link {left link in binary search tree for module names} +@d rlink==ilk {right link in binary search tree for module names} + +@<Set init...@>= +rlink[0]:=0; {the binary search tree starts out with nothing in it} +equiv[0]:=0; {the undefined module has no replacement text} + +@ Here is a little procedure that prints the text of a given name. + +@p procedure print_id(@!p:name_pointer); {print identifier or module name} +var k:0..max_bytes; {index into |byte_mem|} +@!w:0..ww-1; {segment of |byte_mem|} +begin if p>=name_ptr then print('IMPOSSIBLE') +else begin w:=p mod ww; + for k:=byte_start[p] to byte_start[p+ww]-1 do print(xchr[byte_mem[w,k]]); + end; +end; + +@* Searching for identifiers. +The hash table described above is updated by the |id_lookup| procedure, +which finds a given identifier and returns a pointer to its index in +|byte_start|. If the identifier was not already present, it is inserted with +a given |ilk| code; and an error message is printed if the identifier is being +doubly defined. + +Because of the way \.{TANGLE}'s scanning mechanism works, it is most convenient +to let |id_lookup| search for an identifier that is present in the |buffer| +array. Two other global variables specify its position in the buffer: the +first character is |buffer[id_first]|, and the last is |buffer[id_loc-1]|. +Furthermore, if the identifier is really a string, the global variable +|double_chars| tells how many of the characters in the buffer appear +twice (namely \.{@@@@} and \.{""}), since this additional information makes +it easy to calculate the true length of the string. The final double-quote +of the string is not included in its ``identifier,'' but the first one is, +so the string length is |id_loc-id_first-double_chars-1|. + +We have mentioned that |normal| identifiers belong to two hash tables, +one for their true names as they appear in the \.{WEB} file and the other +when they have been reduced to their first |unambig_length| characters. +The hash tables are kept by the method of simple chaining, where the +heads of the individual lists appear in the |hash| and |chop_hash| arrays. +If |h| is a hash code, the primary hash table list starts at |hash[h]| and +proceeds through |link| pointers; the secondary hash table list starts at +|chop_hash[h]| and proceeds through |equiv| pointers. Of course, the same +identifier will probably have two different values of |h|. + +The |id_lookup| procedure uses an auxiliary array called |chopped_id| to +contain up to |unambig_length| characters of the current identifier, if +it is necessary to compute the secondary hash code. (This array could be +declared local to |id_lookup|, but in general we are making all array +declarations global in this program, because some compilers and some machine +architectures make dynamic array allocation inefficient.) + +@<Glob...@>= +@!id_first:0..buf_size; {where the current identifier begins in the buffer} +@!id_loc:0..buf_size; {just after the current identifier in the buffer} +@!double_chars:0..buf_size; {correction to length in case of strings} +@# +@!hash,@!chop_hash:array [0..hash_size] of sixteen_bits; {heads of hash lists} +@!chopped_id:array [0..unambig_length] of ASCII_code; {chopped identifier} + +@ Initially all the hash lists are empty. + +@<Local variables for init...@>= +@!h:0..hash_size; {index into hash-head arrays} + +@ @<Set init...@>= +for h:=0 to hash_size-1 do + begin hash[h]:=0; chop_hash[h]:=0; + end; + +@ Here now is the main procedure for finding identifiers (and strings). +The parameter |t| is set to |normal| except when the identifier is +a macro name that is just being defined; in the latter case, |t| will be +|numeric|, |simple|, or |parametric|. + +@p function id_lookup(@!t:eight_bits):name_pointer; {finds current identifier} +label found, not_found; +var c:eight_bits; {byte being chopped} +@!i:0..buf_size; {index into |buffer|} +@!h:0..hash_size; {hash code} +@!k:0..max_bytes; {index into |byte_mem|} +@!w:0..ww-1; {segment of |byte_mem|} +@!l:0..buf_size; {length of the given identifier} +@!p,@!q:name_pointer; {where the identifier is being sought} +@!s:0..unambig_length; {index into |chopped_id|} +begin l:=id_loc-id_first; {compute the length} +@<Compute the hash code |h|@>; +@<Compute the name location |p|@>; +if (p=name_ptr)or(t<>normal) then + @<Update the tables and check for possible errors@>; +id_lookup:=p; +end; + +@ A simple hash code is used: If the sequence of +ASCII codes is $c_1c_2\ldots c_m$, its hash value will be +$$(2^{n-1}c_1+2^{n-2}c_2+\cdots+c_n)\,\bmod\,|hash_size|.$$ + +@<Compute the hash...@>= +h:=buffer[id_first]; i:=id_first+1; +while i<id_loc do + begin h:=(h+h+buffer[i]) mod hash_size; incr(i); + end + +@ If the identifier is new, it will be placed in position |p=name_ptr|, +otherwise |p| will point to its existing location. + +@<Compute the name location...@>= +p:=hash[h]; +while p<>0 do + begin if length(p)=l then + @<Compare name |p| with current identifier, |goto found| if equal@>; + p:=link[p]; + end; +p:=name_ptr; {the current identifier is new} +link[p]:=hash[h]; hash[h]:=p; {insert |p| at beginning of hash list} +found: + +@ @<Compare name |p|...@>= +begin i:=id_first; k:=byte_start[p]; w:=p mod ww; +while (i<id_loc)and(buffer[i]=byte_mem[w,k]) do + begin incr(i); incr(k); + end; +if i=id_loc then goto found; {all characters agree} +end + +@ @<Update the tables...@>= +begin if ((p<>name_ptr)and(t<>normal)and(ilk[p]=normal)) or + ((p=name_ptr)and(t=normal)and(buffer[id_first]<>"""")) then + @<Compute the secondary hash code |h| and put the first characters + into the auxiliary array |chopped_id|@>; +if p<>name_ptr then + @<Give double-definition error, if necessary, and change |p| to type |t|@> +else @<Enter a new identifier into the table at position |p|@>; +end + +@ The following routine, which is called into play when it is necessary to +look at the secondary hash table, computes the same hash function as before +(but on the chopped data), and places a zero after the chopped identifier +in |chopped_id| to serve as a convenient sentinel. + +@<Compute the secondary...@>= +begin i:=id_first; s:=0; h:=0; +while (i<id_loc)and(s<unambig_length) do + begin if buffer[i]<>"_" then + begin if buffer[i]>="a" then chopped_id[s]:=buffer[i]-@'40 + else chopped_id[s]:=buffer[i]; + h:=(h+h+chopped_id[s]) mod hash_size; incr(s); + end; + incr(i); + end; +chopped_id[s]:=0; +end + +@ If a nonnumeric macro has appeared before it was defined, \.{TANGLE} +will still work all right; after all, such behavior is typical of the +replacement texts for modules, which act very much like macros. +However, an undefined numeric macro may not be used on the right-hand +side of another numeric macro definition, so \.{TANGLE} finds it +simplest to make a blanket rule that numeric macros should be defined +before they are used. The following routine gives an error message and +also fixes up any damage that may have been caused. + +@<Give double...@>= {now |p<>name_ptr| and |t<>normal|} +begin if ilk[p]=normal then + begin if t=numeric then err_print('! This identifier has already appeared'); +@.This identifier has already...@> + @<Remove |p| from secondary hash table@>; + end +else err_print('! This identifier was defined before'); +@.This identifier was defined...@> +ilk[p]:=t; +end + +@ When we have to remove a secondary hash entry, because a |normal| identifier +is changing to another |ilk|, the hash code |h| and chopped identifier have +already been computed. + +@<Remove |p| from secondary...@>= +q:=chop_hash[h]; +if q=p then chop_hash[h]:=equiv[p] +else begin while equiv[q]<>p do q:=equiv[q]; + equiv[q]:=equiv[p]; + end + +@ The following routine could make good use of a generalized |pack| procedure +that puts items into just part of a packed array instead of the whole thing. + +@<Enter a new identifier...@>= +begin if (t=normal)and(buffer[id_first]<>"""") then + @<Check for ambiguity and update secondary hash@>; +w:=name_ptr mod ww; k:=byte_ptr[w]; +if k+l>max_bytes then overflow('byte memory'); +if name_ptr>max_names-ww then overflow('name'); +i:=id_first; {get ready to move the identifier into |byte_mem|} +while i<id_loc do + begin byte_mem[w,k]:=buffer[i]; incr(k); incr(i); + end; +byte_ptr[w]:=k; byte_start[name_ptr+ww]:=k; incr(name_ptr); +if buffer[id_first]<>"""" then ilk[p]:=t +else @<Define and output a new string of the pool@>; +end + +@ @<Check for ambig...@>= +begin q:=chop_hash[h]; +while q<>0 do + begin @<Check if |q| conflicts with |p|@>; + q:=equiv[q]; + end; +equiv[p]:=chop_hash[h]; chop_hash[h]:=p; {put |p| at front of secondary list} +end + +@ @<Check if |q| conflicts...@>= +begin k:=byte_start[q]; s:=0; w:=q mod ww; +while (k<byte_start[q+ww]) and (s<unambig_length) do + begin c:=byte_mem[w,k]; + if c<>"_" then + begin if c>="a" then c:=c-@'40; {merge lowercase with uppercase} + if chopped_id[s]<>c then goto not_found; + incr(s); + end; + incr(k); + end; +if (k=byte_start[q+ww])and(chopped_id[s]<>0) then goto not_found; +print_nl('! Identifier conflict with '); +@.Identifier conflict...@> +for k:=byte_start[q] to byte_start[q+ww]-1 do print(xchr[byte_mem[w,k]]); +error; q:=0; {only one conflict will be printed, since |equiv[0]=0|} +not_found: +end + +@ We compute the string pool check sum by working modulo a prime number +that is large but not so large that overflow might occur. + +@d check_sum_prime==@'3777777667 {$2^{29}-73$} +@^preprocessed strings@> + +@<Define and output a new string...@>= +begin ilk[p]:=numeric; {strings are like numeric macros} +if l-double_chars=2 then {this string is for a single character} + equiv[p]:=buffer[id_first+1]+@'100000 +else begin equiv[p]:=string_ptr+@'100000; + l:=l-double_chars-1; + if l>99 then err_print('! Preprocessed string is too long'); +@.Preprocessed string is too long@> + incr(string_ptr); + write(pool,xchr["0"+l div 10],xchr["0"+l mod 10]); {output the length} + pool_check_sum:=pool_check_sum+pool_check_sum+l; + while pool_check_sum>check_sum_prime do + pool_check_sum:=pool_check_sum-check_sum_prime; + i:=id_first+1; + while i<id_loc do + begin write(pool,xchr[buffer[i]]); {output characters of string} + pool_check_sum:=pool_check_sum+pool_check_sum+buffer[i]; + while pool_check_sum>check_sum_prime do + pool_check_sum:=pool_check_sum-check_sum_prime; + if (buffer[i]="""") or (buffer[i]="@@") then + i:=i+2 {omit second appearance of doubled character} + else incr(i); + end; + write_ln(pool); + end; +end + +@* Searching for module names. +The |mod_lookup| procedure finds the module name |mod_text[1..l]| in the +search tree, after inserting it if necessary, and returns a pointer to +where it was found. + +@<Glob...@>= +@!mod_text:array [0..longest_name] of ASCII_code; {name being sought for} + +@ According to the rules of \.{WEB}, no module name +should be a proper prefix of another, so a ``clean'' comparison should +occur between any two names. The result of |mod_lookup| is 0 if this +prefix condition is violated. An error message is printed when such violations +are detected during phase two of \.{WEAVE}. + +@d less=0 {the first name is lexicographically less than the second} +@d equal=1 {the first name is equal to the second} +@d greater=2 {the first name is lexicographically greater than the second} +@d prefix=3 {the first name is a proper prefix of the second} +@d extension=4 {the first name is a proper extension of the second} + +@p function mod_lookup(@!l:sixteen_bits):name_pointer; {finds module name} +label found; +var c:less..extension; {comparison between two names} +@!j:0..longest_name; {index into |mod_text|} +@!k:0..max_bytes; {index into |byte_mem|} +@!w:0..ww-1; {segment of |byte_mem|} +@!p:name_pointer; {current node of the search tree} +@!q:name_pointer; {father of node |p|} +begin c:=greater; q:=0; p:=rlink[0]; {|rlink[0]| is the root of the tree} +while p<>0 do + begin @<Set \(|c| to the result of comparing the given name to + name |p|@>; + q:=p; + if c=less then p:=llink[q] + else if c=greater then p:=rlink[q] + else goto found; + end; +@<Enter a new module name into the tree@>; +found: if c<>equal then + begin err_print('! Incompatible section names'); p:=0; +@.Incompatible module names@> + end; +mod_lookup:=p; +end; + +@ @<Enter a new module name...@>= +w:=name_ptr mod ww; k:=byte_ptr[w]; +if k+l>max_bytes then overflow('byte memory'); +if name_ptr>max_names-ww then overflow('name'); +p:=name_ptr; +if c=less then llink[q]:=p else rlink[q]:=p; +llink[p]:=0; rlink[p]:=0; c:=equal; equiv[p]:=0; +for j:=1 to l do byte_mem[w,k+j-1]:=mod_text[j]; +byte_ptr[w]:=k+l; byte_start[name_ptr+ww]:=k+l; incr(name_ptr); + +@ @<Set \(|c|...@>= +begin k:=byte_start[p]; w:=p mod ww; c:=equal; j:=1; +while (k<byte_start[p+ww]) and (j<=l) and (mod_text[j]=byte_mem[w,k]) do + begin incr(k); incr(j); + end; +if k=byte_start[p+ww] then + if j>l then c:=equal + else c:=extension +else if j>l then c:=prefix +else if mod_text[j]<byte_mem[w,k] then c:=less +else c:=greater; +end + +@ The |prefix_lookup| procedure is supposed to find exactly one module +name that has |mod_text[1..l]| as a prefix. Actually the algorithm silently +accepts also the situation that some module name is a prefix of +|mod_text[1..l]|, because the user who painstakingly typed in more than +necessary probably doesn't want to be told about the wasted effort. + +@p function prefix_lookup(@!l:sixteen_bits):name_pointer; {finds name extension} +var c:less..extension; {comparison between two names} +@!count:0..max_names; {the number of hits} +@!j:0..longest_name; {index into |mod_text|} +@!k:0..max_bytes; {index into |byte_mem|} +@!w:0..ww-1; {segment of |byte_mem|} +@!p:name_pointer; {current node of the search tree} +@!q:name_pointer; {another place to resume the search after one branch is done} +@!r:name_pointer; {extension found} +begin q:=0; p:=rlink[0]; count:=0; r:=0; {begin search at root of tree} +while p<>0 do + begin @<Set \(|c|...@>; + if c=less then p:=llink[p] + else if c=greater then p:=rlink[p] + else begin r:=p; incr(count); q:=rlink[p]; p:=llink[p]; + end; + if p=0 then + begin p:=q; q:=0; + end; + end; +if count<>1 then + if count=0 then err_print('! Name does not match') +@.Name does not match@> + else err_print('! Ambiguous prefix'); +@.Ambiguous prefix@> +prefix_lookup:=r; {the result will be 0 if there was no match} +end; + +@* Tokens. +Replacement texts, which represent \PASCAL\ code in a compressed format, +appear in |tok_mem| as mentioned above. The codes in +these texts are called `tokens'; some tokens occupy two consecutive +eight-bit byte positions, and the others take just one byte. + +If $p>0$ points to a replacement text, |tok_start[p]| is the |tok_mem| position +of the first eight-bit code of that text. If |text_link[p]=0|, +this is the replacement text for a macro, otherwise it is the replacement +text for a module. In the latter case |text_link[p]| is either equal to +|module_flag|, which means that there is no further text for this module, or +|text_link[p]| points to a +continuation of this replacement text; such links are created when +several modules have \PASCAL\ texts with the same name, and they also +tie together all the \PASCAL\ texts of unnamed modules. +The replacement text pointer for the first unnamed module +appears in |text_link[0]|, and the most recent such pointer is |last_unnamed|. + +@d module_flag==max_texts {final |text_link| in module replacement texts} + +@<Glob...@>= +@!last_unnamed:text_pointer; {most recent replacement text of unnamed module} + +@ @<Set init...@>= last_unnamed:=0; text_link[0]:=0; + +@ If the first byte of a token is less than @'200, the token occupies a +single byte. Otherwise we make a sixteen-bit token by combining two consecutive +bytes |a| and |b|. If |@'200<=a<@'250|, then $(a-@'200)\times2^8+b$ points +to an identifier; if |@'250<=a<@'320|, then +$(a-@'250)\times2^8+b$ points to a module name; otherwise, i.e., if +|@'320<=a<@'400|, then $(a-@'320)\times2^8+b$ is the number of the module +in which the current replacement text appears. + +Codes less than @'200 are 7-bit ASCII codes that represent themselves. +In particular, a single-character identifier like `|x|' will be a one-byte +token, while all longer identifiers will occupy two bytes. + +Some of the 7-bit ASCII codes will not be present, however, so we can +use them for special purposes. The following symbolic names are used: + +\yskip\hang |param| denotes insertion of a parameter. This occurs only in +the replacement texts of parametric macros, outside of single-quoted strings +in those texts. + +\hang |begin_comment| denotes \.{@@\{}, which will become either +\.{\{} or \.{[}. + +\hang |end_comment| denotes \.{@@\}}, which will become either +\.{\}} or \.{]}. + +\hang |octal| denotes the \.{@@\'} that precedes an octal constant. + +\hang |hex| denotes the \.{@@"} that precedes a hexadecimal constant. + +\hang |check_sum| denotes the \.{@@\char'44} that denotes the string pool +check sum. + +\hang |join| denotes the concatenation of adjacent items with no +space or line breaks allowed between them (the \.{@@\&} operation of \.{WEB}). + +\hang |double_dot| denotes `\.{..}' in \PASCAL. + +\hang |verbatim| denotes the \.{@@=} that begins a verbatim \PASCAL\ string. +It is also used for the end of the string. + +\hang |force_line| denotes the \.{@@\\} that forces a new line in the +\PASCAL\ output. +@^ASCII code@> + +@d param=0 {ASCII null code will not appear} +@d verbatim=@'2 {extended ASCII alpha should not appear} +@d force_line=@'3 {extended ASCII beta should not appear} +@d begin_comment=@'11 {ASCII tab mark will not appear} +@d end_comment=@'12 {ASCII line feed will not appear} +@d octal=@'14 {ASCII form feed will not appear} +@d hex=@'15 {ASCII carriage return will not appear} +@d double_dot=@'40 {ASCII space will not appear except in strings} +@d check_sum=@'175 {will not be confused with right brace} +@d join=@'177 {ASCII delete will not appear} + +@ The following procedure is used to enter a two-byte value into +|tok_mem| when a replacement text is being generated. + +@p procedure store_two_bytes(@!x:sixteen_bits); + {stores high byte, then low byte} +begin if tok_ptr[z]+2>max_toks then overflow('token'); +tok_mem[z,tok_ptr[z]]:=x div@'400; {this could be done by a shift command} +tok_mem[z,tok_ptr[z]+1]:=x mod@'400; {this could be done by a logical and} +tok_ptr[z]:=tok_ptr[z]+2; +end; + +@ When \.{TANGLE} is being operated in debug mode, it has a procedure to display +a replacement text in symbolic form. This procedure has not been spruced up to +generate a real great format, but at least the results are not as bad as +a memory dump. + +@p @!debug procedure print_repl(@!p:text_pointer); +var k:0..max_toks; {index into |tok_mem|} +@!a: sixteen_bits; {current byte(s)} +@!zp: 0..zz-1; {segment of |tok_mem| being accessed} +begin if p>=text_ptr then print('BAD') +else begin k:=tok_start[p]; zp:=p mod zz; + while k<tok_start[p+zz] do + begin a:=tok_mem[zp,k]; + if a>=@'200 then @<Display two-byte token starting with |a|@> + else @<Display one-byte token |a|@>; + incr(k); + end; + end; +end; +gubed + +@ @<Display two-byte...@>= +begin incr(k); +if a<@'250 then {identifier or string} + begin a:=(a-@'200)*@'400+tok_mem[zp,k]; print_id(a); + if byte_mem[a mod ww,byte_start[a]]="""" then print('"') + else print(' '); + end +else if a<@'320 then {module name} + begin print('@@<'); print_id((a-@'250)*@'400+tok_mem[zp,k]); + print('@@>'); + end +else begin a:=(a-@'320)*@'400+tok_mem[zp,k]; {module number} + print('@@',xchr["{"],a:1,'@@',xchr["}"]); {can't use right brace + between \&{debug} and \&{gubed}} + end; +end + +@ @<Display one-byte...@>= +case a of +begin_comment: print('@@',xchr["{"]); +end_comment: print('@@',xchr["}"]); {can't use right brace + between \&{debug} and \&{gubed}} +octal: print('@@'''); +hex: print('@@"'); +check_sum: print('@@$'); +param: print('#'); +"@@": print('@@@@'); +verbatim: print('@@='); +force_line: print('@@\'); +othercases print(xchr[a]) +endcases + +@* Stacks for output. +Let's make sure that our data structures contain enough information to +produce the entire \PASCAL\ program as desired, by working next on the +algorithms that actually do produce that program. + +@ The output process uses a stack to keep track of what is going on at +different ``levels'' as the macros are being expanded. +Entries on this stack have five parts: + +\yskip\hang |end_field| is the |tok_mem| location where the replacement +text of a particular level will end; + +\hang |byte_field| is the |tok_mem| location from which the next token +on a particular level will be read; + +\hang |name_field| points to the name corresponding to a particular level; + +\hang |repl_field| points to the replacement text currently being read +at a particular level; + +\hang |mod_field| is the module number, or zero if this is a macro. + +\yskip\noindent The current values of these five quantities are referred to +quite frequently, so they are stored in a separate place instead of in +the |stack| array. We call the current values |cur_end|, |cur_byte|, +|cur_name|, |cur_repl|, and |cur_mod|. + +The global variable |stack_ptr| tells how many levels of output are +currently in progress. The end of all output occurs when the stack is +empty, i.e., when |stack_ptr=0|. + +@<Types...@>= +@t\4@>@!output_state=record + @!end_field: sixteen_bits; {ending location of replacement text} + @!byte_field: sixteen_bits; {present location within replacement text} + @!name_field: name_pointer; {|byte_start| index for text being output} + @!repl_field: text_pointer; {|tok_start| index for text being output} + @!mod_field: 0..@'27777; {module number or zero if not a module} + end; + +@ @d cur_end==cur_state.end_field {current ending location in |tok_mem|} +@d cur_byte==cur_state.byte_field {location of next output byte in |tok_mem|} +@d cur_name==cur_state.name_field {pointer to current name being expanded} +@d cur_repl==cur_state.repl_field {pointer to current replacement text} +@d cur_mod==cur_state.mod_field {current module number being expanded} + +@<Globals...@>= +@!cur_state : output_state; {|cur_end|, |cur_byte|, |cur_name|, + |cur_repl|, |cur_mod|} +@!stack : array [1..stack_size] of output_state; {info for non-current levels} +@!stack_ptr: 0..stack_size; {first unused location in the output state stack} + +@ It is convenient to keep a global variable |zo| equal to |cur_repl mod zz|. + +@<Glob...@>= +@!zo:0..zz-1; {the segment of |tok_mem| from which output is coming} + +@ Parameters must also be stacked. They are placed in +|tok_mem| just above the other replacement texts, and dummy parameter +`names' are placed in |byte_start| just after the other names. +The variables |text_ptr| and |tok_ptr[z]| essentially serve as parameter +stack pointers during the output phase, so there is no need for a separate +data structure to handle this problem. + +@ There is an implicit stack corresponding to meta-comments that are output +via \.{@@\{} and \.{@@\}}. But this stack need not be represented in detail, +because we only need to know whether it is empty or not. A global variable +|brace_level| tells how many items would be on this stack if it were present. + +@<Globals...@>= +@!brace_level: eight_bits; {current depth of $\.{@@\{}\ldots\.{@@\}}$ nesting} + +@ To get the output process started, we will perform the following +initialization steps. We may assume that |text_link[0]| is nonzero, since it +points to the \PASCAL\ text in the first unnamed module that generates +code; if there are no such modules, there is nothing to output, and an +error message will have been generated before we do any of the initialization. + +@<Initialize the output stacks@>= +stack_ptr:=1; brace_level:=0; cur_name:=0; cur_repl:=text_link[0]; +zo:=cur_repl mod zz; cur_byte:=tok_start[cur_repl]; +cur_end:=tok_start[cur_repl+zz]; cur_mod:=0; + +@ When the replacement text for name |p| is to be inserted into the output, +the following subroutine is called to save the old level of output and get +the new one going. + +@p procedure push_level(@!p:name_pointer); {suspends the current level} +begin if stack_ptr=stack_size then overflow('stack') +else begin stack[stack_ptr]:=cur_state; {save |cur_end|, |cur_byte|, etc.} + incr(stack_ptr); + cur_name:=p; cur_repl:=equiv[p]; zo:=cur_repl mod zz; + cur_byte:=tok_start[cur_repl]; cur_end:=tok_start[cur_repl+zz]; + cur_mod:=0; + end; +end; + +@ When we come to the end of a replacement text, the |pop_level| subroutine +does the right thing: It either moves to the continuation of this replacement +text or returns the state to the most recently stacked level. Part of this +subroutine, which updates the parameter stack, will be given later when we +study the parameter stack in more detail. + +@p procedure pop_level; {do this when |cur_byte| reaches |cur_end|} +label exit; +begin if text_link[cur_repl]=0 then {end of macro expansion} + begin if ilk[cur_name]=parametric then + @<Remove a parameter from the parameter stack@>; + end +else if text_link[cur_repl]<module_flag then {link to a continuation} + begin cur_repl:=text_link[cur_repl]; {we will stay on the same level} + zo:=cur_repl mod zz; + cur_byte:=tok_start[cur_repl]; cur_end:=tok_start[cur_repl+zz]; + return; + end; +decr(stack_ptr); {we will go down to the previous level} +if stack_ptr>0 then + begin cur_state:=stack[stack_ptr]; zo:=cur_repl mod zz; + end; +exit: end; + +@ The heart of the output procedure is the |get_output| routine, which produces +the next token of output that is not a reference to a macro. This procedure +handles all the stacking and unstacking that is necessary. It returns the +value |number| if the next output has a numeric value (the value of a +numeric macro or string), in which case |cur_val| has been set to the +number in question. The procedure also returns the value |module_number| +if the next output begins or ends the replacement text of some module, +in which case |cur_val| is that module's number (if beginning) or the +negative of that value (if ending). And it returns the value |identifier| +if the next output is an identifier of length two or more, in which case +|cur_val| points to that identifier name. + +@d number=@'200 {code returned by |get_output| when next output is numeric} +@d module_number=@'201 {code returned by |get_output| for module numbers} +@d identifier=@'202 {code returned by |get_output| for identifiers} + +@<Globals...@>= +@!cur_val:integer; {additional information corresponding to output token} + +@ If |get_output| finds that no more output remains, it returns the value zero. + +@p function get_output:sixteen_bits; {returns next token after macro expansion} +label restart, done, found; +var a:sixteen_bits; {value of current byte} +@!b:eight_bits; {byte being copied} +@!bal:sixteen_bits; {excess of \.( versus \.) while copying a parameter} +@!k:0..max_bytes; {index into |byte_mem|} +@!w:0..ww-1; {segment of |byte_mem|} +begin restart: if stack_ptr=0 then + begin a:=0; goto found; + end; +if cur_byte=cur_end then + begin cur_val:=-cur_mod; pop_level; + if cur_val=0 then goto restart; + a:=module_number; goto found; + end; +a:=tok_mem[zo,cur_byte]; incr(cur_byte); +if a<@'200 then {one-byte token} + if a=param then + @<Start scanning current macro parameter, |goto restart|@> + else goto found; +a:=(a-@'200)*@'400+tok_mem[zo,cur_byte]; incr(cur_byte); +if a<@'24000 then {|@'24000=(@'250-@'200)*@'400|} + @<Expand macro |a| and |goto found|, or |goto restart| if no output found@>; +if a<@'50000 then {|@'50000=(@'320-@'200)*@'400|} + @<Expand module |a-@'24000|, |goto restart|@>; +cur_val:=a-@'50000; a:=module_number; cur_mod:=cur_val; +found: +@!debug if trouble_shooting then debug_help;@;@+gubed@/ +get_output:=a; +end; + +@ The user may have forgotten to give any \PASCAL\ text for a module name, +or the \PASCAL\ text may have been associated with a different name by mistake. + +@<Expand module |a-...@>= +begin a:=a-@'24000; +if equiv[a]<>0 then push_level(a) +else if a<>0 then + begin print_nl('! Not present: <'); print_id(a); print('>'); error; +@.Not present: <section name>@> + end; +goto restart; +end + +@ @<Expand macro ...@>= +begin case ilk[a] of +normal: begin cur_val:=a; a:=identifier; + end; +numeric: begin cur_val:=equiv[a]-@'100000; a:=number; + end; +simple: begin push_level(a); goto restart; + end; +parametric: begin @<Put a parameter on the parameter stack, + or |goto restart| if error occurs@>; + push_level(a); goto restart; + end; +othercases confusion('output') +endcases;@/ +goto found; +end + +@ We come now to the interesting part, the job of putting a parameter on +the parameter stack. First we pop the stack if necessary until getting to +a level that hasn't ended. Then the next character must be a `\.('; +and since parentheses are balanced on each level, the entire parameter must +be present, so we can copy it without difficulty. + +@<Put a parameter...@>= +while (cur_byte=cur_end)and(stack_ptr>0) do pop_level; +if (stack_ptr=0)or(tok_mem[zo,cur_byte]<>"(") then + begin print_nl('! No parameter given for '); print_id(a); error; +@.No parameter given for macro@> + goto restart; + end; +@<Copy the parameter into |tok_mem|@>; +equiv[name_ptr]:=text_ptr; ilk[name_ptr]:=simple; w:=name_ptr mod ww; +k:=byte_ptr[w]; +@!debug if k=max_bytes then overflow('byte memory'); +byte_mem[w,k]:="#"; incr(k); byte_ptr[w]:=k; +gubed {this code has set the parameter identifier for debugging printouts} +if name_ptr>max_names-ww then overflow('name'); +byte_start[name_ptr+ww]:=k; incr(name_ptr); +if text_ptr>max_texts-zz then overflow('text'); +text_link[text_ptr]:=0; tok_start[text_ptr+zz]:=tok_ptr[z]; +incr(text_ptr); +z:=text_ptr mod zz + +@ The |pop_level| routine undoes the effect of parameter-pushing when +a parameter macro is finished: + +@<Remove a parameter...@>= +begin decr(name_ptr); decr(text_ptr); +z:=text_ptr mod zz; +stat if tok_ptr[z]>max_tok_ptr[z] then max_tok_ptr[z]:=tok_ptr[z]; +tats {the maximum value of |tok_ptr| occurs just before parameter popping} +tok_ptr[z]:=tok_start[text_ptr]; +@!debug decr(byte_ptr[name_ptr mod ww]);@+gubed +end + +@ When a parameter occurs in a replacement text, we treat it as a simple +macro in position (|name_ptr-1|): + +@<Start scanning...@>= +begin push_level(name_ptr-1); goto restart; +end + +@ Similarly, a |param| token encountered as we copy a parameter is converted +into a simple macro call for |name_ptr-1|. +Some care is needed to handle cases like \\{macro}|(#; print('#)'))|; the +\.{\#} token will have been changed to |param| outside of strings, but we +still must distinguish `real' parentheses from those in strings. + +@d app_repl(#)==begin if tok_ptr[z]=max_toks then overflow('token'); + tok_mem[z,tok_ptr[z]]:=#; incr(tok_ptr[z]); end + +@<Copy the parameter...@>= +bal:=1; incr(cur_byte); {skip the opening `\.('} +loop@+ begin b:=tok_mem[zo,cur_byte]; incr(cur_byte); + if b=param then store_two_bytes(name_ptr+@'77777) + else begin if b>=@'200 then + begin app_repl(b); + b:=tok_mem[zo,cur_byte]; incr(cur_byte); + end + else case b of + "(": incr(bal); + ")": begin decr(bal); + if bal=0 then goto done; + end; + "'": repeat app_repl(b); + b:=tok_mem[zo,cur_byte]; incr(cur_byte); + until b="'"; {copy string, don't change |bal|} + othercases do_nothing + endcases; + app_repl(b); + end; + end; +done: + +@* Producing the output. +The |get_output| routine above handles most of the complexity of output +generation, but there are two further considerations that have a nontrivial +effect on \.{TANGLE}'s algorithms. + +First, we want to make sure that the output is broken into lines not +exceeding |line_length| characters per line, where these breaks occur at +valid places (e.g., not in the middle of a string or a constant or an +identifier, not between `\.<' and `\.>', not at a `\.{@@\&}' position +where quantities are being joined together). Therefore we assemble the +output into a buffer before deciding where the line breaks will appear. +However, we make very little attempt to make ``logical'' line breaks that +would enhance the readability of the output; people are supposed to read +the input of \.{TANGLE} or the \TeX ed output of \.{WEAVE}, but not the +tangled-up output. The only concession to readability is that a break after +a semicolon will be made if possible, since commonly used ``pretty +printing'' routines give better results in such cases. + +Second, we want to decimalize non-decimal constants, and to combine integer +quantities that are added or subtracted, because \PASCAL\ doesn't allow +constant expressions in subrange types or in case labels. This means we +want to have a procedure that treats a construction like \.{(E-15+17)} +as equivalent to `\.{(E+2)}', while also leaving `\.{(1E-15+17)}' and +`\.{(E-15+17*y)}' untouched. Consider also `\.{-15+17.5}' versus +`\.{-15+17..5}'. We shall not combine integers preceding or following +\.*, \./, \.{div}, \.{mod}, or \.{@@\&}. Note that if |y| has been defined +to equal $-2$, we must expand `\.{x*y}' into `\.{x*(-2)}'; but `\.{x-y}' +can expand into `\.{x+2}' and we can even change `\.{x - y mod z}' to +@^mod@> +`\.{x + 2 mod z}' because \PASCAL\ has a nonstandard \&{mod} operation! + +The following solution to these problems has been adopted: An array +|out_buf| contains characters that have been generated but not yet output, +and there are three pointers into this array. One of these, |out_ptr|, is +the number of characters currently in the buffer, and we will have +|1<=out_ptr<=line_length| most of the time. The second is |break_ptr|, +which is the largest value |<=out_ptr| such that we are definitely entitled +to end a line by outputting the characters |out_buf[1..(break_ptr-1)]|; +we will always have |break_ptr<=line_length|. Finally, |semi_ptr| is either +zero or the largest known value of a legal break after a semicolon or comment +on the current line; we will always have |semi_ptr<=break_ptr|. + +@<Globals...@>= +@!out_buf: array [0..out_buf_size] of ASCII_code; {assembled characters} +@!out_ptr: 0..out_buf_size; {first available place in |out_buf|} +@!break_ptr: 0..out_buf_size; {last breaking place in |out_buf|} +@!semi_ptr: 0..out_buf_size; {last semicolon breaking place in |out_buf|} + +@ Besides having those three pointers, +the output process is in one of several states: + +\yskip\hang |num_or_id| means that the last item in the buffer is a number or +identifier, hence a blank space or line break must be inserted if the next +item is also a number or identifier. + +\yskip\hang |unbreakable| means that the last item in the buffer was followed +by the \.{@@\&} operation that inhibits spaces between it and the next item. + +\yskip\hang |sign| means that the last item in the buffer is to be followed +by \.+ or \.-, depending on whether |out_app| is positive or negative. + +\yskip\hang |sign_val| means that the decimal equivalent of +$\vert|out_val|\vert$ should be appended to the buffer. If |out_val<0|, +or if |out_val=0| and |last_sign<0|, the number should be preceded by a minus +sign. Otherwise it should be preceded by the character |out_sign| unless +|out_sign=0|; the |out_sign| variable is either 0 or \.{"\ "} or \.{"+"}. + +\yskip\hang |sign_val_sign| is like |sign_val|, but also append \.+ or \.- +afterwards, depending on whether |out_app| is positive or negative. + +\yskip\hang |sign_val_val| is like |sign_val|, but also append the decimal +equivalent of |out_app| including its sign, using |last_sign| in case +|out_app=0|. + +\yskip\hang |misc| means none of the above. + +\yskip\noindent +For example, the output buffer and output state run through the following +sequence as we generate characters from `\.{(x-15+19-2)}': +$$\vbox{\halign{$\hfil#\hfil$\quad&#\hfil&\quad\hfil#\hfil&\quad +\hfil#\hfil&\quad\hfil#\hfil&\quad\hfil#\hfil\quad&\hfil#\hfil\cr +output&|out_buf|&|out_state|&|out_sign|&|out_val|&|out_app|&|last_sign|\cr +\noalign{\vskip 3pt} +(&\.(&|misc|\cr +x&\.{(x}&|num_or_id|\cr +-&\.{(x}&|sign|&&&$-1$&$-1$\cr +15&\.{(x}&|sign_val|&\.{"+"}&$-15$&&$-15$\cr ++&\.{(x}&|sign_val_sign|&\.{"+"}&$-15$&$+1$&$+1$\cr +19&\.{(x}&|sign_val_val|&\.{"+"}&$-15$&$+19$&$+1$\cr +-&\.{(x}&|sign_val_sign|&\.{"+"}&$+4$&$-1$&$-1$\cr +2&\.{(x}&|sign_val_val|&\.{"+"}&$+4$&$-2$&$-2$\cr +)&\.{(x+2)}&|misc|\cr}}$$ +At each stage we have put as much into the buffer as possible without +knowing what is coming next. Examples like `\.{x-0.1}' indicate why +|last_sign| is needed to associate the proper sign with an output of zero. + +In states |num_or_id|, |unbreakable|, and |misc| the last item in the buffer +lies between |break_ptr| and |out_ptr-1|, inclusive; in the other states we +have |break_ptr=out_ptr|. + +The numeric values assigned to |num_or_id|, etc., have been chosen to +shorten some of the program logic; for example, the program makes use of +the fact that |sign+2=sign_val_sign|. + +@d misc=0 {state associated with special characters} +@d num_or_id=1 {state associated with numbers and identifiers} +@d sign=2 {state associated with pending \.+ or \.-} +@d sign_val=num_or_id+2 {state associated with pending sign and value} +@d sign_val_sign=sign+2 {|sign_val| followed by another pending sign} +@d sign_val_val=sign_val+2 {|sign_val| followed by another pending value} +@d unbreakable=sign_val_val+1 {state associated with \.{@@\&}} + +@<Globals...@>= +@!out_state:eight_bits; {current status of partial output} +@!out_val,@!out_app:integer; {pending values} +@!out_sign:ASCII_code; {sign to use if appending |out_val>=0|} +@!last_sign:-1..+1; {sign to use if appending a zero} + +@ During the output process, |line| will equal the number of the next line +to be output. + +@<Initialize the output buffer@>= +out_state:=misc; out_ptr:=0; break_ptr:=0; semi_ptr:=0; out_buf[0]:=0; line:=1; + +@ Here is a routine that is invoked when |out_ptr>line_length| +or when it is time to flush out the final line. The |flush_buffer| procedure +often writes out the line up to the current |break_ptr| position, then moves the +remaining information to the front of |out_buf|. However, it prefers to +write only up to |semi_ptr|, if the residual line won't be too long. + +@d check_break==if out_ptr>line_length then flush_buffer + +@p procedure flush_buffer; {writes one line to output file} +var k:0..out_buf_size; {index into |out_buf|} +@!b:0..out_buf_size; {value of |break_ptr| upon entry} +begin b:=break_ptr; +if (semi_ptr<>0)and(out_ptr-semi_ptr<=line_length) then break_ptr:=semi_ptr; +for k:=1 to break_ptr do write(Pascal_file,xchr[out_buf[k-1]]); +write_ln(Pascal_file); incr(line); +if line mod 100 = 0 then + begin print('.'); + if line mod 500 = 0 then print(line:1); + update_terminal; {progress report} + end; +if break_ptr<out_ptr then + begin if out_buf[break_ptr]=" " then + begin incr(break_ptr); {drop space at break} + if break_ptr>b then b:=break_ptr; + end; + for k:=break_ptr to out_ptr-1 do out_buf[k-break_ptr]:=out_buf[k]; + end; +out_ptr:=out_ptr-break_ptr; break_ptr:=b-break_ptr; semi_ptr:=0; +if out_ptr>line_length then + begin err_print('! Long line must be truncated'); out_ptr:=line_length; +@.Long line must be truncated@> + end; +end; + +@ @<Empty the last line from the buffer@>= +break_ptr:=out_ptr; semi_ptr:=0; flush_buffer; +if brace_level<>0 then + err_print('! Program ended at brace level ',brace_level:1); +@.Program ended at brace level n@> + +@ Another simple and useful routine appends the decimal equivalent of +a nonnegative integer to the output buffer. + +@d app(#)==begin out_buf[out_ptr]:=#; incr(out_ptr); {append a single character} + end + +@p procedure app_val(@!v:integer); {puts |v| into buffer, assumes |v>=0|} +var k:0..out_buf_size; {index into |out_buf|} +begin k:=out_buf_size; {first we put the digits at the very end of |out_buf|} +repeat out_buf[k]:=v mod 10; v:=v div 10; decr(k); +until v=0; +repeat incr(k); app(out_buf[k]+"0"); +until k=out_buf_size; {then we append them, most significant first} +end; + +@ The output states are kept up to date by the output routines, which are +called |send_out|, |send_val|, and |send_sign|. The |send_out| procedure +has two parameters: |t| tells the type of information being sent and +|v| contains the information proper. Some information may also be passed +in the array |out_contrib|. + +\yskip\hang If |t=misc| then |v| is a character to be output. + +\hang If |t=str| then |v| is the length of a string or something like `\.{<>}' +in |out_contrib|. + +\hang If |t=ident| then |v| is the length of an identifier in |out_contrib|. + +\hang If |t=frac| then |v| is the length of a fraction and/or exponent in +|out_contrib|. + +@d str=1 {|send_out| code for a string} +@d ident=2 {|send_out| code for an identifier} +@d frac=3 {|send_out| code for a fraction} + +@<Glob...@>= +@!out_contrib:array[1..line_length] of ASCII_code; {a contribution to |out_buf|} + +@ A slightly subtle point in the following code is that the user may ask +for a |join| operation (i.e., \.{@@\&}) following whatever is being sent +out. We will see later that |join| is implemented in part by calling +|send_out(frac,0)|. + +@p procedure send_out(@!t:eight_bits; @!v:sixteen_bits); + {outputs |v| of type |t|} +label restart; +var k: 0..line_length; {index into |out_contrib|} +begin @<Get the buffer ready for appending the new information@>; +if t<>misc then for k:=1 to v do app(out_contrib[k]) +else app(v); +check_break; +if (t=misc)and((v=";")or(v="}")) then + begin semi_ptr:=out_ptr; break_ptr:=out_ptr; + end; +if t>=ident then out_state:=num_or_id {|t=ident| or |frac|} +else out_state:=misc {|t=str| or |misc|} +end; + +@ Here is where the buffer states for signs and values collapse into simpler +states, because we are about to append something that doesn't combine with +the previous integer constants. + +We use an ASCII-code trick: Since |","-1="+"| and |","+1="-"|, we have +|","-c=@t sign of $c$@>|, when $\vert c\vert=1$. + +@<Get the buffer ready...@>= +restart: case out_state of +num_or_id: if t<>frac then + begin break_ptr:=out_ptr; + if t=ident then app(" "); + end; +sign: begin app(","-out_app); check_break; break_ptr:=out_ptr; + end; +sign_val,sign_val_sign: begin @<Append \(|out_val| to buffer@>; + out_state:=out_state-2; goto restart; + end; +sign_val_val: @<Reduce |sign_val_val| to |sign_val| and |goto restart|@>; +misc: if t<>frac then break_ptr:=out_ptr;@/ +othercases do_nothing {this is for |unbreakable| state} +endcases + +@ @<Append \(|out_val|...@>= +if (out_val<0)or((out_val=0)and(last_sign<0)) then app("-") +else if out_sign>0 then app(out_sign); +app_val(abs(out_val)); check_break; + +@ @<Reduce |sign_val_val|...@>= +begin if (t=frac)or(@<Contribution is \.* or \./ or \.{DIV} or \.{MOD}@>) then + begin @<Append \(|out_val| to buffer@>; + out_sign:="+"; out_val:=out_app; + end +else out_val:=out_val+out_app; +out_state:=sign_val; goto restart; +end + +@ @<Contribution is \.*...@>= +((t=ident)and(v=3)and@| + (((out_contrib[1]="D")and(out_contrib[2]="I")and(out_contrib[3]="V")) or@| + ((out_contrib[1]="M")and(out_contrib[2]="O")and(out_contrib[3]="D")) ))or@| +@^uppercase@> + ((t=misc)and((v="*")or(v="/"))) + +@ The following routine is called with $v=\pm1$ when a plus or minus sign is +appended to the output. It extends \PASCAL\ to allow repeated signs +(e.g., `\.{--}' is equivalent to `\.+'), rather than to give an error message. +The signs following `\.E' in real constants are treated as part of a fraction, +so they are not seen by this routine. + +@p procedure send_sign(@!v:integer); +begin case out_state of +sign, sign_val_sign: out_app:=out_app*v; +sign_val:begin out_app:=v; out_state:=sign_val_sign; + end; +sign_val_val: begin out_val:=out_val+out_app; out_app:=v; + out_state:=sign_val_sign; + end; +othercases begin break_ptr:=out_ptr; out_app:=v; out_state:=sign; + end +endcases;@/ +last_sign:=out_app; +end; + +@ When a (signed) integer value is to be output, we call |send_val|. + +@d bad_case=666 {this is a label used below} + +@p procedure send_val(@!v:integer); {output the (signed) value |v|} +label bad_case, {go here if we can't keep |v| in the output state} + exit; +begin case out_state of +num_or_id: begin @<If previous output was \.{DIV} or \.{MOD}, |goto bad_case|@>; + out_sign:=" "; out_state:=sign_val; out_val:=v; break_ptr:=out_ptr; + last_sign:=+1; + end; +misc: begin @<If previous output was \.* or \./, |goto bad_case|@>; + out_sign:=0; out_state:=sign_val; out_val:=v; break_ptr:=out_ptr; + last_sign:=+1; + end; +@t\4@>@<Handle cases of |send_val| when |out_state| contains a sign@>@; +othercases goto bad_case +endcases;@/ +return; +bad_case: @<Append the decimal value of |v|, with parentheses if negative@>; +exit: end; + +@ @<Handle cases of |send_val|...@>= +sign: begin out_sign:="+"; out_state:=sign_val; out_val:=out_app*v; + end; +sign_val: begin out_state:=sign_val_val; out_app:=v; + err_print('! Two numbers occurred without a sign between them'); + end; +sign_val_sign: begin out_state:=sign_val_val; out_app:=out_app*v; + end; +sign_val_val: begin out_val:=out_val+out_app; out_app:=v; + err_print('! Two numbers occurred without a sign between them'); +@.Two numbers occurred...@> + end; + +@ @<If previous output was \.*...@>= +if (out_ptr=break_ptr+1)and((out_buf[break_ptr]="*")or(out_buf[break_ptr]="/")) + then goto bad_case + +@ @<If previous output was \.{DIV}...@>= +if (out_ptr=break_ptr+3)or + ((out_ptr=break_ptr+4)and(out_buf[break_ptr]=" ")) then +@^uppercase@> + if ((out_buf[out_ptr-3]="D")and(out_buf[out_ptr-2]="I")and + (out_buf[out_ptr-1]="V"))or @/ + ((out_buf[out_ptr-3]="M")and(out_buf[out_ptr-2]="O")and + (out_buf[out_ptr-1]="D")) then@/ goto bad_case + +@ @<Append the decimal value...@>= +if v>=0 then + begin if out_state=num_or_id then + begin break_ptr:=out_ptr; app(" "); + end; + app_val(v); check_break; out_state:=num_or_id; + end +else begin app("("); app("-"); app_val(-v); app(")"); check_break; + out_state:=misc; + end + +@* The big output switch. +To complete the output process, we need a routine that takes the results +of |get_output| and feeds them to |send_out|, |send_val|, or |send_sign|. +This procedure `|send_the_output|' will be invoked just once, as follows: + +@<Phase II: Output the contents of the compressed tables@>= +if text_link[0]=0 then + begin print_nl('! No output was specified.'); mark_harmless; +@.No output was specified@> + end +else begin print_nl('Writing the output file'); update_terminal;@/ + @<Initialize the output stacks@>; + @<Initialize the output buffer@>; + send_the_output;@/ + @<Empty the last line...@>; + print_nl('Done.'); + end + +@ A many-way switch is used to send the output: + +@d get_fraction=2 {this label is used below} + +@p procedure send_the_output; +label get_fraction, {go here to finish scanning a real constant} + reswitch, continue; +var cur_char:eight_bits; {the latest character received} + @!k:0..line_length; {index into |out_contrib|} + @!j:0..max_bytes; {index into |byte_mem|} + @!w:0..ww-1; {segment of |byte_mem|} + @!n:integer; {number being scanned} +begin while stack_ptr>0 do + begin cur_char:=get_output; + reswitch: case cur_char of + 0: do_nothing; {this case might arise if output ends unexpectedly} + @t\4@>@<Cases related to identifiers@>@; + @t\4@>@<Cases related to constants, possibly leading to + |get_fraction| or |reswitch|@>@; + "+","-": send_sign(","-cur_char); + @t\4@>@<Cases like \.{<>} and \.{:=}@>@; + "'": @<Send a string, |goto reswitch|@>; + @<Other printable characters@>: send_out(misc,cur_char); + @t\4@>@<Cases involving \.{@@\{} and \.{@@\}}@>@; + join: begin send_out(frac,0); out_state:=unbreakable; + end; + verbatim: @<Send verbatim string@>; + force_line: @<Force a line break@>; + othercases err_print('! Can''t output ASCII code ',cur_char:1) +@.Can't output ASCII code n@> + endcases;@/ + goto continue; + get_fraction: @<Special code to finish real constants@>; + continue: end; +end; + +@ @<Cases like \.{<>}...@>= +and_sign: begin out_contrib[1]:="A"; out_contrib[2]:="N"; out_contrib[3]:="D"; +@^uppercase@> + send_out(ident,3); + end; +not_sign: begin out_contrib[1]:="N"; out_contrib[2]:="O"; out_contrib[3]:="T"; + send_out(ident,3); + end; +set_element_sign: begin out_contrib[1]:="I"; out_contrib[2]:="N"; + send_out(ident,2); + end; +or_sign: begin out_contrib[1]:="O"; out_contrib[2]:="R"; send_out(ident,2); + end; +left_arrow: begin out_contrib[1]:=":"; out_contrib[2]:="="; send_out(str,2); + end; +not_equal: begin out_contrib[1]:="<"; out_contrib[2]:=">"; send_out(str,2); + end; +less_or_equal: begin out_contrib[1]:="<"; out_contrib[2]:="="; send_out(str,2); + end; +greater_or_equal: begin out_contrib[1]:=">"; out_contrib[2]:="="; + send_out(str,2); + end; +equivalence_sign: begin out_contrib[1]:="="; out_contrib[2]:="="; + send_out(str,2); + end; +double_dot: begin out_contrib[1]:="."; out_contrib[2]:="."; send_out(str,2); + end; + +@ Please don't ask how all of the following characters can actually get +through \.{TANGLE} outside of strings. It seems that |""""| and |"{"| +cannot actually occur at this point of the program, but they have +been included just in case \.{TANGLE} changes. + +If \.{TANGLE} is producing code for a \PASCAL\ compiler that uses `\.{(.}' +and `\.{.)}' instead of square brackets (e.g., on machines with {\mc EBCDIC} +code), one should remove |"["| and |"]"| from this list and put them into +the preceding module in the appropriate way. Similarly, some compilers +want `\.\^' to be converted to `\.{@@}'. +@^system dependencies@>@^EBCDIC@> + +@<Other printable characters@>= +"!","""","#","$","%","&","(",")","*",",","/",":",";","<","=",">","?", +"@@","[","\","]","^","_","`","{","|" + +@ Single-character identifiers represent themselves, while longer ones +appear in |byte_mem|. All must be converted to uppercase, +with underlines removed. Extremely long identifiers must be chopped. + +(Some \PASCAL\ compilers work with lowercase letters instead of +uppercase. If this module of \.{TANGLE} is changed, it's also necessary +to change from uppercase to lowercase in the modules that are +listed in the index under ``uppercase''.) +@^system dependencies@> +@^uppercase@> + +@d up_to(#)==#-24,#-23,#-22,#-21,#-20,#-19,#-18,#-17,#-16,#-15,#-14, + #-13,#-12,#-11,#-10,#-9,#-8,#-7,#-6,#-5,#-4,#-3,#-2,#-1,# + +@<Cases related to identifiers@>= +"A",up_to("Z"): begin out_contrib[1]:=cur_char; send_out(ident,1); + end; +"a",up_to("z"): begin out_contrib[1]:=cur_char-@'40; send_out(ident,1); + end; +identifier: begin k:=0; j:=byte_start[cur_val]; w:=cur_val mod ww; + while (k<max_id_length)and(j<byte_start[cur_val+ww]) do + begin incr(k); out_contrib[k]:=byte_mem[w,j]; incr(j); + if out_contrib[k]>="a" then out_contrib[k]:=out_contrib[k]-@'40 + else if out_contrib[k]="_" then decr(k); + end; + send_out(ident,k); + end; + +@ After sending a string, we need to look ahead at the next character, in order +to see if there were two consecutive single-quote marks. Afterwards we go to +|reswitch| to process the next character. + +@<Send a string...@>= +begin k:=1; out_contrib[1]:="'"; +repeat if k<line_length then incr(k); +out_contrib[k]:=get_output; +until (out_contrib[k]="'")or(stack_ptr=0); +if k=line_length then err_print('! String too long'); +@.String too long@> +send_out(str,k); cur_char:=get_output; +if cur_char="'" then out_state:=unbreakable; +goto reswitch; +end + +@ Sending a verbatim string is similar, but we don't have to look ahead. + +@<Send verbatim string@>= +begin k:=0; +repeat if k<line_length then incr(k); +out_contrib[k]:=get_output; +until (out_contrib[k]=verbatim)or(stack_ptr=0); +if k=line_length then err_print('! Verbatim string too long'); +@.Verbatim string too long@> +send_out(str,k-1); +end + +@ In order to encourage portable software, \.{TANGLE} complains +if the constants get dangerously close to the largest value representable +on a 32-bit computer ($2^{31}-1$). + +@d digits=="0","1","2","3","4","5","6","7","8","9" + +@<Cases related to constants...@>= +digits: begin n:=0; + repeat cur_char:=cur_char-"0"; + if n>=@'1463146314 then err_print('! Constant too big') +@.Constant too big@> + else n:=10*n+cur_char; + cur_char:=get_output; + until (cur_char>"9")or(cur_char<"0"); + send_val(n); k:=0; + if cur_char="e" then cur_char:="E"; +@^uppercase@> + if cur_char="E" then goto get_fraction + else goto reswitch; + end; +check_sum: send_val(pool_check_sum); +octal: begin n:=0; cur_char:="0"; + repeat cur_char:=cur_char-"0"; + if n>=@'2000000000 then err_print('! Constant too big') + else n:=8*n+cur_char; + cur_char:=get_output; + until (cur_char>"7")or(cur_char<"0"); + send_val(n); goto reswitch; + end; +hex: begin n:=0; cur_char:="0"; + repeat if cur_char>="A" then cur_char:=cur_char+10-"A" + else cur_char:=cur_char-"0"; + if n>=@"8000000 then err_print('! Constant too big') + else n:=16*n+cur_char; + cur_char:=get_output; + until (cur_char>"F")or(cur_char<"0")or@| + ((cur_char>"9")and(cur_char<"A")); + send_val(n); goto reswitch; + end; +number: send_val(cur_val); +".": begin k:=1; out_contrib[1]:="."; cur_char:=get_output; + if cur_char="." then + begin out_contrib[2]:="."; send_out(str,2); + end + else if (cur_char>="0")and(cur_char<="9") then goto get_fraction + else begin send_out(misc,"."); goto reswitch; + end; + end; + +@ The following code appears at label `|get_fraction|', when we want to +scan to the end of a real constant. The first |k| characters of a fraction +have already been placed in |out_contrib|, and |cur_char| is the next character. + +@<Special code...@>= +repeat if k<line_length then incr(k); +out_contrib[k]:=cur_char; cur_char:=get_output; +if (out_contrib[k]="E")and((cur_char="+")or(cur_char="-")) then +@^uppercase@> + begin if k<line_length then incr(k); + out_contrib[k]:=cur_char; cur_char:=get_output; + end +else if cur_char="e" then cur_char:="E"; +until (cur_char<>"E")and((cur_char<"0")or(cur_char>"9")); +if k=line_length then err_print('! Fraction too long'); +@.Fraction too long@> +send_out(frac,k); goto reswitch + +@ Some \PASCAL\ compilers do not recognize comments in braces, so the +comments must be delimited by `\.{(*}' and `\.{*)}'. +@^system dependencies@> +In such cases the statement `|out_contrib[1]:="{"|' that appears here should +be replaced by `\ignorespaces|begin out_contrib[1]:="("; out_contrib[2]:="*"; +incr(k); end|', and a similar change should be made to +`|out_contrib[k]:="}"|'. + +@<Cases involving \.{@@\{} and \.{@@\}}@>= +begin_comment: begin if brace_level=0 then send_out(misc,"{") + else send_out(misc,"["); + incr(brace_level); + end; +end_comment: if brace_level>0 then + begin decr(brace_level); + if brace_level=0 then send_out(misc,"}") + else send_out(misc,"]"); + end + else err_print('! Extra @@}'); +@.Extra \AT!\}@> +module_number: begin k:=2; + if brace_level=0 then out_contrib[1]:="{" + else out_contrib[1]:="["; + if cur_val<0 then + begin out_contrib[k]:=":"; cur_val:=-cur_val; incr(k); + end; + n:=10; + while cur_val>=n do n:=10*n; + repeat n:=n div 10; + out_contrib[k]:="0"+(cur_val div n); cur_val:=cur_val mod n; incr(k); + until n=1; + if out_contrib[2]<>":" then + begin out_contrib[k]:=":"; incr(k); + end; + if brace_level=0 then out_contrib[k]:="}" + else out_contrib[k]:="]"; + send_out(str,k); + end; + +@ @<Force a line break@>= +begin send_out(str,0); {normalize the buffer} +while out_ptr>0 do + begin if out_ptr<=line_length then break_ptr:=out_ptr; + flush_buffer; + end; +out_state:=misc; +end + +@* Introduction to the input phase. +We have now seen that \.{TANGLE} will be able to output the full +\PASCAL\ program, if we can only get that program into the byte memory in +the proper format. The input process is something like the output process +in reverse, since we compress the text as we read it in and we expand it +as we write it out. + +There are three main input routines. The most interesting is the one that gets +the next token of a \PASCAL\ text; the other two are used to scan rapidly past +\TeX\ text in the \.{WEB} source code. One of the latter routines will jump to +the next token that starts with `\.{@@}', and the other skips to the end +of a \PASCAL\ comment. + +@ But first we need to consider the low-level routine |get_line| +that takes care of merging |change_file| into |web_file|. The |get_line| +procedure also updates the line numbers for error messages. + +@<Globals...@>= +@!ii:integer; {general purpose |for| loop variable in the outer block} +@!line:integer; {the number of the current line in the current file} +@!other_line:integer; {the number of the current line in the input file that + is not currently being read} +@!temp_line:integer; {used when interchanging |line| with |other_line|} +@!limit:0..buf_size; {the last character position occupied in the buffer} +@!loc:0..buf_size; {the next character position to be read from the buffer} +@!input_has_ended: boolean; {if |true|, there is no more input} +@!changing: boolean; {if |true|, the current line is from |change_file|} + +@ As we change |changing| from |true| to |false| and back again, we must +remember to swap the values of |line| and |other_line| so that the |err_print| +routine will be sure to report the correct line number. + +@d change_changing== + changing := not changing; + temp_line:=other_line; other_line:=line; line:=temp_line + {|line @t$\null\BA\null$@> other_line|} + +@ When |changing| is |false|, the next line of |change_file| is kept in +|change_buffer[0..change_limit]|, for purposes of comparison with the next +line of |web_file|. After the change file has been completely input, we +set |change_limit:=0|, so that no further matches will be made. + +@<Globals...@>= +@!change_buffer:array[0..buf_size] of ASCII_code; +@!change_limit:0..buf_size; {the last position occupied in |change_buffer|} + +@ Here's a simple function that checks if the two buffers are different. + +@p function lines_dont_match:boolean; +label exit; +var k:0..buf_size; {index into the buffers} +begin lines_dont_match:=true; +if change_limit<>limit then return; +if limit>0 then + for k:=0 to limit-1 do if change_buffer[k]<>buffer[k] then return; +lines_dont_match:=false; +exit: end; + +@ Procedure |prime_the_change_buffer| sets |change_buffer| in preparation +for the next matching operation. Since blank lines in the change file are +not used for matching, we have |(change_limit=0)and not changing| if and +only if the change file is exhausted. This procedure is called only +when |changing| is true; hence error messages will be reported correctly. + +@p procedure prime_the_change_buffer; +label continue, done, exit; +var k:0..buf_size; {index into the buffers} +begin change_limit:=0; {this value will be used if the change file ends} +@<Skip over comment lines in the change file; |return| if end of file@>; +@<Skip to the next nonblank line; |return| if end of file@>; +@<Move |buffer| and |limit| to |change_buffer| and |change_limit|@>; +exit: end; + +@ While looking for a line that begins with \.{@@x} in the change file, +we allow lines that begin with \.{@@}, as long as they don't begin with +\.{@@y} or \.{@@z} (which would probably indicate that the change file is +fouled up). + +@<Skip over comment lines in the change file...@>= +loop@+ begin incr(line); + if not input_ln(change_file) then return; + if limit<2 then goto continue; + if buffer[0]<>"@@" then goto continue; + if (buffer[1]>="X")and(buffer[1]<="Z") then + buffer[1]:=buffer[1]+"z"-"Z"; {lowercasify} + if buffer[1]="x" then goto done; + if (buffer[1]="y")or(buffer[1]="z") then + begin loc:=2; err_print('! Where is the matching @@x?'); +@.Where is the match...@> + end; +continue: end; +done: + +@ Here we are looking at lines following the \.{@@x}. + +@<Skip to the next nonblank line...@>= +repeat incr(line); + if not input_ln(change_file) then + begin err_print('! Change file ended after @@x'); +@.Change file ended...@> + return; + end; +until limit>0; + +@ @<Move |buffer| and |limit| to |change_buffer| and |change_limit|@>= +begin change_limit:=limit; +if limit>0 then for k:=0 to limit-1 do change_buffer[k]:=buffer[k]; +end + +@ The following procedure is used to see if the next change entry should +go into effect; it is called only when |changing| is false. +The idea is to test whether or not the current +contents of |buffer| matches the current contents of |change_buffer|. +If not, there's nothing more to do; but if so, a change is called for: +All of the text down to the \.{@@y} is supposed to match. An error +message is issued if any discrepancy is found. Then the procedure +prepares to read the next line from |change_file|. + +@p procedure check_change; {switches to |change_file| if the buffers match} +label exit; +var n:integer; {the number of discrepancies found} +@!k:0..buf_size; {index into the buffers} +begin if lines_dont_match then return; +n:=0; +loop@+ begin change_changing; {now it's |true|} + incr(line); + if not input_ln(change_file) then + begin err_print('! Change file ended before @@y'); +@.Change file ended...@> + change_limit:=0; change_changing; {|false| again} + return; + end; + @<If the current line starts with \.{@@y}, + report any discrepancies and |return|@>; + @<Move |buffer| and |limit|...@>; + change_changing; {now it's |false|} + incr(line); + if not input_ln(web_file) then + begin err_print('! WEB file ended during a change'); +@.WEB file ended...@> + input_has_ended:=true; return; + end; + if lines_dont_match then incr(n); + end; +exit: end; + +@ @<If the current line starts with \.{@@y}...@>= +if limit>1 then if buffer[0]="@@" then + begin if (buffer[1]>="X")and(buffer[1]<="Z") then + buffer[1]:=buffer[1]+"z"-"Z"; {lowercasify} + if (buffer[1]="x")or(buffer[1]="z") then + begin loc:=2; err_print('! Where is the matching @@y?'); +@.Where is the match...@> + end + else if buffer[1]="y" then + begin if n>0 then + begin loc:=2; err_print('! Hmm... ',n:1, + ' of the preceding lines failed to match'); +@.Hmm... n of the preceding...@> + end; + return; + end; + end + +@ @<Initialize the input system@>= +open_input; line:=0; other_line:=0;@/ +changing:=true; prime_the_change_buffer; change_changing;@/ +limit:=0; loc:=1; buffer[0]:=" "; input_has_ended:=false; + +@ The |get_line| procedure is called when |loc>limit|; it puts the next +line of merged input into the buffer and updates the other variables +appropriately. A space is placed at the right end of the line. + +@p procedure get_line; {inputs the next line} +label restart; +begin restart: if changing then + @<Read from |change_file| and maybe turn off |changing|@>; +if not changing then + begin @<Read from |web_file| and maybe turn on |changing|@>; + if changing then goto restart; + end; +loc:=0; buffer[limit]:=" "; +end; + +@ @<Read from |web_file|...@>= +begin incr(line); +if not input_ln(web_file) then input_has_ended:=true +else if limit=change_limit then + if buffer[0]=change_buffer[0] then + if change_limit>0 then check_change; +end + +@ @<Read from |change_file|...@>= +begin incr(line); +if not input_ln(change_file) then + begin err_print('! Change file ended without @@z'); +@.Change file ended...@> + buffer[0]:="@@"; buffer[1]:="z"; limit:=2; + end; +if limit>1 then {check if the change has ended} + if buffer[0]="@@" then + begin if (buffer[1]>="X")and(buffer[1]<="Z") then + buffer[1]:=buffer[1]+"z"-"Z"; {lowercasify} + if (buffer[1]="x")or(buffer[1]="y") then + begin loc:=2; err_print('! Where is the matching @@z?'); +@.Where is the match...@> + end + else if buffer[1]="z" then + begin prime_the_change_buffer; change_changing; + end; + end; +end + +@ At the end of the program, we will tell the user if the change file +had a line that didn't match any relevant line in |web_file|. + +@<Check that all changes have been read@>= +if change_limit<>0 then {|changing| is false} + begin for ii:=0 to change_limit do buffer[ii]:=change_buffer[ii]; + limit:=change_limit; changing:=true; line:=other_line; loc:=change_limit; + err_print('! Change file entry did not match'); +@.Change file entry did not match@> + end + +@ Important milestones are reached during the input phase when certain +control codes are sensed. + +Control codes in \.{WEB} begin with `\.{@@}', and the next character +identifies the code. Some of these are of interest only to \.{WEAVE}, +so \.{TANGLE} ignores them; the others are converted by \.{TANGLE} into +internal code numbers by the |control_code| function below. The ordering +of these internal code numbers has been chosen to simplify the program logic; +larger numbers are given to the control codes that denote more significant +milestones. + +@d ignore=0 {control code of no interest to \.{TANGLE}} +@d control_text=@'203 {control code for `\.{@@t}', `\.{@@\^}', etc.} +@d format=@'204 {control code for `\.{@@f}'} +@d definition=@'205 {control code for `\.{@@d}'} +@d begin_Pascal=@'206 {control code for `\.{@@p}'} +@d module_name=@'207 {control code for `\.{@@<}'} +@d new_module=@'210 {control code for `\.{@@\ }' and `\.{@@*}'} + +@p function control_code(@!c:ASCII_code):eight_bits; {convert |c| after \.{@@}} +begin case c of +"@@": control_code:="@@"; {`quoted' at sign} +"'": control_code:=octal; {precedes octal constant} +"""": control_code:=hex; {precedes hexadecimal constant} +"$": control_code:=check_sum; {string pool check sum} +" ",tab_mark: control_code:=new_module; {beginning of a new module} +"*": begin print('*',module_count+1:1); + update_terminal; {print a progress report} + control_code:=new_module; {beginning of a new module} + end; +"D","d": control_code:=definition; {macro definition} +"F","f": control_code:=format; {format definition} +"{": control_code:=begin_comment; {begin-comment delimiter} +"}": control_code:=end_comment; {end-comment delimiter} +"P","p": control_code:=begin_Pascal; {\PASCAL\ text in unnamed module} +"T","t","^",".",":": control_code:=control_text; {control text to be ignored} +"&": control_code:=join; {concatenate two tokens} +"<": control_code:=module_name; {beginning of a module name} +"=": control_code:=verbatim; {beginning of \PASCAL\ verbatim mode} +"\": control_code:=force_line; {force a new line in \PASCAL\ output} +othercases control_code:=ignore {ignore all other cases} +endcases; +end; + +@ The |skip_ahead| procedure reads through the input at fairly high speed +until finding the next non-ignorable control code, which it returns. + +@p function skip_ahead:eight_bits; {skip to next control code} +label done; +var c:eight_bits; {control code found} +begin loop begin if loc>limit then + begin get_line; + if input_has_ended then + begin c:=new_module; goto done; + end; + end; + buffer[limit+1]:="@@"; + while buffer[loc]<>"@@" do incr(loc); + if loc<=limit then + begin loc:=loc+2; c:=control_code(buffer[loc-1]); + if (c<>ignore)or(buffer[loc-1]=">") then goto done; + end; + end; +done: skip_ahead:=c; +end; + +@ The |skip_comment| procedure reads through the input at somewhat high speed +until finding the first unmatched right brace or until coming to the end +of the file. It ignores characters following `\.\\' characters, since all +braces that aren't nested are supposed to be hidden in that way. For +example, consider the process of skipping the first comment below, +where the string containing the right brace has been typed as \.{\`\\.\\\}\'} +in the \.{WEB} file. + +@p procedure skip_comment; {skips to next unmatched `\.\}'} +label exit; +var bal:eight_bits; {excess of left braces} +@!c:ASCII_code; {current character} +begin bal:=0; +loop@+ begin if loc>limit then + begin get_line; + if input_has_ended then + begin err_print('! Input ended in mid-comment'); +@.Input ended in mid-comment@> + return; + end; + end; + c:=buffer[loc]; incr(loc); + @<Do special things when |c="@@", "\", "{", "}"|; |return| at end@>; + end; +exit:end; + +@ @<Do special things when |c="@@"...@>= +if c="@@" then + begin c:=buffer[loc]; + if (c<>" ")and(c<>tab_mark)and(c<>"*")and(c<>"z")and(c<>"Z") then incr(loc) + else begin err_print('! Section ended in mid-comment'); +@.Section ended in mid-comment@> + decr(loc); return; + end + end +else if (c="\")and(buffer[loc]<>"@@") then incr(loc) +else if c="{" then incr(bal) +else if c="}" then + begin if bal=0 then return; + decr(bal); + end + +@* Inputting the next token. +As stated above, \.{TANGLE}'s most interesting input procedure is the +|get_next| routine that inputs the next token. However, the procedure +isn't especially difficult. + +In most cases the tokens output by |get_next| have the form used in +replacement texts, except that two-byte tokens are not produced. +An identifier that isn't one letter long is represented by the +output `|identifier|', and in such a case the global variables +|id_first| and |id_loc| will have been set to the appropriate values +needed by the |id_lookup| procedure. A string that begins with a +double-quote is also considered an |identifier|, and in such a case +the global variable |double_chars| will also have been set appropriately. +Control codes produce the corresponding output of the |control_code| +function above; and if that code is |module_name|, the value of |cur_module| +will point to the |byte_start| entry for that module name. + +Another global variable, |scanning_hex|, is |true| during the time that +the letters \.A through \.F should be treated as if they were digits. + +@<Globals...@>= +@!cur_module: name_pointer; {name of module just scanned} +@!scanning_hex: boolean; {are we scanning a hexadecimal constant?} + +@ @<Set init...@>= +scanning_hex:=false; + +@ At the top level, |get_next| is a multi-way switch based on the next +character in the input buffer. A |new_module| code is inserted at the +very end of the input file. + +@p function get_next:eight_bits; {produces the next input token} +label restart,done,found; +var c:eight_bits; {the current character} +@!d:eight_bits; {the next character} +@!j,@!k:0..longest_name; {indices into |mod_text|} +begin restart: if loc>limit then + begin get_line; + if input_has_ended then + begin c:=new_module; goto found; + end; + end; +c:=buffer[loc]; incr(loc); +if scanning_hex then @<Go to |found| if |c| is a hexadecimal digit, + otherwise set |scanning_hex:=false|@>; +case c of +"A",up_to("Z"),"a",up_to("z"): @<Get an identifier@>; +"""": @<Get a preprocessed string@>; +"@@": @<Get control code and possible module name@>; +@t\4@>@<Compress two-symbol combinations like `\.{:=}'@>@; +" ",tab_mark: goto restart; {ignore spaces and tabs} +"{": begin skip_comment; goto restart; + end; +"}": begin err_print('! Extra }'); goto restart; +@.Extra \}@> + end; +othercases if c>=128 then goto restart {ignore nonstandard characters} + else do_nothing +endcases; +found:@!debug if trouble_shooting then debug_help;@;@+gubed@/ +get_next:=c; +end; + +@ @<Go to |found| if |c| is a hexadecimal digit...@>= +if ((c>="0")and(c<="9"))or((c>="A")and(c<="F")) then goto found +else scanning_hex:=false + +@ Note that the following code substitutes \.{@@\{} and \.{@@\}} for the +respective combinations `\.{(*}' and `\.{*)}'. Explicit braces should be used +for \TeX\ comments in \PASCAL\ text. + +@d compress(#)==begin if loc<=limit then begin c:=#; incr(loc); end; end + +@<Compress two-symbol...@>= +".": if buffer[loc]="." then compress(double_dot) + else if buffer[loc]=")" then compress("]"); +":": if buffer[loc]="=" then compress(left_arrow); +"=": if buffer[loc]="=" then compress(equivalence_sign); +">": if buffer[loc]="=" then compress(greater_or_equal); +"<": if buffer[loc]="=" then compress(less_or_equal) + else if buffer[loc]=">" then compress(not_equal); +"(": if buffer[loc]="*" then compress(begin_comment) + else if buffer[loc]="." then compress("["); +"*": if buffer[loc]=")" then compress(end_comment); + +@ We have to look at the preceding character to make sure this isn't part +of a real constant, before trying to find an identifier starting with +`\.e' or `\.E'. + +@<Get an identifier@>= +begin if ((c="e")or(c="E"))and(loc>1) then + if (buffer[loc-2]<="9")and(buffer[loc-2]>="0") then c:=0; +if c<>0 then + begin decr(loc); id_first:=loc; + repeat incr(loc); d:=buffer[loc]; + until ((d<"0")or((d>"9")and(d<"A"))or((d>"Z")and(d<"a"))or(d>"z")) and + (d<>"_"); + if loc>id_first+1 then + begin c:=identifier; id_loc:=loc; + end; + end +else c:="E"; {exponent of a real constant} +end + +@ A string that starts and ends with double-quote marks is converted into +an identifier that behaves like a numeric macro by means of the following +piece of the program. +@^preprocessed strings@> + +@<Get a preprocessed string@>= +begin double_chars:=0; id_first:=loc-1; +repeat d:=buffer[loc]; incr(loc); + if (d="""")or(d="@@") then + if buffer[loc]=d then + begin incr(loc); d:=0; incr(double_chars); + end + else begin if d="@@" then err_print('! Double @@ sign missing') +@.Double \AT! sign missing@> + end + else if loc>limit then + begin err_print('! String constant didn''t end'); d:=""""; +@.String constant didn't end@> + end; +until d=""""; +id_loc:=loc-1; c:=identifier; +end + +@ After an \.{@@} sign has been scanned, the next character tells us +whether there is more work to do. + +@<Get control code and possible module name@>= +begin c:=control_code(buffer[loc]); incr(loc); +if c=ignore then goto restart +else if c=hex then scanning_hex:=true +else if c=module_name then + @<Scan the \(module name and make |cur_module| point to it@> +else if c=control_text then + begin repeat c:=skip_ahead; + until c<>"@@"; + if buffer[loc-1]<>">" then + err_print('! Improper @@ within control text'); +@.Improper \AT! within control text@> + goto restart; + end; +end + +@ @<Scan the \(module name...@>= +begin @<Put module name into |mod_text[1..k]|@>; +if k>3 then + begin if (mod_text[k]=".")and(mod_text[k-1]=".")and(mod_text[k-2]=".") then + cur_module:=prefix_lookup(k-3) + else cur_module:=mod_lookup(k); + end +else cur_module:=mod_lookup(k); +end + +@ Module names are placed into the |mod_text| array with consecutive spaces, +tabs, and carriage-returns replaced by single spaces. There will be no +spaces at the beginning or the end. (We set |mod_text[0]:=" "| to facilitate +this, since the |mod_lookup| routine uses |mod_text[1]| as the first +character of the name.) + +@<Set init...@>=mod_text[0]:=" "; + +@ @<Put module name...@>= +k:=0; +loop@+ begin if loc>limit then + begin get_line; + if input_has_ended then + begin err_print('! Input ended in section name'); +@.Input ended in section name@> + goto done; + end; + end; + d:=buffer[loc]; + @<If end of name, |goto done|@>; + incr(loc); if k<longest_name-1 then incr(k); + if (d=" ")or(d=tab_mark) then + begin d:=" "; if mod_text[k-1]=" " then decr(k); + end; + mod_text[k]:=d; + end; +done: @<Check for overlong name@>; +if (mod_text[k]=" ")and(k>0) then decr(k); + +@ @<If end of name,...@>= +if d="@@" then + begin d:=buffer[loc+1]; + if d=">" then + begin loc:=loc+2; goto done; + end; + if (d=" ")or(d=tab_mark)or(d="*") then + begin err_print('! Section name didn''t end'); goto done; +@.Section name didn't end@> + end; + incr(k); mod_text[k]:="@@"; incr(loc); {now |d=buffer[loc]| again} + end + +@ @<Check for overlong name@>= +if k>=longest_name-2 then + begin print_nl('! Section name too long: '); +@.Section name too long@> + for j:=1 to 25 do print(xchr[mod_text[j]]); + print('...'); mark_harmless; + end + +@* Scanning a numeric definition. +When \.{TANGLE} looks at the \PASCAL\ text following the `\.=' of a numeric +macro definition, it calls on the precedure |scan_numeric(p)|, where |p| +points to the name that is to be defined. This procedure evaluates the +right-hand side, which must consist entirely of integer constants and +defined numeric macros connected with \.+ and \.- signs (no parentheses). +It also sets the global variable |next_control| to the control code that +terminated this definition. + +A definition ends with the control codes |definition|, |format|, |module_name|, +|begin_Pascal|, and |new_module|, all of which can be recognized +by the fact that they are the largest values |get_next| can return. + +@d end_of_definition(#)==(#>=format) + {is |#| a control code ending a definition?} + +@<Global...@>= +@!next_control:eight_bits; {control code waiting to be acted upon} + +@ The evaluation of a numeric expression makes use of two variables called the +|accumulator| and the |next_sign|. At the beginning, |accumulator| is zero and +|next_sign| is $+1$. When a \.+ or \.- is scanned, |next_sign| is multiplied +by the value of that sign. When a numeric value is scanned, it is multiplied by +|next_sign| and added to the |accumulator|, then |next_sign| is reset to $+1$. + +@d add_in(#)==begin accumulator:=accumulator+next_sign*(#); next_sign:=+1; + end + +@p procedure scan_numeric(@!p:name_pointer); {defines numeric macros} +label reswitch, done; +var accumulator:integer; {accumulates sums} +@!next_sign:-1..+1; {sign to attach to next value} +@!q:name_pointer; {points to identifiers being evaluated} +@!val:integer; {constants being evaluated} +begin @<Set \(|accumulator| to the value of the right-hand side@>; +if abs(accumulator)>=@'100000 then + begin err_print('! Value too big: ',accumulator:1); accumulator:=0; +@.Value too big@> + end; +equiv[p]:=accumulator+@'100000; {name |p| now is defined to equal |accumulator|} +end; + +@ @<Set \(|accumulator| to the value of the right-hand side@>= +accumulator:=0; next_sign:=+1; +loop@+ begin next_control:=get_next; + reswitch: case next_control of + digits: begin @<Set |val| to value of decimal constant, and + set |next_control| to the following token@>; + add_in(val); goto reswitch; + end; + octal: begin @<Set |val| to value of octal constant, and + set |next_control| to the following token@>; + add_in(val); goto reswitch; + end; + hex: begin @<Set |val| to value of hexadecimal constant, and + set |next_control| to the following token@>; + add_in(val); goto reswitch; + end; + identifier: begin q:=id_lookup(normal); + if ilk[q]<>numeric then + begin next_control:="*"; goto reswitch; {leads to error} + end; + add_in(equiv[q]-@'100000); + end; + "+": do_nothing; + "-": next_sign:=-next_sign; + format, definition, module_name, begin_Pascal, new_module: goto done; + ";": err_print('! Omit semicolon in numeric definition'); +@.Omit semicolon in numeric def...@> + othercases @<Signal error, flush rest of the definition@> + endcases; + end; +done: + +@ @<Signal error, flush rest...@>= +begin err_print('! Improper numeric definition will be flushed'); +@.Improper numeric definition...@> +repeat next_control:=skip_ahead +until end_of_definition(next_control); +if next_control=module_name then + begin {we want to scan the module name too} + loc:=loc-2; next_control:=get_next; + end; +accumulator:=0; goto done; +end + +@ @<Set |val| to value of decimal...@>= +val:=0; +repeat val:=10*val+next_control-"0"; next_control:=get_next; +until (next_control>"9")or(next_control<"0") + +@ @<Set |val| to value of octal...@>= +val:=0; next_control:="0"; +repeat val:=8*val+next_control-"0"; next_control:=get_next; +until (next_control>"7")or(next_control<"0") + +@ @<Set |val| to value of hex...@>= +val:=0; next_control:="0"; +repeat if next_control>="A" then next_control:=next_control+"0"+10-"A"; +val:=16*val+next_control-"0"; next_control:=get_next; +until (next_control>"F")or(next_control<"0")or@| + ((next_control>"9")and(next_control<"A")) + +@* Scanning a macro definition. +The rules for generating the replacement texts corresponding to simple +macros, parametric macros, and \PASCAL\ texts of a module are almost +identical, so a single procedure is used for all three cases. The +differences are that + +\yskip\item{a)} The sign |#| denotes a parameter only when it appears +outside of strings in a parametric macro; otherwise it stands for the +ASCII character |#|. (This is not used in standard \PASCAL, but some +\PASCAL s allow, for example, `\.{/\#}' after a certain kind of file name.) + +\item{b)}Module names are not allowed in simple macros or parametric macros; +in fact, the appearance of a module name terminates such macros and denotes +the name of the current module. + +\item{c)}The symbols \.{@@d} and \.{@@f} and \.{@@p} are not allowed after +module names, while they terminate macro definitions. + +@ Therefore there is a procedure |scan_repl| whose parameter |t| specifies +either |simple| or |parametric| or |module_name|. After |scan_repl| has +acted, |cur_repl_text| will point to the replacement text just generated, and +|next_control| will contain the control code that terminated the activity. + +@<Globals...@>= +@!cur_repl_text:text_pointer; {replacement text formed by |scan_repl|} + +@ @p procedure scan_repl(@!t:eight_bits); {creates a replacement text} +label continue, done, found, reswitch; +var a:sixteen_bits; {the current token} +@!b:ASCII_code; {a character from the buffer} +@!bal:eight_bits; {left parentheses minus right parentheses} +begin bal:=0; +loop@+ begin continue: a:=get_next; + case a of + "(": incr(bal); + ")": if bal=0 then err_print('! Extra )') +@.Extra )@> + else decr(bal); + "'": @<Copy a string from the buffer to |tok_mem|@>; + "#": if t=parametric then a:=param; + @t\4@>@<In cases that |a| is a non-ASCII token (|identifier|, + |module_name|, etc.), either process it and change |a| to a byte + that should be stored, or |goto continue| if |a| should be ignored, + or |goto done| if |a| signals the end of this replacement text@>@; + othercases do_nothing + endcases;@/ + app_repl(a); {store |a| in |tok_mem|} + end; +done: next_control:=a; +@<Make sure the parentheses balance@>; +if text_ptr>max_texts-zz then overflow('text'); +cur_repl_text:=text_ptr; tok_start[text_ptr+zz]:=tok_ptr[z]; +incr(text_ptr); +if z=zz-1 then z:=0@+else incr(z); +end; + +@ @<Make sure the parentheses balance@>= +if bal>0 then + begin if bal=1 then err_print('! Missing )') + else err_print('! Missing ',bal:1,' )''s'); +@.Missing n )@> + while bal>0 do + begin app_repl(")"); decr(bal); + end; + end + +@ @<In cases that |a| is...@>= +identifier: begin a:=id_lookup(normal); app_repl((a div @'400)+@'200); + a:=a mod @'400; + end; +module_name: if t<>module_name then goto done + else begin app_repl((cur_module div @'400)+@'250); + a:=cur_module mod @'400; + end; +verbatim: @<Copy verbatim string from the buffer to |tok_mem|@>; +definition, format, begin_Pascal: if t<>module_name then goto done + else begin err_print('! @@',xchr[buffer[loc-1]], +@.\AT!p is ignored in Pascal text@> +@.\AT!d is ignored in Pascal text@> +@.\AT!f is ignored in Pascal text@> + ' is ignored in Pascal text'); goto continue; + end; +new_module: goto done; + +@ @<Copy a string...@>= +begin b:="'"; +loop@+ begin app_repl(b); + if b="@@" then + if buffer[loc]="@@" then incr(loc) {store only one \.{@@}} + else err_print('! You should double @@ signs in strings'); +@.You should double \AT! signs@> + if loc=limit then + begin err_print('! String didn''t end'); +@.String didn't end@> + buffer[loc]:="'"; buffer[loc+1]:=0; + end; + b:=buffer[loc]; incr(loc); + if b="'" then + begin if buffer[loc]<>"'" then goto found + else begin incr(loc); app_repl("'"); + end; + end; + end; +found: end {now |a| holds the final |"'"| that will be stored} + +@ @<Copy verbatim string...@>= +begin app_repl(verbatim); +buffer[limit+1]:="@@"; +reswitch: if buffer[loc]="@@" then + begin if loc<limit then if buffer[loc+1]="@@" then + begin app_repl("@@"); + loc:=loc+2; + goto reswitch; + end; + end +else begin app_repl(buffer[loc]); + incr(loc); + goto reswitch; + end; +if loc>=limit then err_print('! Verbatim string didn''t end') +@.Verbatim string didn't end@> +else if buffer[loc+1]<>">" then + err_print('! You should double @@ signs in verbatim strings'); +@.You should double \AT! signs@> +loc:=loc+2; +end {another |verbatim| byte will be stored, since |a=verbatim|} + +@ The following procedure is used to define a simple or parametric macro, +just after the `\.{==}' of its definition has been scanned. + +@p procedure define_macro(@!t:eight_bits); +var p:name_pointer; {the identifier being defined} +begin p:=id_lookup(t); scan_repl(t);@/ +equiv[p]:=cur_repl_text; text_link[cur_repl_text]:=0; +end; + +@* Scanning a module. +The |scan_module| procedure starts when `\.{@@\ }' or `\.{@@*}' has been +sensed in the input, and it proceeds until the end of that module. It +uses |module_count| to keep track of the current module number; with luck, +\.{WEAVE} and \.{TANGLE} will both assign the same numbers to modules. + +@<Globals...@>= +@!module_count:0..@'27777; {the current module number} + +@ The top level of |scan_module| is trivial. +@p procedure scan_module; +label continue, done, exit; +var p:name_pointer; {module name for the current module} +begin incr(module_count); +@<Scan the \(definition part of the current module@>; +@<Scan the \PASCAL\ part of the current module@>; +exit: end; + +@ @<Scan the \(definition part...@>= +next_control:=0; +loop@+ begin continue: while next_control<=format do + begin next_control:=skip_ahead; + if next_control=module_name then + begin {we want to scan the module name too} + loc:=loc-2; next_control:=get_next; + end; + end; + if next_control<>definition then goto done; + next_control:=get_next; {get identifier name} + if next_control<>identifier then + begin err_print('! Definition flushed, must start with ', +@.Definition flushed...@> + 'identifier of length > 1'); goto continue; + end; + next_control:=get_next; {get token after the identifier} + if next_control="=" then + begin scan_numeric(id_lookup(numeric)); goto continue; + end + else if next_control=equivalence_sign then + begin define_macro(simple); goto continue; + end + else @<If the next text is `|(#)==|', call |define_macro| + and |goto continue|@>; + err_print('! Definition flushed since it starts badly'); +@.Definition flushed...@> + end; +done: + +@ @<If the next text is `|(#)==|'...@>= +if next_control="(" then + begin next_control:=get_next; + if next_control="#" then + begin next_control:=get_next; + if next_control=")" then + begin next_control:=get_next; + if next_control="=" then + begin err_print('! Use == for macros'); +@.Use == for macros@> + next_control:=equivalence_sign; + end; + if next_control=equivalence_sign then + begin define_macro(parametric); goto continue; + end; + end; + end; + end; + +@ @<Scan the \PASCAL...@>= +case next_control of +begin_Pascal:p:=0; +module_name: begin p:=cur_module; + @<Check that |=| or |==| follows this module name, otherwise |return|@>; + end; +othercases return +endcases;@/ +@<Insert the module number into |tok_mem|@>; +scan_repl(module_name); {now |cur_repl_text| points to the replacement text} +@<Update the data structure so that the replacement text is accessible@>; + +@ @<Check that |=|...@>= +repeat next_control:=get_next; +until next_control<>"+"; {allow optional `\.{+=}'} +if (next_control<>"=")and(next_control<>equivalence_sign) then + begin err_print('! Pascal text flushed, = sign is missing'); +@.Pascal text flushed...@> + repeat next_control:=skip_ahead; + until next_control=new_module; + return; + end + +@ @<Insert the module number...@>= +store_two_bytes(@'150000+module_count); {|@'150000=@'320*@'400|} + +@ @<Update the data...@>= +if p=0 then {unnamed module} + begin text_link[last_unnamed]:=cur_repl_text; last_unnamed:=cur_repl_text; + end +else if equiv[p]=0 then equiv[p]:=cur_repl_text {first module of this name} +else begin p:=equiv[p]; + while text_link[p]<module_flag do p:=text_link[p]; {find end of list} + text_link[p]:=cur_repl_text; + end; +text_link[cur_repl_text]:=module_flag; + {mark this replacement text as a nonmacro} + +@* Debugging. +The \PASCAL\ debugger with which \.{TANGLE} was developed allows breakpoints +to be set, and variables can be read and changed, but procedures cannot be +executed. Therefore a `|debug_help|' procedure has been inserted in the main +loops of each phase of the program; when |ddt| and |dd| are set to appropriate +values, symbolic printouts of various tables will appear. + +The idea is to set a breakpoint inside the |debug_help| routine, at the +place of `\ignorespaces|breakpoint:|\unskip' below. Then when +|debug_help| is to be activated, set |trouble_shooting| equal to |true|. +The |debug_help| routine will prompt you for values of |ddt| and |dd|, +discontinuing this when |ddt<=0|; thus you type $2n+1$ integers, ending +with zero or a negative number. Then control either passes to the +breakpoint, allowing you to look at and/or change variables (if you typed +zero), or to exit the routine (if you typed a negative value). + +Another global variable, |debug_cycle|, can be used to skip silently +past calls on |debug_help|. If you set |debug_cycle>1|, the program stops +only every |debug_cycle| times |debug_help| is called; however, +any error stop will set |debug_cycle| to zero. + +@<Globals...@>= +@!debug@!trouble_shooting:boolean; {is |debug_help| wanted?} +@!ddt:integer; {operation code for the |debug_help| routine} +@!dd:integer; {operand in procedures performed by |debug_help|} +@!debug_cycle:integer; {threshold for |debug_help| stopping} +@!debug_skipped:integer; {we have skipped this many |debug_help| calls} +@!term_in:text_file; {the user's terminal as an input file} +gubed + +@ The debugging routine needs to read from the user's terminal. +@^system dependencies@> +@<Set init...@>= +@!debug trouble_shooting:=true; debug_cycle:=1; debug_skipped:=0;@/ +trouble_shooting:=false; debug_cycle:=99999; {use these when it almost works} +reset(term_in,'TTY:','/I'); {open |term_in| as the terminal, don't do a |get|} +gubed + +@ @d breakpoint=888 {place where a breakpoint is desirable} +@^system dependencies@> + +@p @!debug procedure debug_help; {routine to display various things} +label breakpoint,exit; +var k:integer; {index into various arrays} +begin incr(debug_skipped); +if debug_skipped<debug_cycle then return; +debug_skipped:=0; +loop@+ begin print_nl('#'); update_terminal; {prompt} + read(term_in,ddt); {read a debug-command code} + if ddt<0 then return + else if ddt=0 then + begin goto breakpoint;@\ {go to every label at least once} + breakpoint: ddt:=0;@\ + end + else begin read(term_in,dd); + case ddt of + 1: print_id(dd); + 2: print_repl(dd); + 3: for k:=1 to dd do print(xchr[buffer[k]]); + 4: for k:=1 to dd do print(xchr[mod_text[k]]); + 5: for k:=1 to out_ptr do print(xchr[out_buf[k]]); + 6: for k:=1 to dd do print(xchr[out_contrib[k]]); + othercases print('?') + endcases; + end; + end; +exit:end; +gubed + +@* The main program. +We have defined plenty of procedures, and it is time to put the last +pieces of the puzzle in place. Here is where \.{TANGLE} starts, and where +it ends. +@^system dependencies@> + +@p begin initialize; +@<Initialize the input system@>; +print_ln(banner); {print a ``banner line''} +@<Phase I: Read all the user's text and compress it into |tok_mem|@>; +stat for ii:=0 to zz-1 do max_tok_ptr[ii]:=tok_ptr[ii];@+tats@;@/ +@<Phase II:...@>; +end_of_TANGLE: +if string_ptr>256 then @<Finish off the string pool file@>; +stat @<Print statistics about memory usage@>;@+tats@;@/ +@t\4\4@>{here files should be closed if the operating system requires it} +@<Print the job |history|@>; +end. + +@ @<Phase I:...@>= +phase_one:=true; +module_count:=0; +repeat next_control:=skip_ahead; +until next_control=new_module; +while not input_has_ended do scan_module; +@<Check that all changes have been read@>; +phase_one:=false; + +@ @<Finish off the string pool file@>= +begin print_nl(string_ptr-256:1, ' strings written to string pool file.'); +write(pool,'*'); +for ii:=1 to 9 do + begin out_buf[ii]:=pool_check_sum mod 10; + pool_check_sum:=pool_check_sum div 10; + end; +for ii:=9 downto 1 do write(pool,xchr["0"+out_buf[ii]]); +write_ln(pool); +end + +@ @<Glob...@>= +stat @!wo:0..ww-1; {segment of memory for which statistics are being printed} +tats + +@ @<Print statistics about memory usage@>= +print_nl('Memory usage statistics:'); +print_nl(name_ptr:1, ' names, ', text_ptr:1, ' replacement texts;'); +print_nl(byte_ptr[0]:1); +for wo:=1 to ww-1 do print('+',byte_ptr[wo]:1); +if phase_one then + for ii:=0 to zz-1 do max_tok_ptr[ii]:=tok_ptr[ii]; +print(' bytes, ', max_tok_ptr[0]:1); +for ii:=1 to zz-1 do print('+',max_tok_ptr[ii]:1); +print(' tokens.'); + +@ Some implementations may wish to pass the |history| value to the +operating system so that it can be used to govern whether or not other +programs are started. Here we simply report the history to the user. +@^system dependencies@> + +@<Print the job |history|@>= +case history of +spotless: print_nl('(No errors were found.)'); +harmless_message: print_nl('(Did you see the warning message above?)'); +error_message: print_nl('(Pardon me, but I think I spotted something wrong.)'); +fatal_message: print_nl('(That was a fatal error, my friend.)'); +end {there are no other cases} + +@* System-dependent changes. +This module should be replaced, if necessary, by changes to the program +that are necessary to make \.{TANGLE} work at a particular installation. +It is usually best to design your change file so that all changes to +previous modules preserve the module numbering; then everybody's version +will be consistent with the printed program. More extensive changes, +which introduce new modules, can be inserted here; then only the index +itself will get a new module number. +@^system dependencies@> + +@* Index. +Here is a cross-reference table for the \.{TANGLE} processor. +All modules in which an identifier is +used are listed with that identifier, except that reserved words are +indexed only when they appear in format definitions, and the appearances +of identifiers in module names are not indexed. Underlined entries +correspond to where the identifier was declared. Error messages and +a few other things like ``ASCII code'' are indexed here too. diff --git a/source/texk/web2c/texmfmp.h b/source/texk/web2c/texmfmp.h index be8311f0e58dc95d7f78fb61ec99c73e048ac787..5aead37b11d9a646fa3939bf510f58375d02c660 100644 --- a/source/texk/web2c/texmfmp.h +++ b/source/texk/web2c/texmfmp.h @@ -124,16 +124,16 @@ extern int tfmtemp, texinputtype; #if !defined (pdfTeX) extern void pdftex_fail(const char *fmt, ...); #endif -#if !defined(XeTeX) extern char start_time_str[]; extern void initstarttime(void); +#if !defined(XeTeX) extern char *makecstring(integer s); extern char *makecfilename(integer s); +#endif /* !XeTeX */ extern void getcreationdate(void); extern void getfilemoddate(integer s); extern void getfilesize(integer s); extern void getfiledump(integer s, int offset, int length); -#endif extern void convertStringToHexString(const char *in, char *out, int lin); extern void getmd5sum(integer s, int file); #endif @@ -220,7 +220,7 @@ extern boolean input_line (FILE *); #define dateandtime(i,j,k,l) get_date_and_time (&(i), &(j), &(k), &(l)) extern void get_date_and_time (integer *, integer *, integer *, integer *); -#if defined(pdfTeX) || defined(epTeX) || defined(eupTeX) +#if defined(pdfTeX) || defined(epTeX) || defined(eupTeX) || defined(XeTeX) /* Get high-res time info. */ #define secondsandmicros(i,j) get_seconds_and_micros (&(i), &(j)) extern void get_seconds_and_micros (integer *, integer *); diff --git a/source/texk/web2c/web2c/ChangeLog b/source/texk/web2c/web2c/ChangeLog index 8f95a87ce2ad71b98cd633b608319d94c79cd854..897e0b51804173e536cb1df8d9375c88bfb453fe 100644 --- a/source/texk/web2c/web2c/ChangeLog +++ b/source/texk/web2c/web2c/ChangeLog @@ -1,3 +1,8 @@ +2018-11-11 Andreas Scherer <https://ascherer.github.io> + + * fixwrites.c (main): check return value from fgets. + (tex-k 11 Nov 2018 11:53:24) + 2018-06-08 Karl Berry <karl@freefriends.org> * common.defines (aopeninwithdirname): add. diff --git a/source/texk/web2c/web2c/configure b/source/texk/web2c/web2c/configure index 94493ce53da4d920dd7e28b4198ccb9923e3d9f2..e977e3f50e21d419106b92103becbd85d81d0c41 100755 --- a/source/texk/web2c/web2c/configure +++ b/source/texk/web2c/web2c/configure @@ -8022,6 +8022,8 @@ fi done +##tldbg KPSE_COMMON: web2c convert (). +##tldbg KPSE_BASIC: Remember web2c convert () as Kpse_Package (for future messages). if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output diff --git a/source/texk/web2c/web2c/fixwrites.c b/source/texk/web2c/web2c/fixwrites.c index 2c1f33608c8001dacf89bafbdb2aa10f643f45fd..0e28269afe247ad175cf8eb95615a2024406d7d6 100644 --- a/source/texk/web2c/web2c/fixwrites.c +++ b/source/texk/web2c/web2c/fixwrites.c @@ -311,7 +311,8 @@ main (int argc, string *argv) cmd = cp; while (!whole (buf)) /* make sure we have whole stmt */ { - fgets (&buf[strlen (buf)], BUFSIZ - strlen (buf), stdin); + if (!fgets (&buf[strlen (buf)], BUFSIZ - strlen (buf), stdin)) + break; remove_newline (buf); } diff --git a/source/texk/web2c/window/Makefile.in b/source/texk/web2c/window/Makefile.in index ffd16ab0445b427d8f3a5e19096d3f974d4d2ab8..983167a027dbdf8dafe0aa36be14e83f390aac52 100644 --- a/source/texk/web2c/window/Makefile.in +++ b/source/texk/web2c/window/Makefile.in @@ -132,7 +132,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/web2c-disable.m4 \ $(top_srcdir)/../../m4/lt~obsolete.m4 \ $(top_srcdir)/../../version.ac $(top_srcdir)/ac/web2c.ac \ $(top_srcdir)/synctexdir/ac/synctex.ac \ - $(top_srcdir)/synctexdir/synctex_parser_version.txt \ + $(top_srcdir)/synctexdir/synctex_parser_api_level.txt \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) diff --git a/source/texk/web2c/xetexdir/xetex_version.h b/source/texk/web2c/xetexdir/xetex_version.h index 91c95ac0bd46da3492e27f46e1286e17b4e3a95e..51fb7b70750d234414598b17575cf2a486fd1a1d 100644 --- a/source/texk/web2c/xetexdir/xetex_version.h +++ b/source/texk/web2c/xetexdir/xetex_version.h @@ -1 +1 @@ -#define XETEX_VERSION "0.99999" +#define XETEX_VERSION "0.999991" diff --git a/source/utils/Makefile.in b/source/utils/Makefile.in index df3d4e90bc85fe68ce1b3ada000cb332db2e4437..2b8970cc661cf37f3b5ecd859bf7b6fd22e5973f 100644 --- a/source/utils/Makefile.in +++ b/source/utils/Makefile.in @@ -111,7 +111,6 @@ am__aclocal_m4_deps = $(top_srcdir)/../m4/kpse-common.m4 \ $(top_srcdir)/../libs/zziplib/ac/withenable.ac \ $(top_srcdir)/../libs/libpng/ac/withenable.ac \ $(top_srcdir)/../libs/luajit/ac/withenable.ac \ - $(top_srcdir)/../libs/lua52/ac/withenable.ac \ $(top_srcdir)/../libs/lua53/ac/withenable.ac \ $(top_srcdir)/../libs/zlib/ac/withenable.ac \ $(top_srcdir)/../texk/kpathsea/ac/withenable.ac \ diff --git a/source/utils/README b/source/utils/README index 226160055b83539d16ddd8dea9ca255ee493ce1e..05b728e538b67eb9b860a44ce0668a3ba7118088 100644 --- a/source/utils/README +++ b/source/utils/README @@ -1,4 +1,4 @@ -$Id: README 48276 2018-07-26 16:40:39Z karl $ +$Id: README 48727 2018-09-21 22:18:21Z karl $ Public domain. Originally written 2005 by Karl Berry. Extra utilities we (optionally) compile for TeX Live. @@ -51,9 +51,9 @@ After building clisp as described below, run the TL Build --enable-xindy CLISP=$clisp_builddir/clisp to include xindy in the build. It is disabled by default. -xindy/README-clisp has alternative instructions with some extra -information, especially for those building xindy on its own. The -process here is written for building clisp-for-xindy-for-TL. The +xindy/xindy-src/README-clisp has alternative instructions with some +extra information, especially for those building xindy on its own. The +process here is written for building clisp-for-xindy-for-TL. The differences are minimal. mkdir clisp; cd clisp diff --git a/source/utils/configure b/source/utils/configure index 931fdc69c1aef9e1826fd7259d4098fcba326854..91af7e82c49c4aef544a417a6c0d393325a4b76b 100755 --- a/source/utils/configure +++ b/source/utils/configure @@ -3686,9 +3686,6 @@ test "x$need_libpng" = xyes && { ## libs/luajit/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/luajit/ ## configure options and TL libraries required for luajit -## libs/lua52/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/lua52/ -## configure options and TL libraries required for lua52 - ## libs/lua53/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/lua53/ ## configure options and TL libraries required for lua53 @@ -4317,6 +4314,7 @@ else fi ;; esac +##tldbg KPSE_BASIC: Remember utils () as Kpse_Package (for future messages). if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output @@ -4673,7 +4671,7 @@ WARNING_CFLAGS=$kpse_cv_warning_cflags { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Utils programs to build" >&5 $as_echo_n "checking for Utils programs to build... " >&6; } -echo 'dbg:_KPSE_RECURSE called: list=utils, text=Utils programs, cond=test "x$enable_Kpse_pkg" = xyes, prefix=.' >&5 +echo 'tldbg:_KPSE_RECURSE called: list=utils, text=Utils programs, cond=test "x$enable_[]Kpse_pkg" = xyes, prefix=.' >&5 MAKE_SUBDIRS= CONF_SUBDIRS=