On 2018-08-19 at 13:53:49 +0200, Michal Hoftich wrote: > Moreover, if GNU Make is available on the system, it makes a > Makefile, which calls dvisvgm only on subset of pages (64 by > default) and it calls it in parallel (thanks to Reinhard for this > idea). It should speed up the compilation in theory, although I am > not sure from my tests that it really works in practise.
Hi Michal, it was my mistake to mention "GNU make" explicitly though the -j option should work with any other version of "make" too. So you should only check whether a program called "make" is in PATH. If there is no such program in PATH I think that it's best to ask users to install GNU make. It can be installed on Unix systems using the package manager. Windows users can download it from https://sourceforge.net/projects/ezwinports/files/ and OS X users can get it via macports or so if it's not already provided by the system. I have no experience with OS X. The advantage of make is not only that it can run processes in parallel but that it only invokes a program when the source is newer than the target. If pages can be processed separately, this saves an enourmous amount of time. Furthermore, you can omit the -f option if the name of the file is "Makefile", all lowercase with a capital "M". The -f option is neccesary if non-standard names are involved and, of course, if there are two makefiles in the same directory. I don't know how and why the variable "parallel_size" is used in your script. Unfortunately I can't run your script because there is no file "dvireader.lua" on my system. Where can I get it from? If you entirely rely on make, you can define rules for all pages in a particular document and let "make" decide (via the -j option) how many processes to run at the same time. Instead of handling the case that there is no "make" in PATH in your script, it's probably much easier and cleaner to create a Unix shell script and an MS-DOG batch file while creating the Makefile and then invoke one of these scripts if necessary. Since "make" supports conditional compilation (only create an output file when the source file was changed) and the ability to run processes in parallel, I think that everything else can only be a last resort. Regards, Reinhard -- ------------------------------------------------------------------ Reinhard Kotucha Phone: +49-511-3373112 Marschnerstr. 25 D-30167 Hannover mailto:reinhard.kotu...@web.de ------------------------------------------------------------------