make-system-wrappers.pl 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #!/usr/bin/perl
  2. #
  3. # ***** BEGIN LICENSE BLOCK *****
  4. # Version: MPL 1.1/GPL 2.0/LGPL 2.1
  5. #
  6. # The contents of this file are subject to the Mozilla Public License Version
  7. # 1.1 (the "License"); you may not use this file except in compliance with
  8. # the License. You may obtain a copy of the License at
  9. # http://www.mozilla.org/MPL/
  10. #
  11. # Software distributed under the License is distributed on an "AS IS" basis,
  12. # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  13. # for the specific language governing rights and limitations under the
  14. # License.
  15. #
  16. # The Original Code is mozilla.org code.
  17. #
  18. # The Initial Developer of the Original Code is
  19. # IBM Corporation.
  20. # Portions created by the Initial Developer are Copyright (C) 2004
  21. # the Initial Developer. All Rights Reserved.
  22. #
  23. # Contributor(s):
  24. # Brian Ryner <bryner@brianryner.com>
  25. #
  26. # Alternatively, the contents of this file may be used under the terms of
  27. # either of the GNU General Public License Version 2 or later (the "GPL"),
  28. # or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  29. # in which case the provisions of the GPL or the LGPL are applicable instead
  30. # of those above. If you wish to allow use of your version of this file only
  31. # under the terms of either the GPL or the LGPL, and not to allow others to
  32. # use your version of this file under the terms of the MPL, indicate your
  33. # decision by deleting the provisions above and replace them with the notice
  34. # and other provisions required by the GPL or the LGPL. If you do not delete
  35. # the provisions above, a recipient may use your version of this file under
  36. # the terms of any one of the MPL, the GPL or the LGPL.
  37. #
  38. # ***** END LICENSE BLOCK *****
  39. $output_dir = shift;
  40. while (<STDIN>) {
  41. chomp;
  42. if (-e "$output_dir/$_") {
  43. next;
  44. }
  45. if (/(.*)\/[^\/*]/) {
  46. mkdir "$output_dir/$1";
  47. }
  48. open OUT, ">$output_dir/$_";
  49. print OUT "#pragma GCC system_header\n"; # suppress include_next warning
  50. print OUT "#pragma GCC visibility push(default)\n";
  51. print OUT "#include_next \<$_\>\n";
  52. print OUT "#pragma GCC visibility pop\n";
  53. close OUT;
  54. }