-%% Include postscript definitions unless using PDFTeX,
-%% in that case use pdf definitions.
-%% MiKTeX workaround: use \csname.
-\lilypondifundefined{lilypondpostscript}
- {\lilypondifundefined{pdfoutput}
- {\input lily-ps-defs }
- {\pdfoutput = 1
- \input lily-pdf-defs }}
- {}
+%% Include PostScript definitions (which are differently defined for
+%% TeX and pdfTeX). This is loaded once only because the inputted files
+%% define \lilypondpostscript.
+%%
+%% (Don't remove the spaces after the arguments to \input!)
+%%
+%
+%% In teTeX-3.0, latex is actually pdfetex, and we need
+%% ifpdf.sty to determinine if we are really *tex or pdf*tex.
+%
+%% \input ifpdf.sty
+%
+%% However, ifpfd.sty is too smart for LilyPond, so we copy the
+%% logic here. Using \input ifpdf.sty is a no-op when using latex,
+%% and the \ifpdf switch is needed before \documentclass, using
+%% \usepackage{ifpdf} is not an option.
+%
+\input lily-ps-defs