The ${1+"$@"} was being evaluated by make, rather than being escaped.
"$(MKDIRHIER)" $(DESTDIR)$(bindir)
"$(RM)" $(RM_OPTS) $(WRAPPER)
echo '#!$(SHELL)' >> $(WRAPPER)
- echo 'exec $(bindir)/ghc-$(ProjectVersion) --interactive ${1+"$@"}' >> $(WRAPPER)
+ echo 'exec $(bindir)/ghc-$(ProjectVersion) --interactive $${1+"$$@"}' >> $(WRAPPER)
$(EXECUTABLE_FILE) $(WRAPPER)
"$(RM)" $(RM_OPTS) $(DESTDIR)$(bindir)/ghci
$(LN_S) ghci-$(ProjectVersion) $(DESTDIR)$(bindir)/ghci