Print this page
cpp: don't handroll an incorrect strtoul(3c), use the one in libc
The previous implementation would parse 0x7ff as 0x755 (etc).

Split Close
Expand all
Collapse all
          --- old/cpp/Makefile
          +++ new/cpp/Makefile
↓ open down ↓ 45 lines elided ↑ open up ↑
  46   46  
  47   47  clean:
  48   48          -rm -f $(OBJS) $(CLEANFILES) $(PROG) *strap
  49   49  
  50   50  $(PROG): $(OBJS)
  51   51          $(LINK.prog)
  52   52  
  53   53  %.o$(STRAP): %.c
  54   54          $(COMPILE.c)
  55   55  
       56 +y.tab.o$(STRAP): yylex.c
       57 +
  56   58  #
  57   59  # We need to distinguish between the cpp build in the bootstrap and the cpp
  58   60  # built normally. However, when we install it, they need to have the same name.
  59   61  # To handle this we add a small bit of shell logic. Note that the mv bit is
  60   62  # explicitly ignored and instead we do a final check to make sure we have
  61   63  # something called cpp at the very end which will either be because of install
  62   64  # or because of the later mv.
  63   65  #
  64   66  $(DESTDIR)$(PROGDIR)/%: %
  65   67          mkdir -p $(DESTDIR)$(PROGDIR)
  66   68          /usr/sbin/install -m 0755 -f $(DESTDIR)$(PROGDIR) $(PROG)
  67   69          -[ "$(PROG)" == "cppstrap" ] && mv -f $(DESTDIR)$(PROGDIR)/$(PROG) \
  68   70              $(DESTDIR)$(PROGDIR)/cpp
  69   71          [ -f "$(DESTDIR)$(PROGDIR)/cpp" ]
  70   72  
  71   73  y.tab.c: cpy.y
  72   74          $(YACC) cpy.y
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX